グループスケーリング時の Amazon SNS 通知の取得Auto Scaling - Amazon EC2 Auto Scaling (日本語)

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

グループスケーリング時の Amazon SNS 通知の取得Auto Scaling

が Amazon EC2 Auto Scaling グループ内の EC2 インスタンスを起動または終了するときに通知を受け取ることができます。Auto ScalingAmazon Simple Notification Service (Amazon SNS) を使用して通知を管理します。

Amazon SNS は、受信登録しているクライアントまたはエンドポイントへの通知の配信または送信を調整および管理します。Amazon SNS は、HTTP または HTTPS POST、E メール (SMTP、プレーンテキストまたは JSON フォーマット)、または Amazon SQS キューに投稿されるメッセージとして通知を配信する機能など、さまざまな通知オプションを提供します。これにより、これらの通知をプログラムで処理できます。詳細については、「Amazon Simple Notification Service 開発者ガイド」を参照してください。

たとえば、autoscaling: EC2_INSTANCE_TERMINATE 通知タイプを使用するように Auto Scaling グループを設定すると、Auto Scaling グループはインスタンスを終了したときに、E メール通知を送信します。この E メールには、インスタンス ID やインスタンスを終了した理由など、終了したインスタンスの詳細が含まれます。

通知はイベント駆動型のアプリケーションの設計に便利です。通知を使用してリソースが必要な状態になったことをチェックする場合、ポーリングを排除できます。ポーリングによって発生することがある RequestLimitExceeded エラーは発生しません。

AWS には、通知の送信に使用できるさまざまなツールが用意されています。または、EventBridge および Amazon SNS を使用して、Auto Scaling グループがインスタンスを起動または終了したときに通知を送信できます。EventBridge では、ルールにより、通知を受け取るイベントが記述されます。Amazon SNS では、トピックにより、受け取る通知の種類が記述されます。このオプションを使用すると、特定のイベントが代わりに Lambda 関数をトリガーするかどうかを決定できます。詳細については、「EventBridge による Amazon EC2 Auto Scaling の自動化」を参照してください。

SNS の通知

Amazon EC2 Auto Scaling は、次のイベントが発生したときに、Amazon SNS 通知の送信をサポートします。

イベント 説明

autoscaling:EC2_INSTANCE_LAUNCH

インスタンスの起動成功

autoscaling:EC2_INSTANCE_LAUNCH_ERROR

インスタンスの起動失敗

autoscaling:EC2_INSTANCE_TERMINATE

インスタンスの削除成功

autoscaling:EC2_INSTANCE_TERMINATE_ERROR

インスタンスの削除失敗

メッセージには、次に示す情報が含まれます。

  • Event — イベント。

  • AccountId — AWS アカウント ID。

  • AutoScalingGroupName — Auto Scaling グループの名前。

  • AutoScalingGroupARN — Auto Scaling グループの ARN。

  • EC2InstanceId — EC2 インスタンスの ID。

次に例を示します。

Service: AWS Auto Scaling Time: 2016-09-30T19:00:36.414Z RequestId: 4e6156f4-a9e2-4bda-a7fd-33f2ae528958 Event: autoscaling:EC2_INSTANCE_LAUNCH AccountId: 123456789012 AutoScalingGroupName: my-asg AutoScalingGroupARN: arn:aws:autoscaling:region:123456789012:autoScalingGroup... ActivityId: 4e6156f4-a9e2-4bda-a7fd-33f2ae528958 Description: Launching a new EC2 instance: i-0598c7d356eba48d7 Cause: At 2016-09-30T18:59:38Z a user request update of AutoScalingGroup constraints to ... StartTime: 2016-09-30T19:00:04.445Z EndTime: 2016-09-30T19:00:36.414Z StatusCode: InProgress StatusMessage: Progress: 50 EC2InstanceId: i-0598c7d356eba48d7 Details: {"Subnet ID":"subnet-id","Availability Zone":"zone"}

Amazon EC2 Auto Scaling の Amazon SNS 通知の設定

Amazon SNS を使用して E メール通知を送信するには、最初にトピックを作成してから、そのトピックと共に E メールアドレスを登録する必要があります。

Amazon SNS トピックの作成

SNS トピックは論理アクセスポイント、つまり Auto Scaling グループが通知を送信するために使用する通信チャネルです。トピックの名前を指定することにより、トピックを作成します。

トピック名を作成する場合、名前は次の要件を満たしている必要があります。

  • 1 ~ 256 文字

  • 大文字および小文字の ASCII 文字、数字、アンダースコア、またはハイフンが含まれている

詳細については、「チュートリアル:」を参照してください。Amazon SNS の「 トピックの作成」。Amazon Simple Notification Service 開発者ガイド

トピックへのサブスクライブAmazon SNS

Auto Scaling グループがトピックに送信した通知を受信するには、そのトピックにエンドポイントを登録する必要があります。この手順では、[Endpoint] に、Amazon EC2 Auto Scaling からの通知を受信する E メールアドレスを指定します。

詳細については、「チュートリアル:」を参照してください。 の「Amazon SNS トピックにエンドポイントをサブスクライブする。Amazon Simple Notification Service 開発者ガイド

サブスクリプションの確認Amazon SNS

Amazon SNS は、前のステップで指定した E メールアドレスに確認メールを送信します。

次のステップに進む前に、必ず AWS 通知の E メールを開き、リンクを選択して受信登録を確認してください。

AWS から受信確認メッセージを受け取ります。Amazon SNS は、通知を受信し、通知を E メールとして指定された E メールアドレスに送信するように設定されました。

通知を送信するように Auto Scaling グループを設定する

このセクションでは、インスタンスの起動または終了などのスケーリングイベントが発生したときに Amazon SNS に通知を送信するように、Auto Scaling グループを設定します。Amazon SNS は、指定した E メールアドレスに、インスタンスについての情報とともに通知を送信します。

Amazon SNS グループ用に Auto Scaling 通知を設定するには (コンソール)

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。

  3. Auto Scaling グループの横にあるチェックボックスをオンにします。

    ページの下部に分割ウィンドウが開き、選択したグループに関する情報が表示されます。

  4. [Activity] タブで、[Activity notifications]、[Create notification] の順に選択します。

  5. [Create notifications] ペインで、以下の作業を行います。

    1. [SNS トピック] で、SNS トピックを選択します。

    2. [Event types (イベントタイプ)] で、通知を送信するイベントを選択します。

    3. [作成] を選択します。

Amazon SNS グループ用に Auto Scaling 通知を設定するには (AWS CLI)

次の put-notification-configuration コマンドを使用します。

aws autoscaling put-notification-configuration --auto-scaling-group-name my-asg --topic-arn arn --notification-types "autoscaling:EC2_INSTANCE_LAUNCH" "autoscaling:EC2_INSTANCE_TERMINATE"

通知をテストする

起動イベントの通知を生成するには、Auto Scaling グループの希望容量を 1 増やして Auto Scaling グループを更新します。インスタンスを起動してから数分以内に通知を受け取ります。

希望する容量を変更するには (コンソール)

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインの [AUTO SCALING] で、[Auto Scaling グループ] を選択します。

  3. Auto Scaling グループの横にあるチェックボックスをオンにします。

    [Auto Scaling グループ] ページの下部に分割ペインが開き、選択したグループに関する情報が表示されます。

  4. [詳細] タブで、[グループの詳細]、[編集] の順に選択します。

  5. [Desired capacity (希望する容量)] の場合は、現在の値を 1 ずつ増やします。この値が [Maximum capacity (最大容量)] を超える場合は、[Maximum capacity (最大容量)] の値を 1 ずつ増やす必要があります。

  6. [Update (更新)] を選択します。

  7. 数分後、イベントの通知が届きます。このテスト用に起動した追加のインスタンスが必要なくなった場合は、[Desired capacity (希望する容量)] を 1 減らすことができます。数分後、イベントの通知が届きます。

通知設定の削除

使用されなくなった Amazon EC2 Auto Scaling 通知設定は削除できます。

Amazon EC2 Auto Scaling 通知設定を削除するには (コンソール)

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。

  3. Auto Scaling グループを選択します。

  4. [アクティビティ] タブで、削除する通知の横にあるチェックボックスをオンにし、[アクション]、[削除] の順に選択します。

Amazon EC2 Auto Scaling 通知設定を削除するには (AWS CLI)

次の delete-notification-configuration コマンドを使用します。

aws autoscaling delete-notification-configuration --auto-scaling-group-name my-asg --topic-arn arn

トピックおよび Amazon SNS グループに関連付けられているすべてのサブスクリプションの削除については、「Auto Scalingチュートリアル:」を参照してください。の「Amazon SNS サブスクリプションとトピックの削除」。Amazon Simple Notification Service 開発者ガイド