

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アプリケーションのデプロイ
<a name="workingapps-deploying"></a>

**重要**  
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、[AWS re:Post](https://repost.aws/) または[AWS プレミアムサポート](https://aws.amazon.com/support)を通じて AWS サポート チームにお問い合わせください。

デプロイの主な目的は、アプリケーションサーバーインスタンスにアプリケーションコードと関連ファイルをデプロイすることです。デプロイ操作は、インスタンスのレイヤーによって決まる各インスタンスのデプロイレシピによって処理されます。

インスタンスを起動すると、Setup レシピが完了すると、 OpsWorks Stacks は自動的にインスタンスの Deploy レシピを実行します。ただし、アプリケーションを追加または変更するときには、オンラインインスタンスすべてに手動でデプロイする必要があります。アプリケーションをデプロイするには、Manage 権限または Deploy 権限が必要です。詳細については、「[ユーザー許可の管理](opsworks-security-users.md)」を参照してください。

**アプリケーションをデプロイするには**

1. [**Apps**] ページで、アプリケーションの [**deploy**] アクションをクリック します。  
![\[Apps page showing SimplePHP app with deploy, edit, and delete action options.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/apps_with_content.png)
**注記**  
ナビゲーションペインの [**Deployments**] をクリックしてアプリケーションをデプロイすることもできます。[**Deployments & Commands**] ページで、[**Deploy an app**] をクリックします。この操作を行う場合、デプロイするアプリケーションを選択することもできます。

1. 次を指定します:
   + (必須) [**Command:**] を [**deploy**] に設定します（まだ選択されていない場合)。
   + (オプション) コメントを入力します。

1. **Advanced >>** をクリックしてカスタム JSON を指定します。 OpsWorks スタックは、一連の[スタック設定とデプロイ属性](workingcookbook-json.md)をノードオブジェクトに追加します。`deploy` 属性にはデプロイの詳細が含まれており、Deploy レシピでこれらの属性を使用して、インストールと設定を処理できます。Linux スタックでは、カスタム JSON フィールドを使用して[デフォルトの OpsWorks スタック設定を上書き](workingcookbook-json-override.md)したり、カスタム設定をカスタムレシピに渡すことができます。カスタム JSON の使用方法の詳細については、「[カスタム JSON の使用](workingstacks-json.md)」を参照してください。
**注記**  
カスタム JSON をここで指定する場合は、このデプロイのみのスタック設定およびデプロイ属性に追加されます。カスタム JSON を永続的に追加する場合は、[スタックに追加](workingstacks-json.md)する必要があります。カスタム JSON は 120 KB に制限されています。さらに容量が必要な場合は、 Amazon S3 でデータの一部を保存することをお勧めします。カスタムレシピで AWS CLI または [AWS SDK for Ruby](https://aws.amazon.com/documentation/sdk-for-ruby/) を使用して、バケットからインスタンスにデータをダウンロードできます。例については、[ SDK for Ruby を使用する](cookbooks-101-opsworks-s3.md)を参照してください。

1. [**Instances**] で、[**Advanced >>**] をクリックし、デプロイコマンドを実行するインスタンスを指定します。

   デプロイコマンドは Deploy イベントをトリガーし、これによって選択したインスタンスでデプロイレシピが実行されます。関連付けられたアプリケーションサーバーのデプロイレシピは、リポジトリからコードと関連ファイルをダウンロードし、インスタンスにインストールします。したがって、ユーザーは通常、関連付けられたアプリケーションサーバーのインスタンスをすべて選択します。ただし、他のインスタンスタイプでは、新しいアプリケーションに対応するように設定の変更を要求する場合があります。そのため、通常、それらのインスタンスでもデプロイレシピを実行することをお勧めします。それらのレシピは、必要に応じて設定を更新しますが、アプリケーションのファイルはインストールしません。recipe の詳細については、「[クックブックとレシピ](workingcookbook.md)」を参照してください。

1. [**Deploy**] をクリックして、指定したインスタンスでデプロイレシピを実行します。これにより、[Deployment] ページが表示されます。プロセスが完了すると、 OpsWorks Stacks はデプロイが成功したことを示す緑色のチェックでアプリをマークします。デプロイが失敗した場合、 OpsWorks スタックはアプリを赤い X でマークします。その場合、**デプロイ**ページに移動し、デプロイログを調べて詳細を確認できます。  
![\[Deployment status page showing successful deployment of PHPTestApp with details.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/deployed_app.png)

**注記**  
JPS アプリケーションの更新プログラムをデプロイする際に、Tomcat は更新プログラムを認識せず、アプリケーションの既存のバージョンを継続して実行する可能性があります。これが発生するのは、JSP ページのみが含まれている .zip ファイルとしてアプリケーションをデプロイする場合などです。Tomcat が、デプロイされた最新バージョンを確実に実行するようにするには、プロジェクトのルートディレクトリに、`web.xml` ファイルを含む WEB-INF ディレクトリを含める必要があります。`web.xml` ファイルはさまざまなコンテンツを含むことができますが、Tomcat が確実に更新プログラムを認識し、現在デプロイされているアプリケーションのバージョンを実行するようにするには、次のコンテンツで十分です。各更新プログラムのバージョンを変更する必要はありません。Tomcat は、バージョンが変更されていない場合でも更新プログラムを認識します。  

```
<context-param>
  <param-name>appVersion</param-name>
  <param-value>0.1</param-value>
</context-param>
```

## 他のデプロイコマンド
<a name="workingapps-deploying-other"></a>

[**Deploy app**] ページには、アプリケーションと関連サーバーを管理するためのその他のコマンドがいくつか含まれています。次のコマンドのうち、Chef 12 スタックのアプリで利用できるのは **Undeploy** のみです。

**Undeploy**  
Undeploy [ライフサイクルイベント](workingcookbook-events.md)をトリガーし、指定されたインスタンスからアプリケーションのすべてのバージョンを削除するデプロイ解除レシピを実行します。

**ロールバック**  
以前にデプロイされたアプリケーションのバージョンを復元します。たとえば、アプリケーションを 3 回デプロイした後、[**Rollback**] を実行した場合、サーバーは 2 回目のデプロイからアプリケーションを提供します。再度 [**Rollback**] を実行すると、サーバーは最初のデプロイからアプリケーションを提供します。デフォルトでは、 OpsWorks スタックには最新の 5 つのデプロイが保存されるため、最大 4 つのバージョンをロールバックできます。保存されているバージョンの数を超えた場合、このコマンドは失敗し、最も古いバージョンのままになります。このコマンドは、Chef 12 スタックでは使用できません。

**Start Web Server**  
指定されたインスタンスでアプリケーションサーバーを起動するレシピを実行します。このコマンドは、Chef 12 スタックでは使用できません。

**Stop Web Server**  
指定されたインスタンスでアプリケーションサーバーを停止するレシピを実行します。このコマンドは、Chef 12 スタックでは使用できません。

**Restart Web Server**  
指定されたインスタンスでアプリケーションサーバーを再起動するレシピを実行します。このコマンドは、Chef 12 スタックでは使用できません。

**重要**  
[**Start Web Server**]、[**Stop Web Server**]、[**Restart Web Server**]、および [**Rollback**] は、基本的には [[Execute Recipes] スタックコマンド](workingstacks-commands.md)のカスタマイズされたバージョンです。これらのコマンドは、指定されたインスタンスでタスクを実行する一連のレシピを実行します。  
これらのコマンドはライフサイクルイベントをトリガーしないため、カスタムコードを実行するためにフックすることはできません。
これらのコマンドは、組み込みの [[application server layers](workinglayers-servers.md)] (アプリケーションサーバーレイヤー) に対してのみ機能します。  
特に、これらのコマンドはカスタムレイヤーに影響を及ぼしません。アプリケーションサーバーがサポートされている場合でも同様です。カスタムレイヤーでサーバーを起動、停止、または再起動するには、これらのタスクを実行するカスタムレシピを実装し、[[Execute Recipes stack command](workingstacks-commands.md)] (レシピスタックコマンドの実行) を使用してカスタムレシピを実行する必要があります。カスタムレシピを実装およびインストールする方法の詳細については、「[クックブックとレシピ](workingcookbook.md)」を参照してください。