アプリケーションのデプロイ - AWS OpsWorks

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

アプリケーションのデプロイ

重要

AWS OpsWorks Stacks は新規顧客を受け付けなくなりました。既存のお客様は、2024 年 5 月 26 日までは OpsWorks コンソール、 API、 CLI、および CloudFormation リソースを通常どおり使用できますが、その時点でこれらのリソースは廃止されます。この移行に備えて、できるだけ早くスタックを AWS Systems Manager に移行することをおすすめします。詳細については、AWS OpsWorks Stacks サポート終了に関する FAQ および AWS Systems Manager アプリケーションマネージャへの AWS OpsWorks Stacks アプリケーションの移行 を参照してください。

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

新しいインスタンスを起動すると、Setup レシピの完了後、AWS OpsWorks スタックによってインスタンスの Deploy レシピが自動的に実行されます。ただし、アプリケーションを追加または変更するときには、オンラインインスタンスすべてに手動でデプロイする必要があります。アプリケーションをデプロイするには、Manage 権限または Deploy 権限が必要です。詳細については、「ユーザー許可の管理」を参照してください。

アプリケーションをデプロイするには
  1. [Apps] ページで、アプリケーションの [deploy] アクションをクリック します。

    注記

    ナビゲーションペインの [Deployments] をクリックしてアプリケーションをデプロイすることもできます。[Deployments & Commands] ページで、[Deploy an app] をクリックします。この操作を行う場合、デプロイするアプリケーションを選択することもできます。

  2. 次を指定します:

    • (必須) [Command:] を [deploy] に設定します(まだ選択されていない場合)。

    • (オプション) コメントを入力します。

  3. [Advanced >> (アドバンスト) ] をクリックして、カスタム JSON を指定します。 AWS OpsWorksスタックでは、 [stack configuration and deployment attributes (スタック設定およびデプロイ属性) ] のセットがノードオブジェクトに追加されます。deploy 属性にはデプロイの詳細が含まれており、Deploy レシピでこれらの属性を使用して、インストールと設定を処理できます。Linux スタックの場合、カスタム JSON フィールドを使用して、AWS OpsWorksスタックのデフォルト設定を上書きしたり、カスタム設定をカスタムレシピに渡したりすることができます。カスタム JSON の使用方法の詳細については、「カスタム JSON の使用」を参照してください。

    注記

    カスタム JSON をここで指定する場合は、このデプロイのみのスタック設定およびデプロイ属性に追加されます。カスタム JSON を永続的に追加する場合は、スタックに追加する必要があります。カスタム JSON は 120 KB に制限されています。さらに容量が必要な場合は、 Amazon S3 でデータの一部を保存することをお勧めします。カスタムレシピで AWS CLI または AWS SDK for Ruby を使用して、バケットからインスタンスにデータをダウンロードできます。例については、「 SDK for Ruby を使用する」を参照してください。

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

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

  5. [Deploy] をクリックして、指定したインスタンスでデプロイレシピを実行します。これにより、[Deployment] ページが表示されます。プロセスが完了すると、AWS OpsWorks スタックは、デプロイの成功を示すためにアプリケーションに緑のチェックマークを表示します。デプロイが失敗した場合、AWS OpsWorks スタックではアプリケーションに赤の X が表示されます。その場合、[Deployments] (デプロイメント) ページに移動し、デプロイのログで詳細を確認できます。

注記

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>

他のデプロイコマンド

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

Undeploy

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

ロールバック

以前にデプロイされたアプリケーションのバージョンを復元します。たとえば、アプリケーションを 3 回デプロイした後、[Rollback] を実行した場合、サーバーは 2 回目のデプロイからアプリケーションを提供します。再度 [Rollback] を実行すると、サーバーは最初のデプロイからアプリケーションを提供します。デフォルトの場合、AWS 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] スタックコマンドのカスタマイズされたバージョンです。これらのコマンドは、指定されたインスタンスでタスクを実行する一連のレシピを実行します。

  • これらのコマンドはライフサイクルイベントをトリガーしないため、カスタムコードを実行するためにフックすることはできません。

  • これらのコマンドは、組み込みの [application server layers] (アプリケーションサーバーレイヤー) に対してのみ機能します。

    特に、これらのコマンドはカスタムレイヤーに影響を及ぼしません。アプリケーションサーバーがサポートされている場合でも同様です。カスタムレイヤーでサーバーを起動、停止、または再起動するには、これらのタスクを実行するカスタムレシピを実装し、[Execute Recipes stack command] (レシピスタックコマンドの実行) を使用してカスタムレシピを実行する必要があります。カスタムレシピを実装およびインストールする方法の詳細については、「クックブックとレシピ」を参照してください。