Amazon DynamoDB テーブルのバックアップを別のリージョンに復元する方法を教えてください。

最終更新日: 2022 年 8 月 17 日

Amazon DynamoDB テーブルのバックアップを別のリージョンに復元したいと思います。

解決方法

次のいずれかの方法で、DynamoDB テーブルを別のリージョンに復元することができます。

DynamoDB を使用して DynamoDB テーブルを別のリージョンに復元する

  1. [DynamoDB コンソール] を開きます。
  2. ナビゲーションペインで、[Backup (バックアップ)] を選択します。
  3. 表示されたリストで、テーブルを復元するバックアップを選択します。
  4. [復元] をクリックします。
  5. [復元されたテーブルの名前] では、新しいテーブル名を入力します。
  6. [セカンダリインデックス] で、目的のオプションを選択します。
  7. [宛先 AWS リージョン] では、[クロスリージョン] を選択します。
  8. [移行先の AWS リージョンを選択] で、任意のリージョンを選択します。
  9. [暗号化キー管理] で、目的のオプションを選択します。
  10. [復元] をクリックします。

AWS Glue を使用して DynamoDB テーブルを別のリージョンに復元する

AWS Glue ジョブを使用して、DynamoDB テーブルを別のリージョンに復元することができます。AWS Glue は、復元プロセスにさらなる柔軟性を提供します。新しいリージョンのターゲットテーブルにすべての属性またはフィールドを復元したくない場合に、この方法選択します。このアプローチは、Amazon Simple Storage Service (Amazon S3) にエクスポートされたテーブルでのみ機能します。

1.    S3 にエクスポート機能を使用して DynamoDB テーブルを Amazon S3 にエクスポートした後、AWS Glue ジョブを作成します。必ず [スクリプト] タブに次の情報を指定してください。

datasource0 = glueContext.create_dynamic_frame.from_options(
    connection_type="dynamodb",
    connection_options={
        "dynamodb.export": "ddb",
        "dynamodb.tableArn": "arn:aws:dynamodb:source-region:account-number:table/TableName",
        "dynamodb.unnestDDBJson": True,
        "dynamodb.s3.bucket": "example-bucket",
        "dynamodb.s3.prefix": "dynamodb",
        "dynamodb.s3.bucketOwner": "account-number",
    }
)

注意: 必ず、変換ノード ApplyMapping を使用し、ターゲットテーブルに存在する必要があるフィールドを指定します。この設定では、提供された入力に基づいて PySpark コードを自動的に生成します。

例:

applymapping1 = ApplyMapping.apply(frame = datasource0, mappings = [("resource_id", "string", "resource_id", "string")], transformation_ctx = "applymapping1")

2.    ターゲットリージョンのデスティネーションテーブルに直接書き込むシンク操作を指定します。

例:

glueContext.write_dynamic_frame_from_options (frame = MappedFrame, connection_type = "dynamodb", connection_options = { "dynamodb.region": "example-region", "dynamodb.output.tableName": "example_table", "dynamodb.throughput.write.percent": "1.0" })

3.    AWS Glue コンソールからジョブを実行して、現在のリージョンからターゲットリージョンにデータをロードします。