🍱

ECSでFARGATE_SPOTの起動数を指定する方法

2022/03/27に公開

ECSでFARGATE_SPOTを指定する方法が分かりにくかったのでメモ。
困っている人に届きますように。

前提

FARGATE_SPOTを使う場合、ECSサービスでプラットフォームバージョン 1.3.0 以降を指定する必要がある。

クラスタのデフォルトキャパシティープロバイダー戦略を更新する場合

対象クラスタの詳細画面>クラスターの更新を押下。
デフォルトのキャパシティープロバイダー戦略にて、下記のように設定して更新ボタンを押下する。

サービスごとにキャパシティープロバイダー戦略を更新する場合

対象クラスタの詳細画面>サービスの更新を押下。
キャパシティープロバイダー戦略にて、下記のように設定して更新ボタンを押下する。

設定値

※ベースは優先起動するタスクの数。
※ウェイトは起動割合。

FARGATE:FARGATE_SPOT=1:1とする場合

プロバイダー 1:FARGATE      ベース 0 ウェイト1
プロバイダー 2:FARGATE_SPOT ベース 0 ウェイト1

FARGATEで何台か優先起動させる場合

プロバイダー 1:FARGATE      ベース 2 ウェイト1 # ベース=FARGATEで優先起動する台数
プロバイダー 2:FARGATE_SPOT ベース 0 ウェイト3

この設定だと、タスク数6つのときにFARGATE:FARGATE_SPOT=3:3となる。

1.タスクを2つまでFARGATEで優先起動する。
→FARGATE×2、残りタスク4つを起動予定
2.ウェイトに従ってタスクを起動する。
FARGATE:FARGATE_SPOT=1:3のため、残り4タスクをこの割合で起動する。
→FARGATE×3、FARGATE_SPOT×3

タスク数10だとFARGATE:FARGATE_SPOT=4:6、
タスク数30だとFARGATE:FARGATE_SPOT=9:21

プロバイダー 1:FARGATE      ベース 2 ウェイト1
プロバイダー 2:FARGATE_SPOT ベース 0 ウェイト1

この設定だと、タスク数6つのときにFARGATE:FARGATE_SPOT=4:2となる。
タスク数10だとFARGATE:FARGATE_SPOT=6:4、
タスク数30だとFARGATE:FARGATE_SPOT=16:14

Discussion