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

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

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

重要

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

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

Setup

このイベントは、開始されたインスタンスの起動が終了した後で発生します。Setup stack command (設定スタックコマンド) を使用して、Setup イベントを手動でトリガーすることもできます。AWS OpsWorksStacks によって対応するレイヤーに基づいてインスタンスをセットアップするレシピが 実行されます。例えば、そのインスタンスが Rails アプリケーションサーバーレイヤーに属している場合、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 コマンドを実行したときに発生します。通常、一連のアプリケーションサーバーインスタンスにアプリケーションをデプロイする目的でこのコマンドが実行されます。アプリケーションとその関連ファイルをリポジトリからレイヤーのインスタンスにデプロイするレシピがインスタンスによって実行されます。例えば、Rails Application Server インスタンスの場合、Deploy レシピは、指定された Ruby アプリケーションをチェックアウトし、Phusion Passenger に対して、それを再ロードするように伝えます。Deploy を他のインスタンスで実行することもできます。たとえば、新しくデプロイされたアプリケーションに応じてそのインスタンスの設定を更新することができます。

注記

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

Undeploy

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

Shutdown

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

Elastic Load Balancingのロードバランサーをレイヤーに接続し、コネクションドレインのサポートを有効にしている場合、AWS OpsWorks Stacks はコネクションドレインが完了するまで待ってから Shutdown イベントをトリガーします。

Shutdown イベントをトリガーした後、AWS OpsWorks スタックは Shutdown レシピがタスクを実行するために指定された時間だけ待機してから、Amazon EC2 インスタンスを停止または終了します。デフォルトの Shutdown タイムアウト値は 120 秒です。Shutdown レシピでさらに時間が必要な場合は、レイヤー設定を編集してタイムアウト値を変更できます。インスタンス 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 イベントについては、処理を省略することができます。AWS OpsWorksスタックによって、未処理の Configure イベントは、[superseded] として分類されます。