Amazon DynamoDB のコストを最小限に抑えたいのですが、その方法がわかりません。
簡単な説明
まず、AWS 料金計算ツールを使用して DynamoDB のコストを見積もります。
その後、次のアクションを実行して DynamoDB のコストを最小限に抑えます。
- 正しいキャパシティモードとテーブルアクセスを選択します。
- 最大スループットを使用します。
- グローバルセカンダリインデックスのサイズを小さくします。
- Query 操作を使用するようにアプリケーションを設定します。
- 有効期間 (TTL) を指定して古いデータを削除します。
- 保管時の暗号化には、AWS が所有するキーを使用します。
- Amazon Simple Storage Service (Amazon S3) にラージオブジェクトを保存します。
- 短い属性名を使用します。
- コスト配分タグを使用します。
- AWS Budgets および AWS Cost Explorer を使用します。
DynamoDB テーブルへのデータの読み取り、書き込み、保存には、DynamoDB により料金が発生します。DynamoDB では、追加機能を有効にした場合にも課金されます。グローバルテーブルやストリームなどのオプション機能は、それぞれのユニットに基づいて課金されます。選択したインスタンスタイプに基づいて、DynamoDB Accelerator (DAX) では時間単位の料金が発生します。
解決策
正しいキャパシティモードとテーブルクラスを選択する
DynamoDB には、テーブルの読み取りと書き込みを処理するためにはオンデマンドとプロビジョニング済みという 2 種類のキャパシティモードがあり、それぞれに特定の請求オプションが用意されています。ニーズに合った適切なキャパシティモードを選択してください。オンデマンドキャパシティモードは、予測できないワークロードに適しています。予測可能なワークロードには、プロビジョニング済みまたは、プロビジョニング済み (自動スケーリング付き) モードを使用します。安定したワークロードの場合は、リザーブドキャパシティを使用することもできます。
テーブルクラスに基づいて、読み取り/書き込みリクエストユニットとストレージ料金が請求されます。したがって、ニーズに合った正しいテーブルクラスを使用する必要があります。
最大スループットを使用する
](
グローバルセカンダリインデックスのサイズを小さくする
グローバルセカンダリインデックスのサイズを小さくするには、ALL ではなく、KEYS_ONLY または INCLUDES を使用します。この削減により、使用する読み込み/書き込みキャパシティユニットが少なくなります。
Query 操作を使用するようにアプリケーションを構成する
Scan 操作は、テーブル全体またはセカンダリインデックスをスキャンし、結果の値をフィルター処理します。応答時間を短縮し、コストを削減するには、アプリケーションが Query 操作を使用するようにテーブルとインデックスを構成します。
TTL を使用して古いデータを削除する
古いデータを削除する必要がある場合は、TTL を使用します。
AWS が所有するキーを保管時の暗号化に使用する
ユースケースによっては、AWS が所有するキーを保管時の暗号化に使用できます。AWS が所有するキーを使用するのに追加料金はかかりません。ただし、AWS 管理キーとカスタマー管理キーにはAWS Key Management Service (AWS KMS) の料金が発生する場合があります。グローバルテーブルを使用する場合、テーブルはレプリケートされた書き込みに対して AWS KMS を呼び出すため、AWS KMS の料金が発生する場合があります。
Amazon S3 にラージオブジェクトを保存する
ラージオブジェクトを保存する場合は、Amazon S3 に保存し、S3 URL を DynamoDB に保存します。
短い属性名を使用する
属性名は項目の合計サイズに影響します。コストを最小限に抑えるには、属性名を短くします。属性名が長いと、ストレージコストが増え、使用される書き込みキャパシティユニットと読み取りキャパシティユニットの数が増えます。
コスト配分タグを使用する
DynamoDB のコストをすばやく確認するには、コスト配分タグを使用します。
AWS Budgets と AWS Cost Explorer を使用する
AWS Budgets を使用して、特定期間の AWS でのカスタム支出計画を設定します。コストまたは使用量が支出制限を超えているか、超えると予想される場合、アラートが表示されます。
AWS Cost Explorer を使用して、アカウントのリソース使用量とコストを経時的に分析します。詳細については、「AWS 請求および使用状況レポートを理解するうえでのベストプラクティス」を参照してください。
関連情報
DynamoDB オンデマンドキャパシティとプロビジョニング済みキャパシティ
Amazon DynamoDB 料金表
AWS でのコスト最適化
イベントシリーズ: AWS コスト最適化