Amazon Web Services ブログ

カスタムテーブル設定を使用して Amazon DynamoDB バックアップを異なる AWS リージョンに復元する

Amazon DynamoDB バックアップと復元は、DynamoDB テーブルの継続的かつオンデマンドのバックアップを作成し、そのバックアップからデータを復元するためのシンプルで完全に自動化された機能を提供します。ポイントインタイムリカバリ (PITR) を使用すると、DynamoDB テーブルデータの連続バックアップを作成できます。DynamoDB は、1 秒ごとの粒度でデータをバックアップし、過去 35 日間の任意の時点に復元できます。PITR を構築して、誤った書き込みや削除からユーザーを保護します。オンデマンドバックアップ を使用して、DynamoDB テーブルの完全バックアップを作成することもできます。オンデマンドバックアップは、長期の保存とアーカイブに適しており、規制要件に準拠するのに役立ちます。

DynamoDB バックアップからデータを復元するときに異なるテーブル設定が行えるようにするため、新しい復元機能を複数導入しました。このブログ記事では、新機能とその使用方法について説明します。

新しい DynamoDB の復元機能の説明

DynamoDB バックアップからデータを復元するときに、次のタスクを実行できるようになりました。

  • ソースバックアップが存在する場所とは異なる AWS リージョンの新しいテーブルにバックアップを復元する。リージョン間の復元を実行できると、マルチリージョンのコンプライアンスおよび規制要件を満たし、災害復旧およびビジネス継続性計画を開発するのに役立ちます。
  • 一部またはすべてのローカルおよびグローバルセカンダリインデックスを、復元されたテーブルで作成されないように除外する。セカンダリインデックスを復元対象から除外することにした場合、復元はより高速で費用効率が高くなります。
  • テーブルの請求方法を変更する (オンデマンドキャパシティーモードまたはプロビジョニング済みキャパシティーモード)。
  • 必要に応じて、プロビジョニング済みのキャパシティーの設定を変更する。
  • 復元されたテーブル (AWS が所有する CMK、AWS が管理する CMK、または顧客が管理する CMK) の暗号化キーを更新する。

AWS マネジメントコンソール、シンプルな API 呼び出し、または AWS コマンドラインインターフェイス (CLI) で数回クリックするだけで、復元された DynamoDB テーブルの設定を変更できます。実稼働アプリケーションのパフォーマンスや可用性に影響を与えることなく、数メガバイトから数百テラバイトのデータからテーブルを復元できます。

これらの新しい復元機能を使用する方法を見てみましょう。

PITR を有効にして開始

復元をテストするには、まずバックアップが必要です。幸いなことに、DynamoDB はテーブルを即座にバックアップしてくれます。テーブルで PITR を有効にすることから始めます。ここでは、私は米国東部 (オハイオ) リージョンを使用しています。けれども、この機能はどの AWS リージョンでも動作します。PITR はデータベースを継続的にバックアップし、アプリケーション駆動型の破損またはユーザーエラーから保護します。

DynamoDB コンソールを使用してこの機能を有効にするには、テーブルに移動して Backups タブをクリックします。次に、Status で、[Enable] を選択して PITR をオンにします。または、UpdateContinuousBackups API 呼び出しを使用して連続バックアップをオンにすることもできます。

連続バックアップを有効にすると、Earliest restore dateLatest restore date が表示されます。このリカバリウィンドウの任意のポイントにテーブルを復元できます。

カスタムテーブル設定を使用した復元

ここで、いくつかの重要なデータが誤ってテーブルから削除されたとしましょう。データが削除される直前の特定の時点にテーブルを復元するのは簡単です。コンソールで、テーブルの Backups タブに移動し、[Restore to point-in-time] をクリックします。

復元の時間 (誤って削除した時点の数秒前など) と復元するテーブルの名前を指定できます。テーブル名には、ProductCatalog-RestoredTable と入力します。

このユースケースでは、復元されたテーブルにローカルおよびグローバルセカンダリインデックスを含める必要がないとしましょう。[Restore without secondary indexes] を選択できます。復元されたテーブルからセカンダリインデックスを除外すると、復元はより高速で費用効率が高くなります。

削除されたデータと破損の可能性を調査するために、フランクフルトのチームと協力する必要があると仮定しましょう。特定の時点に簡単に復元し、フランクフルトチームのローカル AWS リージョンにテーブルのコピーを作成できます。ここでは、欧州 (フランクフルト) リージョンを選択します

DynamoDB に保存されているすべての顧客データは、保存時に完全に暗号化されます。DynamoDB はすべてのデータを透過的に暗号化し、AWS 所有の CMK、カスタマー管理型 CMK、または AWS 管理 CMK の 3 つのデータ暗号化モードを提供します。このユースケースでは、復元されたテーブルに DEFAULT (AWS 所有の CMK) 暗号化モードを選択します。

準備が整ったので、[Restore table] をクリックします。

クロスリージョン復元リクエストを送信しました。[View table in the EU (Frankfurt) Region] をクリックして、復元されたテーブルに移動できます。

また、RestoreTableToPointInTime API 呼び出しを使用して、一部またはすべてのセカンダリインデックスを選択的に除外し、テーブルの請求方法 (オンデマンドキャパシティーモードまたはプロビジョニング済みキャパシティーモード) を変更します。そして復元されたテーブルのプロビジョニング済みのキャパシティー設定を変更します。詳細については、「特定の時点への DynamoDB テーブルの復元」と「バックアップからの DynamoDB テーブルの復元」を参照してください。

まとめ

このブログ記事では、DynamoDB の新しい復元機能と、AWS マネジメントコンソールでこの機能を使用する方法について説明しました。この新機能は、DynamoDB のバックアップと復元がサポートされているすべての AWS リージョンでご利用いただけます。テーブルバックアップを他の AWS リージョンの新しいテーブルとして復元する場合、ソースリージョンから転送したデータと、復元先リージョンの新しいテーブルとしてバックアップを復元した場合にのみ請求されます。バックアップと復元の料金と AWS リージョンの可用性については、Amazon DynamoDB の料金表をご覧ください。

 


著者について

 

Mazen Ali は、Amazon DynamoDB チームのシニアテクニカルプロダクトマネージャーです。