DynamoDB テーブルを Amazon S3 にバックアップするにはどうすればよいですか ?

最終更新日: 2020 年 6 月 16 日

Amazon Simple Storage Service (Amazon S3) を使用して Amazon DynamoDB テーブルをバックアップする方法を教えてください。

簡単な説明

DynamoDB には、2 つのバックアップ方法が組み込まれています。

これらどちらの方法も、Amazon S3 を使用します。ただし、これらのバックアップに使用される S3 バケットにはアクセスできません。ローカルへのダウンロード、もしくは別の AWS のサービスでの使用が可能なバックアップを作成するには、AWS Data Pipeline、Amazon EMR、または AWS Glue を使用します。

解決方法

Data Pipeline

AWS Data Pipeline を使用して、同じアカウントまたは別のアカウントにある S3 バケットに対し、テーブルをエクスポートできます。詳細については、「AWS Data Pipeline を使用した DynamoDB データのインポートとエクスポート」をご参照ください。

  • メリット: これは最も簡単な方法です。AWS リソースの使用を可能な限り低く抑えながら、1 回限りのバックアップを作成する場合には、この方法を選択します。Data Pipeline が Amazon EMR を使用してバックアップを自動作成し、スクリプトを実行します。このタスクを実行するために、Apache Hive または Apache Spark に関する知識は必要ありません。
  • デメリット: この方法は、他の方法と比べカスタマイズ性がありません。Amazon S3 への継続的なバックアップを作成する場合は、他の方法のいずれかを選択します。また、この方法は、他の AWS のサービスでバックアップを実行する場合における、ベストプラクティスではありません。

Amazon EMR

S3 バケットへのデータのエクスポートに、Hive を使用します。詳細については「DynamoDB のデータのエクスポート」をご参照ください。または、オープンソースの emr-dynamodb-connector を使用すると、Spark または Hive で独自のカスタムバックアップメソッドを管理できます。

  • メリット: これらの方法は、Hive や Spark に慣れている、Amazon EMR のアクティブユーザーが使用する場合の、ベストプラクティスです。これらのメソッドでは、Data Pipeline メソッドと比べ詳細な制御が行えます。
  • デメリット: Amazon EMR の初心者にとっては、これらの方法はベストプラクティスではありません。Amazon EMR を使用していないものの、継続的かつカスタマイズ可能なソリューションが必要な場合は、AWS Glue メソッドがベストプラクティスとなります。AWS Glue は知識を必要とせずに利用可能です。

AWS Glue

テーブルの Amazon S3 へのコピーに、AWS Glue を使用します。詳細については、「How to export an Amazon DynamoDB table to Amazon S3 using AWS Step Functions and AWS Glue (AWS Step Functions と AWS Glue を使用して Amazon DynamoDB テーブルを Amazon S3 にエクスポートする方法)」をご参照ください。

  • メリット: これは、Amazon Athena などの別のサービスでも使用できる、自動的かつ継続的なバックアップが必要な場合でのベストプラクティスです。
  • デメリット: AWS Glue に慣れていないユーザーの場合、やや難しい方法ではあります。しかし、Amazon EMR メソッドほど困難ではありません。この方法は、通常、Data Pipeline メソッドより料金がかかります。

ここで示したオプションのいずれによっても、必要な柔軟性が実現できない場合は、DynamoDB API を使用して 独自のソリューションを作成してください。


この記事はお役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合