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%に制限するというルールがあります。また、顧客はテスト期間中、常に同一バージョンのビジネスロジックを利用する必要があります。これらの要件を満たすために、企業は更新をどのようにデプロイすべきでしょうか?

正解: 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のリスナールールを重み付きターゲットグループに対応させ、ターゲットグループステッキネスを有効化することです。これにより、新ロジックを受信する顧客の割合を段階的に増加させつつ、各顧客がテスト期間中は常に同一バージョンのビジネスロジックを利用できるようになります。