DynamoDB を使用する
DynamoDB は、高速で予測可能なパフォーマンスとシームレスなスケーラビリティを特長とするフルマネージド NoSQL データベースサービスです。このセクションでは、AWS SDK for Java 2.x を使用して DynamoDB を使用する方法について説明します。
DynamoDB クライアントの選択
SDK には、DynamoDB を使用するための 2 つの主なアプローチがあります。
- 低レベルクライアント (
DynamoDbClient) -
DynamoDB オペレーションへの直接アクセスを提供し、リクエストとレスポンスを完全に制御します。詳細な制御が必要な場合や動的スキーマを使用する場合は、このクライアントを使用します。
- 拡張クライアント (
DynamoDbEnhancedClient) -
Java オブジェクトと DynamoDB 項目間の自動マッピングによるオブジェクト指向プログラミングを提供します。また、固定スキーマに従わない JSON のようなデータを使用するための、ドキュメント指向の機能も提供します。明確に定義されたデータモデルまたはドキュメントタイプのデータを使用する場合は、このクライアントを使用します。
DynamoDB クライアントの設定
DynamoDB を使用する前に、最適なパフォーマンスと信頼性を実現するようにクライアントを設定します。
DynamoDB の再試行動作について
DynamoDB クライアントは、デフォルトの最大再試行回数である 8 を使用します。これは他の AWS のサービス クライアントよりも多い回数です。この再試行回数の多さは、DynamoDB の分散性および一時的な容量制限に対処するために役立ちます。再試行戦略についての詳細は、「AWS SDK for Java 2.x で再試行動作を設定する」を参照してください。
アカウントベースのエンドポイントでのパフォーマンス最適化
DynamoDB は、AWS アカウント ID を使用してリクエストのルーティングを合理化することでパフォーマンスを向上させる、AWS アカウントベースのエンドポイントを提供します
この機能を使用するには、AWS SDK for Java 2.x のバージョン 2.28.4 以降が必要です。Maven Central リポジトリ
アカウントベースのルーティングをオプトアウトするには、次のいずれかのオプションを選択します。
-
AccountIdEndpointModeをDISABLEDに設定して DynamoDB サービスクライアントを設定する。 -
環境変数を設定する。
-
JVM システムプロパティを設定する。
-
共有 AWS 設定ファイルを更新する。
次の例は、DynamoDB サービスクライアントを設定してアカウントベースのルーティングを無効にする方法を示しています。
DynamoDbClient.builder() .accountIdEndpointMode(AccountIdEndpointMode.DISABLED) .build();
その他の設定オプションの詳細については、「AWS SDK およびツールリファレンスガイド」の「アカウントベースのエンドポイント」を参照してください。
このトピックで扱う内容
以下のセクションでは、DynamoDB を使用する方法を示します。
-
DynamoDB のテーブルの操作 - テーブルの作成、記述、更新、削除
-
DynamoDB の項目の操作 - 個々の項目の追加、取得、更新
-
AWS SDK for Java 2.x を使用して Java オブジェクトを DynamoDB アイテムにマッピングする - 拡張クライアントでのオブジェクトマッピングとドキュメント指向データの使用
その他の DynamoDB コード例については、「AWS コード例ライブラリ」の「DynamoDB コード例」を参照してください。