登録されたインスタンスのライフサイクル - 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 アプリケーションの移行」を参照してください。

注記

この機能は Linux スタックでのみサポートされています。

登録されたインスタンスのライフサイクルは、エージェントがインストールおよび実行されると開始します。この時点で、スタックにインスタンスを登録するように AWS OpsWorks スタックに指示されます。次の図は、状態とライフサイクルの主な要素をまとめたものです。

各状態はインスタンスのステータスに対応します。エッジは次の AWS OpsWorks スタックコマンドの 1 つを表します。詳細については、以降のセクションで説明します。

  • 設定 - このコマンドは Setup ライフサイクルイベントに対応し、インスタンスの Setup レシピを実行します。

  • 設定 - このコマンドは Configure ライフサイクルイベントに対応します。

    このイベントは、インスタンスがオンライン状態に移行したときとオンライン状態から移行したときに、AWS OpsWorks スタックによってスタックのすべてのインスタンスでトリガーされます。インスタンスでは Configure レシピが実行され、これにより新しいインスタンスに合わせて必要な変更が加えられます。

  • シャットダウン - このコマンドは Shutdown ライフサイクルイベントに対応し、インスタンスの Shutdown レシピを実行します。

    これらのレシピはサービスのシャットダウンなどのタスクを実行しますが、インスタンスは停止しません。

  • 登録解除 - このコマンドはインスタンスの登録を解除しますが、ライフサイクルイベントには対応しません。

注記

この図は簡略化されており、登録解除中状態と削除済み状態は示されていません。インスタンスの登録解除は、図に示したすべての状態で実行できます。登録を解除すると、Deregister コマンドがインスタンスに送信され、インスタンスが登録解除中状態に移行します。

  • オンラインインスタンスの登録を解除すると、AWS OpsWorks スタックによってスタックの残りのインスタンスに Configure コマンドが送信され、インスタンスがオフラインに設定されることが通知されます。

  • Deregister コマンドが認識されると、インスタンスは実行中のまま削除済み状態に移行し、スタックの一部ではなくなります。インスタンスを再度スタックに組み込むには、再登録する必要があります。

を登録する

エージェントから登録リクエストが送信されると、AWS OpsWorks スタックによって Setup コマンドが送信されてインスタンスのライフサイクルが開始され、インスタンスが登録中状態に移行します。インスタンスで Setup コマンドが認識されると、インスタンスはセットアップ実行中状態に移行します。

セットアップ実行中

セットアップ実行中状態では、インスタンスの Setup レシピが実行されます。セットアップの挙動は、セットアップ前の状態に応じて変化します。

注記

セットアップ実行中状態にあるインスタンスの割り当てを解除すると、AWS OpsWorks Stacks によって Shutdown コマンドが送信され、インスタンスの Shutdown レシピが実行されますが、インスタンスは停止しません。インスタンスは割り当て解除中状態に移行します。

を登録する

登録処理中には、登録されたインスタンスを表す AWS OpsWorks Stacks インスタンスがスタック内に作成され、インスタンスで一連のコア Setup レシピが実行されます。

初期セットアップによって実施される主な変更の 1 つは、インスタンスのホストファイルの上書きです。インスタンスを登録すると、ユーザー管理が AWS OpsWorks スタックに引き継がれます。&OPS; スタックには、SSH ログインアクセス権限を制御する独自のホストファイルが必要です。また、初期セットアップでは複数のファイルが作成および変更されるほか、Ubuntu システムではパッケージのソースが変更されて一連のパッケージがインストールされます。詳細については、「初期セットアップ設定の変更」を参照してください。

登録中には、前提として作成した IAM ユーザーにアタッチされているアクセス権限の一部分である、IAM AttachUserPolicy が呼び出されます。AttachUserPolicy が存在しない場合 (大半の場合、旧リリースの AWS CLI が起動されていることが原因)、代わりに PutUserPolicy が呼び出されます。

注記

整合性を確保するために、AWS OpsWorks スタックは、すべてのコアセットアップレシピを実行します。ただし、一部のレシピでは、インスタンスが 1 つ以上のレイヤーに割り当てられている場合にのみタスクの一部またはすべてを実行するため、初期セットアップに影響するとは限りません。

  • セットアップが成功すると、インスタンスは登録済み状態に移行します。

  • セットアップが失敗すると、インスタンスはセットアップ失敗状態に移行します。

割り当て中

レイヤーには少なくとも 1 つのインスタンスが割り当てられます。AWS OpsWorks スタックは、レイヤーの Setup イベントに割り当てられたカスタムレシピも含めて、各レイヤーの Setup レシピを実行します。

  • セットアップが成功すると、インスタンスがオンライン状態に移行し、AWS OpsWorks スタックによってスタック内のすべてのインスタンスで Configure ライフサイクルイベントがトリガーされ、新しいインスタンスに通知されます。

  • セットアップが失敗すると、インスタンスはセットアップ失敗状態に移行します。

注記

このセットアッププロセスは 2 回目のコア レシピを実行します。ただし、Chef のレシピはべき等であるため、すでに実行されているタスクは繰り返されません。

セットアップ失敗

割り当て中状態にあるインスタンスのセットアッププロセスが失敗した場合は、インスタンスの Setup レシピを Setup スタックコマンドを使用して手動で再実行できます。

  • セットアップが成功すると、割り当てられているインスタンスは オンライン 状態に移行し、AWS OpsWorks スタックはそのスタック内のすべてのインスタンスに対して Configure ライフサイクルイベントをトリガーして、新しいインスタンスについて通知します。

  • セットアップの試行が失敗すると、インスタンスはセットアップ失敗状態に戻ります。

登録済み

登録済み状態のインスタンスはスタックの一部であり、AWS OpsWorks スタックによって管理されますが、レイヤーには割り当てられません。これらのインスタンスは永続的にこの状態を維持できます。

インスタンスを複数のレイヤーに割り当てている場合、AWS OpsWorks スタックは Setup コマンドをインスタンスに送信し、そのインスタンスは 割り当て中 状態に移行します。

割り当て中

インスタンスで Setup コマンドが認識されると、インスタンスはセットアップ実行中状態に移行します。

割り当て中状態にあるインスタンスの割り当てを解除すると、AWS OpsWorks スタックによってセットアッププロセスが中断され、Shutdown コマンドが送信されます。インスタンスは割り当て解除中状態に移行します。

オンライン

インスタンスは 1 つ以上の レイヤーのメンバーであり、通常の AWS OpsWorks スタックインスタンスと同様に処理されます。このインスタンスは永続的にこの状態を維持できます。

オンライン状態にあるインスタンスの割り当てを解除すると、AWS OpsWorks スタックによってそのインスタンスに Shutdown コマンドが送信され、スタック内の残りのインスタンスに Configure コマンドが送信されます。インスタンスは割り当て解除中状態に移行します。

セットアップ失敗

Setup コマンドが失敗しました。

割り当て解除中

Shutdown コマンドを実行すると、インスタンスはすべてのレイヤーから割り当てが解除され、登録済み状態に戻ります。

注記

インスタンスが複数のレイヤーに割り当てられている場合、割り当ての解除はすべてのレイヤーに適用されます。割り当てられたレイヤーの一部のみの割り当てを解除することはできません。レイヤーの割り当てを変更するには、一度インスタンスの割り当てを解除してから希望のレイヤーに再度割り当てる必要があります。

初期セットアップ設定の変更

初期セットアップでは、登録されたすべてのインスタンスで次のファイルとディレクトリが作成または変更されます。

作成されたファイル
/etc/apt/apt.conf.d/99-no-pipelining /etc/aws/ /etc/init.d/opsworks-agent /etc/motd /etc/motd.opsworks-static /etc/sudoers.d/opsworks /etc/sudoers.d/opsworks-agent /etc/sysctl.d/70-opsworks-defaults.conf /opt/aws/opsworks/ /usr/sbin/opsworks-agent-cli /var/lib/aws/ /var/log/aws/ /vol/
変更されたファイル
/etc/apt/apt.conf.d/99-no-pipelining /etc/crontab /etc/default/monit /etc/group /etc/gshadow /etc/monit/monitrc /etc/passwd /etc/security/limits.conf (removing limits only for EC2 micro instances) /etc/shadow /etc/sudoers

また、初期セットアップでは Amazon EC2 のマイクロインスタンスにスワップファイルが作成されます。

初期セットアップにより、Ubuntu システムに対して次の変更が加えられます。

パッケージソース

初期セットアップでは、パッケージソースが次のように変更されます。

  • deb http://archive.ubuntu.com/ubuntu/ ${code_name} main universe

    To: deb-src http://archive.ubuntu.com/ubuntu/ ${code_name} main universe

  • deb http://archive.ubuntu.com/ubuntu/ ${code_name}-updates main universe

    To: deb-src http://archive.ubuntu.com/ubuntu/ ${code_name}-updates main universe

  • deb http://archive.ubuntu.com/ubuntu ${code_name}-security main universe

    To: deb-src http://archive.ubuntu.com/ubuntu ${code_name}-security main universe

  • deb http://archive.ubuntu.com/ubuntu/ ${code_name}-updates multiverse

    To: deb-src http://archive.ubuntu.com/ubuntu/ ${code_name}-updates multiverse

  • deb http://archive.ubuntu.com/ubuntu ${code_name}-security multiverse

    To: deb-src http://archive.ubuntu.com/ubuntu ${code_name}-security multiverse

  • deb http://archive.ubuntu.com/ubuntu/ ${code_name} multiverse

    To: deb-src http://archive.ubuntu.com/ubuntu/ ${code_name} multiverse

  • deb http://security.ubuntu.com/ubuntu ${code_name}-security multiverse

    To: deb-src http://security.ubuntu.com/ubuntu ${code_name}-security multiverse

パッケージ

初期セットアップにより landscape がアンインストールされ、次のパッケージがインストールされます。

autofs libicu-dev libopenssl-ruby
libssl-dev libxml2-dev libxslt-dev
libyaml-dev monit ntpd
procps ruby ruby-dev
rubygems screen sqlite
vim xfs