はじめに
AWSのNoSQLデータベースであるAmazon DynamoDBは、サーバーレスでスケーラブルなため、多くのシステムで利用されています。
しかし、デフォルト設定のまま利用すると、
- 想定外の料金が発生する
- データを誤って削除してしまう
- パフォーマンスが低下する
といったトラブルにつながる可能性があります。
この記事では、DynamoDBを利用する際、最初に設定しておきたいポイントを紹介します。
1. ポイントインタイムリカバリ(PITR)を有効にする【最重要】
最初に設定したいのが
Point-in-Time Recovery(PITR)
です。
PITRとは?
35日以内であれば、
好きな時点までテーブルを復元できる機能
です。
例えば、
- DELETEを誤って実行した
- バグでデータを書き換えた
- アプリケーションの不具合で大量更新された
といった場合でも復元できます。
イメージ
10:00 正常
11:00 誤削除
12:00 気付く
↓
10:59時点へ復元
本番環境では必ず有効化しておくことをおすすめします。
2. Auto Scaling(またはオンデマンド)を設定する
DynamoDBでは読み込み・書き込み性能を設定できます。
現在は大きく2つの課金方式があります。
オンデマンド
アクセス量に応じて自動でスケールします。
おすすめ
- 開発環境
- 利用量が読めないサービス
- 小規模システム
プロビジョンド + Auto Scaling
あらかじめ性能を決め、
アクセス量に応じて自動でスケールします。
おすすめ
- 本番環境
- アクセス数がある程度予測できるシステム
3. TTL(Time To Live)を設定する
TTLを設定すると、
不要になったデータを自動削除できます。
例えば、
- セッション情報
- キャッシュ
- 一時データ
- ログ
などに利用されます。
イメージ
保存
│
▼
24時間経過
│
▼
自動削除
不要データを残さないことで、
ストレージ料金の削減にもつながります。
4. CloudWatchで監視する
DynamoDBはCloudWatchと連携しています。
最低限確認したいメトリクスは、
- Read Throttle Events
- Write Throttle Events
- Consumed Read Capacity
- Consumed Write Capacity
- System Errors
です。
特に
Throttle(スロットリング)
が発生していないかは定期的に確認しましょう。
5. バックアップを設定する
PITRとは別に、
定期バックアップもおすすめです。
バックアップを取得しておくと、
- 検証環境へコピー
- 長期保存
- 災害対策
などにも利用できます。
PITRだけでは対応できないケースもあるため、
重要なテーブルではバックアップも設定しましょう。
余裕があれば設定したい項目
DynamoDB Streams
データ変更を検知できます。
Lambdaと組み合わせることで、
- メール送信
- ログ保存
- 他システム連携
などが実現できます。
暗号化(Encryption)
DynamoDBでは保存データを暗号化できます。
通常はAWSマネージドキーで十分ですが、
より厳格なセキュリティが必要な場合は
AWS KMSのカスタマー管理キー(CMK)を利用します。
IAMポリシー
IAMユーザーやIAMロールには
必要最低限の権限だけ付与しましょう。
例えば、
- 読み取り専用
- 更新可能
- 管理者
など役割ごとに権限を分けることで、
誤操作や情報漏えいのリスクを減らせます。
本番環境で最低限設定したい項目
チェックリストとしてまとめると、
| 設定 | おすすめ |
|---|---|
| PITR | ⭐⭐⭐⭐⭐ |
| Auto Scaling または オンデマンド | ⭐⭐⭐⭐⭐ |
| TTL | ⭐⭐⭐⭐☆ |
| CloudWatch監視 | ⭐⭐⭐⭐☆ |
| バックアップ | ⭐⭐⭐⭐☆ |
| DynamoDB Streams | ⭐⭐⭐☆☆ |
| IAM最小権限 | ⭐⭐⭐⭐⭐ |
| 暗号化 | ⭐⭐⭐⭐☆ |
まとめ
DynamoDBはサーバーレスで運用しやすいサービスですが、
本番環境では事前の設定が非常に重要です。
最低限、次の5つは設定しておくことをおすすめします。
- ✅ Point-in-Time Recovery(PITR)
- ✅ Auto Scaling または オンデマンド
- ✅ TTL
- ✅ CloudWatchによる監視
- ✅ バックアップ
これらを設定することで、
- データ損失の防止
- コスト最適化
- 安定したパフォーマンス
- 運用負荷の軽減
につながります。
DynamoDBを安心して運用するためにも、テーブル作成後はまずこれらの設定を確認しておきましょう。