ライフサイクルフックは、スケーリングアクティビティを一時停止し、CloudOps Orchestration Service (OOS) に制御を渡します。OOS は、アクティビティが再開される前に、OOS テンプレートで定義された運用保守 (O&M) タスクを実行します。このパターンを使用して、スケールアウトイベント中のインスタンスの準備 (セカンダリ Elastic Network Interface (ENI) のバインドやデータベースのホワイトリストの更新など) や、スケールインイベント中のインスタンスのクリーンアップ (ログのコピーやデータの消去など) を自動化します。
仕組み
スケーリングアクティビティがトリガーされると、Auto Scaling はアクティビティを一時停止し、影響を受ける ECS インスタンスを Pending:Wait 状態にします。その後、OOS はテンプレートで指定された運用保守操作を実行します。OOS が完了すると、インスタンスは Pending:Wait 状態を終了し、結果に基づいてスケーリングアクティビティが続行または終了します。

結果は、運用保守操作が成功したかどうかによって異なります:
操作が成功した場合、スケーリングアクティビティは続行されます:
スケールアウト:ECS インスタンスがスケーリンググループに追加されます。
スケールイン:ECS インスタンスがスケーリンググループから削除されます。
操作が失敗した場合、スケーリングアクティビティは終了します:
スケールアウト:ECS インスタンスはリリースされます。
スケールイン:ECS インスタンスは引き続きスケーリンググループから削除されます。スケールインイベントは、失敗の影響を受けません。
運用保守操作が失敗しても、インスタンスはスケールインから保護されません。終了前にデータを保持することが目的の場合は、OOS テンプレートがデータ保持タスクを処理するようにしてください。
OOS テンプレートを使用する理由
OOS テンプレートは、カスタム通知ハンドラーに比べていくつかの利点があります:
構成可能な運用保守ワークフロー:テンプレートはタスクのシーケンス、実行順序、入出力パラメーターを定義するため、複数ステップの運用保守プロセスを簡単に実装できます。
自動トリガー:ライフサイクルフックの通知は OOS を直接呼び出します。通知ペイロードを解析するためのカスタムコードは不要です。
すぐに使えるパブリックテンプレート:Alibaba Cloud は、共通タスク用のパブリックテンプレートを提供しています。詳細については、「パブリックテンプレート」をご参照ください。
カスタムテンプレート:パブリックテンプレートでカバーされていないシナリオ向けに、独自のテンプレートを作成できます。詳細については、「テンプレートの作成」をご参照ください。
OOS の詳細については、「OOS の概要」をご参照ください。
利用可能なパブリックテンプレート
以下のパブリックテンプレートは、ライフサイクルフックの最も一般的な運用保守タスクをカバーしています。各テンプレート名は、OOS のパブリックテンプレートカタログに直接マッピングされています。
| テンプレート | 適用イベント | 説明 | ガイド |
|---|---|---|---|
| ACS-ESS-LifeCycleApplyAutoSnapshotPolicy | スケールアウト | ディスクに自動スナップショットポリシーを適用します。 | ECS インスタンスに自動スナップショットポリシーを適用する |
| ACS-ESS-LifeCycleRunCommand | スケールアウトおよびスケールイン | ECS インスタンスでコマンドを実行します。 | ECS インスタンスでスクリプトを自動的に実行する |
| ACS-ESS-LifeCycleModifyPolarDBIPWhitelist | スケールアウトおよびスケールイン | PolarDB クラスターの IP アドレスホワイトリストを更新します。 | PolarDB クラスターのホワイトリストから ECS インスタンスの IP アドレスを自動的に追加または削除する |
| ACS-ESS-LifeCycleModifyRedisIPWhitelist | スケールアウトおよびスケールイン | ApsaraDB for Redis インスタンスの IP アドレスホワイトリストを更新します。 | ApsaraDB for Redis のホワイトリストから ECS インスタンスの IP アドレスを自動的に追加または削除する |
| ACS-ESS-LifeCycleModifyMongoDBIPWhitelist | スケールアウトおよびスケールイン | ApsaraDB for MongoDB インスタンスの IP アドレスホワイトリストを更新します。 | MongoDB インスタンスのホワイトリストから ECS インスタンスの IP アドレスを自動的に追加または削除する |
| ACS-ESS-LifeCycleModifyAnalyticDBIPWhitelist | スケールアウトおよびスケールイン | AnalyticDB for MySQL クラスターの IP アドレスホワイトリストを更新します。 | AnalyticDB for MySQL クラスターのホワイトリストから ECS インスタンスの IP アドレスを自動的に追加または削除する |
| ACS-ESS-LifeCycleAttachNASFileSystemToInstance | スケールアウト | NAS ファイルシステムを ECS インスタンスにマウントします。 | NAS ファイルシステムを ECS インスタンスにマウントする |
| ACS-ESS-LifeCycleCreateNetworkInterfaceAndEipAndAttachToInstance | スケールアウト | セカンダリ ENI と Elastic IP Address (EIP) を作成し、各 EIP をセカンダリ ENI に関連付け、ENI を ECS インスタンスにバインドします。 | セカンダリ ENI を ECS インスタンスに自動的にバインドする |
| ACS-ESS-LifeCycleDetachNetworkInterfaceAndDeleteEip | スケールイン | ECS インスタンスからセカンダリ ENI のバインドを解除し、ENI とそれに関連付けられた EIP をリリースします。 | ECS インスタンスからセカンダリ ENI のバインドを自動的に解除する |
| ACS-ESS-LifeCycleAllocateEipAddressAndAttachToInstance | スケールアウト | EIP を作成し、ECS インスタンスに関連付けます。 | EIP を ECS インスタンスに自動的に関連付ける |
| ACS-ESS-LifeCycleReleaseEipAddressFromInstance | スケールイン | ECS インスタンスから EIP の関連付けを解除し、リリースします。 | EIP の自動リリース機能を有効にする |
次のステップ
スケーリングアクティビティ中の ECS インスタンスの状態トランジションについて学ぶ:インスタンスのライフサイクル
すべての OOS パブリックテンプレートを閲覧する:パブリックテンプレート
独自の要件に合わせてテンプレートを作成する:テンプレートの作成