Elastic Beanstalk 環境の Amazon EC2 インスタンスで cron ジョブを作成する方法を教えてください。

所要時間2分
0

すべての Amazon Elastic Compute Cloud (Amazon EC2) インスタンスでカスタムスクリプトを実行する cron ジョブを作成したいと考えています。Amazon EC2 インスタンスは既存の AWS Elastic Beanstalk 環境にあります。

簡単な説明

.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-leaderonly-linux-config ファイルを使用するには、GitHub ウェブサイトの cron-leaderonly-linux.config を参照してください。専用のワーカー環境がある場合は、定期的なタスクを使用してください。

解決策

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

cron-linux.config ファイルには、filescommands の 2 つのキーがあります。files キーは、必要なファイル権限を持つ Elastic Beanstalk インスタンス上の cron ファイル (mycronmyscript.sh) の 場所を指定します。commands キーは、インスタンスで実行するコマンドのリストを指定します。cron-linux.config テンプレートを AWS GitHub リポジトリのウェブサイトからダウンロードします。または、次の例に基づいて既存の設定ファイルを作成または更新できます。

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 ファイルを作成し、1 分ごとにスクリプトを実行するように設定されています。myscript.sh スクリプトは日付を出力し、実行時に終了します。デプロイ中に cron-linux.config が適用されるたびに、/etc/cron.d/mycron ファイルのバックアップが作成され、ファイルの名前は /etc/cron.d/mycron.bak になります。cron-linux.config の最後のコマンドは /etc/cron.d ディレクトリをクリーンアップし、/etc/cron.d/mycron.bak を削除します。詳細については、「設定ファイル (.ebextensions) による高度な環境カスタマイズ」を参照してください。

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

ウェブアプリケーションのアプリケーションソースコードに設定ファイルを追加するには、次の手順を実行します。

  1. アプリケーションフォルダのルートに、.ebextensions という名前のディレクトリを作成します。
  2. 作成または更新した cron-linux.config ファイルを .ebextensions フォルダに移動します。
  3. アプリケーションファイル用の ZIP フォルダを作成し、新しい設定ファイルを含めます。

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

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

関連情報

Elastic Beanstalk 環境の設定

Linux サーバー上のソフトウェアをカスタマイズする

Windows サーバ上のソフトウェアをカスタマイズする

AWS公式
AWS公式更新しました 5ヶ月前
コメントはありません

関連するコンテンツ