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

アプリケーションソースバンドルを作成する

AWS Elastic Beanstalk コンソールを使用して新しいアプリケーション、またはアプリケーションバージョンをデプロイする場合、ソースバンドルをアップロードする必要があります。ソースバンドルは次の要件を満たしている必要があります。

  • 単一の ZIP ファイルまたは WAR ファイルで構成される (ZIP ファイル内に複数の WAR ファイルを含めることが可能)

  • 512 MB 以下

  • 親フォルダーまたは最上位ディレクトリを含まない(サブディレクトリを除く)

定期的なバックグラウンドタスクを処理するワーカーアプリケーションをデプロイする場合には、アプリケーションソースバンドルに cron.yaml ファイルも含める必要があります。 詳細については、「定期的なタスク」を参照してください。

Elastic Beanstalk コマンドラインインターフェイス(EB CLI)、AWS Toolkit for Eclipse、または AWS Toolkit for Visual Studio を使用してアプリケーションをデプロイしている場合、ZIP または WAR ファイルが自動的に正しく構造化されます。詳細については、「Elastic Beanstalk コマンドラインインターフェイス(EB CLI)」、「AWS Elastic Beanstalk で Java アプリケーションを作成してデプロイする」、および「AWS Toolkit for Visual Studio」を参照してください。

コマンドラインからソースバンドルを作成する

zip コマンドを使用してソースバンドルを作成します。非表示のファイルとフォルダを含めるには、次のようなパターンを使用します。

~/myapp$ zip ../myapp.zip -r * .[^.]*
  adding: app.js (deflated 63%)
  adding: index.js (deflated 44%)
  adding: manual.js (deflated 64%)
  adding: package.json (deflated 40%)
  adding: restify.js (deflated 85%)
  adding: .ebextensions/ (stored 0%)
  adding: .ebextensions/xray.config (stored 0%)

これにより、設定ファイルと、ピリオドで始まるその他のファイルとフォルダがアーカイブに含まれます。

Tomcat ウェブアプリケーションの場合は、jar を使用してウェブアーカイブを作成します。

~/myapp$ jar -cvf myapp.war .

上記のコマンドには、ソースバンドルのサイズを不要に増やす可能性のある非表示のファイルが含まれます。より詳細なコントロールのためには、より詳細なファイルパターンを使用するか、Git でソースバンドルを作成します。

Git を使用してソースバンドルを作成する

Git を使用してアプリケーションのソースコードを管理している場合、git archive コマンドを使用してソースバンドルを作成します。

$ git archive -v -o myapp.zip --format=zip HEAD

git archive には、Git に保存されているファイルのみが含まれ、無視されたファイルや Git ファイルは除外されます。これにより、ソースバンドルをできるだけ小さくできます。詳細については、git-archive のマニュアルのページを参照してください。

Mac OS X Finder または Windows エクスプローラでファイルを圧縮する

Mac OS X Finder または Windows エクスプローラで ZIP ファイルを作成する場合、親フォルダーではなく、ファイルとサブフォルダーを圧縮していることを確認します。

注記

Mac OS X および Linux ベースのオペレーティング システムのグラフィカルユーザーインターフェイス(GUI)は、ピリオド(.)で始まる名前のファイルとフォルダーを表示しません。ZIP ファイルに .ebextensions などの隠しフォルダを含める必要がある場合、アプリケーションの圧縮に、GUI ではなくコマンドラインインターフェイスを使用します。Mac OS X または Linux ベースのオペレーティング システムで ZIP ファイルを作成するコマンドラインの手順については、「コマンドラインからソースバンドルを作成する」を参照してください。

myapp という Python プロジェクトフォルダーがあり、そこに次のファイルとサブフォルダーが含まれるとします。

myapplication.py
README.md
static/
static/css
static/css/styles.css
static/img
static/img/favicon.ico
static/img/logo.png
templates/
templates/base.html
templates/index.html

上記の要件一覧に示すように、ソースバンドルは親フォルダーなしで圧縮し、解凍後の構造には余分な上位レベルのディレクトリが含まれないようにする必要があります。この例では、ファイルの圧縮時に myapp フォルダーは作成されません(または、コマンドラインで myapp セグメントがファイルパスに追加されません)。

このサンプルファイル構造はこのトピックを通して使用され、ファイルを圧縮する方法を示します。

Mac OS X Finder でファイルを圧縮するには

  1. 最上位のプロジェクトフォルダーを開き、そこにあるすべてのファイルとサブフォルダーを選択します。最上位フォルダー自体は選択しないでください。

     Mac OS X Finder で選択したファイル
  2. 選択したファイルを右クリックし、[Compress X items(X 項目を圧縮)] を選択します。ここで「X」は選択したファイルとサブフォルダーの数を示します。

     Mac OS X Finder でファイルを圧縮する

Windows エクスプローラでファイルを圧縮するには

  1. 最上位のプロジェクトフォルダーを開き、そこにあるすべてのファイルとサブフォルダーを選択します。最上位フォルダー自体は選択しないでください。

     Windows エクスプローラで選択したファイル
  2. 選択したファイルを右クリックし、[Send to(送る)] を選択して、[Compressed (zipped) folder(圧縮(zip 形式)フォルダー)] を選択します。

     Windows エクスプローラでファイルを圧縮する

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

Visual Studio を使用する場合は、AWS Toolkit for Visual Studio に含まれているデプロイツールを使用して .NET アプリケーションを Elastic Beanstalk にデプロイできます。詳細については、「デプロイツールを使用した、.NET 内での Elastic Beanstalk アプリケーションの配置」を参照してください。

.NET アプリケーションのソースバンドルを手動で作成する必要がある場合は、プロジェクトディレクトリを含む ZIP ファイルを簡単に作成することはできません。Elastic Beanstalk へのデプロイに適したプロジェクトのウェブデプロイパッケージを作成する必要があります。デプロイパッケージを作成するために使用できる方法にはいくつかあります。

  • Visual Studio の Web 発行ウィザードを使用してデプロイパッケージを作成します。詳細については、「Visual Studio でウェブデプロイパッケージを作成する方法」を参照してください。

    重要

    ウェブデプロイパッケージを作成する場合、[Site name] は Default Web Site で始める必要があります。

  • .NET プロジェクトを用意している場合、次の例に示すように msbuild コマンドを使用してデプロイパッケージを作成できます。

    重要

    DeployIisAppPath パラメータは Default Web Site で始める必要があります。

    C:/> msbuild <web_app>.csproj /t:Package /p:DeployIisAppPath="Default Web Site"
  • ウェブサイトプロジェクトを用意している場合、IIS ウェブデプロイツールを使用してデプロイパッケージを作成します。詳細については、Packaging and Restoring a Web siteを参照してください。

    重要

    apphostconfig パラメータは Default Web Site で始める必要があります。

ソースバンドルをテストする

ソースバンドルを Elastic Beanstalk にアップロードする前に、ローカルでテストする必要があります。Elastic Beanstalk は基本的にファイルの抽出にコマンドラインを使用するため、GUI ツールではなくコマンドラインからテストを実行することをお勧めします。

Mac OS X または Linux でのファイル抽出をテストするには

  1. ターミナルウィンドウ(Mac OS X)を開くか Linux サーバーに接続します。ソースバンドルを含むディレクトリに移動します。

  2. unzip または jar xf コマンドを使用して、アーカイブを解凍します。

  3. 解凍されたファイルが、新しい上位フォルダーまたはディレクトリではなく、アーカイブ自体があるフォルダーに表示されていることを確認します。

    注記

    Mac OS X Finder を使用してアーカイブを圧縮する場合、アーカイブ自体を構成した方法に関係なく、新しい上位フォルダーが作成されます。最適な方法として、コマンドラインを使用します。

Windows でのファイル抽出をテストするには

  1. 圧縮ファイルをコマンドラインから抽出できるプログラムをダウンロードまたはインストールします。たとえば、無料の unzip.exe プログラムを http://stahlforce.com/dev/index.php?tool=zipunzip からダウンロードできます。

  2. 必要であれば、ソースバンドルのあるディレクトリに実行可能ファイルをコピーします。システム全体におよぶツールをインストールしている場合は、このステップをスキップできます。

  3. 適切なコマンドを使用して、アーカイブを解凍します。ステップ 1 のリンクを使用して unzip.exe をダウンロードした場合は、コマンドは unzip <archive-name> となります。

  4. 解凍されたファイルが、新しい上位フォルダーまたはディレクトリではなく、アーカイブ自体があるフォルダーに表示されていることを確認します。