翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Elastic Beanstalk アプリケーションソースバンドルを作成する
このトピックでは、ソースバンドル内の Elastic Beanstalk にアプリケーションソースファイルをアップロードする方法について説明します。ソースバンドルの要件、構造、および作成方法について説明します。
AWS Elastic Beanstalk コンソールを使用して新しいアプリケーション、またはアプリケーションバージョンをデプロイする場合、ソースバンドルにアプリケーション用のファイルをアップロードする必要があります。ソースバンドルは次の要件を満たしている必要があります。
-
単一の
ZIP
ファイルまたはWAR
ファイルで構成される (WAR
ファイル内に複数のZIP
ファイルを含めることが可能) -
500 MB 以下
-
親フォルダまたは最上位ディレクトリを含まない(サブディレクトリを除く)
定期的なバックグラウンドタスクを処理するワーカーアプリケーションをデプロイする場合には、アプリケーションソースバンドルに cron.yaml
ファイルも含める必要があります。詳細については、「定期的なタスク」を参照してください。
Elastic Beanstalk コマンドラインインターフェイス(EB CLI)、AWS Toolkit for Eclipse、または AWS Toolkit for Visual Studio を使用してアプリケーションをデプロイしている場合、ZIP または WAR ファイルが自動的に正しく構造化されます。詳細については、Elastic Beanstalk コマンドラインインターフェイス (EB CLI) の使用、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%)
これにより、Elastic Beanstalk 設定ファイルと、ピリオドで始まるその他のファイルとフォルダがアーカイブに含まれます。
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
セグメントがファイルパスに追加されません)。
このサンプルファイル構造はこのトピックを通して使用され、ファイルを圧縮する方法を示します。
.NET アプリケーションのソースバンドルの作成
Visual Studio を使用している場合は、AWS Toolkit for Visual Studio に含まれているデプロイツールを使用して、.NET アプリケーションを Elastic Beanstalk にデプロイできます。詳細については、「デプロイツールを使用して に Elastic Beanstalk NETアプリケーションをデプロイする」を参照してください。
.NET アプリケーションのソースバンドルを手動で作成する必要がある場合は、プロジェクトディレクトリを含む ZIP
ファイルを簡単に作成することはできません。Elastic Beanstalk へのデプロイに適したプロジェクトのウェブデプロイパッケージを作成する必要があります。デプロイパッケージを作成するために使用できる方法にはいくつかあります。
-
Visual Studio の Web 発行 ウィザードを使用してデプロイパッケージを作成します。詳細については、Visual Studio でウェブデプロイパッケージを作成する方法
を参照してください。 重要
ウェブデプロイパッケージを作成するとき、サイト名 は
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
で始める必要があります。
複数のアプリケーションまたは ASP.NET コアアプリケーションをデプロイする場合は、ソースバンドルのルートに、.ebextensions
フォルダをアプリケーションバンドルとマニフェストファイルに並べて置きます。
~/workspace/source-bundle/
|-- .ebextensions
| |-- environmentvariables.config
| `-- healthcheckurl.config
|-- AspNetCore101HelloWorld.zip
|-- AspNetCoreHelloWorld.zip
|-- aws-windows-deployment-manifest.json
`-- VS2015AspNetWebApiApp.zip
ソースバンドルをテストする
ソースバンドルを Elastic Beanstalk にアップロードする前に、ローカルでテストする必要があります。Elastic Beanstalk は基本的にファイルの抽出にコマンドラインを使用するため、GUI ツールではなくコマンドラインからテストを実行することをお勧めします。
解凍されたファイルが、新しい上位フォルダまたはディレクトリではなく、アーカイブ自体があるフォルダに表示されていることを確認します。