CLF / ドメイン3 クラウドテクノロジーとサービス
重要な内容
Amazon DynamoDB
は、フルマネージドの データベースサービスです。 データを「キー」と「値」の組み合わせで保存し、利用者の数が増えてもミリ秒単位の速い応答を保てるように設計されています。
CLF では、(RDB)との違い、というサービス特性、料金の考え方、 や との使い分けを判断できることが重要です。
Point
- NoSQL は「Not only SQL」と呼ばれる、RDB とは異なる考え方のデータベースの総称です。
- DynamoDB は NoSQL の中でも キーバリュー型(Key-Value) が代表的なモデルで、ドキュメント型のデータも扱えます。
- 「キー(鍵)で値(Value)を素早く取り出す」データベースと覚えます。
- 和訳
- Key: 鍵
- Value: 値
- Weblio英和辞書「value」
概要
は、サーバーの用意や管理をせずに使えるデータベースです。 利用者はテーブルを作成するだけでデータの保存を始められ、サーバーの台数やソフトウェアの更新を意識する必要がありません。
データは「テーブル」の中に「項目」として保存し、各項目は複数の「属性」を持ちます。 代表的な用途は、ゲームのユーザー情報やスコア、EC サイトのショッピングカート、IoT 機器から届く大量のデータ、Web アプリケーションのセッション情報の保存です。
試験では、「スキーマレス」「キーバリュー」「1桁ミリ秒」「」といったキーワードから DynamoDB を選べるか、そして や結合が中心の要件では を選べるかを判断します。
主要技術
①NoSQLとキーバリュー型(RDBとの違い) ⚠️ 頻出
は、あらかじめ決めた表の形(スキーマ)に沿ってデータを保存し、 という言語で複数の表を結合しながら検索します。 一方 は、キーを指定して値を素早く読み書きすることに特化しており、表同士の結合(JOIN)はサポートしません。
| 観点 | RDB( など) | DynamoDB | 判断ポイント |
|---|---|---|---|
| データ構造 | 事前に定義したスキーマに従います。 | スキーマレスで、項目ごとに属性が異なってもよいです。 | 構造が固定なら RDB、柔軟に変えたいなら DynamoDB です。 |
| 検索方法 | SQL で複数の表を結合して検索できます。 | キーを指定した読み書きが基本です。 | 複雑な結合や集計が中心なら RDB です。 |
| 拡張の考え方 | サーバーの性能強化が中心です。 | 自動的に水平方向へ拡張します。 | 大量アクセスへ自動で拡張したいなら DynamoDB です。 |
| 運用 | インスタンスの管理が必要です。 | で運用負荷が小さいです。 | サーバー管理をなくしたいなら DynamoDB です。 |
Point
- スキーマ(Schema) は、データベースの表の構造(列の名前や型)の定義です。
- スキーマレス(Schemaless) は、その定義を事前に固定しなくてよいという意味です。
- JOIN(結合) は、複数の表をつなげて検索する SQL の操作です。DynamoDB は JOIN を使わない前提でデータを設計します。
- 和訳
- Schema: 概要、図式
- Weblio英和辞書「schema」
⚠️ 頻出: 「スキーマレス」「キーバリュー」「」というキーワードは DynamoDB、「SQL」「結合」「既存の RDB からの移行」は RDS を選ぶのが基本です。
②テーブル・項目・属性
では、データを次の3つの単位で扱います。
| 単位 | 説明 | でのイメージ |
|---|---|---|
| テーブル | 項目を保存する入れ物です。 | 表(テーブル) |
| 項目 | 1件分のデータです。 | 行(レコード) |
| 属性 | 項目を構成する個々のデータです。 | 列(カラム) |
RDB と大きく違う点は、各項目を一意に特定するプライマリキー以外の属性は、項目ごとに自由に変えられることです。 たとえば、ある項目には「名前」だけがあり、別の項目には「名前」と「スコア」がある、といった保存ができます。
③サーバーレス特性と低レイテンシー
はのサービスです。 利用者はサーバーの台数を決めたり、 やデータベースソフトウェアの更新をしたりする必要がなく、メンテナンスの停止時間もありません。
また、アクセスが増減しても自動的にスケーリングし、データ量や利用者数が増えても1桁ミリ秒単位の安定した応答時間を保つように設計されています。 このため、アクセスの急増があるゲームやセール時の EC サイトのような用途に向いています。
では、AWS が基盤となるインフラ、ソフトウェアの管理、データの冗長化を担当し、利用者はテーブルの設計、 によるアクセス権限の管理、保存するデータの内容を管理します。
Point
- レイテンシー(Latency) は、リクエストしてから応答が返るまでの遅延時間です。
- DynamoDB は「single-digit millisecond(1桁ミリ秒)」の性能をうたっており、試験でもこの表現がキーワードになります。
- 和訳
- Latency: 遅延、潜伏
- Weblio英和辞書「latency」
⚠️ 頻出: 「サーバー管理が不要なデータベース」「規模が拡大しても一貫した低」という要件は DynamoDB を優先して考えます。
④キャパシティモードと料金の考え方
の読み書き性能と料金は、キャパシティモードの選択に影響されます。 モードは2種類あり、アクセスの予測しやすさで選びます。
| モード | 課金の考え方 | 用途・判断ポイント |
|---|---|---|
| モード | 実際に行ったリクエスト数に応じて支払います。 | アクセス量が予測できない、または変動が大きい場合に選びます。容量計画が不要です。 |
| プロビジョンドモード | 事前に確保した読み書き性能に対して支払います。 | アクセス量が安定していて予測できる場合に、コストを見通しやすくするために選びます。 |
料金はリクエストや確保した性能だけでなく、保存したデータ量や、有効化したオプション機能(バックアップなど)にも影響されます。 「使った分だけ支払いたい」「アクセスが読めない」ならオンデマンド、「安定したアクセスで費用を予測したい」ならプロビジョンド、という考え方が基本です。
Point
- Capacity(キャパシティ) は「容量、処理能力」という意味です。
- On-Demand(オンデマンド) は「要求に応じて」、つまり使った分だけ支払う方式です。
- Provisioned(プロビジョンド) は「事前に用意された」、つまり性能を先に確保しておく方式です。
- 和訳
- Provision: 供給、準備
- Weblio英和辞書「provision」
⑤グローバルテーブルとDAX
CLF では、 を拡張する2つの機能の名前と役割を押さえます。
| 機能 | 役割 | 判断ポイント |
|---|---|---|
| 複数のへテーブルを自動的に複製します。 | 世界中の利用者に近い場所から低で読み書きしたい場合や、リージョン障害への備えに選びます。 | |
| (DAX) | DynamoDB 専用のです。 | ミリ秒単位からマイクロ秒単位へ、読み込みをさらに高速化したい場合に選びます。 |
Point
- DAX = DynamoDB Accelerator の略です。
- Accelerator(アクセラレーター) は「加速するもの」という意味で、DynamoDB の読み込みを加速するキャッシュと覚えます。
- 汎用のインメモリキャッシュは Amazon ElastiCache、DynamoDB 専用のキャッシュは DAX です。
- 和訳
- Accelerate: 加速する
- Weblio英和辞書「accelerate」
⚠️ 頻出: 「複数リージョンでの低レイテンシーな読み書き」はグローバルテーブル、「DynamoDB の読み込みをマイクロ秒単位に高速化」は DAX です。
⑥RDS・ElastiCacheとの使い分け ⚠️ 頻出
CLF では、データベース系サービスの使い分けが頻繁に問われます。 要件のキーワードから、どのサービスを選ぶかを整理します。
| サービス | 種類 | 主な用途 | 判断ポイント |
|---|---|---|---|
| (キーバリュー型) | 大量アクセスのある Web・ゲーム・IoT のデータ | 「スキーマレス」「キーバリュー」「1桁ミリ秒」「」で選びます。 | |
| / | リレーショナル() | 業務システム、既存 の移行 | 「SQL」「結合」「トランザクション中心の業務処理」で選びます。 |
| データベースの手前に置く高速なキャッシュ | 「インメモリ」「キャッシュでデータベースの負荷軽減」で選びます。 |
ElastiCache はデータの保管場所ではなく、よく使うデータをメモリ上に置いて高速に返すためのサービスです。 DynamoDB の読み込みだけを高速化したい場合は、汎用の ElastiCache ではなく が候補になります。
試験対策
CLF の問題では、まずデータの形とアクセスの仕方を確認します。 キーで素早く読み書きする大量データなら 、 と結合が中心なら 、既存データの高速な再利用なら 、と整理すると選びやすくなります。
| 問題文のキーワード | 優先して考えるサービス・機能 | 理由 |
|---|---|---|
| スキーマレス、キーバリュー、 | Amazon DynamoDB | キーバリュー型の NoSQL データベースです。 |
| 1桁ミリ秒の応答、大規模でも一貫した性能 | Amazon DynamoDB | 規模にかかわらず低を保つ設計です。 |
| サーバー管理が不要なデータベース | Amazon DynamoDB | で自動的にスケーリングします。 |
| アクセス量が予測できない | モード | リクエスト数に応じたで容量計画が不要です。 |
| 安定したアクセスで費用を予測したい | プロビジョンドモード | 事前に確保する性能で費用を見通せます。 |
| 複数で低レイテンシーに読み書き | 複数リージョンへ自動的に複製します。 | |
| DynamoDB の読み込みをマイクロ秒単位へ | DynamoDB 専用のです。 | |
| SQL、結合、既存 からの移行 | Amazon RDS / | リレーショナルデータベースの要件です。 |
| インメモリキャッシュでデータベースの負荷軽減 | Amazon ElastiCache | 汎用のインメモリキャッシュサービスです。 |
よくある誤答は、「データベースの高速化」という言葉だけで DynamoDB と ElastiCache を混同することです。 DynamoDB はデータを保存するデータベースそのもの、ElastiCache や DAX は手前に置くキャッシュです。 また、「NoSQL だからトランザクションは一切できない」という思い込みも誤りで、DynamoDB もトランザクション機能を提供しています。試験では「SQL による結合や集計が中心かどうか」で RDS と使い分けます。