スケーリンググループでライフサイクルフックを作成するときに、通知方法をOOSテンプレートに設定し、Operation Orchestration Service (OOS) テンプレートを指定できます。 スケーリングアクティビティ中、スケーリンググループ内のECSインスタンスは待機状態になり、OOSテンプレートで指定された操作とメンテナンス (O&M) 操作がECSインスタンスに対して実行されます。
ライフサイクルフック
スケーリングアクティビティがトリガーされると、Auto scalingは自動的にスケーリングアクティビティを完了します。 ECSインスタンスのサービス状態の変更の詳細については、「インスタンスのライフサイクル」をご参照ください。
ライフサイクルフックを使用して、スケーリングアクティビティ中にECSインスタンスを待機状態にすることができます。 OOSがインスタンスに対してカスタマイズされた操作を実行すると、これらのインスタンスは待機状態から外されるか、リリースされます。 たとえば、OOSは、セカンダリelastic network Interface (ENI) をECSインスタンスにバインドし、スケールアウトイベント中に関連するApsaraDB For Redisインスタンスのホワイトリストにインスタンスを追加し、スケールインイベント中にログとクリアデータをコピーできます。
ECSインスタンスが待機状態になると、Auto Scalingは、テンプレートで指定されたカスタマイズされたO&M操作を実行するようにOOSに通知します。
OOSテンプレート
OOSは、Alibaba Cloudが提供する自動O&Mサービスであり、O&Mタスクの管理と実行に役立ちます。 実行タスク、タスクの実行順序、入力パラメーター、および出力パラメーターをテンプレートで定義し、これらのテンプレートを使用してO&Mタスクを自動化できます。 詳細については、Introduction to OOSをご参照ください。
次のセクションでは、OOSテンプレートを使用してライフサイクルフック通知に応答する利点について説明します。
OOSテンプレートは、複雑なO&Mプロセスの実装に役立つO&M操作のコレクションです。
ライフサイクルフックの通知は、通知の内容を手動で解決する必要なく、O&M操作を自動的にトリガーします。
一般的なO&M操作を簡単に実行できるように、パブリックテンプレートが提供されています。 詳細については、「」「パブリックテンプレート」をご参照ください。
カスタムテンプレートがサポートされています。 詳細については、「テンプレートの作成」をご参照ください。
自動O&Mプロセス
次の図は、ライフサイクルフックとOOSテンプレートを使用して自動O&Mプロセスを実装する方法を示しています。
以下のセクションで、手順を説明します。
ECSインスタンスは待機状態になり、Pending: wait状態になります。
Auto Scalingは、テンプレートで指定されたカスタマイズされたO&M操作を実行するようにOOSに通知します。
次の実行結果に基づいてプロセスを完了します。
O&M操作が成功すると、ECSインスタンスは待機状態から外され、スケーリングアクティビティが続行されます。 スケーリングアクティビティがスケールアウトイベントの場合、イベントは継続し、ECSインスタンスがスケーリンググループに追加されます。 スケーリングアクティビティがスケールインイベントの場合、イベントは継続し、ECSインスタンスはスケーリンググループから削除されます。
O&M操作が失敗した場合、ECSインスタンスは待機状態から外され、スケーリングアクティビティは終了します。 スケーリングアクティビティがスケールアウトイベントの場合、ECSインスタンスはリリースされます。 スケーリングアクティビティがスケールインイベントの場合、イベントは影響を受けず、ECSインスタンスはスケーリンググループから削除されます。
O&Mプラクティス
次の表に、OOSパブリックテンプレートの使用方法を示します。
パブリックテンプレート名 | 適用可能なスケーリングアクティビティタイプ | 説明 | 関連ドキュメント |
ACS-ESS-LifeCycleApplyAutoSnapshotPolicy | スケールアウトイベント | ライフサイクルフックを使用して、自動スナップショットポリシーをディスクに適用します。 | |
ACS-ESS-LifeCycleRunCommand | スケールインおよびスケールアウトのイベント | ライフサイクルフックを使用して、ECSインスタンスでコマンドを実行します。 | |
ACS-ESS-LifeCycleModifyPolarDBIPWhitelist | スケールインおよびスケールアウトのイベント | ライフサイクルフックを使用して、PolarDBクラスターのホワイトリストを設定します。 | ECSインスタンスのプライベートIPアドレスをPolarDBクラスターのIPアドレスホワイトリストに自動的に追加または削除する |
ACS-ESS-LifeCycleModifyRedisIPWhitelist | スケールインおよびスケールアウトのイベント | ライフサイクルフックを使用して、ApsaraDB for Redisインスタンスのホワイトリストを設定します。 | ECSインスタンスのプライベートIPアドレスをRedisインスタンスのIPアドレスホワイトリストに自動的に追加または削除する |
ACS-ESS-LifeCycleModifyMongoDBIPWhitelist | スケールインおよびスケールアウトのイベント | ライフサイクルフックを使用して、ApsaraDB for MongoDBインスタンスのホワイトリストを設定します。 | ECSインスタンスのプライベートIPアドレスをMongoDBインスタンスのIPアドレスホワイトリストに自動的に追加または削除する |
ACS-ESS-LifeCycleModifyAnalyticDBIPWhitelist | スケールインおよびスケールアウトのイベント | ライフサイクルフックを使用して、AnalyticDB for MySQLクラスターのホワイトリストを設定します。 | ECSインスタンスのプライベートIPアドレスをAnalyticDB for MySQLクラスターのIPアドレスホワイトリストに自動的に追加または削除する |
ACS-ESS-LifeCycleAttachNASFileSystemToInstance | スケールアウトイベント | ライフサイクルフックを使用してNASファイルシステムをECSインスタンスにマウントします。 | |
ACS-ESS-LifeCycleCreateNetworkInterfaceAndEipAndAttachToInstance | スケールアウトイベント | ライフサイクルフックを使用してセカンダリENIとEIPを作成し、EIPをセカンダリENIに関連付け、セカンダリENIをECSインスタンスにバインドします。 | |
ACS-ESS-LifeCycleDetachNetworkInterfaceAndDeleteEip | スケールインイベント | ライフサイクルフックを使用して、ECSインスタンスからセカンダリENIのバインドを解除し、セカンダリENIとその関連EIPをリリースします。 | |
ACS-ESS-LifeCycleAllocateEipAddressAndAttachToInstance | スケールアウトイベント | ライフサイクルフックを使用してEIPを作成し、EIPをECSインスタンスに関連付けます。 | |
ACS-ESS-LifeCycleReleaseEipAddressFromInstance | スケールインイベント | ライフサイクルフックを使用して、ECSインスタンスからEIPの関連付けを解除し、EIPをリリースします。 |