type
status
date
slug
summary
tags
category
icon
password
理論
ECSでのブルー/グリーンデプロイメントとオートスケーリングに関する基本知識
Amazon Elastic Container Service(ECS)を使用してアプリケーションを運用する際、以下のポイントが重要です。この知識は、アプリケーションの信頼性、スケーラビリティ、更新プロセスの効率を向上させるための基本となります。
1. ブルー/グリーンデプロイメント
ブルー/グリーンデプロイメントは、新しいバージョン(グリーン)を既存のバージョン(ブルー)と並行してデプロイする方法です。以下のメリットがあります:
- ダウンタイムの最小化:トラフィックを切り替えるだけで新しいバージョンを即座に反映可能。
- 安全なロールバック:問題が発生した場合、簡単に元のバージョン(ブルー)に戻せます。
ECSでは、Application Load Balancer(ALB) や Network Load Balancer(NLB) を使ってトラフィックを新旧のサービス間で切り替えます。ALBは、アプリケーション層のルーティングやHTTPS対応に適しているため、マイクロサービスアーキテクチャでは一般的に推奨されます。
2. ロードバランサーの選択
- Application Load Balancer(ALB):HTTP/HTTPSを利用するアプリケーションに最適。パスベースやホストベースのルーティングが可能。
- Network Load Balancer(NLB):低レイテンシが求められるTCP/UDPトラフィック向け。
問題文では「HTTPSプロトコル」を使用するため、ALB の採用が適切です。
3. オートスケーリング
アプリケーションの需要に応じて、ECSタスクを自動的に増減させる仕組みです。ECSでは以下の2種類のスケーリングがあります:
- Cluster Auto Scaling:ECSクラスター内のEC2インスタンスの台数を調整する。
- Service Auto Scaling:個々のECSサービス(タスク)の数を調整する。
AWS Fargate では、EC2インスタンス管理が不要なため、Service Auto Scaling が適用されます。CloudWatchアラームをトリガーとしてスケールアップ/スケールダウンを行うことで、効率的なリソース利用が可能です。
4. 具体的な構成例
- ロードバランサー:ALBを使用し、各サービスへのトラフィックをルーティング。
- デプロイ方法:ECSサービスをブルー/グリーンデプロイメントタイプに設定。
- スケーリング:Service Auto Scalingを構成し、CloudWatchアラームをトリガーとしてタスク数を自動調整。
これらの設定を組み合わせることで、大規模なユーザー需要に対応しながら安全にアプリケーションを更新することが可能です。
実践
略
一問道場
質問 #223
トピック 1
ある企業が、マイクロサービスをベースとした新しいオンデマンド動画アプリケーションを開発しています。このアプリケーションは、ローンチ時に500万人のユーザーが利用し、6か月後には3000万人のユーザーが利用する予定です。
企業は、このアプリケーションを AWS Fargate 上で Amazon Elastic Container Service (Amazon ECS) を使用してデプロイしました。アプリケーションは HTTPS プロトコル を使用する ECS サービスによって開発されました。
ソリューションアーキテクトは、このアプリケーションに ブルー/グリーンデプロイメント を使用して更新を実装する必要があります。このソリューションでは、各 ECS サービスへのトラフィックをロードバランサー経由で分配する必要があります。また、アプリケーションは Amazon CloudWatch アラーム に応じてタスク数を自動的に調整する必要があります。
どのソリューションがこれらの要件を満たしますか?
選択肢
A. ECS サービスをブルー/グリーンデプロイメントタイプと Network Load Balancer を使用するように設定します。需要に応じたタスク数を満たすため、サービスごとのタスク数のクォータ増加をリクエストします。
B. ECS サービスをブルー/グリーンデプロイメントタイプと Network Load Balancer を使用するように設定します。各 ECS サービスに Cluster Autoscaler を使用して Auto Scaling グループを実装します。
C. ECS サービスをブルー/グリーンデプロイメントタイプと Application Load Balancer を使用するように設定します。各 ECS サービスに Cluster Autoscaler を使用して Auto Scaling グループを実装します。
D. ECS サービスをブルー/グリーンデプロイメントタイプと Application Load Balancer を使用するように設定します。各 ECS サービスに Service Auto Scaling を実装します。
解説
問題の解説
この問題では、以下の条件を満たすソリューションを選ぶ必要があります:
- ブルー/グリーンデプロイメント:新しいバージョンへの安全な切り替えが可能で、ロールバックも容易。
- トラフィックの分配:ECSサービスへのトラフィックをロードバランサーを通じて管理。
- オートスケーリング:Amazon CloudWatchアラームに基づいてタスク数を自動的に調整。
各選択肢の検討
A.
- Network Load Balancer (NLB) を使用してブルー/グリーンデプロイメントを実現。
- タスク数のクォータ増加をリクエストすると記載されていますが、具体的なオートスケーリング設定については言及がありません。
- NLBはHTTPSプロトコルのルーティングには適していないため、選択肢として不適切です。
B.
- NLB と Cluster Auto Scaling を使用。
- Cluster Auto Scaling は ECS クラスター内の EC2 インスタンスの台数を管理するもので、AWS Fargate の場合には適用されません。
- AWS Fargate ではクラスター管理を行わないため、この選択肢も不適切です。
C.
- Application Load Balancer (ALB) と Cluster Auto Scaling を使用。
- ALB は HTTPS プロトコルをサポートしており適切ですが、Cluster Auto Scaling は AWS Fargate に適用されません。
- Service Auto Scaling を指定していないため、この選択肢も不適切です。
D.
- ALB と Service Auto Scaling を使用。
- ALB は HTTPS プロトコルに対応し、Service Auto Scaling は Fargate 環境に適用可能。
- ブルー/グリーンデプロイメントの要件を満たし、CloudWatch アラームをトリガーにしたスケーリングにも対応できるため、この選択肢が最適です。
正解:D
補足解説
- ロードバランサーの選択:HTTPSプロトコルを使用しているため、アプリケーション層でのルーティングが可能な ALB を選ぶべきです。
- スケーリングの選択:AWS Fargate では EC2 インスタンスの管理は不要なため、タスクレベルでスケーリングを行う Service Auto Scaling が適切です。
- ブルー/グリーンデプロイメント:ECSサービスがサポートしているブルー/グリーンデプロイメントタイプを使用することで、安全にアプリケーションの更新を行えます。
この解答により、アプリケーションのパフォーマンスと運用効率を最大限に高めることができます。
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/172d7ae8-88e2-8084-aa39-c1fc34c6c345
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章