Q71 — AWS DOP-C02 第3章
第 71/100 問 | ← 第3章
ある企業が、Auto Scalingグループ内のAmazon EC2インスタンス上で実行されるアプリケーションを保有しています。このアプリケーションは、Amazon Simple Queue Service (SQS)キューからメッセージを処理します。 開発エンジニアは、アプリケーションがSQSキューから一連のメッセージを処理するのに数分かかると観測しました。メッセージ処理中のAuto Scalingグループの平均CPU利用率は、ターゲット追跡スケーリングポリシーのしきい値を超えています。SQSキューを処理するアプリケーションは、Amazon CloudWatch Logsにログを出力します。 開発エンジニアは、キューが迅速に処理されるようにする必要があります。 これらの要件を満たすために最小限の操作オーバーヘッドで実現可能なソリューションはどれですか?
- A. AWS Lambda関数を作成します。SQSキューのApproximateNumberOfMessagesVisible属性およびAuto Scalingグループのインスタンス数を用いて、各インスタンスあたりのキュー内のメッセージ数を近似計算し、Lambda関数でカスタムメトリクスを発行します。1時間ごとにAmazon EventBridgeのスケジュールルールを設定してLambda関数を実行します。Auto Scalingグループに対して、このカスタムメトリクスを用いるターゲット追跡スケーリングポリシーを作成します。
- B. AWS Lambda関数を作成します。SQSキューのApproximateNumberOfMessagesVisible属性およびAuto Scalingグループのインスタンス数を用いて、各インスタンスあたりのキュー内のメッセージ数を近似計算し、Lambda関数でカスタムメトリクスを発行します。アプリケーションログに対してCloudWatch Logsのサブスクリプションフィルターを作成し、Lambda関数をターゲットとして設定します。Auto Scalingグループに対して、このカスタムメトリクスを用いるターゲット追跡スケーリングポリシーを作成します。
- C. Auto Scalingグループに対してターゲット追跡スケーリングポリシーを作成します。このポリシーで、SQSキューのApproximateNumberOfMessagesVisible属性およびAuto Scalingグループのインスタンス数を用い、CloudWatchのメトリクス数学(例:メッセージ総数 ÷ インスタンス数)により各インスタンスあたりのキュー内のメッセージ数を計算します。この計算された値をスケーリングの基準とします。 ✓
- D. AWS Lambda関数を作成し、SQSキューのApproximateNumberOfMessagesVisible属性をCloudWatch Logsグループにログ出力します。5分ごとにAmazon EventBridgeのスケジュールルールを設定してLambda関数を実行します。CloudWatch Logsグループからログイベント数を計算するメトリクスフィルターを作成します。Auto Scalingグループに対して、このカスタムメトリクスを用いるターゲット追跡スケーリングポリシーを作成します。
正解: C. Auto Scalingグループに対してターゲット追跡スケーリングポリシーを作成します。このポリシーで、SQSキューのApproximateNumberOfMessagesVisible属性およびAuto Scalingグループのインスタンス数を用い、CloudWatchのメトリクス数学(例:メッセージ総数 ÷ インスタンス数)により各インスタンスあたりのキュー内のメッセージ数を計算します。この計算された値をスケーリングの基準とします。
解説
本問は、SQSキューのメッセージを迅速に処理するためにAuto Scalingグループを最適化するAWS環境下のシナリオを扱っています。AWSドキュメントによると、ターゲット追跡スケーリングポリシーは、カスタムメトリクスまたはサービスメトリクスに基づいてインスタンス数を調整できます。選択肢Cは、SQSのApproximateNumberOfMessagesVisibleと現在のインスタンス数を用い、CloudWatchのメトリクス数学(メッセージ総数 ÷ インスタンス数)により各インスタンスの負荷を計算し、これを直接スケーリングの基準としています。追加のコンポーネント(Lambda関数やログサブスクリプションなど)を必要とせず、既存の属性とメトリクス数学のみで実現可能です。他の選択肢は、カスタムコードや複雑なフローを必要とし、選択肢Cより操作オーバーヘッドが大きくなります。