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

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

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

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

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

たとえば、Auto Scaling グループを設定してautoscaling: EC2_INSTANCE_TERMINATE通知タイプを設定すると、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 メール通知を送信するには、最初にtopicをクリックして、トピックとともに E メールアドレスを登録します。

Amazon SNS トピックを作成する

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

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

  • 1 ~ 256 文字

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

詳細については、「」を参照してください。Amazon SNS トピックを作成する()Amazon Simple Notification Service 開発者ガイド

Amazon SNS トピックをサブスクライブする

Auto Scaling グループがトピックに送信した通知を受信するには、そのトピックにエンドポイントを登録する必要があります。この手順では、エンドポイントで、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 グループが通知を送信するように設定する

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

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

  1. Amazon EC2 Auto Scaling コンソール (https://console.aws.amazon.com/ec2autoscaling/

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

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

  3. リポジトリの []アクティビティ[] タブで、アクティビティ通知通知の作成

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

    1. を使用する場合SNS トピックで、SNS トピックを選択します。

    2. を使用する場合イベントタイプで、通知を送信するイベントを選択します。

    3. [Create] を選択します。

Auto Scaling グループに関する Amazon SNS 通知を設定するには (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. Amazon EC2 Auto Scaling コンソール (https://console.aws.amazon.com/ec2autoscaling/

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

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

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

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

  5. [更新] を選択します。

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

通知設定の削除

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

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

  1. Amazon EC2 Auto Scaling コンソール (https://console.aws.amazon.com/ec2autoscaling/

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

  3. リポジトリの []アクティビティタブで、削除する通知の横のチェックボックスをオンにします。アクション削除

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 開発者ガイド