MENU
category

DynamoDBを別アカウントへ移行する方法|新規テーブルと既存テーブルで選ぶ

DynamoDBのデータを別AWSアカウントへ移すときは、まず移行先に新しいテーブルを作れるか、既にあるテーブルへ書き込みたいかを決めます。この違いによって選べる方法が変わります。

新規テーブルならAWS BackupやS3経由のエクスポート・インポートを検討できます。既存テーブルに追加・統合したい場合は、GlueやSDKによる書き込み処理が候補です。さらに、移行中も元テーブルが更新されるなら、その差分をどう取り込むかまで設計します。

目次

方法を選ぶための比較表

方法 適した場面 最初に確認する条件
AWS Backup バックアップを別アカウントへコピーし、新規テーブルとして復元したい 同じAWS Organizations組織内か、クロスアカウントコピーの設定があるか
S3エクスポート・インポート データをS3経由で新規テーブルへ移したい PITR、S3・KMS権限、インデックスの要件
Glue・SDKによる読み書き 既存テーブルへ統合したい、変換処理を入れたい キーの衝突、書き込み能力、再試行と差分処理

新規テーブルへの移行方法は、AWS公式のアカウント間移行ガイドでも整理されています。S3からのインポートはLSI(ローカルセカンダリインデックス)をサポートしないため、LSIが必要な構成では最初に方式を見直します。GSIはサポートされています。

AWS Backup:同じ組織内でバックアップから復元する

AWS Backupでは、移行元で取得したバックアップを移行先アカウントへコピーし、そこで復元します。既存テーブルへのデータ追記ではなく、新しいテーブルを用意する方式です。

送信元と送信先が同じOrganizations組織に属していることに加え、DynamoDBの高度なバックアップ機能、クロスアカウントコピー、バックアップボールトの権限などを確認します。暗号化キーの利用条件も含め、単にバックアップがあるだけでコピーできるとは判断しないようにします。

既存のバックアップ運用に合わせやすい点が利点です。一方、別組織のアカウントへの移行では他の方法を検討します。手順の概要はAWS Backupによるコピー、機能の前提はDynamoDBの高度なバックアップを参照してください。

S3経由:ある時点のデータから新しいテーブルを作る

エクスポートには、移行元テーブルのPITR(ポイントインタイムリカバリ)が必要です。対象時点のデータをS3へ出力し、移行先でS3からインポートします。別Organizations組織への移行にも検討できる方法です。

  1. 移行元のPITRとエクスポート権限を確認する。
  2. 基準とする時点を決め、S3へフルエクスポートする。
  3. 移行先から対象のS3データと暗号化キーを利用できるようにする。
  4. キーやGSIなど、移行先テーブルの要件を指定してインポートする。
  5. 処理結果とデータを確認し、アプリケーションの切替へ進む。

S3からのインポートは既存テーブルへ追記する機能ではありません。また、データを取り込めたことと、TTL、Streams、バックアップ、アラーム、アプリケーション権限などの運用設定が揃ったことは別です。移行先で必要な設定を一覧にして確認します。具体的な流れはS3エクスポート・インポートによる移行を参照してください。

既存テーブルへ入れるなら、キーが重なる場合の動作を決める

既存テーブルへの統合では、Glueの処理やSDKを使って読み出し・書き込みを実装する方法があります。これはバックアップの復元とは異なり、移行処理そのものを管理する方式です。SDKによるアカウント間コピーの公式パターンも参考になります。

特に、移行元と移行先に同じ主キーがある場合、「上書き」「保持」「項目を比較して更新」のどれを求めるかを先に決めます。処理が途中で止まった際の再開方法や、同じデータを再処理した場合の結果も設計対象です。

データ量だけで簡単さを判断せず、処理時間、読み書き負荷、失敗時の再試行、実行ログまで含めて比較します。小規模でも既存データと統合する要件が複雑なら、十分な確認が必要です。

移行中に増えたデータは、自動で追従するとは限らない

例えば12時時点をエクスポートし、14時に移行先を使い始める場合、12時以降の更新をどう扱うかが残ります。フルコピーの成功だけでは、この2時間分の変更が移行先へ反映されたとはいえません。

更新を停止できるなら、停止・最終コピー・検証・切替の順序を検討します。停止できない場合は、変更を取り込む仕組みと、コピー済みデータとの整合性、更新・削除の順序を別途設計します。単発コピーをそのまま無停止移行と扱わないことが重要です。

切替前に確認すること

  • 同じ基準時点で件数や代表キーの内容が合っているか。
  • 必要なインデックスを使ったクエリが動くか。
  • アプリケーションが移行先のアカウント・リージョン・テーブルを参照しているか。
  • 移行中の更新と削除を、決めた方針どおりに反映したか。
  • 切り戻す場合、移行先で発生した更新をどう扱うか。

最初に新規・既存テーブルの条件を決め、次に組織やインデックスの制約を確認し、最後に更新差分と切替を設計すると、方式を選びやすくなります。

関連する記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次