[アップデート] NoSQL Workbench for Amazon DynamoDB の v3.12.0 でテーブルクローン機能が追加されたので複数 AWS アカウント間でのスキーマとアイテムのクローンに使ってみた

2024.02.27

いわさです。

NoSQL Workbench for Amazon DynamoDB 使ってますか。
私はまだサンプルデータのロードぐらいでしか使えていないのですが結構多機能で頻繁にアップデートもされています。

先日のアップデートでバージョン 3.12.0 がリリースされ、Opereation Builder に新たにテーブルのクローン機能が追加されました。

こちらのリリース履歴の内容からローカルやクラウド、あるいは複数のアカウント間・リージョン間でスキーマやグローバルセカンダリインデックスのコピーを行うことが出来そうです。

アカウント間のクローン

今回は複数の AWS アカウント間でスキーマからアイテムまで全てクローン出来るか試してみました。
あるアカウント上で新しくテーブルを作成します。

テーブルには何件かアイテムを作成しておきます。
NoSQL Workbench の機能でアイテム丸ごとクローンされるのかどうかも見てみたいと思います。

NoSQL WorkBench を起動します。
今回の機能は v3.12.0 から利用可能なので事前にバージョンアップを行っておきましょう。以下からダウンロードが可能です。

NoSQL Workbench の実行したら Operatin builder から先程作成した AWS アカウント上のテーブルを選択します。
次のように「Clone」ボタンを確認することが出来ます。

Clone ボタンを押すと、次のようにクローンに必要な情報を入力することが出来ます。
基本的な情報として Connection、リージョン、新しいテーブル名は選択が出来るので、どこにどういうテーブルを作成するかはここで選択が出来そうですね。

また、クローンする際の対象などをいくつかオプションで選択することが出来るようです。
キースキーマは必須で、オプションで GSI スキーマもクローンすることが出来ます。
アイテムのクローンはデフォルトは 0 ですね。スキーマのみクローンすることも出来ますが、アイテムもクローン対象とすることが出来ます。

ただし、クローン出来るアイテムは最大で 5000 件までという制限がありました。
5000 以上を入力しても、強制的に 5000 に入力値が修正されてしまいます。

上記ダイアログで Clone ボタンを押すとクローンが開始されます。
Operation builder のサイドメニュー下部に「Cloning table」というエリアが追加されています。
ここでクローン処理のステータスを確認することが出来るようです。

今回はアイテムの件数も少なかった(8 件)だったためかすぐに Job completed にステータスが変更されました。
Clongin table エリアの矢印ボタンを押すと、クローン処理のジョブの実行結果を確認することが出来ました。

アイテムが 8 件処理され、消費した読み取り容量ユニット (RCU) と書き込み容量ユニット (WCU) を確認することが出来るようです。

クローン先の AWS アカウントを確認してみましょう。
指定した名前でテーブルが作成されアイテムもクローンされていることがわかります。

また、インデックスについても同じようにクローンされていますね。

さいごに

本日は NoSQL Workbench for Amazon DynamoDB の v3.12.0 でテーブルクローン機能が追加されたので複数 AWS アカウント間でのスキーマとアイテムのクローンに使ってみました。

バックアップから復元したり、AWS API からテーブル定義を取得してそこから新規作成する方法などは今までも可能だったようですが、クローン元と先だけ指定してクローンボタン一発で実行出来るのはなかなか便利なのではないでしょうか。
DynamoDB 側の機能としてサポートされていない操作も NoSQL Workbench を使うと実現出来る場合があるので、公式ツールの存在や機能については把握しておきたいですね。