メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

Windows Server でのソフトウェアのカスタマイズ

アプリケーションが依存するソフトウェアをカスタマイズして設定できます。これらのファイルは、例えば、実行する必要のある追加パッケージやサービスなど、アプリケーションが必要とするいずれかの依存関係です。Elastic Beanstalk 環境のカスタマイズと設定に関する一般的な情報については、「AWS Elastic Beanstalk 環境設定」を参照してください。

注記

YAML は、一貫したインデントに依存します。設定ファイルの例でコンテンツを置き換える際はインデントレベルを一致させ、テキストエディタがインデントにタブ文字ではなくスペースを使用していることを確認します。

設定ファイルは、アプリケーションが実行している Windows サーバーに影響する次のキーをサポートします。

キーは次の順序で処理されます。

注記

.NET プラットフォーム設定の旧バージョン(バージョニング非対応)の場合は、正しい順序で設定ファイルが処理されません。詳細については、v1 Elastic Beanstalk Windows Server プラットフォームへの移行 を参照してください。

パッケージ

packages キーを使用して、パッケージ済みのアプリケーションとコンポーネントをダウンロードしてインストールします。

構文

packages: 
  name of package manager:
    package name: version

サポートされるパッケージ形式

Elastic Beanstalk は MSI パッケージをサポートします。

バージョンの指定

パッケージは、パッケージ名とソフトウェアへの URL で指定されます。

Elastic Beanstalk は、より新しいバージョンのパッケージがインスタンスに既にインストールされている場合でも、設定に関連したパッケージマネージャーを呼び出して、指定したパッケージをインストールします。パッケージマネージャーによって、古いバージョンをインストールできるものと、そうでないものがあります。以前のバージョンのパッケージのインストールを試みる場合、パッケージマネージャーがその機能をサポートしているかどうか確認することは、お客様の責任になります。インストール済みのパッケージの同じバージョンを指定した場合、デプロイが失敗します。

次の例では、mysql をダウンロードする URL を指定します。

packages:
  msi:
    mysql: http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-6.6.5.msi/from/http://cdn.mysql.com/

sources

sources キーを使用して、公開 URL からアーカイブファイルをダウンロードし、EC2 インスタンス上のターゲットディレクトリに解凍します。

構文

sources:  
  target directory: location of archive file

サポートされる形式

現在、Elastic Beanstalk は .zip 形式をサポートしています。Amazon Simple Storage Service (Amazon S) などの外部の場所(http://s3.amazonaws.com/mybucket/myobject3. など)は、その URL が公開されている場合にのみ参照できます。

以下の例では、Amazon S3 バケットから公開 .zip ファイルをダウンロードし、c:/myproject/myapp に解凍しています。

sources:  
  "c:/myproject/myapp": http://s3.amazonaws.com/mybucket/myobject.zip 

ファイル

files キーを使用して、EC2 インスタンス上にファイルを作成できます。内容は、設定ファイルでインラインとするか、URL から指定できます。ファイルは辞書式順序でディスクに書き込まれます。Amazon S3 からプライベートファイルをダウンロードするには、認可のインスタンスプロファイルを指定します。

構文

files:  
  "target file location on disk":
    source: URL
    authentication: authentication name:

  "target file location on disk":
    content: |
      this is my content
    encoding: encoding format

オプション

content

(オプション) 文字列。

source

(オプション) ファイルの読み込み元の URL。このオプションと content キーを一緒に指定することはできません。

encoding

(オプション) エンコード形式。このオプションは、指定されたコンテンツキーの値にのみ使用されます。デフォルト値は plain です。

有効な値: plain | base64

authentication

(オプション) 使用する AWS CloudFormation 認証方法の名前。リソースキーで、オートスケーリンググループメタデータに認証方法を追加できます。

files:
  "c:\\targetdirectory\\targetfile.txt":
    source: http://foo.bar/myfile
 
  "c:/targetdirectory/targetfile.txt":
    content: |
      # this is my file
      # with content

注記

ファイルパスにバックスラッシュ (\) を使用する場合、前の例に示すようにこの前に別のバックスラッシュ (エスケープ文字) を置く必要があります。

コマンド

commands キーを使用して、EC2 インスタンスでコマンドを実行します。コマンドは、名前のアルファベット順に処理され、アプリケーションとウェブサーバーが設定されてアプリケーションバージョンファイルが抽出される前に実行されます。

構文

commands:
  command name: 
    command: command to run

オプション

command

実行するコマンドを指定する配列または文字列です。配列を使用する場合、スペース文字をエスケープしたり、コマンドパラメータを引用符で囲んだりする必要はありません。

cwd

(オプション)作業ディレクトリです。デフォルトでは、Elastic Beanstalk はプロジェクトのディレクトリの場所を探します。見つからない場合は、デフォルトとして c:\Windows\System32 を使用します。

env

(オプション)コマンドの環境変数を設定します。このプロパティは、既存の環境に追加するのではなく、既存の環境を上書きします。

ignoreErrors

(オプション)command キーに含まれるコマンドが失敗した場合(非ゼロ値を返した場合)、他のコマンドを実行する必要があるかどうかを指定するブール値です。失敗したコマンドがあっても他のコマンドの実行を続ける場合は、この値を true に設定します。コマンドが失敗したら実行を停止する場合は、false に設定します。デフォルト値は false です。

test

(オプション) Elastic Beanstalk が command キーに含まれるコマンドを処理するために、値 true (終了コード 0) を返す必要があるコマンド。

waitAfterCompletion

(オプション) コマンドが完了してから次のコマンドを実行するまでに、待機する秒数。コマンドの完了後にシステムの再起動が必要な場合は、指定された秒数が経過した後にシステムが再起動します。コマンドの結果としてシステムコマンドの結果、Elastic Beanstalk は設定ファイル内のコマンドの後ろに復旧します。デフォルト値は 60 秒です。また、forever を指定することもできますが、別のコマンドを実行する前にシステムが再起動する必要があります。

次の例は、指定されたファイルに set コマンドの出力を保存します。後続のコマンドがある場合、Elastic Beanstalk は、このコマンドの完了直後にそのコマンドを実行します。このコマンドで再起動が必要な場合、Elastic Beanstalk はコマンドが完了すると、直後にインスタンスを再起動します。

commands:
  test: 
    command: set > c:\\myapp\\set.txt
    waitAfterCompletion: 0

サービス

services キーを使用して、インスタンスが起動されるときに開始または停止する必要のあるサービスを定義できます。また、services キーではソース、パッケージ、ファイルへの依存関係も指定でき、インストールされているファイルのために再起動が必要になった場合に、Elastic Beanstalk がサービスの再起動を処理します。

構文

services: 
  windows:
    name of service:
      files:
        - "file name"
      sources: 
        - "directory"	
      packages: 
        name of package manager:
            "package name[: version]"
      commands: 
        - "name of command"

オプション

ensureRunning

(オプション) true に設定すると、Elastic Beanstalk が終了した後でサービスが実行されます。

false に設定すると、Elastic Beanstalk が終了した後でサービスは実行されません。

このキーを省略すると、サービスの状態は変更されません。

enabled

(オプション) true に設定すると、起動時にサービスが自動的に開始されます。

false に設定すると、起動時にサービスが自動的に開始されません。

このキーを省略すると、このプロパティは変更されません。

files

ファイルのリストです。Elastic Beanstalk がファイルブロックによって直接変更した場合、サービスは再起動されます。

sources

ディレクトリのリストです。Elastic Beanstalk がこれらのディレクトリの 1 つにアーカイブを拡張した場合、サービスは再起動されます。

packages

パッケージ名のリストに対するパッケージマネージャのマップです。Elastic Beanstalk がこれらのパッケージの 1 つをインストールまたは更新した場合、サービスは再起動されます。

commands

コマンド名のリストです。Elastic Beanstalk が指定したコマンドを実行した場合、サービスは再起動されます。

services: 
  windows:
    myservice:
      enabled: true
      ensureRunning: true

コンテナコマンド

container_commands キーを使用して、アプリケーションのソースコードに影響するコマンドを実行します。コンテナコマンドは、アプリケーションおよびウェブサーバーが設定され、アプリケーションバージョンアーカイブが抽出された後、アプリケーションバージョンがデプロイされる前に実行されます。コンテナ以外のコマンドと他のカスタマイズオペレーションは、抽出されるアプリケーションソースコードの前に実行されます。

コンテナコマンドは、ソースコードがアプリケーションサーバーにデプロイされる前に抽出されたステージングディレクトリから実行されます。コンテナコマンドを使用してステージングディレクトリにあるソースコードに対して行うすべての変更は、ソースが最終的な場所にデプロイされる際に含まれます。

leader_only オプションを使用して、1 つのインスタンスでコマンドを実行するか、テストコマンドが true と評価される場合のみコマンドを実行するよう test を設定します。リーダー専用コンテナコマンドは、環境の作成およびデプロイ中のみ実行されます。他のコマンドやサーバーカスタマイズオペレーションは、インスタンスがプロビジョニングまたは更新されるたびに実行されます。リーダー専用コンテナコマンドは、AMI ID やインスタンスタイプの変更などの起動設定の変更によって実行されることはありません。

構文

container_commands:
  name of container_command:
    command: command to run

オプション

command

実行する文字列または文字列の配列。

env

(オプション) コマンドを実行する前に環境変数を設定し、既存の値を上書きします。

cwd

(オプション)作業ディレクトリです。デフォルトでは、これは解凍されたアプリケーションのステージングディレクトリです。

leader_only

(オプション) Elastic Beanstalk によって選択された単一のインスタンスでコマンドを実行するのみです。リーダー専用コンテナコマンドは、他のコンテナコマンドより前に実行されます。コマンドはリーダー専用または test を持つことができますが、両方はできません (leader_only が優先されます)。

test

(オプション) このコンテナコマンドを実行するために、true を返す必要があるテストコマンドを実行します。コマンドはリーダー専用または test を持つことができますが、両方はできません (leader_only が優先されます)。

ignoreErrors

(オプション) このコンテナコマンドが 0 (成功) 以外の値を返す場合は、デプロイに失敗しません。有効にするには、true に設定します。

waitAfterCompletion

(オプション) コマンドが完了してから次のコマンドを実行するまでに、待機する秒数。コマンドの完了後にシステムの再起動が必要な場合は、指定された秒数が経過した後にシステムが再起動します。コマンドの結果としてシステムコマンドの結果、Elastic Beanstalk は設定ファイル内のコマンドの後ろに復旧します。デフォルト値は 60 秒です。また、forever を指定することもできますが、別のコマンドを実行する前にシステムが再起動する必要があります。

次の例は、指定されたファイルに set コマンドの出力を保存します。Elastic Beanstalk は 1 つのインスタンスでコマンドを実行し、コマンドが完了すると、直後にインスタンスを再起動します。

container_commands:
  foo:
    command: set > c:\\myapp\\set.txt
    leader_only: true
    waitAfterCompletion: 0