ECS: サービスのタスク数を変更

概要

「ECS: サービスのタスク数を変更」アクションでは、指定したクラスター内のECSサービスのタスク数を変更することができます。

対象のサービスはサービス名で指定、もしくはサービスに付与されているタグで指定することができます。

また、本アクションでは通常のサービス(スケーリング設定なし)のタスク数を固定値に変更するだけでなく、Application Auto Scaling が設定されているサービスのタスク数の最小値・最大値を変更することも可能です。

設定時のオプション

No. オプション 説明
1 リージョン クラスターが存在するAWSリージョンを一覧から選択します。
2 クラスター

サービスが属するECSクラスターを一覧から選択します。

一覧に「Can’t find any ECS clusters in this region or aws account」と表示される場合には、AWSアカウントやリージョンの選択が正しいかどうか確認してください
3 サービス

タスク数を変更するサービスをサービス名で指定する場合は、一覧からサービスを選択します。

DAEMON スケジューリング戦略を使用しているサービスは対象外となります。

一覧に「Can’t find any ECS services in this region or aws account」と表示される場合には、AWSアカウントやリージョン、クラスターの選択が正しいかどうか確認してください
特定のタグが付いたサービス

タスク数を変更するサービスをタグで指定する場合は、タグの key と value を入力します。

指定されたクラスター内で、入力された key と value に一致するタグがついたすべてのサービスが対象となります。

4 サービスのスケーリング

対象となるサービスのスケーリング設定に合わせて、以下のいずれかを選択します。

  • スケーリングなしのサービスを設定:Application Auto Scaling が設定されていないサービスのタスク数を変更する場合に選択します。
  • 自動スケーリングのサービスを設定:Application Auto Scaling が設定されているサービスの最小・最大タスク数を変更する場合に選択します。
スケーリングなしのサービス、自動スケーリングのサービスをまとめて1つのジョブで設定することはできません。
サービスの自動スケーリング設定に応じて、個別にジョブを作成してください。
5 タスク数

「スケーリングなしのサービスを設定」を選択した場合に入力します。

変更後のタスク数を入力してください(上限: 200)

6 タスクの最小数 / 最大数

「自動スケーリングのサービスを設定」を選択した場合に入力します。

変更後のタスクの最小数と最大数をそれぞれ入力してください(上限: 200)
最小タスク数は最大タスク数以下の値を入力する必要があります。

設定例

「ECS: サービスのタスク数を変更」アクションを使ったジョブを作成してみます。

  1. Cloud Automator の運用ジョブ画面から「ジョブの追加」ボタンをクリックします
  2. ジョブを所属させるグループを選択します
  3. トリガーの選択で、任意のトリガーを選択します
  4. アクションの選択で「ECS: サービスのタスク数を変更」アクションを選択します
  5. AWS アカウントの選択で、任意の AWS アカウントを選択します
  6. アクションのパラメーターを設定します
     

    No. オプション 設定値の例
    1 リージョン アジアパシフィック (東京)
    2 クラスター production-cluster
    3 サービス web-app-service
    4 サービスのスケーリング スケーリングなしのサービスを設定
    5 タスク数 5

動作確認

  1. 作成したジョブのログボタンをクリックします
  2. 実行ログ一覧から該当の実行ログの詳細をクリックします
  3. ログの詳細にて結果を確認します
    「成功」となっていれば該当のジョブが実行されて成功していることが確認できます。
    「実行中」となっている場合はジョブの実行中なのでしばらく経ってから確認してください。
  4. それぞれのリソースの操作結果は「リソース操作結果」の項目で確認できます

以上で「ECS: サービスのタスク数を変更」アクションを使ったジョブの動作確認ができました。

ログのステータス条件

ジョブの実行結果 条件
成功

以下の条件を満たした場合に成功となります。

  • スケーリングなしの場合:UpdateService API の実行が成功し、実行中のタスク数が指定したタスク数になった場合
  • 自動スケーリングの場合:RegisterScalableTarget API の実行が成功し、実行中のタスク数が指定した最小タスク数以上、かつ最大タスク数以下になった場合
失敗

以下の場合に失敗となります。

  • ジョブで指定したサービスが存在しない場合
  • タグ指定で対象となったサービス数が上限(200)を超えた場合
  • API の実行に失敗した場合
  • 指定されたサービスのスケーリング設定(有無)と、ジョブの設定が一致していない場合
  • タスク数が指定した条件(設定値と一致、または範囲内)を満たさなかった場合

リソース操作履歴のステータス条件

リソース操作結果 条件
Completed API の実行が成功し、タスク数が指定した条件(設定値と一致、または範囲内)を満たした場合に Completed となります。
Failed

以下の場合に Failed となります。

  • ジョブで指定したサービスが存在しない場合
  • API の実行に失敗した場合
  • タスク数が指定した条件(設定値と一致、または範囲内)を満たさなかった場合

このアクションで利用されるAWS API

当アクションの実行には以下のAWS APIを利用しています。
実行するAWSアカウントにはこれらのAPIを実行可能なIAMポリシーがアタッチされている必要があります。

 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください