CLF-C02 クラウドプラクティショナー

AWS CLF-C02 で Amazon DynamoDB はどう問われるか

Amazon DynamoDB が正解になる問題 4問
例題 3問 収録
最頻出: 第 3 分野: クラウドテクノロジーとサービス

CLF-C02 (クラウドプラクティショナー) の練習問題のうち 4 問で Amazon DynamoDB が正解になります。最も多いのは第 3 分野: クラウドテクノロジーとサービス (3問) で、次いで第 1 分野: クラウドのコンセプト (1問) です。タスク単位では「タスク 3.4 AWS のデータベースサービスを特定する」が 2 問と中心で、ここが Amazon DynamoDB を学ぶうえで最優先の論点です。誤答の選択肢としては Amazon Redshift、Amazon RDS for MySQL、Amazon Aurora PostgreSQL が併記されやすく、これらとの役割の違いを説明できるかどうかが正誤の分かれ目になります。

Amazon DynamoDB の出題分野の内訳

分野別

第 3 分野: クラウドテクノロジーとサービス

3

第 1 分野: クラウドのコンセプト

1


タスク別(AWS 公式 Exam Guide のタスクステートメント)

タスク 3.4 AWS のデータベースサービスを特定する

2

タスク 1.2 AWS クラウドの設計原則を特定する

1

タスク 3.2 AWS のグローバルインフラストラクチャを定義する

1

Amazon DynamoDB の例題 3問(クリックで即採点)

選択肢をタップするとその場で正誤が分かります。ログインもページ移動も不要です。

例題 1
単一選択
難易度: やさしい

セッションストアに適したデータベースの選定

セッションデータの保存先を検討しています。セッション ID をキーとした読み書きが 1 秒間に数十万回発生し、項目が頻繁に増えるため固定スキーマにしたくなく、結合も不要ですが、応答は常に一桁ミリ秒台である必要があります。最も適した AWS のデータベースサービスはどれですか。

解説を読む(正解: B)

セッション情報のように、セッション ID などのキーを指定した単純な読み書きを超高頻度で行うアクセスパターンでは、結合や複雑なトランザクション処理よりも、安定した低レイテンシーとほぼ無制限の水平スケールが重視されます。Amazon DynamoDB はまさにこの用途のために設計されたフルマネージドの NoSQL キーバリュー/ドキュメントデータベースで、テーブルのデータをパーティションキーに基づいて自動的に分散し、トラフィックの増加に応じて基盤を透過的に拡張します。オンデマンドキャパシティモードを使えばスループットを事前に見積もらなくても急激なスパイクを吸収でき、項目ごとに属性を自由に持てるためスキーマ変更も不要です。さらに TTL 属性で期限切れセッションを自動削除でき、DynamoDB Accelerator (DAX) を併用すればマイクロ秒レベルの応答も狙えます。したがって選択肢 B が要件を満たします。選択肢 A の Amazon Redshift は列指向のデータウェアハウスで、大量データを集計する分析クエリに最適化されており、1 件単位の高頻度な更新処理には設計上向きません。選択肢 C の Amazon RDS for MySQL と選択肢 D の Amazon Aurora PostgreSQL はいずれもリレーショナルデータベースで、固定スキーマと結合を前提とした業務データには適していますが、書き込みは基本的に単一のプライマリインスタンスに集中するため、数百万ユーザー規模のセッション書き込みではインスタンスサイズが上限となりボトルネック化しやすく、スキーマレスな要件にも合致しません。

この問題の出典(AWS 公式ドキュメント)

例題 2
複数選択
難易度: 難しい

水平スケーリングを支えるステートレス設計

EC2 の台数を自動で増減させたいのですが、セッション情報を各インスタンスのローカルディスクに保存しているため、インスタンス終了時にログイン状態が失われます。適切な対策を 2 つ選択してください。

複数選択問題です (正解 2 つ)。選んでから判定してください。

解説を読む(正解: A、C)

水平スケーリングを機能させる前提となるのが、サーバーが固有の状態を保持しないステートレス設計です。セッション情報を各インスタンスのローカルディスクに置くと、そのインスタンスは特定の利用者にとって代替不能な存在になり、Auto Scaling による自動的な追加や終了、あるいは障害時の置き換えのたびにログイン状態が失われます。解決策は、状態をインスタンスの外にある共有データストアへ移すことです。A の Amazon DynamoDB はミリ秒単位の応答を返すマネージドな NoSQL データベースで、セッションテーブルの保存先として広く使われます。C の Amazon ElastiCache は Redis や Memcached に対応するインメモリデータストアで、高速なセッション共有の代表的な選択肢です。いずれもすべてのインスタンスから同じ状態を参照できるため、インスタンスを自由に破棄したり追加したりできるようになります。B のヘルスチェック間隔を長くする設定は異常の検知を遅らせるだけで、インスタンス終了時に状態が消える問題は解決しません。D のローカルディスクの暗号化は保存データを保護する対策であり、インスタンスとともにデータが失われる事実は変わりません。E のように台数を 1 台に固定するとスケーリング自体ができなくなり、その 1 台が置き換わればやはりセッションは失われます。

この問題の出典(AWS 公式ドキュメント)

例題 3
複数選択
難易度: 標準

既定でマルチ AZ 冗長となる AWS サービス

利用者側で冗長化の設定を一切行わなくても、既定でリージョン内の複数アベイラビリティーゾーン (AZ) にデータが複製される AWS サービスを 2 つ選択してください。

複数選択問題です (正解 2 つ)。選んでから判定してください。

解説を読む(正解: B、D)

フォールトトレランス (耐障害性) とは、構成要素の一部が故障してもサービス全体が稼働し続ける性質のことで、AWS では同一リージョン内の複数アベイラビリティーゾーンにデータやコンポーネントを分散配置することで実現します。ここで重要なのは、AWS のサービスには「利用者が何も設定しなくても既定で複数 AZ に複製されるもの」と「利用者が明示的にマルチ AZ 構成を有効化して初めて冗長化されるもの」の 2 種類がある、という点です。Amazon S3 は、格納されたオブジェクトを既定でリージョン内の複数 AZ にある複数のデバイスへ冗長的に書き込み、99.999999999% (イレブンナイン) の耐久性を目指して設計されているため、利用者は追加設定なしに AZ 障害への耐性を得られます。Amazon DynamoDB も同様に、テーブルへの書き込みをリージョン内の 3 つの AZ へ自動的にレプリケートするため、1 つの AZ が停止してもアプリケーションは読み書きを継続できます。したがってこの 2 つが要件に合致します。Amazon RDS for PostgreSQL は、マルチ AZ 配置を選択して初めて別 AZ にスタンバイインスタンスが作成され同期レプリケーションが行われる仕組みで、既定のシングル AZ 構成では冗長化されないため誤りです。Amazon ElastiCache for Redis も、レプリカノードの配置とマルチ AZ 自動フェイルオーバーを利用者が有効化する必要があり、既定で冗長ではありません。Amazon EBS ボリュームは単一の AZ に固定されるリソースで、別の AZ のインスタンスから直接アタッチすることはできず、可用性を高めるにはスナップショットを介したコピーなど利用者側の作業が必要になるため誤りです。

Amazon DynamoDB とよく混同されるサービス

Amazon DynamoDB が答えの問題で、誤答の選択肢として並ぶサービス

CLF-C02 の問題プールを実際に集計した結果です。ここに並ぶサービスとの違いを言葉で説明できるようになると、Amazon DynamoDB 系の問題を取りこぼしにくくなります。

Amazon Redshift

1回

Amazon RDS for MySQL

1回

Amazon Aurora PostgreSQL

1回

Amazon RDS for PostgreSQL

1回

Amazon EBS

1回

Amazon DynamoDB の公式ドキュメント

本ページの内容は以下の AWS 公式ドキュメントに基づいています。

CLF-C02 の関連論点

AWS CloudFormation

8問

Amazon SQS

5問

Amazon EFS

4問

AWS CLI

4問

AWS Lambda

4問

Amazon EC2

4問

AWS Global Accelerator

3問

Amazon Textract

3問

CLF-C02 のサービス別 論点一覧をすべて見る

CLF-C02 の練習問題をすべて解く

Amazon DynamoDB を含む全分野の練習問題と本番形式の模擬試験を、日本語の解説つきで収録しています。

練習問題を始める