2012年9月21日金曜日

"Auto Scaling"でのEC2の増減をSNSで通知

スズキです。

下記で、"Auto Scaling"の準備ができたので、実際に負荷をかけて
挙動を確認したいところですが、
その前に"Auto Scaling"のアクションをSNS(メール)で通知できるようにしておきます。

まずはSNSのトピック作成です。"Auto Scaling"のコマンドで通知先を設定するときに
このトピックを指定することになります。



次に作成したトピックに対して、サブスクリプションを設定します。
サブスクリプションはトピックに投げられたメッセージの通知先(メール)となります。



設定だけでは有効にならず、下記のメールが届くので本文中の確認用のリンクを
クリックする必要があります。
You have chosen to subscribe to the topic: 
arn:aws:sns:ap-northeast-1:811118151095:vpc-as

To confirm this subscription, click or visit the link below (If this was in error no action is necessary): 
Confirm subscription

Please do not reply directly to this e-mail. If you wish to remove yourself from receiving all future SNS subscription confirmation requests please send email to sns-opt-out


下記のように、トピックにサブスクリプションが設定されていることがわかります。


それでは、"Auto Scaling"のアクションの通知設定です。

通知できるアクションの種類は下記の通りです。
# as-describe-auto-scaling-notification-types
NOTIFICATION-TYPE  autoscaling:EC2_INSTANCE_LAUNCH
NOTIFICATION-TYPE  autoscaling:EC2_INSTANCE_LAUNCH_ERROR
NOTIFICATION-TYPE  autoscaling:EC2_INSTANCE_TERMINATE
NOTIFICATION-TYPE  autoscaling:EC2_INSTANCE_TERMINATE_ERROR
NOTIFICATION-TYPE  autoscaling:TEST_NOTIFICATION

すべてのアクションに対して通知するようにしました。
# as-put-notification-configuration vpc-ag \
> --notification-types autoscaling:EC2_INSTANCE_LAUNCH,autoscaling:EC2_INSTANCE_LAUNCH_ERROR,autoscaling:EC2_INSTANCE_TERMINATE,autoscaling:EC2_INSTANCE_TERMINATE_ERROR,autoscaling:TEST_NOTIFICATION  \
> --topic-arn arn:aws:sns:ap-northeast-1:811118151095:vpc-as
OK-Put Notification Configuration

通知の設定をすると、まずは"TEST_NOTIFICATION"が下記ように通知(メール)されます。
("--notification-types"に"TEST_NOTIFICATION"を設定して無ければ通知されません)
Auto Scaling: test notification for group "vpc-ag"
--------
Service: AWS Auto Scaling
Time: 2012-09-20T15:52:49.977Z
RequestId: 3ad41f27-033b-11e2-bfe2-dfc775ae5221
Event: autoscaling:TEST_NOTIFICATION
AccountId: 811118151095
AutoScalingGroupName: vpc-ag
AutoScalingGroupARN: arn:aws:autoscaling:ap-northeast-1:811118151095:autoScalingGroup:d6b54038-f82a-4890-b2bd-f4f4cefc3c73:autoScalingGroupName/vpc-ag

それでは、スケールアウトしてみます。
# as-execute-policy vpc-sp-out \
> --auto-scaling-group vpc-ag
OK-Executed Policy

下記ようにインスタンスの起動に対して通知(メール)されます。
Auto Scaling: launch for group "vpc-ag"
--------
Service: AWS Auto Scaling
Time: 2012-09-20T15:55:25.028Z
RequestId: 419a3f3f-37b9-43cf-9d40-d9a091381064
Event: autoscaling:EC2_INSTANCE_LAUNCH
AccountId: 811118151095
AutoScalingGroupName: vpc-ag
AutoScalingGroupARN: arn:aws:autoscaling:ap-northeast-1:811118151095:autoScalingGroup:d6b54038-f82a-4890-b2bd-f4f4cefc3c73:autoScalingGroupName/vpc-ag
ActivityId: 419a3f3f-37b9-43cf-9d40-d9a091381064
Description: Launching a new EC2 instance: i-74748877
Cause: At 2012-09-20T15:54:34Z a user request executed policy vpc-sp-out changing the desired capacity from 0 to 1.  At 2012-09-20T15:54:48Z an instance was started in response to a difference between desired and actual capacity, increasing the capacity from 0 to 1.
StartTime: 2012-09-20T15:54:48.665Z
EndTime: 2012-09-20T15:55:25.028Z
StatusCode: InProgress
StatusMessage:
Progress: 50
EC2InstanceId: i-74748877
Details: {}

そして、スケールインです。
# as-execute-policy vpc-sp-in
> --auto-scaling-group vpc-ag
OK-Executed Policy

今度はインスタンスの終了に対して次のように通知(メール)されます。
Auto Scaling: termination for group "vpc-ag"
--------
Service: AWS Auto Scaling
Time: 2012-09-20T15:57:26.607Z
RequestId: 37a4d76b-1e9a-4b5b-8108-0a806397aab1
Event: autoscaling:EC2_INSTANCE_TERMINATE
AccountId: 811118151095
AutoScalingGroupName: vpc-ag
AutoScalingGroupARN: arn:aws:autoscaling:ap-northeast-1:811118151095:autoScalingGroup:d6b54038-f82a-4890-b2bd-f4f4cefc3c73:autoScalingGroupName/vpc-ag
ActivityId: 37a4d76b-1e9a-4b5b-8108-0a806397aab1
Description: Terminating EC2 instance: i-74748877
Cause: At 2012-09-20T15:56:15Z a user request executed policy vpc-sp-in changing the desired capacity from 1 to 0.  At 2012-09-20T15:56:20Z an instance was taken out of service in response to a difference between desired and actual capacity, shrinking the capacity from 1 to 0.  At 2012-09-20T15:56:20Z instance i-74748877 was selected for termination.
StartTime: 2012-09-20T15:56:21.013Z
EndTime: 2012-09-20T15:57:26.607Z
StatusCode: InProgress
StatusMessage:
Progress: 0
EC2InstanceId: i-74748877
Details: {}

Nagiosに統合したい...
--------
http://www.suz-lab.com

0 コメント: