SQSトリガーを使って15分ごとに繰り返し実行する運用ジョブを作成する

概要

トリガーと後処理に同じSQSキューを設定するジョブを作成することで、指定した時間単位に繰り返すジョブを作成する方法についてご紹介します。(最大15分単位)

Note:
Amazon SQS の Delivery Delay の設定を利用するため、繰り返し間隔は最大15分となります(2018年9月現在)

設定内容

  1. 利用するSQSのDelivery Delayを設定する

    Delivery Delay とは、Queueの遅延時間の設定項目で最大15分間メッセージの到達を遅延させることが可能です。この設定することで AMI作成 -> 15分の遅延 -> AMI作成… と繰り返し実行し続けるジョブを作成することが可能になります。

    sqs_1.png

  2. SQSトリガーのジョブを作成する

    「ジョブの追加」メニューから、ジョブの新規作成を行います。

    【1. トリガーの設定】

    トリガーには SQS を選択し、先ほど Delivery Delay を設定したキューを指定します。

    当トリガーの詳細については SQSトリガー のマニュアルをご参照ください。

    sqs_2.png

    【2. アクションの設定】

    続いて、アクションを指定します。ここで繰り返し実行したいアクションを指定しますが、この時、リソースの終了ステータスをチェックする を有効にすることを忘れないようにしてください。

    sqs_4.png

    【3. ジョブの後処理にSQSを指定する】

    後処理の設定で、ジョブの成功時に SQS へメッセージ送信する後処理を指定します。
    ここでは後処理の新規作成にて、先ほどと同じSQSキューを指定して後処理を作成する例となります。

    SQS後処理については SQS後処理 のマニュアルをご参照ください。

    sqs_3.png

以上のように、トリガーとなるSQSキューと、成功時の後処理に同一キューを指定することで、一定間隔で繰り返す運用ジョブの作成が可能になります。

応用

さらに別のジョブと連携させると、例えば以下のような構成も実現可能です。

東京リージョンでAMI作成
-> シンガポールリージョンにAMIをコピー
-> 15分の遅延
-> 東京リージョンでAMI作成
-> シンガポールリージョンにAMIをコピー…

ジョブを連携する方法については、以下もご参照ください

Webhook後処理:複数のジョブを連続実行する(EC2インスタンスのスケールアップ)

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