Amazon DynamoDB について

Amazon DynamoDB とは何ですか?

DynamoDB は、あらゆる規模に適した高速で柔軟な非リレーショナルデータベースサービスです。DynamoDB を使用すると、分散データベースの運用と AWS にスケーリングするための管理負荷を軽減できます。ハードウェアのプロビジョニング、設定と構成、スループットキャパシティのプランニング、レプリケーション、ソフトウェアのパッチ適用、クラスターのスケーリングなどについて心配する必要はありません。

DynamoDBは何を管理してくれるのですか?

DynamoDB により、データベースの拡張、データベースソフトウェアの管理、およびハードウェアの実行に必要なプロビジョニングに伴う主な障害の 1 つが取り除かれます。非リレーショナルデータベースはほんの数分で展開できます。DynamoDB では、テーブルサイズの増大に合わせてワークロードのデマンドに応じたスループット容量のスケーリング、データのパーティション化や再パーティション化が自動的に行われます。また、DynamoDB では、同じ AWS リージョン内の 3 つの施設間でデータが同期的にレプリケートされるため、可用性とデータ耐久性も高まります。

DynamoDB の整合性モデルとは何ですか?

DynamoDB からデータを読み込むとき、ユーザーはその読み込みに対して結果整合性のある読み込みを設定するか強い整合性を設定するかを指定できます。

  • 結果整合性のある読み込み (デフォルト) – 結果整合性のあるオプションを選択すると、読み込みスループットが最大限に向上します。ただし、結果整合性のある読み込みには、最新の書き込み結果が反映されない可能性があります。データの全コピーの整合は通常 1 秒以内に行われます。このように短い時間を経てから読み込むことを繰り返すと、更新されたデータが返されます。
  • 強い整合性の読み込み – DynamoDB には結果整合性のある読み込みに加えて、お客様のアプリケーションまたはアプリケーションの要素が必要とする場合に、強い整合性のある読み込みをリクエストするための、柔軟性と制御が用意されています。強い整合性のある読み込みの結果には、読み込みの前に適切な応答を受け取ったすべての書き込みが反映されています。
  • ACID トランザクション – DynamoDB トランザクションは、単一の AWS アカウントとリージョン内の 1 つ以上のテーブルにわたって、開発者に不可分性、整合性、分離性、耐久性 (ACID) を提供します。単一の論理的なビジネスオペレーションの一部として、複数のアイテムへの調整された挿入、削除、または更新を必要とするアプリケーションを構築するときに、トランザクションを使用できます。

開始方法

DynamoDB ではどのようなクエリ機能がサポートされていますか?

DynamoDB では、ユーザー定義プライマリキーを使用して GET/PUT オペレーションをサポートしています。プライマリキーはテーブル内の項目の唯一の必須属性です。プライマリキーはテーブルを作成するときに指定し、各項目を一意に識別します。また、DynamoDB は、グローバルセカンダリインデックスローカルセカンダリインデックスを使用してプライマリキー以外の属性をクエリすることが可能な柔軟なクエリ機能も備えています。

プライマリキーは、単一属性パーティションキーまたは複合パーティションソートキーのいずれかになります。例えば、UserID は単一属性パーティションキーです。このような単一属性パーティションキーにより、指定されたユーザー ID に関連付けられた項目のデータをすばやく読み込んだり書き込んだりできます。

DynamoDB では、複合パーティションソートキーがパーティションキー要素およびソートキー要素としてインデックス化されます。このマルチパートキーにより、1 番目の要素値と 2 番目の要素値の間の階層が維持されます。例えば、複合パーティションソートキーは、UserID (パーティション) と Timestamp (ソート) の組み合わせにすることができます。パーティションキー要素を一定に保つことで、ソートキー要素を検索して項目を取得することができます。このような検索により、クエリ API を使用して、例えば、単一の UserID のすべての項目をタイムスタンプの範囲にわたって取得できます。

DynamoDB ではデータ項目に対する更新およびクエリをどのように実行しますか?

DynamoDB コンソールまたは CreateTable API を使用してテーブルを作成したら、PutItem API または BatchWriteItem API を使用して項目を挿入できます。テーブルに追加した項目は、GetItemBatchGetItems を使用して、または Query API を使用して (テーブルで複合プライマリキーが有効化されており使用されている場合) 取得できます。

DynamoDB は、どのオペレーティングシステムで実行するアプリケーションでも使用できますか? >>

はい。DynamoDB は、API を介してアクセスする完全マネージド型のクラウドサービスです。DynamoDB は、どのオペレーティングシステム (Linux、Windows、iOS、Android、Solaris、AIX、HP-UX など) で実行するアプリケーションでも使用できます。DynamoDB の使用を開始するには、AWS SDK の使用をお勧めします。

計画

DynamoDB を使用すると、どのように課金されますか?

各 DynamoDB テーブルには、プロビジョンされた読み込みスループットと書き込みスループットがあり、テーブルに関連付けられています。そのスループット容量について 1 時間ごとに課金されます。テーブルにリクエストを送信するかどうかにかかわらず、スループット容量に対して 1 時間ごとに課金されることに注意してください。テーブルのプロビジョンドスループットキャパシティを変更するには、AWS マネジメントコンソールUpdateTable API、Auto Scaling 用の PutScalingPolicy API のいずれかを使用します。また、DynamoDB では、データストレージに対する料金と標準のインターネットデータ転送料金も課金されます。

DynamoDB の料金の詳細については、DynamoDB の料金ページをご覧ください。

1 つの DynamoDB テーブルにプロビジョニングできる最大スループットはどのくらいですか?

各 DynamoDB テーブルの最大スループットは事実上無制限です。設定されている制限について詳しくは、DynamoDB での制限を参照してください。制限の緩和をリクエストする場合は、Amazon にお問い合わせください。 

1 つの DynamoDB テーブルにプロビジョニングできる最小スループットはどのくらいですか?

Auto Scaling の場合でも、手動でスループットをプロビジョニングする場合でも、リクエスト可能なプロビジョンできる最小スループットは、1 書き込みキャパシティーユニットと 1 読み込みキャパシティーユニットです。このようなプロビジョニングは無料利用枠 (書き込み容量 25 ユニットと読み込み容量 25 ユニットまで) の範囲内です。無料利用枠は、テーブルレベルではなくアカウントレベルに適用されます。つまり、お客様の全テーブルのプロビジョニングされた容量の合計が、書き込み容量 25 ユニットと読み込み容量 25 ユニットを超えていなければ、このプロビジョニングされた容量は無料利用枠の範囲内になります。

DynamoDB テーブルクラスとは何ですか?

DynamoDB は、コストの最適化に役立つように設計された 2 つのテーブルクラスを提供します。DynamoDB Standard テーブルクラスはデフォルトであり、大多数のワークロードに推奨されます。DynamoDB Standard-Infrequent Access (DynamoDB 標準 – IA) テーブルクラスは、頻繁にアクセスされないデータを保存するテーブルであって、ストレージが主なコストとなっているテーブル向けに最適化されています。各テーブルはテーブルクラスに関連付けられており、各テーブルクラスはデータストレージと読み取りおよび書き込みリクエストについて異なる料金を採用しています。テーブルのストレージ要件とデータアクセスパターンに基づいて、最も費用対効果の高いテーブルクラスを選択できます。

DynamoDB 標準 – IA はいつ使用する必要がありますか?

DynamoDB 標準 – IA は、アプリケーションのログ、古いソーシャルメディアの記事、e コマースの注文履歴、過去のゲーム実績など、アクセス頻度の低いデータを保存するテーブルの DynamoDB の総コストを削減します。ストレージが主なテーブルコストである場合 (ストレージコストがスループット (読み取りと書き込み) コストの 50% を一貫して超える場合)、DynamoDB 標準 – IA テーブルクラスが最も経済的な選択肢になります。DynamoDB 標準 – IA 料金の詳細については、DynamoDB の料金ページを参照してください。

DynamoDB 標準 – IA テーブルは既存の DynamoDB 機能とどのように連携し、他の AWS サービスと統合しますか?

DynamoDB 標準 – IA テーブルは、グローバルテーブル、セカンダリインデックス、オンデマンドバックアップ、およびポイントインタイムリカバリ (PITR) など、DynamoDB Standard テーブルと同様に既存のすべての DynamoDB 機能をサポートします。DynamoDB 標準 – IA テーブルにも DynamoDB Standard テーブルと同じように、他の AWS サービスとの統合が組み込まれています。例えば、Amazon CloudWatch を使用して DynamoDB 標準 – IA テーブルのパフォーマンスのモニタリング、AWS CloudFormation テンプレートを使用して DynamoDB 標準 – IA テーブルをプロビジョンして管理、DynamoDB アクセラレータ (DAX) でキャッシュを追加してパフォーマンスを向上、変更データレコードを Amazon Kinesis Data Streams にストリーミング、および DynamoDB 標準 – IA テーブルのデータを Amazon Simple Storage Service (Amazon S3) にエクスポートしたりすることができます。

仕組み

データモデルと API

データモデルと API の詳細については、Amazon DynamoDB: 仕組みをご覧ください。

スケーラビリティ、可用性、および堅牢性

スケーラビリティ、可用性、堅牢性の詳細については、Amazon DynamoDB 製品の詳細をご覧ください。

Auto Scaling

DynamoDB Auto Scaling の詳細については、DynamoDB Auto Scaling によるスループットキャパシティーの自動管理をご覧ください。

セキュリティと制御

DynamoDB のセキュリティと制御の詳細については、Amazon DynamoDB の Identity and Access Management をご覧ください。

ウェブページの画像
料金ページにアクセスする

Amazon DynamoDB 料金をご覧ください。

詳細 
アカウントサインアップの画像
無料のアカウントにサインアップする

AWS 無料利用枠にすぐにアクセスできます。 

サインアップ 
ツールボックスの画像
コンソールで構築を開始する

AWS マネジメントコンソールで Amazon DynamoDB を使った構築を始めましょう。

サインイン