Q8 — AWS DOP-C02 第1章
第 8/100 問 | ← 第1章
ある企業がAmazon EC2インスタンス上でアプリケーションを実行しています。アプリケーションのメタデータはAmazon S3に保存されており、インスタンスの再起動時に取得されます。インスタンスが停止した場合、インスタンスは再起動または自動的に再起動されます。
- A. StatusCheckFailedメトリクスに対してAmazon CloudWatchアラームを作成します。復旧アクションとしてインスタンスを停止および起動します。インスタンスが復旧して実行中になった時点で、S3イベント通知を用いてメタデータをインスタンスにプッシュします。
- B. AWS OpsWorksを構成し、自動修復機能を用いてインスタンスを停止および起動します。OpsWorksのライフサイクルイベントを用いて、Amazon S3からメタデータを取得し、インスタンス上で更新します。 ✓
- C. EC2 Auto Recoveryを用いて、障害発生時に自動的にインスタンスを停止および起動します。インスタンスが復旧して実行中になった時点で、S3イベント通知を用いてメタデータをインスタンスにプッシュします。
- D. AWS CloudFormationを使用して、UserData属性を含むEC2インスタンスを作成します。UserData内に、Amazon S3からアプリケーションメタデータを取得するコマンドを追加します。
正解: B. AWS OpsWorksを構成し、自動修復機能を用いてインスタンスを停止および起動します。OpsWorksのライフサイクルイベントを用いて、Amazon S3からメタデータを取得し、インスタンス上で更新します。
解説
EC2インスタンスの起動時に外部からメタデータを取得する最も標準的かつ信頼性の高い方法は、UserDataスクリプトを用いることです。UserDataは、インスタンスの初回起動時に1度だけ実行され、S3からメタデータをダウンロード・適用する処理を確実に実行できます。選択肢Dは、この要件をシンプルかつ確実に満たします。選択肢AおよびCは、S3イベント通知を用いた「プッシュ型」アプローチですが、インスタンス起動直後の状態でS3イベントが即座に発火する保証はなく、タイミングの競合や失敗リスクがあります。選択肢BのOpsWorksは、現在推奨されておらず、マネージドサービスとしてのサポートも縮小されています。