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

DevOpsエンジニア-プロフェッショナル

正解 A,C問題
分野3:回復性の高いクラウドソリューション タスクステートメント3.1:回復性とビジネス要件を満たす高可用性ソリューションの実装
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
あるオンライン地図サービスの企業は、大阪リージョン(ap-northeast-3)のバケットに保存している地形タイルデータを、同一の AWS アカウント内にあるシンガポールリージョン(ap-southeast-1)のバケットへ複製し、アジア各拠点向けの配信元として利用することにしました。新しくアップロードされたオブジェクトが、独自のコードを書くことなく Amazon S3 のマネージド機能だけで自動的に複製され、運用担当者の操作を一切必要としないことが条件です。両方のバケットではバージョニングを有効化済みです。

この構成を機能させるために追加で必要な作業を 2 つ選択してください。
  • 複製元バケットでレプリケーションルールを作成し、複製先バケットと複製対象とするプレフィックスを指定する。
  • 複製元バケットにライフサイクルルールを作成し、オブジェクト作成の 1 日後に複製先リージョンのバケットへ移行するアクションを設定する。
  • Amazon S3 のサービスプリンシパルが引き受けられる信頼ポリシーを持ち、複製元からの読み取りと複製先への書き込みを許可する IAM ロールを作成し、レプリケーションルールに指定する。
  • AWS DataSync のタスクを作成し、2 つのバケットを日次スケジュールで同期する。
  • 複製元バケットのオブジェクト作成イベントを Amazon EventBridge で受け取り、AWS Lambda 関数が複製先バケットに対して CopyObject を実行するように構成する。
解説 頻出度★★★★★
この問題は、「クロスリージョン × 新規オブジェクトの自動複製 × 独自コードなし」の要件で、S3 レプリケーションを動かすのに必要な「ルール」と「S3 に引き受けさせる IAM ロール」の 2 点セットを選べるかがポイントです。
正解

A. 複製元バケットでレプリケーションルールを作成し、複製先バケットと複製対象とするプレフィックスを指定する。

正解です。クロスリージョンレプリケーション (CRR) は複製元バケットに作成するレプリケーションルールで定義し、複製先バケットと対象範囲(バケット全体、プレフィックス、タグ)を指定します。
ルールを作成すると、それ以降にアップロードされた新しいオブジェクトが非同期で自動的に複製され、運用担当者の操作は不要です。
なお既存オブジェクトはルール作成だけでは複製されず、S3 バッチレプリケーションが別途必要である点も併せて押さえておきましょう。

B. 複製元バケットにライフサイクルルールを作成し、オブジェクト作成の 1 日後に複製先リージョンのバケットへ移行するアクションを設定する。

S3 ライフサイクルルールでできるのはストレージクラスの移行(Standard → Glacier など)とオブジェクトの失効(削除)だけで、別のバケットや別リージョンへオブジェクトをコピーするアクションは存在しません
「移行 (transition)」という語がリージョン間の移動を連想させますが、対象はあくまで同一オブジェクトのストレージクラスです。
用語の混同を狙った選択肢であり、この構成は設定自体ができません。

正解

C. Amazon S3 のサービスプリンシパルが引き受けられる信頼ポリシーを持ち、複製元からの読み取りと複製先への書き込みを許可する IAM ロールを作成し、レプリケーションルールに指定する。

正解です。レプリケーションはAmazon S3 がユーザーに代わってオブジェクトを読み書きするため、S3 サービスプリンシパル (s3.amazonaws.com) が引き受けられる信頼ポリシーを持つ IAM ロールが必須です。
ロールには複製元に対する GetObjectVersionForReplication / GetObjectVersionAcl などの読み取り権限と、複製先に対する ReplicateObject / ReplicateDelete などの書き込み権限を与え、これをレプリケーションルールに指定します。
コンソールでルールを作成する際に自動生成させることもできますが、「ロールが要る」こと自体は CRR の前提知識です。

D. AWS DataSync のタスクを作成し、2 つのバケットを日次スケジュールで同期する。

AWS DataSync は S3 バケット間の転送にも対応しますが、タスクを実行(またはスケジュール起動)したタイミングでまとめて同期する仕組みです。
日次スケジュールでは新規オブジェクトが複製されるまで最大 1 日の遅れが生じ、「新しくアップロードされたオブジェクトが自動的に複製される」という要件を満たしません。
さらに DataSync というサービスを追加運用することになり、「Amazon S3 のマネージド機能だけで」という条件にも反します。

E. 複製元バケットのオブジェクト作成イベントを Amazon EventBridge で受け取り、AWS Lambda 関数が複製先バケットに対して CopyObject を実行するように構成する。

EventBridge と Lambda で CopyObject を呼ぶ構成は技術的には動作しますが、関数コードの実装・エラー処理・再試行・大容量オブジェクトのマルチパートコピーまで自前で作り込む必要があります。
問題文が明示している「独自のコードを書くことなく Amazon S3 のマネージド機能だけで」という条件に真っ向から反します。
マネージド機能で実現できる要件をわざわざ自作する典型的な過剰実装であり、不適です。

これだけ覚える(記憶フック)
S3 レプリケーションは「両側バージョニング+ルール+IAM ロール」。コードを書き始めた時点で不正解。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
独自のコードを書かず S3 のマネージド機能だけで実現する S3 レプリケーション(CRR)が唯一のマネージド解。Lambda での自作コピーや別サービスの追加は条件違反
→選択肢(D・E)を消す
新しくアップロードされたオブジェクトを自動的に複製する レプリケーションはルール作成後の新規オブジェクトを非同期で自動複製する。日次バッチ同期では即時性を満たせない
→選択肢(D)を消す
別リージョンのバケットへオブジェクトを複製する ライフサイクルはストレージクラス移行と失効だけで、他バケットへのコピー機能はない
→選択肢(B)を消す
複製元・複製先ともバージョニングは有効化済み(前提は満たされている) 残る必要作業はレプリケーションルールの作成と、S3 が代理実行するためのIAM ロールの 2 つ
→選択肢(A・C)が正解
同一 AWS アカウント内のバケット同士 別アカウントなら複製先のバケットポリシーでの許可が追加で必要になるが、同一アカウントならロールとルールだけで完結する
→選択肢(A・C)が正解
ひっかけポイント
  • 「バージョニングは有効化済み」と書かれているため前提条件は消化済み。ここで「バージョニングを有効にする」を探すと答えが見つからない。CRR は複製元・複製先の両方でバージョニングが必須である点は別問題で問われる
  • 選択肢 B の「ライフサイクルルールで移行」は、transition の対象がストレージクラスであってリージョンではないことを知らないと引っかかる。そもそも設定画面に別バケットへの移行という選択肢は存在しない
  • 選択肢 E は動作としては成立するため技術的に否定しにくいが、問題文の「独自のコードを書くことなく」の一文で即座に消える。要件文の制約語を拾えるかが勝負
  • IAM ロールを「EC2 やユーザーが引き受けるもの」と考えていると選択肢 C の必要性が理解できない。CRR ではオブジェクトを読み書きするのはS3 サービス自身であり、その代理実行のためにサービスプリンシパルを信頼するロールが要る
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
既存の(ルール作成前からある)オブジェクトも複製したい」 S3 バッチレプリケーションのジョブ作成が追加で必要になる。ルール作成だけでは過去分は複製されない。
「複製先バケットが別の AWS アカウントにある」 複製先バケットのバケットポリシーでレプリケーションロールからの書き込みを許可する作業が追加される。
「複製の完了までの時間を保証したい(分単位の SLA)」 S3 レプリケーションタイムコントロール (S3 RTC) の有効化と、CloudWatch メトリクスによる監視が正解軸に。
「複製ではなく同一リージョン内のバケットへコピーしたい(ログ集約など)」 同一リージョンレプリケーション (SRR) を使う。設定手順は CRR と同じでリージョンだけが変わる。
削除操作も含めて複製先へ反映したい」 レプリケーションルールの削除マーカーのレプリケーションを有効化する設定が論点になる。
関連サービスの解説 Amazon Simple Storage Service (Amazon S3)
AWS Identity and Access Management (AWS IAM)
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 0%
No.11 解説
あるオンライン地図サービスの企業は、大阪リージョン(ap-northeast-3)のバケットに保存している地形タイルデータを、同一の AWS アカウント内にあるシンガポールリージョン(ap-southeast-1)のバケットへ複製し、アジア各拠点向けの配信元として利用することにしました。新しくアップロードされたオブジェクトが、独自のコードを書くことなく Amazon S3 のマネージド機能だけで自動的に複製され、運用担当者の操作を一切必要としないことが条件です。両方のバケットではバージョニングを有効化済みです。

この構成を機能させるために追加で必要な作業を 2 つ選択してください。
  • 複製元バケットでレプリケーションルールを作成し、複製先バケットと複製対象とするプレフィックスを指定する。
  • 複製元バケットにライフサイクルルールを作成し、オブジェクト作成の 1 日後に複製先リージョンのバケットへ移行するアクションを設定する。
  • Amazon S3 のサービスプリンシパルが引き受けられる信頼ポリシーを持ち、複製元からの読み取りと複製先への書き込みを許可する IAM ロールを作成し、レプリケーションルールに指定する。
  • AWS DataSync のタスクを作成し、2 つのバケットを日次スケジュールで同期する。
  • 複製元バケットのオブジェクト作成イベントを Amazon EventBridge で受け取り、AWS Lambda 関数が複製先バケットに対して CopyObject を実行するように構成する。

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