【Cloud Automator】ECSタスクの実行と停止を行えるようになりました

記事タイトルとURLをコピーする

Amazon ECS (Elastic Container Service) のタスクを実行・停止する2つのアクションが、Cloud Automatorに新しく加わりました。

  • 「ECS: タスクを実行 (Fargate)」アクション
  • 「ECS: タスクを停止」アクション

New Action ECS: Run & Stop task

概要

今回リリースされた2つのアクションは、主なターゲットとして「開発環境や検証用途のために、ECSのタスクをFargateで実行している方」を想定しています。

常時稼働が不要なタスクをECSで実行・停止する場合には以下のような方法があります。

  • 手動でタスクを実行・停止する
    • 作業漏れがあると無駄なインフラコストが発生してしまう
  • cronライクなスケジュールを使う
    • 別途EventBridgeイベントの管理が必要となる
    • 日本の祝日や独自の休業日などを考慮したスケジュール指定が難しい

(参考:Amazon ECS タスクスケジューリング - Amazon Elastic Container Service

しかし、これらの方法には「柔軟なスケジュール指定が難しい」、「設定を管理する負担が大きい」といった課題があります。

また、AWSが提供するAPIやCLIツールを利用して柔軟性のある仕組みを構築することもできますが、その場合も開発コストや継続的なメンテナンスの必要性などが課題となってきます。

そこで今回リリースされた2つのアクションを利用していただくと、そうした課題を一度に解消することができます。

  • タスクの実行や停止を自動化できるため、停止忘れなどを防止できる
  • EventBridgeイベントを設計・管理する必要がない
  • Cloud Automatorが提供する多様なトリガーが使えるため、柔軟なスケジューリングができる

AWSマネジメントコンソールにおける操作との対応

AWSにおいてECSタスクを実行する場合には、コンテナを実行する基盤やタスクのスケジューリング方針などが異なるいくつかの組み合わせがあります。

今回のアクションでサポートしているタスクの実行は、AWSマネジメントコンソールで「タスクの実行」を選択してから、「起動タイプ」に「FARGATE」を、「アプリケーションタイプ」に「タスク」を選択した組み合わせに相当します(それ以外の組み合わせには対応していません)。

bbb
「起動タイプ」として「FARGATE」を選択

aaa
「アプリケーションタイプ」として「タスク」を選択

アクションの利用に必要な権限の追加

新しいアクションを利用するには、IAMロールまたはIAMユーザーに対してECSの権限を付与しておく必要があります。

権限付与の手順は、Cloud AutomatorのAWSアカウントとしてIAMロールとIAMユーザーのどちらの情報を登録しているかによって異なります。

IAMロールを登録している場合

以下の記事を参考に、IAMロールの権限を最新のものに更新する操作を行ってください。

【Cloud Automator】AWSアカウントのIAMロール権限更新を簡単に行えるようになりました - サーバーワークスエンジニアブログ

IAMユーザーを登録している場合

AWSマネジメントコンソールにて、IAMユーザーに以下の内容のインラインポリシーを追加してください。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecs:DescribeClusters",
        "ecs:DescribeTasks",
        "ecs:ListClusters",
        "ecs:ListTaskDefinitionFamilies",
        "ecs:ListTasks",
        "ecs:RunTask",
        "ecs:StopTask",
        "iam:PassRole"
      ],
      "Resource": "*"
    }
  ]
}

タスクを実行するジョブの作成方法

  1. Cloud Automatorのジョブ作成画面のアクション選択フォームで「ECS: タスクを実行 (Fargate)」アクションを選択してください アクション選択のスクリーンショット
  2. タスクを実行したいAWSアカウントを選択してください AWSアカウント選択のスクリーンショット
  3. アクションのパラメーターを入力する画面において、パラメーターを設定ください アクションのパラメーター設定のスクリーンショット

各パラメーターの詳細については、アクションのマニュアルをご覧ください。

タスクを停止するジョブの作成方法

  1. Cloud Automatorのジョブ作成画面のアクション選択フォームで「ECS: タスクを停止」アクションを選択してください アクション選択のスクリーンショット
  2. 停止したいタスクが属するAWSアカウントを選択してください AWSアカウント選択のスクリーンショット
  3. アクションのパラメーターを入力する画面において、パラメーターを設定ください アクションのパラメーター設定のスクリーンショット

各パラメーターの詳細については、アクションのマニュアルをご覧ください。

注意事項

「ECS: タスクを実行 (Fargate)」アクションには以下のような制限があります。

  • コンテナの起動タイプとして「Fargate 起動タイプ」のみをサポート
  • Fargateのプラットフォームとして「Linux」のみをサポート
  • タスクネットワーキング機能として「awsvpcネットワークモード」のみをサポート

おわりに

今後のリリース計画については、ロードマップページにて公開しております。 これからもCloud Automatorをよろしくお願いいたします。

おぐら (記事一覧)

サービス開発部・サービス開発課にて、Ruby / Rails / Reactを使ってCloud Automatorを開発しています。