イベント通知は、スケーリンググループ内のインスタンスの動的な変更を常に把握するのに役立つ監視方法です。スケーリングアクティビティが発生すると、Auto Scaling は Cloud Monitor のシステムイベント、MNS キュー、MNS トピックなどの指定された受信者にメッセージを送信します。これにより、スケーリンググループをリアルタイムで監視できます。このトピックでは、さまざまな通知方法に合わせてイベント通知機能を設定する方法について説明します。
背景情報
イベント通知機能は、スケーリングアクティビティタイプとも呼ばれる 11 種類のイベント通知タイプと、受信者を指定する 3 種類の通知方法をサポートしています。詳細については、「通知の概要」および「イベント通知の設定」をご参照ください。
イベント通知タイプ: イベント通知を作成するときは、通知をトリガーするスケーリングアクティビティタイプを指定する必要があります。次のタイプが利用可能です。
タイプ名 (Auto Scaling コンソール)
タイプ名 (API)
スケールアウトの成功
AUTOSCALING:SCALE_OUT_SUCCESS
スケールインの成功
AUTOSCALING:SCALE_IN_SUCCESS
スケールアウトの失敗
AUTOSCALING:SCALE_OUT_ERROR
スケールインの失敗
AUTOSCALING:SCALE_IN_ERROR
スケーリングアクティビティの拒否
AUTOSCALING:SCALE_REJECT
スケールアウトの開始
AUTOSCALING:SCALE_OUT_START
スケールインの開始
AUTOSCALING:SCALE_IN_START
スケジュールされたタスクの有効期限のリマインダー
AUTOSCALING:SCHEDULE_TASK_EXPIRING
スケーリンググループの診断
SCALING_GROUP_DIAGNOSE
スケールアウトの部分的な成功
AUTOSCALING:SCALE_OUT_WARN
スケールインの部分的な成功
AUTOSCALING:SCALE_IN_WARN
通知方法: スケーリングアクティビティがイベント通知をトリガーすると、スケーリングアクティビティの詳細は指定された受信者に報告されます。Cloud Monitor のシステムイベント、MNS キュー、MNS トピックにメッセージを送信して、Auto Scaling の管理を自動化できます。Cloud Monitor のシステムイベントまたは Simple Message Queue (formerly MNS) の詳細については、「Cloud Monitor システムイベントのイベント監視」および「Simple Message Queue (旧称:MNS) とは」をご参照ください。
説明メッセージ通知を設定することもできます。Auto Scaling は、ショートメッセージ、内部メッセージ、および E メールによる通知の送信をサポートしています。ただし、これらの方法を使用する場合、通知を受信した後に、スケールアウトやスケールインなどのスケーリングイベントの結果を手動で処理する必要があります。詳細については、「メッセージ通知の設定」をご参照ください。
注意事項
各スケーリンググループに対して最大 6 つのイベント通知を作成できます。
スケーリンググループにイベント通知機能が設定されている場合、同じグループにメッセージ通知機能は設定できません。
スケーリンググループがイベント通知機能を使用している場合、そのスケーリンググループに対して以前に設定されたアラートルール (監視タスクではない) は無効になります。
同じ受信者を同じスケーリンググループで複数回使用することはできません。たとえば、Cloud Monitor のシステムイベントは、1 つのスケーリンググループに対して 1 回だけ受信者として指定できます。
通知方法として MNS トピックを選択する場合は、MNS トピックがスケーリンググループと同じリージョンにあることを確認してください。
Simple Message Queue (formerly MNS) メソッドは料金が発生しますが、Cloud Monitor のシステムイベントメソッドは料金が発生しません。
Cloud Monitor のシステムイベントに基づくイベント通知機能の設定
スケーリンググループで指定されたタイプのスケーリングアクティビティが発生すると、イベント通知機能はスケーリングアクティビティの詳細をシステムイベントとして Cloud Monitor に報告します。システムイベントが設定されたアラートルールをトリガーすると、Cloud Monitor はルールで指定された連絡先グループにアラートメッセージを送信します。連絡先グループを管理することで、これらの詳細の受信者を管理できます。
スケーリンググループとスケーリング設定を作成します。
Auto Scaling コンソールで、または API 操作を呼び出すことによって、スケーリンググループとスケーリング設定を作成できます。
Auto Scaling コンソール: 詳細については、「スケーリンググループの設定」、「ECS インスタンスのスケーリング設定の作成」、および「ECI インスタンスのスケーリング設定の作成」をご参照ください。
API: 詳細については、「CreateScalingGroup」および「CreateScalingConfiguration」をご参照ください。
Cloud Monitor のイベント通知を作成します。
Auto Scaling コンソールで、または API 操作を呼び出すことによって、イベント通知を作成できます。
Auto Scaling コンソール: 詳細については、「イベント通知の設定」をご参照ください。
API: 詳細については、「CreateNotificationConfiguration」をご参照ください。
スケーリングアクティビティをトリガーします。
監視タスク、スケーリングルール、またはヘルスチェックを使用して、スケーリングアクティビティをトリガーできます。このトピックでは、スケーリングルールを例として使用します。詳細については、「スケーリングルールの実行」をご参照ください。
Cloud Monitor に報告されたシステムイベントを表示します。
システムイベントの表示方法の詳細については、「システムイベントの表示」をご参照ください。Cloud Monitor に報告されるシステムイベントには、次の情報が含まれます。
イベント名、イベントレベル、およびステータス情報
スケーリンググループ ID
スケーリングアクティビティの詳細
スケーリングアクティビティの詳細は、JSON 形式で Cloud Monitor に報告されます。次のコードは、成功したスケールアウトアクティビティの例です。
{ "cause": "A user changed the Desired Capacity, changing the Total Capacity from \"1\" to \"2\".", "description": "\"1\" ECS instances are added", "endTime": "2022-03-31T09:16:30.000Z", "expectNum": 1, "instanceIds": [ "i-bp1dn0ktfed9o0ys****" ], "requestId": "INNER_WP2BReMYw3Fdic7dmbp****", "scalingActivityId": "asa-bp1eig7303qrgcxu****", "scalingGroupTags": [ { "key": "acs:rm:rg**", "value": "rg-acfmzx3vure****" } ], "startTime": "2022-03-31T09:16:04.000Z", "totalCapacity": 2 }次の表に、上記の例のフィールドを示します。
cause: スケーリングアクティビティの原因。description: スケーリングアクティビティの結果。endTime: スケーリングアクティビティが終了した時刻。expectNum: スケーリングアクティビティ中に追加される予定のインスタンス数。このパラメーターは、成功したスケーリングアクティビティに対してのみ返されます。instanceIds: スケーリングアクティビティ中に追加されたインスタンスの ID。このパラメーターは、成功したスケーリングアクティビティに対してのみ返されます。requestId: スケーリングアクティビティのリクエスト ID。scalingActivityId: スケーリングアクティビティの ID。scalingGroupTags: このスケーリングアクティビティのスケーリンググループにアタッチされているすべてのタグ。startTime: スケーリングアクティビティが開始された時刻。totalCapacity: スケーリンググループ内の現在のインスタンス数。
システムイベントのアラートルールを作成します。
Cloud Monitor からショートメッセージ、E メール、または DingTalk でイベントの詳細を送信する場合は、Cloud Monitor コンソールでシステムイベントのアラートルールを作成する必要があります。詳細については、「システムイベントのアラートルールの管理 (旧)」をご参照ください。
Auto Scaling によって Cloud Monitor に報告されるシステムイベントは、Info、Warning、Critical の 3 つのレベルに分類されます。各レベルは、異なるスケーリングアクティビティタイプに対応しています。次の表にマッピングを示します。
システムイベントレベル
イベント通知タイプ (スケーリングアクティビティタイプ)
Info
スケールアウトの成功
スケールインの成功
スケールアウトの開始
スケールインの開始
すべてのイベント (先行するイベントのコレクション)
Warning
スケーリングアクティビティの拒否
スケジュールされたタスクの有効期限のリマインダー
スケールアウトの部分的な成功
スケールインの部分的な成功
すべてのイベント (先行するイベントのコレクション)
Critical
スケールアウトの失敗
スケールインの失敗
すべてのイベント (先行するイベントのコレクション)
MNS キューに基づくイベント通知機能の設定
スケーリンググループで指定されたタイプのスケーリングアクティビティが発生すると、イベント通知機能はスケーリングアクティビティの詳細を指定された MNS キューにプッシュします。ロングポーリングを使用して MNS キューからメッセージを消費し、スケーリングアクティビティの詳細を取得することをお勧めします。MNS キュー内のメッセージが 1 回だけ消費されるようにするには、メッセージを消費した後に削除します。ロングポーリングの詳細については、「ショートポーリングとロングポーリング」をご参照ください。
スケーリンググループとスケーリング設定を作成します。
Auto Scaling コンソールで、または API 操作を呼び出すことによって、スケーリンググループとスケーリング設定を作成できます。
Auto Scaling コンソール: 詳細については、「スケーリンググループの設定」、「ECS インスタンスのスケーリング設定の作成」、および「ECI インスタンスのスケーリング設定の作成」をご参照ください。
API: 詳細については、「CreateScalingGroup」および「CreateScalingConfiguration」をご参照ください。
MNS キューを作成します。
MNS コンソールで、または API 操作を呼び出すことによって、MNS キューを作成できます。
MNS コンソール: 詳細については、「キューの作成」をご参照ください。
API: 詳細については、「CreateQueue」をご参照ください。
説明MNS キューサービスは、一部のリージョンでは利用できません。したがって、これらのリージョンのスケーリンググループは、MNS キューを受信者として使用できません。サポートされているリージョンのリストについては、MNS コンソールをご参照ください。
MNS キューのイベント通知を作成します。
Auto Scaling コンソールで、または API 操作を呼び出すことによって、イベント通知を作成できます。
Auto Scaling コンソール: 詳細については、「イベント通知の設定」をご参照ください。
API: 詳細については、「CreateNotificationConfiguration」をご参照ください。
スケーリングアクティビティをトリガーします。
監視タスク、スケーリングルール、またはヘルスチェックを使用して、スケーリングアクティビティをトリガーできます。このトピックでは、スケーリングルールを例として使用します。詳細については、「スケーリングルールの実行」をご参照ください。
MNS キューで受信したメッセージを表示します。
MNS キューで受信したメッセージを表示するには、「メッセージの受信」または「ReceiveMessage」をご参照ください。メッセージには、次の主な情報が含まれています。
基本情報: メッセージ ID、メッセージハンドル、消費回数、消費時間、作成時間。
メッセージ内容: 元のメッセージ内容、Base64 デコードされたメッセージ内容、およびメッセージ MD5。
スケーリングアクティビティの詳細は、JSON 形式で MNS キューにプッシュされます。MNS はメッセージを自動的に消費できます。次のコードは、成功したスケールアウトアクティビティの例です。
{ "content": { "cause": "A user changed the Desired Capacity, changing the Total Capacity from \"0\" to \"1\".", "description": "\"1\" ECS instances are added", "endTime": "2022-04-01T03:59:55.000Z", "expectNum": 1, "instanceIds": [ "i-bp1imzcyvwrz2kzx****" ], "requestId": "INNER_cpaMr4xcLVSdq0CFMdz****", "scalingActivityId": "asa-bp1ekb3kyj2qx1gx****", "scalingGroupTags": [ { "key": "acs:rm:rg**", "value": "rg-acfmzx3vure****" } ], "startTime": "2022-04-01T03:59:29.000Z", "totalCapacity": 1 }, "event": "AUTOSCALING:SCALE_OUT_SUCCESS", "eventLevel": "INFO", "eventStatus": "normal", "product": "ESS", "regionId": "cn-hangzhou", "resourceArn": "acs:ess:cn-hangzhou:160998252992****:scalingGroup/asg-bp10uuhy2wbb2tip****", "userId": "160998252992****" }次の表に、上記の例のフィールドを示します。
content: スケーリングアクティビティの詳細が含まれます。次のフィールドが含まれます。
cause: スケーリングアクティビティの原因。description: スケーリングアクティビティの結果。endTime: スケーリングアクティビティが終了した時刻。expectNum: スケーリングアクティビティ中に追加される予定のインスタンス数。このパラメーターは、成功したスケーリングアクティビティに対してのみ返されます。instanceIds: スケーリングアクティビティ中に追加されたインスタンスの ID。このパラメーターは、成功したスケーリングアクティビティに対してのみ返されます。requestId: スケーリングアクティビティのリクエスト ID。scalingActivityId: スケーリングアクティビティの ID。scalingGroupTags: このスケーリングアクティビティのスケーリンググループにアタッチされているすべてのタグ。startTime: スケーリングアクティビティが開始された時刻。totalCapacity: スケーリンググループ内の現在のインスタンス数。
event: このイベント通知に対応するスケーリングアクティビティのタイプ。これは、イベント通知でサポートされているスケーリングアクティビティタイプの 1 つです。eventLevel: イベントレベル。有効な値: INFO、WARN、CRITICAL。INFO はスケーリングアクティビティが成功したことを示します。WARN はスケーリングアクティビティが拒否されたことを示します。CRITICAL はスケーリングアクティビティが失敗したことを示します。eventStatus: イベント通知の実行ステータス。product: クラウドプロダクトの名前。Auto Scaling です。resourceArn: スケーリンググループの一意の識別子。リージョン、ユーザー ID、スケーリンググループ ID が含まれます。regionId: スケーリンググループが配置されているリージョンの ID。userId: スケーリンググループが属するユーザーの ID。
MNS トピックに基づくイベント通知機能の設定
スケーリンググループで指定されたタイプのスケーリングアクティビティが発生すると、イベント通知機能はスケーリングアクティビティの詳細を指定された MNS トピックにプッシュします。MNS トピックは、MNS キューよりも多くの情報消費方法を提供します。MNS キューに加えて、MNS トピックは HTTP などのメソッドを使用した消費もサポートしています。
スケーリンググループとスケーリング設定を作成します。
Auto Scaling コンソールで、または API 操作を呼び出すことによって、スケーリンググループとスケーリング設定を作成できます。
Auto Scaling コンソール: 詳細については、「スケーリンググループの設定」、「ECS インスタンスのスケーリング設定の作成」、および「ECI インスタンスのスケーリング設定の作成」をご参照ください。
API: 詳細については、「CreateScalingGroup」および「CreateScalingConfiguration」をご参照ください。
MNS トピックを作成します。
MNS コンソールで、または API 操作を呼び出すことによって、MNS トピックを作成できます。
MNS コンソール: 詳細については、「トピックの作成」をご参照ください。
API: 詳細については、「CreateTopic」をご参照ください。
説明MNS トピックサービスは、一部のリージョンでは利用できません。したがって、これらのリージョンのスケーリンググループは、MNS トピックを受信者として使用できません。サポートされているリージョンのリストについては、MNS コンソールをご参照ください。
MNS トピックのサブスクリプションを作成します。
MNS キュー内のメッセージとは異なり、MNS トピックで受信したメッセージは直接消費できません。MNS トピックのサブスクリプションを作成する必要があります。MNS コンソールで、または API 操作を呼び出すことによって、サブスクリプションを作成できます。
MNS コンソール: 詳細については、「サブスクリプションの作成」をご参照ください。
API: 詳細については、「Subscribe」をご参照ください。
サブスクリプションを作成すると、MNS トピックがメッセージを受信したときに、対応するサブスクライバーにリアルタイムでメッセージをプッシュします。MNS トピックは、[HTTP]、[キュー]、[Alibaba Cloud SMS]、および [E メール] によるサブスクリプションをサポートしています。
MNS トピックのイベント通知を作成します。
Auto Scaling コンソールで、または API 操作を呼び出すことによって、イベント通知を作成できます。
Auto Scaling コンソール: 詳細については、「イベント通知の設定」をご参照ください。
API: 詳細については、「CreateNotificationConfiguration」をご参照ください。
スケーリングアクティビティをトリガーします。
監視タスク、スケーリングルール、またはヘルスチェックを使用して、スケーリングアクティビティをトリガーできます。このトピックでは、スケーリングルールを例として使用します。詳細については、「スケーリングルールの実行」をご参照ください。
設定されたスケーリングアクティビティがスケーリンググループでトリガーされると、イベント通知機能はスケーリングアクティビティの詳細を MNS トピックにプッシュします。トピックがメッセージを受信すると、消費のためにサブスクライバーにメッセージをプッシュします。