DynamoDBテーブルの暗号化設定変更の方法について調べてみた

AWS

はじめに

先日、バックアップとリストアを利用した既存テーブルの暗号化設定の変更について経験する機会があり、直接変更する方法と何が異なるのか気になったため調査してみました。

本記事では、調査して分かったことを共有させていただきます。

既存テーブルの暗号化設定の変更方法

大別して2つの方法があるようです。

直接変更

AWS Management Console、AWS CLI、またはAWS APIを使用して、テーブル設定の暗号化オプションを直接変更する方法です。

手順が簡単である一方、大規模なテーブルの場合は変更に時間がかかり、その間はテーブルが使用できなくなるというデメリットがあります。

バックアップとリストアを利用した変更

既存のテーブルをバックアップし、そのバックアップから新しいテーブルをリストアする際に、暗号化設定を指定する方法です。この方法では、元のテーブルを停止することなく、段階的に移行を進められるメリットがあります。

ただし、手順が多く、追加のストレージコストが発生するのがデメリットです。リストア時には、元のテーブルとは別の新しいテーブルが作成されます。つまり、リストアが完了するまでの間、元のテーブルと新しいテーブルが並行して存在することになり、両方のテーブルのストレージコストが発生します。

また、移行中に元のテーブルにデータの追加や更新があった場合、それらのデータは新しいテーブルには反映されません。これは、バックアップ時点のデータのみが新しいテーブルに復元されるためです。移行中のデータ整合性を保つためには、アプリケーション側で両方のテーブルへの書き込みを行うなどの対策が必要になります。

リストア後は、アプリケーションを新しいテーブルに切り替える必要があります。この切り替え作業を段階的に行うことで、サービスの停止時間を最小限に抑えることができます。また、切り替え後に元のテーブルを削除することで、ストレージコストを削減できます。

まとめ

DynamoDBテーブルの暗号化設定変更には、直接変更する方法とバックアップとリストアを利用する方法の2つがあることが分かりました。

それぞれにメリットとデメリットがあるため、テーブルのサイズ、サービス停止の許容度、移行戦略、コストなどを考慮して、ユースケースに合った方法を選択することが大切だと感じました。

今回の調査を通じて、暗号化設定の変更方法だけでなく、DynamoDBのバックアップとリストアにも様々な運用方法があることが分かりました。

エンジニアとして、運用の選択肢について幅広い知識を持ち、状況に応じて最適な方法を選択できるようになることが重要だと実感しました。

無料相談実施中
AWSを使用したサーバーレスアプリケーションの構築
サーバーレス開発内製化、AWSへの移行等
様々な課題について無料でご相談お受けいたします。
最新情報をチェックしよう!