AWS認定資格 WEB問題集&徹底解説

ソリューションアーキテクト-プロフェッショナル

正解 A問題
要復習(もう一度解きたい問題) 1 2 3 4
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある企業が AWS でオンラインチケット発行ウェブアプリケーションを構築しました。 このアプリケーションは AWS App Runner でホストされ、Amazon Elastic Container Registry (Amazon ECR) リポジトリに保存されているイメージを使用します。アプリケーションは Amazon Aurora MySQL DB クラスターにデータを格納します。同社は Amazon Route 53 にドメイン名を設定しています。 アプリケーションは、Active-Active 構成の 2 つの AWS リージョンにデプロイする必要があります。 アーキテクチャの変更を最小限に抑えながら、これらの要件を満たすステップの組み合わせはどれですか。 (3 つ選択)

A) ECR イメージの 2 つ目のリージョンへのクロスリージョンレプリケーションを設定する。
B) 2 つ目のリージョンの ECR リポジトリから VPC エンドポイントを作成する。
C) 2 つ目のデプロイターゲットを 2 つ目のリージョンに追加して、App Runner 設定を編集する。
D) App Runner を 2 番目のリージョンにデプロイする。Route 53 レイテンシールーティングポリシーを 設定する。
E) 目的の 2 つのリージョンで Amazon DynamoDB グローバルテーブルを使用して、データベースを 変更する。
F) 2 つ目のリージョンで書き込み転送が有効になっている Aurora グローバルデータベースを使用する。
  • A,D,F
  • B,D,E
  • C,E,F
  • A,E,F
解説 頻出度★★★★★
この問題は、「App Runner × ECR × Aurora MySQL を、アーキテクチャ変更を最小限にして 2 リージョン Active-Active 化する」要件で、各リージョンに App Runner を個別デプロイ+ECR のクロスリージョンレプリケーション+Aurora グローバルデータベース(書き込み転送)という組み合わせを選べるかがポイント
正解

A. A,D,F

A・D・F の組み合わせが正解。App Runner はリージョン単位のサービスであり、参照する ECR リポジトリも同一リージョンに必要なため、まず A(ECR のクロスリージョンレプリケーション)で 2 つ目のリージョンにイメージを配置する。
次に D で 2 つ目のリージョンに App Runner サービスをデプロイし、Route 53 のレイテンシールーティングで両リージョンへトラフィックを振り分けることで Active-Active が成立する。
データ層は F の Aurora グローバルデータベースを使い、書き込み転送を有効にすればセカンダリリージョンのアプリからの書き込みがプライマリへ自動転送される。既存の Aurora MySQL をそのまま活かせるため、アーキテクチャの変更が最小限という要件も満たす。

B. B,D,E

B・D・E の組み合わせ。B が不要で、E が過大な変更のため誤り。
B の VPC エンドポイントは、VPC 内のリソースから ECR へプライベートに接続するための仕組みで、App Runner がマネージド環境から ECR のイメージを取得する動作には必要ない。そもそも 2 つ目のリージョンにイメージそのものを複製する手当て(A)が抜けている
E の DynamoDB への移行は、リレーショナルな Aurora MySQL を NoSQL に作り替えることを意味し、アプリケーションのデータアクセス層を全面的に書き直す最大級のアーキテクチャ変更になる。

C. C,E,F

C・E・F の組み合わせ。C が実現不可能なため誤り。
App Runner の設定には「2 つ目のリージョンをデプロイターゲットとして追加する」ような項目は存在しない。App Runner サービスは作成したリージョン内で完結するため、リージョンごとにサービスを個別に作成する必要がある(= D が必要)。
加えて E の DynamoDB 移行も「変更を最小限に」という要件に真っ向から反する。F だけが妥当な要素である。

D. A,E,F

A・E・F の組み合わせ。A と F は正しいが、E が誤りであり、さらに2 つ目のリージョンへのアプリのデプロイとトラフィック分散(D)が欠落している。
ECR にイメージを複製し(A)、Aurora グローバルデータベースを構築(F)しても、2 つ目のリージョンで App Runner が動いていなければ Active-Active にはならないし、ユーザーを両リージョンに振り分ける Route 53 の設定も無い。
E の DynamoDB グローバルテーブルは Active-Active な書き込みには適するが、既存の Aurora MySQL を捨てる大改修となり、要件に反する。

構成図

Route 53(レイテンシールーティング)
   ├────────────────┐
   ▼                ▼
[リージョン1]      [リージョン2]
App Runner        App Runner
   ▲ イメージ         ▲ イメージ
ECR ──レプリケーション──▶ ECR
   │                │
Aurora プライマリ ◀─書き込み転送─ Aurora セカンダリ
                 ─レプリケート─▶
これだけ覚える(記憶フック)
App Runner はリージョンサービス。マルチリージョンは「各リージョンにデプロイ+Route 53」。DB はAurora グローバル DB +書き込み転送
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
App Runner でホストし、ECR のイメージを使用している(前提) App Runner はリージョンサービスで、イメージも同一リージョンの ECR に必要。記述 A(ECR のクロスリージョンレプリケーション)を含む組み合わせが前提になる
→選択肢(B・C)を消す
2 つの AWS リージョンに Active-Active でデプロイする 記述 D(各リージョンに App Runner をデプロイ+Route 53 レイテンシールーティング)が必須。設定 1 つで複数リージョンへ展開する記述 C の機能は存在しない
→選択肢(A)が正解/選択肢(C・D)を消す
データは既存の Aurora MySQL DB クラスターに格納している 記述 F(Aurora グローバルデータベース+書き込み転送)なら、セカンダリからの書き込みがプライマリへ転送され、既存の MySQL 資産をそのまま活かせる
→選択肢(A・C・D)は候補
「アーキテクチャの変更を最小限に抑えながら」 記述 E の DynamoDB への移行はデータモデルとコードの全面改修となり、この制約に真っ向から反する
→選択肢(B・C・D)を消す
App Runner から ECR へのイメージ取得方法 App Runner はマネージド環境から ECR に直接アクセスできる。記述 B の VPC エンドポイントは不要な追加要素
→選択肢(B)を消す
ひっかけポイント
  • 記述 C の「2 つ目のデプロイターゲットを追加して App Runner 設定を編集する」は存在しない機能。「設定を編集するだけ=変更が最小限」に見えるが、実現できない案は最小限でも何でもない
  • 記述 E の DynamoDB グローバルテーブルはマルチリージョン Active-Active の定番なので強く目を引く。しかし本問は既存の Aurora MySQL があるうえで「変更を最小限に」と言っており、DB エンジンの乗り換えは真逆の選択
  • 「Aurora グローバルデータベースはセカンダリが読み取り専用だから Active-Active にできない」と早合点しない。書き込み転送を有効にすればセカンダリからの書き込みが可能(Aurora MySQL でサポート)
  • 記述 B の VPC エンドポイントは「セキュア・プライベート」の響きで正しそうに見えるが、App Runner の ECR アクセスには不要。しかもこの組み合わせにはイメージを複製する手順が無いため、そもそも 2 つ目のリージョンでデプロイできない
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
障害時のみもう 1 つのリージョンを使う(Active-Passive)」 Route 53 のフェイルオーバールーティング+ Aurora グローバル DB のリージョン昇格が正解軸に。
「新規開発で、両リージョンで低レイテンシーな書き込みを行いたい」 DynamoDB グローバルテーブル(マルチアクティブ書き込み)が正解に浮上する。
「App Runner ではなく ECS / EKS でコンテナを実行している」 各リージョンに ECS サービスを作成し、ALB + Route 53(または Global Accelerator)で振り分ける形になる。
「リージョン間の切り替えを即座に(IP 固定で)行いたい」 AWS Global Accelerator のエンドポイントグループが正解軸に。
「グローバルデータベースのセカンダリで大量の書き込みを行いたい」 書き込み転送はプライマリへの往復レイテンシーが乗るため不向き。データの分割やマルチアクティブ設計の検討が問われる。
関連サービスの解説 Amazon Aurora
Amazon Elastic Container Registry (Amazon ECR)
Amazon RDS
Amazon Route 53
AWS App Runner
リファレンス この問題を解くために必要な知識を扱う公式ドキュメントです。
知識項目 公式ドキュメント
Aurora グローバルデータベースの書き込み転送(セカンダリからの書き込み) Amazon Aurora Global Database の書き込み転送を使用する - Amazon Aurora
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 77%
No.9 解説
ある企業が AWS でオンラインチケット発行ウェブアプリケーションを構築しました。 このアプリケーションは AWS App Runner でホストされ、Amazon Elastic Container Registry (Amazon ECR) リポジトリに保存されているイメージを使用します。アプリケーションは Amazon Aurora MySQL DB クラスターにデータを格納します。同社は Amazon Route 53 にドメイン名を設定しています。 アプリケーションは、Active-Active 構成の 2 つの AWS リージョンにデプロイする必要があります。 アーキテクチャの変更を最小限に抑えながら、これらの要件を満たすステップの組み合わせはどれですか。 (3 つ選択)

A) ECR イメージの 2 つ目のリージョンへのクロスリージョンレプリケーションを設定する。
B) 2 つ目のリージョンの ECR リポジトリから VPC エンドポイントを作成する。
C) 2 つ目のデプロイターゲットを 2 つ目のリージョンに追加して、App Runner 設定を編集する。
D) App Runner を 2 番目のリージョンにデプロイする。Route 53 レイテンシールーティングポリシーを 設定する。
E) 目的の 2 つのリージョンで Amazon DynamoDB グローバルテーブルを使用して、データベースを 変更する。
F) 2 つ目のリージョンで書き込み転送が有効になっている Aurora グローバルデータベースを使用する。
  • A,D,F
  • B,D,E
  • C,E,F
  • A,E,F

(会員限定)当問題の評価をお願いします。改善に活用します。