メニュー
Amazon Elastic Container Service
開発者ガイド (API バージョン 2014-11-13)

チュートリアル: タスク停止時のイベントに関する Amazon Simple Notification Service アラートを送信する

このチュートリアルでは、基本的なコンテナのいずれかの終了に伴ってタスクの実行が停止した場合に限り、タスクイベントをキャプチャする CloudWatch イベント イベントルールを設定します。イベントからは、特定の stoppedReason プロパティを持つタスクイベントのみが、指定された Amazon SNS トピックに送信されます。

前提条件: テスト用クラスターを設定する

イベントをキャプチャする実行中のクラスターがなければ、Fargate を使用した Amazon ECS の使用開始 のステップに従ってクラスターを作成します。このチュートリアルの最後に、このクラスターでタスクを実行して Amazon SNS トピックと CloudWatch イベント イベントルールが正しく設定されていることをテストします。

ステップ 1: Amazon SNS トピックを作成してサブスクライブする

このチュートリアルでは、新しいイベントルールのイベントターゲットとして使用する Amazon SNS トピックを設定します。

Amazon SNS トピックを作成するには

  1. https://console.aws.amazon.com/sns/v2/home にある Amazon SNS コンソールを開きます。

  2. [Topics]、[Create new topic] の順に選択します。

  3. [Create new topic] ウィンドウで、[Topic name] として [TaskStoppedAlert] と入力し、[Create topic] を選択します。

  4. [Topics] で、先ほど作成したトピックを選択します。[Topic details: TaskStoppedAlert] 画面で、[Create subscription] を選択します。

  5. [Create Subscription] ウィンドウの [Protocol] で [Email] を選択します。[Endpoint] に、現在利用できるメールアドレスを入力し、[Create subscription] を選択します。

  6. メールアカウントを確認し、サブスクリプションの確認メールメッセージが届くのを待ちます。確認メールが届いたら、[Confirm subscription] を選択します。

ステップ 2: イベントルールを登録する

次に、コンテナが停止されたタスクについてのみ、タスク停止時のイベントをキャプチャするイベントルールを登録します。

イベントルールを作成するには

  1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。

  2. ナビゲーションペインで、[Events]、[Create rule] の順に選択します。

  3. [Show advanced options]、[edit] の順に選択します。

  4. [Build a pattern that selects events for processing by your targets] で、既存のテキストを次のテキストに置き換えます。

    { "source": [ "aws.ecs" ], "detail-type": [ "ECS Task State Change" ], "detail": { "lastStatus": [ "STOPPED" ], "stoppedReason" : [ "Essential container in task exited" ] } }

    このコードで定義する CloudWatch イベント イベントルールにより、lastStatus フィールドと stoppedReason フィールドが指定された値と一致するイベントを特定します。イベントパターンの詳細については、「イベントとイベントパターン」 (Amazon CloudWatch ユーザーガイド) を参照してください。

  5. [Targets] で、[Add target] を選択します。[Target type] で [SNS topic] を選択し、[TaskStoppedAlert] を選択します。

  6. [Configure details] を選択します。

  7. [Rule definition] で、ルールの名前と説明を入力し、[Create rule] を選択します。

ステップ 3: ルールをテストする

ルールをテストするには、開始した後で短時間だけ存在するタスクを実行します。イベントルールが正しく設定されていれば、数分以内にイベントテキストが記載されたメールメッセージが届きます。

ルールをテストするには

  1. https://console.aws.amazon.com/ecs/ にある Amazon ECS コンソールを開きます。

  2. [Task Definitions]、[Create new Task Definition] の順に選択します。

  3. [Task Definition Name] に [WordPressFailure] と入力し、[Add Container] を選択します。

  4. [Container name] として [Wordpress]、[Image] として [wordpress]、[Maximum memory (MB)] として [128] を入力します。

  5. [Add]、[Create] の順に選択します。

  6. [Task Definition] 画面で、[Actions]、[Run Task] の順に選択します。

  7. [Cluster] で [default] を選択し、[Run Task] を選択します。

  8. クラスターの [Tasks] のタブで、タスクが実行されなくなるまで、更新アイコンを一定間隔で選択します。[Desired task status] で、[Stopped] を選択してタスクが停止したことを確認します。

  9. 停止の通知に関するアラートのメールが届いていることを確認します。