AWS OpsWorks
ユーザーガイド (API バージョン 2013-02-18)

AWS OpsWorks Stacks のライフサイクルイベント

各 Layer には、5 つの一連のライフサイクルイベントがあり、それぞれのイベントに、その Layer に固有の一連のレシピが関連付けられます。レイヤーのインスタンスでイベントが発生すると、一連の適切なレシピが AWS OpsWorks スタックによって自動的に実行されます。イベントに対応するカスタム応答を行うには、カスタムレシピを実装し、Layer ごとの目的のイベントにそれらを割り当てます。AWS OpsWorks スタックは、イベントの組み込みレシピの後で実行されます。

Setup

このイベントは、開始されたインスタンスの起動が終了した後で発生します。Setup スタックコマンドを使用して、Setup イベントを手動でトリガーすることもできます。対応するレイヤーに基づいてインスタンスをセットアップするレシピが AWS OpsWorks Stacks によって実行されます。たとえば、そのインスタンスが Rails アプリケーションサーバー Layer に従属している場合、Apache、Ruby Enterprise Edition、Passenger、Ruby on Rails が、Setup レシピによってインストールされます。

注記

Setup イベントは、インスタンスを停止中の状態にします。Setup ライフサイクルイベントの実行時はインスタンスが オンライン 状態でないため、Setup イベントを実行するインスタンスはロードバランサーから削除されます。

Configure

このイベントは、以下のいずれかが発生したときに、スタックのすべてのインスタンスで発生します。

たとえば、スタックにインスタンス A、B、C があるとき、新しいインスタンス D を開始するとします。D のセットアップレシピの実行が完了した後、AWS OpsWorks スタックによって Configure イベントが A、B、C、D でトリガーされます。さらに、その後 A を停止した場合、B、C、D で Configure イベントが AWS OpsWorks スタックによってトリガーされます。AWS OpsWorks スタックは、Configure イベントへの応答として、各レイヤーの Configure レシピを実行します。このレシピによって、インスタンスの設定が更新され、一連の最新のオンラインインスタンスが反映されます。Configure イベントは、設定ファイルを再生成する最適なタイミングと言えます。たとえば、HAProxy Configure レシピは、ロードバランサーを再構成して、一連のオンラインアプリケーションサーバーインスタンスにおける変更をすべて反映します。

Configure スタックコマンドを使用して、Configure イベントを手動でトリガーすることもできます。

Deploy

このイベントは、Deploy コマンドを実行したときに発生します。通常、一連のアプリケーションサーバーインスタンスにアプリケーションをデプロイする目的でこのコマンドが実行されます。アプリケーションとその関連ファイルをリポジトリから Layer のインスタンスにデプロイするレシピがインスタンスによって実行されます。たとえば、Rails Application Server インスタンスの場合、Deploy レシピは、指定された Ruby アプリケーションをチェックアウトし、Phusion Passenger に対して、それを再ロードするように伝えます。Deploy を他のインスタンスで実行することもできます。たとえば、新しくデプロイされたアプリケーションに応じてそのインスタンスの設定を更新することができます。

注記

Setup には Deploy が含まれます。セットアップの完了後に Deploy レシピが実行されます。

Undeploy

このイベントは、アプリケーションを削除したとき、つまり、Undeploy コマンドを実行して、一連のアプリケーションサーバーインスタンスからアプリケーションを削除したときに発生します。指定したインスタンスによってレシピが実行され、すべてのアプリケーションバージョンが削除されて、必要なクリーンアップ処理が実行されます。

Shutdown

このイベントは、インスタンスをシャットダウンするよう AWS OpsWorks スタックに指示した後、関連する Amazon EC2 インスタンスが実際に終了する前に発生します。サービスのシャットダウンなど、各種クリーンアップタスクを行うレシピが AWS OpsWorks スタックによって実行されます。

Elastic Load Balancing ロードバランサーを Layer にアタッチし、Connection Draining のサポートを有効にした場合、AWS OpsWorks スタックは Connection Draining が完了するまで待機した後、Shutdown イベントをトリガーします。

Shutdown イベントをトリガーした後、AWS OpsWorks スタックは Shutdown レシピがタスクを実行するために指定された時間だけ待機してから、Amazon EC2 インスタンスを停止または終了します。デフォルトの Shutdown タイムアウト値は 120 秒です。Shutdown レシピでさらに時間が必要な場合は、Layer 設定を編集してタイムアウト値を変更できます。インスタンス Shutdown の詳細については、「インスタンスの停止」を参照してください。

注記

インスタンスを再起動しても、ライフサイクルイベントはトリガーされません。

アプリケーションコマンド Deploy と Undeploy の詳細については、「アプリケーションのデプロイ」を参照してください。

起動されたインスタンスの起動が終了した後の、残りの起動シーケンスは次のとおりです。

  1. AWS OpsWorks スタックでは、インスタンスの組み込みの Setup レシピを実行した後で、カスタム Setup レシピを実行します。

  2. AWS OpsWorks スタックでは、インスタンスの組み込みの Deploy レシピを実行した後で、カスタム Deploy レシピを実行します。

    インスタンスがオンライン状態になります。

  3. AWS OpsWorks スタックによって、新しく起動されたインスタンスを含む、スタックのすべてのインスタンスに対して Configure イベントがトリガーされます。

    AWS OpsWorks スタックでは、インスタンスの組み込みの Configure レシピを実行した後で、カスタム Configure レシピを実行します。

注記

特定のインスタンスで発生したライフサイクルイベントを確認するには、[Instances] ページにアクセスし、そのインスタンスの名前をクリックして対応する詳細ページを開きます。ページ最下部の [Logs] セクションにイベントが一覧表示されます。[Log] 列で [show] をクリックすると、イベントの Chef ログを調べることができます。イベントの処理方法についての詳細な情報 (実行されたレシピを含む) が表示されます。Chef ログの解釈の詳細については、「Chef ログ」を参照してください。

個々のインスタンスには、ライフサイクルイベントごとに、現在のスタックの状態と (Deploy イベントの場合) デプロイに関するさまざまな情報を含んだ一連のスタック設定とデプロイメント属性が AWS OpsWorks スタックによりインストールされます。属性には、利用可能なインスタンスとその IP アドレスなどの情報が含まれています。詳細については、「スタック設定およびデプロイメント属性」を参照してください。

注記

多数のインスタンスを同時に開始または停止すると、短時間のうちに大量の Configure イベントが生成されます。不要な処理を避けるために、AWS OpsWorks スタックは、最後のイベントにのみ応答します。変更範囲全体についてスタックのインスタンスを更新するために必要な情報はすべて、そのイベントのスタック設定とデプロイメント属性に格納されています。したがって、先行する Configure イベントについては、処理を省略することができます。未処理の Configure イベントは、AWS OpsWorks スタックによって superseded と分類されます。