Elastic Beanstalk 環境のすべての EC2 インスタンスでカスタムスクリプトを実行するcronジョブを作成したいのです。どうすればよいですか?

.ebextensions を使用して、 Elastic Beanstalk 環境の EC2 インスタンスで実行される cron ジョブを作成できます。Beanstalk アプリケーションの zip ファイルに「.ebextensions」という名前のディレクトリを作成します。このディレクトリには、アプリケーションがインスタンスにデプロイされた時に実行される設定ファイルが含まれることになります。

次の手順で、Elastic Beanstalk 環境内のすべての EC2 インスタンスで同時に実行される cron ジョブを追加できます。

注意事項: 1つのインスタンスのみで周期的に実行されるタスクの場合は、代わりに worker tier periodic tasksを使用することも検討してください。

.ebextensionsディレクトリの作成

Beanstalk アプリケーションの zip ファイルに「.ebextensions」という名前のディレクトリを作成します。次の例では、Elastic Beanstalk アプリケーションの zip ファイルの名前は 「myapp.zip」で、構成ファイルの名前は 「cronjob.config」とします。

注意事項: 設定ファイルには任意の名前を付けることができますが、.ebextensions ディレクトリに複数の設定ファイルがある場合は、アルファベット順に実行されます。

以下の例は、アプリケーション zip ファイル内の .ebextensions ディレクトリと cronjob.config ファイルの構造を示しています。

myapp.zip

    |-- .ebextensions

    |        |-- cronjob.config

    |        |-- other .config files

    |-- other application files

構成ファイルの更新

cronjob.config ファイルには2つのセクションがあります。

files セクション:このセクションでは、Elastic Beanstalk インスタンスで「myscript.sh」ファイルを作成する場所と、必要に応じてファイルの権限を指定します。状況に応じた場所とアクセス権を指定してください。

commands セクション:このセクションでは、インスタンス上で実行するコマンド群を指定します。

ここでは、構成ファイルの一般的な構造を示します。

files:

    "/etc/cron.d/mycron":

        モード "000644"

        owner: root

        group: root

        content: |

            * * * * * root /usr/local/bin/myscript.sh

 

    「/usr/local/bin/myscript.sh」

        モード "000755"

        owner: root

        group: root

        content: |

            #!/bin/bash

 

            date > /tmp/date

            # Your actual script content

 

            exit 0

 

commands:

    remove_old_cron:

        command: "rm -f /etc/cron.d/*.bak"

この例では、変更があった場合 (たとえば、cronスケジュール) 、古いcronファイルを削除するコマンド群のファイルを例として用いています。

作成した構成ファイルをアプリケーション用の zip ファイルの「.ebextensions」ディレクトリに追加します。.ebextensions ディレクトリの設定ファイルは、アプリケーションが Elastic Beanstalk インスタンスにデプロイされるたびに実行されます。

.ebextensions によるカスタマイズの詳細については、 「Advanced Environment Customization with Configuration Files」をご参照ください。

Elastic Beanstalk, cron, ebextensions, container_commands, customize environment


このページは役に立ちましたか? はい | いいえ

AWS サポートナリッジセンターに戻る

サポートが必要ですか?AWS サポートセンターをご覧ください。

公開日: 2016 年 12 月 23 日