Skip to content

DynamoDBとは?

DynamoDBは、フルマネージドNoSQLデータベースサービスです。ミリ秒単位のレスポンスで、無制限のスケーラビリティを提供します。 この資料は、理想論ではなく、実務で使える実践的なDynamoDBの運用方法を解説します。

問題のある構成(RDB/自前NoSQLでのスケーリング)

Section titled “問題のある構成(RDB/自前NoSQLでのスケーリング)”

問題のある状況:

問題のある構成:
- RDBのスケールアウトが困難(シャーディングが複雑)
- 高トラフィック時のパフォーマンス低下
- データベースのキャパシティプランニングが必要
- レプリケーションの遅延
- インデックス管理が複雑
- スケーリング時のダウンタイム
- 自前NoSQL(MongoDB等)の運用負荷
影響:
- スケーラビリティの限界
- パフォーマンスの劣化
- 運用コストの増大
- 可用性の低下
- レスポンス時間の不安定さ

解決: DynamoDBによる無制限スケーラビリティ

解決策:
- 自動スケーリング(オンデマンドモード)
- ミリ秒単位のレスポンス保証
- 無制限のスループット
- グローバルテーブルによる多リージョン展開
- Point-in-Time Recoveryによる自動バックアップ
- DAXによるマイクロ秒レスポンス
メリット:
- 無制限のスケーラビリティ(自動)
- 予測可能な低レイテンシ(シングルミリ秒)
- 運用負荷ゼロ(フルマネージド)
- 高可用性(99.99%以上)
- 柔軟な料金体系(オンデマンド/プロビジョニング)
- グローバル展開が容易
テーブル: データ格納単位
アイテム: レコード(行)
属性: フィールド(列)
パーティションキー: 主キー(必須)
ソートキー: オプションキー(範囲検索)
オンデマンド:
- 自動スケーリング
- 予測不可能な負荷
- 料金: リクエスト単位
- 推奨: 新規アプリ、変動負荷
プロビジョニング:
- RCU/WCU指定
- 予測可能な負荷
- 料金: 時間単位
- Auto Scaling可能
- 推奨: 安定負荷、コスト最適化
GSI(Global Secondary Index):
- 別のパーティション/ソートキー
- 非同期更新
- 独立キャパシティ
- 最大20個
LSI(Local Secondary Index):
- 同じパーティションキー
- 異なるソートキー
- テーブル作成時のみ
- 最大5個
DynamoDB Streams:
- 変更データキャプチャ
- Lambda統合
Point-in-Time Recovery:
- 35日間リカバリ
- 継続バックアップ
Global Tables:
- マルチリージョンレプリケーション
- 双方向同期
DAX(DynamoDB Accelerator):
- インメモリキャッシュ
- マイクロ秒レスポンス
キャパシティモード書き込み料金読み取り料金適用例
オンデマンド$1.25 / 100万書き込み$0.25 / 100万読み取り予測不可能な負荷、新規アプリ、変動負荷
プロビジョニング$0.47 / WCU / 月$0.09 / RCU / 月予測可能な負荷、安定負荷、コスト最適化
項目価格備考
ストレージ$0.25 / GB / 月データ容量に応じた課金
バックアップ$0.10 / GB / 月オンデマンドバックアップ
データ転送標準料金AWSリージョン外への転送

料金計算例(オンデマンド、100万件の書き込み・読み取り/月、10GBストレージ):

項目計算料金
書き込み100万 × $1.25 / 100万$1.25
読み取り100万 × $0.25 / 100万$0.25
ストレージ10GB × $0.25$2.50
合計-$4.00/月

DynamoDBの重要ポイント:

  • NoSQL、キーバリュー型
  • 完全マネージド
  • 自動スケーリング
  • ミリ秒レスポンス
  • Global Tables でマルチリージョン