ライフサイクルフックは、Auto Scaling によってトリガーされたスケーリングアクティビティを一時停止し、Elastic Compute Service (ECS) または Elastic Container Instance (ECI) インスタンスを待機状態にします。この一時停止により、ソフトウェアのプレインストールなどのカスタム操作を実行して、特定のデプロイメント要件を満たすことができます。スケーリングアクティビティは、ライフサイクルフックのタイムアウト期間が終了した後にのみ再開されます。このトピックでは、ライフサイクルフックを作成、変更、削除、一時停止、または有効化する方法について説明します。
前提条件
スケーリンググループが作成されていること。詳細については、「スケーリンググループの設定」または「CreateScalingGroup」をご参照ください。
(任意) ライフサイクルフックがトリガーされたときに Message Service (MNS) の通知を受信する場合は、MNS トピックまたはキューを作成します。詳細については、次のトピックをご参照ください:
トピックの作成 または CreateTopic。
キューの作成 または CreateQueue。
ライフサイクルフックの作成
ライフサイクルフックは、スケーリンググループ内の ECS または ECI インスタンスのライフサイクルを管理するのに役立ちます。詳細については、「ライフサイクルフックの概要」をご参照ください。各スケーリンググループに対して最大 10 個のライフサイクルフックを作成できます。このセクションでは、ライフサイクルフックの作成方法について説明します。
Auto Scaling コンソールにログインします。
左側のナビゲーションウィンドウで、[スケーリンググループ] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。
対象のスケーリンググループを見つけ、次のいずれかの方法でスケーリンググループの詳細ページを開きます。
[スケーリンググループ名/ID] 列でスケーリンググループの ID をクリックします。
[操作] 列の [詳細] をクリックします。
詳細ページの上部で、[ライフサイクルフック] タブをクリックします。
[ライフサイクルフックの作成] をクリックします。
[ライフサイクルフックの作成] ページで、パラメーターを設定します。
次の表にパラメーターを示します。
パラメーター
説明
名前
ライフサイクルフックの名前。ライフサイクルフックの作成後は名前を変更できません。名前は 2~64 文字である必要があります。先頭は文字、数字、または漢字である必要があります。ピリオド (.)、アンダースコア (_)、ハイフン (-) を使用できます。
スケーリングアクティビティの種類
ライフサイクルフックをトリガーし、ECS または ECI インスタンスを待機状態にするスケーリングアクティビティのタイプ。次のオプションが利用可能です:
スケールインイベント
スケールアウトイベント
タイムアウト
ライフサイクルフックのタイムアウト期間。値は 30~21600 秒 (6 時間) の整数である必要があります。デフォルト値:1800。
説明ライフサイクルフックの操作を完了するために必要な時間に適したタイムアウトを設定してください。操作が完了する前にタイムアウト期間が終了した場合、Auto Scaling は [デフォルト操作] を実行します。
デフォルトの実行ポリシー
単一のライフサイクルフックのシナリオ
インスタンスが待機状態を抜けた後に実行する操作。次のオプションが利用可能です:
CONTINUE:スケールアウト中、新しい ECS または ECI インスタンスがスケーリンググループに追加されます。スケールイン中、ECS または ECI インスタンスはスケーリンググループから削除され、リリースされます。
REJECT:スケールアウト中、新しい ECS または ECI インスタンスはリリースされ、スケーリンググループには追加されません。スケールイン中、ECS または ECI インスタンスはスケーリンググループから削除され、リリースされます。
ROLLBACK:スケールアウト中、新しい ECS または ECI インスタンスはリリースされ、スケーリンググループには追加されません。スケールイン中、削除されようとしていたインスタンスはスケーリンググループに再度追加されます。
複数のライフサイクルフックのシナリオ
複数のライフサイクルフックが同時にトリガーされた場合、スケーリングアクティビティの最終結果は、指定された [スケーリングアクティビティタイプ] によって異なります。
スケールイン:CONTINUE 操作を持つライフサイクルフックが待機状態を完了した場合、Auto Scaling は他のフックが完了するのを待ちます。いずれかのフックが REJECT または ROLLBACK 操作で完了した場合、Auto Scaling は残りのフックの待機状態を直ちに終了し、その操作をデフォルト操作に設定します。この場合、完了したすべてのフックの中で、少なくとも 1 つのフックが ROLLBACK 操作を持つ場合にのみロールバックが発生します。フックが REJECT 操作のみを持つ場合、スケールインは続行されます。
スケールアウト:すべてのライフサイクルフックが CONTINUE 操作で完了した場合にのみ、スケールアウトは続行されます。いずれかのフックが REJECT または ROLLBACK 操作で完了した場合、システムは残りのフックの待機状態を直ちに終了し、スケールアウトを停止してロールバックを実行します。スケールアウトの場合、REJECT と ROLLBACK の操作は同じ効果を持ちます。
(任意) OOS テンプレート通知シナリオ
このシナリオは、ライフサイクルフックが通知に CloudOps Orchestration Service (OOS) テンプレートを使用するように設定されている場合にのみ適用されます。OOS テンプレートの実行がタイムアウト期間の終了前に完了した場合、次の操作は OOS テンプレートの実行結果によって異なります:
成功:スケールアウトの場合、ECS または ECI インスタンスはスケーリンググループに追加されます。スケールインの場合、インスタンスはスケーリンググループでのトラフィック提供を停止します。
失敗:スケールアウトの場合、ECS または ECI インスタンスはリリースされます。スケールインの場合、インスタンスはスケーリンググループでのトラフィック提供を停止します。
次のシナリオでは、ECS または ECI インスタンスがスケーリンググループに計算能力を提供することを停止できます:
インスタンスが Auto Scaling によって作成されたか、手動でスケーリンググループに追加され、スケーリンググループの [インスタンスの回収モード] が [リリース] に設定されている場合、インスタンスはスケーリンググループから削除されます。
インスタンスが Auto Scaling によって作成されたか、手動でスケーリンググループに追加され、スケーリンググループの [インスタンスの回収モード] が [停止] に設定されている場合、インスタンスは停止されますが、スケーリンググループに残ります。詳細については、「スケーリンググループの設定」をご参照ください。
インスタンスが手動でスケーリンググループに追加されたが、それによって管理されていない場合、インスタンスはグループから削除されるだけで、実行を続けます。
フック中に実行する操作
ライフサイクルフックがトリガーされたとき、通知を送信するか、他の操作を自動的に実行するかを選択できます。次のオプションが利用可能です:
通知なし:これはデフォルトのオプションです。
MNS トピック:MNS トピックを選択します。通知識別子を指定すると、Auto Scaling は送信する各メッセージにこの識別子を含めます。これにより、さまざまな種類の通知を管理および分類するのに役立ちます。
MNS キュー:MNS キューを選択します。通知識別子を指定すると、Auto Scaling は送信する各メッセージにこの識別子を含めます。これにより、さまざまな種類の通知を管理および分類するのに役立ちます。
OOS テンプレート:テンプレートタイプを選択し、そのパラメーターを設定します。
テンプレートタイプには [パブリックテンプレート] と [マイテンプレート] があります。Auto Scaling は選択されたテンプレートを使用して、ECS インスタンス上でカスタム操作を実行します。
説明[マイテンプレート] を使用するには、まずテンプレートを作成する必要があります。詳細については、「テンプレートの作成」をご参照ください。
パブリックテンプレートの詳細については、「パブリックテンプレート」をご参照ください。
必要に応じてパラメーターを設定します。[OOS RAM ロール] を設定するには、次の点に注意してください:
RAM ロールは OOS サービスを信頼する必要があります。これは、RAM ロールの信頼できるエンティティが [Alibaba Cloud サービス] であり、信頼できるサービスが CloudOps Orchestration Service であることを意味します。詳細については、「手順」をご参照ください。
RAM ロールには、ECS、ECI、Auto Scaling などのリソースを操作する権限が必要です。必要なポリシーを取得するには、[認証ポリシーの表示] をクリックします。RAM ロールに権限を付与する方法の詳細については、「OOS の RAM ロールを設定し、権限を付与する」をご参照ください。
説明テンプレートパラメーターの設定方法のその他の例については、「ライフサイクルフックと OOS テンプレートのベストプラクティスの概要」をご参照ください。
EventBridge:イベントバスを選択すると、スケーリンググループがスケールするときにシステムがさまざまなライフサイクル通知を生成します。これらの通知を使用して、対応するイベントを識別し、処理できます。
[OK] をクリックします。
ライフサイクルフックが作成されると、スケーリンググループの [ライフサイクルフック] タブで表示できます。
Auto Scaling がライフサイクルフックに一致するスケーリングアクティビティをトリガーすると、対応する ECS または ECI インスタンスは [保留中] 状態になります。
ライフサイクルフックの変更または削除
ライフサイクルフックを作成した後、必要に応じて変更または削除できます。
Auto Scaling コンソールにログインします。
左側のナビゲーションウィンドウで、[スケーリンググループ] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。
[スケーリンググループ管理] ページで、管理したいスケーリンググループを見つけ、[操作] 列の [詳細] をクリックします。
スケーリンググループの詳細ページで、[イベントとフック] タブをクリックし、[ライフサイクルフック] リストを見つけます。
ライフサイクルフックを変更または削除します。
ライフサイクルフックの変更
ライフサイクルフックのプロパティがビジネス要件を満たさなくなった場合、新しいものを作成する代わりに 1 つ以上のプロパティを変更できます。
変更したいライフサイクルフックについて、[操作] 列の [変更] をクリックします。
ライフサイクルフックの設定を変更し、[OK] をクリックします。
ライフサイクルフックの名前は変更できません。他のパラメーターの説明については、「ステップ 7」をご参照ください。
ライフサイクルフックの削除
ライフサイクルフックが不要になった場合は、削除してクォータを解放できます。たとえば、スケーリングアクティビティが一時停止している間にライフサイクルフックを削除できます。
重要ライフサイクルフックを削除すると、そのフックによって一時停止されていたインスタンスの待機状態は直ちに終了します。
削除したいライフサイクルフックを見つけます。
単一のライフサイクルフックを削除する場合:フックの [操作] 列で、[削除] をクリックします。
複数のライフサイクルフックを削除する場合:削除するライフサイクルフックを選択し、リストの下部にある [削除] をクリックします。
ダイアログボックスで、[OK] をクリックします。
ライフサイクルフックの一時停止または有効化
デフォルトでは、ライフサイクルフックは作成時に [有効] になっています。必要に応じて、スケーリンググループのライフサイクルフックを一時停止または再有効化できます。
Auto Scaling コンソールにログインします。
左側のナビゲーションウィンドウで、[スケーリンググループ] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。
[スケーリンググループ管理] ページで、管理するスケーリンググループを見つけ、[操作] 列の [詳細] をクリックします。
スケーリンググループの詳細ページの上部で、[イベントとフック] タブをクリックします。[ライフサイクルフック] リストが表示されます。
ライフサイクルフックを一時停止または有効化します。
ライフサイクルフックの一時停止
ライフサイクルフックが一時的に不要になった場合は、一時停止できます。
一時停止するライフサイクルフックを見つけ、[操作] 列の [一時停止] をクリックします。
表示されるダイアログボックスで、[OK] をクリックします。
ライフサイクルフックの有効化
スケーリンググループでライフサイクルフックを使用するには、一時停止中のフックを有効化できます。
目的のライフサイクルフックを見つけ、[操作] 列の [有効化] をクリックします。
ダイアログボックスで、[OK] をクリックします。
参考
CreateLifecycleHook:1 つ以上のライフサイクルフックを作成します。
ModifyLifecycleHook:ライフサイクルフックを変更します。
DeleteLifecycleHook:ライフサイクルフックを削除します。
CompleteLifecycleAction:タイムアウト期間が終了する前に、スケーリングアクティビティの待機状態を終了させます。