Q5 — AWS SAP-C02 第3章
第 5/75 問 | ← 第3章
Q230. ある企業がAWSクラウド上でアプリケーションを実行しています。コアのビジネスロジックは、Auto Scalingグループ内のAmazon EC2インスタンス上で動作しています。Application Load Balancer(ALB)がトラフィックをこれらのEC2インスタンスに分散しています。Amazon Route 53のレコード「api.example.com」はこのALBを指しています。開発チームがビジネスロジックに対して大規模な更新を行いました。同社では、変更をデプロイする際には、テスト期間中に新ロジックを受信できる顧客を10%に制限するというルールがあります。また、顧客はテスト期間中、常に同一バージョンのビジネスロジックを利用する必要があります。これらの要件を満たすために、企業は更新をどのようにデプロイすべきでしょうか?
- A. 第2のALBを作成し、新しいAuto Scalingグループ内のEC2インスタンスに新ロジックをデプロイします。ALBがこれらのEC2インスタンスにトラフィックを分散するよう設定します。Route 53レコードを重み付きルーティング(weighted routing)に更新し、両方のALBを指すように設定します。
- B. ALBが参照する第2のターゲットグループを作成します。この新しいターゲットグループ内のEC2インスタンスに新ロジックをデプロイします。ALBのリスナールールを更新して、重み付きターゲットグループ(weighted target groups)を使用するように設定します。さらに、ALBのターゲットグループステッキネス(target group stickiness)を有効化します。 ✓
- C. Auto Scalingグループ向けに新しい起動設定(launch configuration)を作成します。この起動設定でAutoScalingRollingUpdateポリシーを指定し、MaxBatchSizeオプションを10に設定します。Auto Scalingグループの起動設定を置き換え、変更をデプロイします。
- D. ALBが参照する第2のAuto Scalingグループを作成します。この新しいAuto Scalingグループ内のEC2インスタンスに新ロジックをデプロイします。ALBのルーティングアルゴリズムを「最小未処理リクエスト数(least outstanding requests: LOR)」に変更し、ALBのセッションステッキネス(session stickiness)を設定します。
正解: B. ALBが参照する第2のターゲットグループを作成します。この新しいターゲットグループ内のEC2インスタンスに新ロジックをデプロイします。ALBのリスナールールを更新して、重み付きターゲットグループ(weighted target groups)を使用するように設定します。さらに、ALBのターゲットグループステッキネス(target group stickiness)を有効化します。
解説
アプリケーションの更新をAWSクラウド上でデプロイし、企業の要件を満たすには、ALBが参照する第2のターゲットグループを作成し、そのターゲットグループ内のEC2インスタンスに新ロジックをデプロイしたうえで、ALBのリスナールールを重み付きターゲットグループ(weighted target groups)に対応するよう更新することが推奨されます。この方法により、テスト期間中に新ロジックを受信する顧客の割合を正確に制御できます。 したがって、正解は選択肢Bです。 選択肢Aでは、第2のALBと新しいAuto Scalingグループを用いた別構成が提案されていますが、これは単一のALBで複数のターゲットグループを活用する方法と比較して、不要な複雑さを導入します。 選択肢Cでは、Auto Scalingグループ向けに新しい起動設定を作成し、AutoScalingRollingUpdateポリシーで10台ずつのバッチでインスタンスを更新する方法が示されていますが、これはテスト期間中の顧客への新ロジック配信割合を制御できません。 選択肢Dでは、ALBが参照する第2のAuto Scalingグループを作成し、ルーティングアルゴリズムをLORに変更する方法が提案されていますが、これも顧客への新ロジック配信割合を制御できず、またセッションステッキネスだけではターゲットグループ間のバージョンの一貫性を保証できません。よって、最適な解決策は、ALBが参照する第2のターゲットグループを作成し、そこに新ロジックをデプロイしたうえで、ALBのリスナールールを重み付きターゲットグループに対応させ、ターゲットグループステッキネスを有効化することです。これにより、新ロジックを受信する顧客の割合を段階的に増加させつつ、各顧客がテスト期間中は常に同一バージョンのビジネスロジックを利用できるようになります。