目次
とある日
AWS 資格の勉強用の記録。
よく問題集とかで出る項目でわからないところを調べてまとめるだけ。
Amazon ECS タスク配置戦略 - Amazon Elastic Container Service
タスク配置戦略は、タスク配置またはタスクの終了でインスタンスを選択するためのアルゴリズムです。タスクの実行時または新しいサービスの作成時に、タスク配置戦略を指定できます。タスク配置の戦略は、既存のサービスに対しても更新できます。
タスクが追加されるときどのように配置するかを決めるルール的なやつ。
戦略タイプ
Amazon ECSでは、以下のタスク配置戦略をサポートします。
binpack
タスクはコンテナインスタンスに配置され、未使用の CPU またはメモリを最小にします。この戦略は、使用中のコンテナインスタンスの数を最小限に抑えます。
この戦略が使用され、スケールインアクションが実行されると、Amazon ECSは、タスクが終了した後にコンテナインスタンスに残されるリソース量に基づいてタスクを終了します。タスクの終了後に使用可能なリソースが最も多く残るコンテナインスタンスが、そのタスクを終了させます。
「最小」がキーワード。
最小の対象
- CPU
- メモリ
random
タスクはランダムに配置されます。
シンプル・イズ・ベスト。
そのまま。
spread
タスクは指定された値に基づいて均等に配置されます。有効な値は
instanceId
(または同じ効果を持つhost
)、またはattribute:ecs.availability-zone
などのコンテナインスタンスに適用される任意のプラットフォームまたはカスタム属性です。サービスタスクはそのサービスからのタスクに基づいて分散されます。スタンドアロンタスクは、同じタスクグループからのタスクに基づいて分散されます。タスクグループの詳細については、「タスクグループ」を参照してください。
spread
戦略が使用され、スケールインアクションが実行されると、Amazon ECSは、アベイラビリティーゾーン間のバランスを維持するタスクを選択して終了します。アベイラビリティーゾーン内では、タスクはランダムに選択されます。
「均等」がキーワード。
どの項目を均等にするのかが指定できる。
- instanceId
- attribute:ecs.availability-zone
- AZ
余談:スペードと読むらしい 和訳すると広げるとか開くって意味
まとめ
・コストを優先→ binpack
・可用性を優先→: spread(インスタンス分散)
ただ、対象に応じで変化する。
例えば、「使用中のインスタンスの数を最小限に抑えてコスト効率向上」といった文言が問題文にある場合、インスタンス数を設定できるのはspreadなのでコストという単語に反応してbinpackを安易に選択すると危ない。
参考記事
【徹底解説】ECSのタスク配置戦略って何?(第1回) | SunnyCloud
【徹底解説】ECSのタスク配置戦略って何?(第2回) | SunnyCloud
〆
意外とごちゃごちゃするし、使ってみないと意外とわからないが問題に出てくるタスク戦略を調べた。
ランダムは使われるタイミングはあるのだろうか。