ECSまわりは「住む人」基準で街が拡張される 🏙️🐳
ECSを触り始めた頃、
ALBだのASGだのキャパシティプロバイダだのが絡み合って、
「結局、誰が何を増やしてるの?」となった。
ここでは、
ECS・ALB・ASG・キャパシティプロバイダの関係を
一度、頭の中で並べ直す。
ECSまわりの階層構造 🧱
まずは全体像を、たとえ話で整理。
| AWS要素 | たとえ |
|---|---|
| ECSクラスター | マンション団地(敷地) |
| EC2 | マンション1棟 |
| タスク | 部屋 |
| コンテナ | 住人 |
| ECSサービス | 管理会社 |
| キャパシティプロバイダ | 建設会社+部屋割り計画 |
| Auto Scaling Group | 建設計画 |
| ALB | 受付・案内係 |
このイメージが腹落ちすると、一気に楽になる。
負荷が増えたとき、裏で何が起きてる? 🔄
処理の流れはこんな感じ。
コンテナへのアクセスが増える
→ ALBがリクエストを分散
→ ECSサービスがタスク数を増やす
→ タスクが並行稼働してEC2が苦しくなる
→ キャパシティプロバイダが必要キャパシティを判断
→ ASGがEC2インスタンスを増設
→ 新しいインスタンスがALB配下に参加
ポイントは、
「人(コンテナ・タスク)」が増えた結果、建物(EC2)が増える
という順序。
キャパシティプロバイダの立ち位置 🧠
キャパシティプロバイダは ECS側の機能。
役割はシンプルで、
タスクの総量
→ それを載せるのに必要なEC2数を決める
ここが重要。
- Auto Scaling
→ CPU / メモリなど インスタンス視点 - キャパシティプロバイダ
→ タスク数・配置 ECS視点
スケール判断の基準が違う。
ECSとASGの関係 🤝
関係性としてはこう。
- ASGはEC2を増減させるだけ
- ECSはASGのターゲットグループを利用
- タスク起動時、ECSが適切なEC2に配置
- 必要ならASGに「もっと建てて」と依頼
ASGを直接触っているようで、
実際の司令塔はECS側。
まとめメモ ✍️
- ALBは受付係
- ECSは住人(タスク)目線
- キャパシティプロバイダは部屋割り担当
- ASGは建設を実行するだけ
ECSまわりは、
CPUより先に「タスクが何人いるか」を見る世界。
ここを勘違いしていると、
設定が全部チグハグになる。