Amazon Web Services ブログ

新機能- Amazon DynamoDBにGlobal TablesとOn-Demand Backupが追加されました

AWSの多くのお客様にDynamoDBは広く、ミッションクリティカルな用途に使われています。金融、E-コマース、広告、IoT、そしてゲームなど様々な用途で使われており、数百万リクエスト/秒のスループットとテラバイトのデータと数兆のアイテムを格納しています。

本日、我々は2つの強力な新機能を皆様に紹介出来る事に喜びを感じています。

Global Tables – 今から新しくテーブルを作る時に全自動で2つのリージョン間、若しくはそれ以上のリージョン間で同期されるマルチマスタのテーブルを数回のクリックで簡単に作成する事が出来ます。簡単かつ素早く構築が出来る事と、大規模なスケールをアプリケーションに提供出来るためグローバルスケールのユーザーに対応することがレプリケーションの管理無しに可能になります。

On-Demand Backup – 一回のクリックで、今利用しているDynamoDBのテーブルのフルバックアップを取得する事が今から可能です。これはパフォーマンスや可用性などに影響がありません。バックアップ取得中もアプリケーションはオンラインのまま実行され、設定したプロビジョンドキャパシティ応じて読み書きが可能です。バックアップは長期間の保持、アーカイブを行い、監査要件などで必要な場合にも役立ちます。

Global Tables

DynamoDBでは既にデータは3つのAZにレプリケーションされ耐久性と高い可用性のストレージを提供しています。今日からGlobal Tablesを使うことによって、あなたのテーブルのデータは複数のリージョンへのレプリケーションを数クリックで実現出来ます。多くのグローバルで提供しているアプリケーションに必要な素早い書き込み、読み込み性能をこのスケールによって実現が可能です。

アプリケーションのコードは変更する必要がありません。書き込みリクエストと結果整合性の読み込みリクエストであればそれぞれのリージョンで作成されるendpointにリクエストを送れば大丈夫です(もし強い一貫性の読み込みが必要であれば一つのendpointに書き込みと読み込みリクエストを一つのendpointに集約する必要があります)。裏側では、DynamoDBはマルチマスター書き込みを実装し、特定のアイテムへの最後の書き込みが確実に行われるようにします。あなたがGlobal Tablesを使う時、全てのアイテムは最新の書き込み時刻を表すタイムスタンプ属性を含む様になります。アイテムへのアップデートがあった場合他のリージョンへ非同期で伝播し、DynamoDB Streams経由で完了までに1秒程度で終わります(あなたがこの状況を追跡するために新しくTimeToReplicateReplicationQueueBacklogメトリクスが追加されます。)。

始めるにはとても簡単です。テーブルを作る時にワンクリックで他のリージョンへのコピーを追加出来ます。始めるには空のテーブルである必要があり、全てのテーブルの名前とkey cofiguration(hash keyとオプションで追加出来るsort key設定がこれにあたります)は同一である必要があります。全てのテーブルはAuto Scaling、TTL、Local Secondary Index、Glocal Secondary Index、プロジョンキャパシティユニット設定、そしてIAMポリシーを同一の設定で行うべきです。便利なように、Auto Scalingは自動的に新規でGlocal Tableを作る際に有効になります。

もしDynamoDB Auto Scalingを使っていない場合、あなたはGlocal Tablesグループ内のすべてのテーブルからの書き込みに対応するための十分な書き込み用のプロジョンキャパシティユニットと、それに合わせてローカルリージョンで必要とする書き込み、読み込みのために十分なプロジョンキャパシティユニットを準備する必要があります。

それでは3つのリージョンで稼働するGlocal Tablesを作ってみましょう。私はテーブルを作るためにGlobal Tablesタブをクリックします。

DynamoDBは、テーブルが要件を満たしていることを確認し、DynamoDBストリームを有効にする必要があることを示します。私はAdd  Regionをクリックし、EU(Frankfurt)を選択しクリックします。

テーブルが作成されるまでに数秒掛かります。

私はadd regionを2回行うことで3つのリージョン設定が出来ました。

では、ここでEU(Ireland)にDynamoDBのアイテムを追加してみます。

その結果はすぐにEU(Frankfurt)に確認する事が出来ます。

このクロスリージョンレプリケーション処理はaws:rep:updateregionとaws:rep:updatetimeアトリビュートを追加します。これらはあなたのアプリケーションから見ることは出来ますが、変更すべきではありません。

Global TableはUR East(northern Virginia)、US East(Ohio)、EU(Ireland)、そしてEU(Frankfult)リージョンで今日から利用出来ます!他のリージョンについても2018年から追加していく予定です。あなたは通常のDynamoDBの料金として読み込み用プロジョンキャパシティユニット、データ量、そしてクロスリージョンレプリケーションを行った分のデータ転送料金が掛かり、書き込み用プロジョンキャパシティユニットは通常の書き込みと合わせてレプリケーションを行った分が掛かります。

On-Demand Backup

この機能は、長期間のアーカイブおよびデータ保持のための規制要件を遵守するのに役立ちます。Create backupボタンをクリック(もしくはAPIコールでも)するだけで、あなたのプロジョンキャパシティユニットを消費せず、レスポンスにも影響を与えません。バックアップは非常に耐久性のある方法で保存され、新規テーブルを作成するために使用できます。

簡単にCreate backupボタンをクリックし今回の名前を設定します。

このバックアップ機能は既に利用可能です!Amazon-managed keyによる暗号化、テーブルの全てのデータ、プロジョンキャパシティユニット設定、Local Secondary IndexとGlocal Secondary Index設定、DynamoDB Streams設定を含みます。AutoScalingとTTL設定、tags、IAM policies、CloudWatch metrics、CloudWatch Alarmsは含まない事を注意して下さい。

DynamoDBを使っているユーザの一部がペタバイトの半分に近いテーブルを持っていることを考えると、この操作がどのように瞬時に行われるのか疑問に思うかもしれません。
DynamoDBは完全なスナップショットを作成し、すべての変更ログを保存します。バックアップを作成すると、タイムスタンプをテーブルの現在のメタデータと共に保存するだけで簡単に実行できます。

これがバックアップです。

そしてこれがリストアした新しいテーブルです。

以下の項目がDynamoDB backupsを利用する時に意識して欲しい項目です。

Setup – あなたが新しいテーブルを作った後、初めのバックアップを完了させるのにDynamoDBはいくつかのステップを必要とします(あなたがランチをデスクで食べるくらいの時間で済むでしょう)。

Restoration – リストアする時間はテーブルのサイズに依存します。非常に大きなテーブルの場合、30分から数時間が必要です。

Availability – 我々はこの新機能を可能な限り迅速に開始出来るように努力しており、初期で利用出来るリージョンはUS East(Northern Virginia)、US East(Ohio)、US West(Oregon)、そしてEU(Ireland)で利用可能です。

Pricing – バックアップストレージの費用がギガバイト単位で月額掛かります。またリストアした場合も復元するデータ量に応じて費用が掛かります。

Jeff ;(原文はこちら

翻訳者:Solution Architect 成田