概要
ELBがEC2をAuto Scalingさせているという基本的な部分で誤った理解をしていたこともあり、
Auto Scaling グループとその周辺(EC2/ELB/CloudWatch・alarm/起動設定)を今一度まとめてみました。
マネージドサービスを使用したアーキテクチャが隆盛してきていますが、まだまだEC2をAuto Scalingさせるケースは多いですね。
Auto Scaling グループを使用したAuto Scaling(ScaleOut)時の動き
- ①CloudWatchがEC2インスタンスのCPU使用率を監視する。
- ②CloudWatchがEC2インスタンスのCPU閾値越えを検知。alarm発動。
- ③Auto Scaling グループが、alarm発生時のアクションを実行する。その時点で動作しているEC2インスタンス数と、スケーリングポリシー(最小サイズ・最大サイズ)と照らし合わせて必要な場合にEC2インスタンスを起動する。
- ④起動設定をもとにAMIからEC2インスタンスが作成・起動される
- ⑤起動したEC2インスタンスに、ELBからのヘルスチェックが成功した時点でELBからのアクセスが割り振られるようになる。
Auto Scaling グループを使用したAutoHealingの動き
- ①ELBからのヘルスチェックが失敗する。
- ②ヘルスチェック失敗時にAuto Scaling グループがその時点で動作しているEC2インスタンス数と、初期のサイズまたはスケーリングポリシー(最小サイズ・最大サイズ)と照らし合わせて必要な場合にEC2インスタンスを起動する。
- ③起動設定をもとにAMIからEC2インスタンスが作成・起動される。
- ④起動したEC2インスタンスに、ELBからのヘルスチェックが成功した時点でELBからのアクセスが割り振られるようになる。
終わりに
本稿で触れた部分は、CloudFormationやBeanstalkもしくはTerraform等のオーケストレーションツールで管理されている部分と思われますので、
素で触るケースは少なくなってきているかと思いますが、ご参考まで。