既存の AWS Elastic Beanstalk 環境のすべての Amazon Elastic Compute Cloud (Amazon EC2) インスタンスでカスタムスクリプトを実行する cron ジョブを作成するには、どうすればよいですか?

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

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

注: 定期タスクを 1 つのインスタンスでのみ実行する場合は、ウェブ環境に cron-leaderonly-linux.config ファイルを使用することを検討してください。専用のワーカー環境を使用している場合は、定期タスクの使用を検討してください。

設定ファイルを作成または更新する

cron-linux.config ファイルには、filescommands という 2 つのキーがあります。files キーは、Elastic Beanstalk インスタンス上の myscript.sh ファイルの場所と必要なファイル権限を特定します。commands キーは、インスタンスで実行するコマンドのリストを特定します。

AWS ドキュメント用の GitHub リポジトリから cron-linux.config テンプレートをダウンロードします (推奨)。

あるいは、以下の例に基づいて既存の設定ファイルを作成または更新することもできます。

files:
    "/etc/cron.d/mycron":
        mode: "000644"
        owner: root
        group: root
        content: |
            * * * * * root /usr/local/bin/myscript.sh

    "/usr/local/bin/myscript.sh":
        mode: "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/mycron.bak"

注: 設定ファイルに名前を付けるときは、.ebextensions ディレクトリ内の複数の設定ファイルがファイル名のアルファベット順に実行されることに注意してください。設定ファイルには cron-linux.configという名前を付けることができます。

cron-linux.config ファイルは、毎分スクリプトを実行するように構成された /etc/cron.d/mycron という名前の cron ファイルを作成します。myscript.sh スクリプトは日付を出力し、実行時に終了します。デプロイメント中に cron-linux.config が適用されるたびに、/etc/cron.d/mycron.bak という名前の /etc/cron.d/mycron ファイルのバックアップが作成されます。cron-linux.config の最後のコマンドは、/etc/cron.d/mycron.bak を削除して /etc/cron.d ディレクトリをクリーンアップします。

.ebextensions を使用した環境のカスタマイズの詳細については、設定ファイル (.ebextensions) による高度な環境のカスタマイズを参照してください。

アプリケーションソースバンドルの作成

設定ファイルをウェブアプリケーションのアプリケーションソースコードに追加するには、以下の手順に従って .ebextensions ディレクトリを作成し、cron-linux.config ファイルを追加します。

1.    アプリケーションフォルダのルートに、.ebextensions という名前のディレクトリを作成します。

2.    作成または更新した cron-linux.config ファイルを .ebextensions フォルダに移動します。

3.    アプリケーションファイル用のzip フォルダを作成し、新しい設定ファイルを含めます。

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

|-- .ebextensions
|        |-- cron-linux.config 
|        |-- other .config files
|-- other application files

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

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

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

公開日: 2016 年 12 月 23 日

更新日: 2019 年 1 月 16 日