DynamoDB とは?

Q: Amazon DynamoDB とは何ですか?

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

Q: DynamoDB は私に代わって何を管理してくれますか?

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

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

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

  • 結果的に整合性のある読み込み (デフォルト) – 結果整合性のあるオプションを選択すると、読み込みスループットが最大限に向上します。ただし、結果的に整合性のある読み込みには、最新の書き込み結果が反映されない可能性があります。データの全コピーの整合は通常 1 秒以内に行われます。このように短い時間を経てから読み込むことを繰り返すと、更新されたデータが返されます。
  • 強い整合性の読み込み – DynamoDB には結果整合性のある読み込みに加えて、お客様のアプリケーションまたはアプリケーションの要素が必要とする場合に、強い整合性のある読み込みをリクエストするための、柔軟性と制御が用意されています。強い整合性のある読み込みの結果には、読み込みの前に適切な応答を受け取ったすべての書き込みが反映されています。

開始方法

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

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

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

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

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

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

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

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

計画

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

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

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

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

DynamoDB は、制限なく拡張できるように設計されています。ただし、各テーブルのスループットレートが 10,000 書き込みキャパシティーユニットまたは 10,000 読み込みキャパシティーユニットを超える場合は、事前に Amazon までご連絡ください。また、1 つの登録アカウントから 20,000 を超える書き込みキャパシティーユニットまたは読み込みキャパシティーユニットをプロビジョニングする場合も、事前に連絡して上限の増加をご依頼ください。

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

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

仕組み

Q: データモデルと API

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

Q: 拡張性、可用性、および堅牢性

拡張性、可用性、および堅牢性の詳細については、Amazon DynamoDB 製品の詳細をご覧ください。

Q: Auto Scaling

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

Q: セキュリティと制御

DynamoDB のセキュリティと制御の詳細については、Amazon DynamoDB に対する認証とアクセスコントロールをご覧ください。

Amazon DynamoDB 料金の詳細

料金ページを見る
使ってみませんか?
DynamoDB の開始方法
ご不明な点がおありですか?
お問い合わせ