Amazon DynamoDBの解説(AWS認定クラウドプラクティショナーシラバス用語)

Amazon DynamoDBの解説(AWS認定クラウドプラクティショナーシラバス用語)
目次

Amazon DynamoDBとは


Amazon DynamoDB(アマゾン ダイナモディービー)は、AWSが提供する、いかなる規模においても1桁ミリ秒単位の超高速で一貫した応答パフォーマンスを提供する、フルマネージド型のNoSQL(非リレーショナル)データベースサービスです。リレーショナルデータベース(RDSなど)のように、複雑なテーブル結合(JOIN)や厳密なデータスキーマ(表の形)を定義するのではなく、データを「キー(検索の鍵)」と「値(データの中身)」というシンプルな組み合わせ(キーバリューストア)で保存します。DynamoDBは完全に「サーバーレス」で提供されるため、データベースを稼働させるサーバーの管理やプロビジョニング、容量計画は一切不要です。アクセスがどれほど増えても、ストレージ容量がどれほど膨大になっても、自動的にリソースを分散・拡張し、常に同じ超高速な応答速度を維持し続けるため、モダンなWebアプリケーション、ソーシャルメディア、モバイルアプリのユーザーデータ管理など、超高トラフィックで大量のデータを高速処理するシステムに最適なデータベースです。

具体例

Amazon DynamoDBは、ホテルの「クローク(荷物預かり所)」やスマートフォンの「アドレス帳」に例えることができます。

  • シンプルな構造(キーバリュー): アドレス帳では、「名前(キー)」を入力すれば、それに関連づけられた「電話番号や住所(値)」が一瞬で取り出せます。Excelの表のように、別の部署の名簿と紐付けたり(結合)、複雑な集計計算をしたりはしませんが、「指定した名前の情報をすぐに出す」スピードはピカイチです。
  • 実際の利用シーン(オンラインゲーム): 世界中で数千万人が同時にプレイするバトルロイヤルゲームにおいて、プレイヤーの「ID(キー)」に対応する「現在の装備やレベル、スコア情報(値)」を保存・更新します。サーバーに同時アクセスが殺到した際、データベースの処理遅延(ラグ)でゲームが止まることは許されません。DynamoDBは、どれほどプレイヤーが増えても、必ず1桁ミリ秒のスピードでプレイヤーデータを読み書きし続けます。
  • ECサイトのショッピングカート: ユーザーごとの一時的な買い物かごの中身データを高速に保存・取得する用途などに使われます。

もう少し詳しく

DynamoDBは、リレーショナルデータベース(RDB)の限界を克服するために設計されました。RDBは、複数のテーブルを結合して複雑な条件でデータを検索するのに優れていますが、データ量が膨大になったり同時アクセスが集中したりすると、処理速度が急激に低下する(スケールアップに限界がある)という弱点があります。一方、DynamoDBは「水平スケーリング(スケールアウト)」を前提に設計されており、データは自動的に複数のパーティションに分散して保存されます。これにより、データ量がテラバイトクラスに増え、アクセス数が毎秒数万件になっても、処理パフォーマンスが一切低下しないという圧倒的な利点を持っています。

また、DynamoDBはサーバーレスサービスであるため、利用料金は「書き込みと読み取りの実行回数(キャパシティユニット)」と「保存されているデータの容量」に基づいて発生します。あらかじめ必要な処理性能を設定しておく「プロビジョニングモード」のほか、トラフィックの予測が難しい場合に実際のアクセス量に応じて自動スケーリングする「オンデマンドモード」を選択することができ、コストの無駄を徹底的に排除できます。さらに、デフォルトでデータは3つのアベイラビリティゾーン(AZ)にまたがって自動的に複製されるため、何の設定も行うことなく極めて高い耐久性と耐障害性が組み込まれています。

試験でのポイント

CLF-C02試験において、DynamoDBは「NoSQLデータベース」「ミリ秒単位の応答速度」「フルマネージド(サーバーレス)」「キーバリューストア」といったキーワードとともに頻繁に出題されます。

  • データベースモデルの区別: リレーショナルデータベースである「Amazon RDS」や「Amazon Aurora」と、非リレーショナル(NoSQL)データベースである「Amazon DynamoDB」の役割の違いを明確に理解してください。複雑なクエリが必要なシステムにはRDSを、シンプルなデータ形式で超高速な応答速度や無限のスケーラビリティが求められる場合はDynamoDBを選択します。
  • サーバーレスと管理コスト: 「データベースサーバー自体のプロビジョニングやOSの管理が不要で、自動的にスケールするデータベースはどれか?」という問いに対しては「Amazon DynamoDB」が正解になります。
  • グローバルテーブル機能: 必要に応じて、世界中の複数のAWSリージョンにリアルタイムでデータを同期させる「DynamoDB グローバルテーブル」という機能があり、世界規模のアプリケーションで低遅延な読み書きと災害対策(ディザスタリカバリ)を実現できる点も試験のポイントです。

関連する用語

リレーショナルデータベースを提供する「Amazon RDS」、RDSファミリーの最高峰エンジンである「Amazon Aurora」、DynamoDBへのAPIリクエストを制御するウェブサーバーの「Amazon EC2」、およびDynamoDBと連携してサーバーレスアプリケーションを構成する「AWS Lambda」などが、システム構成の選択肢において重要な関連用語です。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ