2017-05-15 13 views
1

EC2の自動スケールサービスで起動するように設定されたスポーンされた「スケーリングされた」インスタンスのリストをSQSメッセージで送信する方法はありますか?EC2サービスの自動スケールからインスタンスIDのリストを取得

+1

を。要件を明確にしてください。例:インスタンスが自動スケーリンググループに起動されるたびにSQSメッセージを表示するか、グループ内のすべてのインスタンスが「今すぐ」にリストされている単一のメッセージだけを表示しますか?なぜあなたはSQSメッセージでそれを望んでいるのですか?[AWS Command-Line Interface(CLI)](http://aws.amazon.com/cli/)またはAPIコールを使用する意思がありますか?詳細を追加するには、質問を編集してください。 –

+0

私の使用例はMonte Carlo Simです。私はS3のフォルダに含まれているさまざまな入力ファイルをインスタンスにマップしたいと思います。私は、インスタンスIDを使用してフォルダの名前を変更する必要があると考えました。そのため、インスタンスはインスタンスIDと同じ名前のフォルダに含まれる入力ファイルのみを使用します。私はこれがハックだと理解していますが、Bashの処理はフォームによって異なりますMCS –

答えて

1

スケーリングイベント中にec2インスタンスのインスタンスIDを知りたい場合は、ライフサイクルフックをSQSで設定できます。

あなたはライフサイクルのアクションが発生したときに通知を受信する通知対象を設定するためにアマゾンSQSを使用することができますアマゾンSQS

を使用して通知を受信します。

は、Amazon SQSは

  1. はアマゾンSQSを使用してターゲットを作成して使用して通知を設定するには。詳細については、「Amazon Simple Queue Serviceデベロッパーガイド」の「Amazon SQS入門」を参照してください。ターゲットのARNに注意してください。

  2. 「IAMユーザーガイド」の「AWSサービスへの権限を委任するための役割の作成」の手順を使用して、自動スケーリングの許可を通知ターゲットに与えるためのIAMロールを作成します。ロールタイプを選択するように求められたら、AWSサービスロール、自動スケーリング通知アクセスを選択します。ロールのARNに注意してください。たとえば、arn:aws:iam :: 123456789012:role/my-notification-roleのようになります。

  3. 自動スケーリングがイベントのスケールアウトまたはスケールに応答すると、インスタンスは待機状態になります。インスタンスが待機状態にある間、Auto Scalingは通知ターゲットにメッセージを発行します。

例のメッセージ:

Service: AWS Auto Scaling 
Time: 2016-09-30T20:42:11.305Z 
RequestId: 18b2ec17-3e9b-4c15-8024-ff2e8ce8786a 
LifecycleActionToken: 71514b9d-6a40-4b26-8523-05e7ee35fa40 
AccountId: 123456789012 
AutoScalingGroupName: my-asg 
LifecycleHookName: my-hook 
EC2InstanceId: i-0598c7d356eba48d7 
LifecycleTransition: autoscaling:EC2_INSTANCE_LAUNCHING 
NotificationMetadata: null 

その後、あなたはプット・ライフサイクル-hookコマンドを使用してライフサイクルフックを作成することができますライフサイクルフック

を追加します。

次のコマンドを使用し、スケールのアクションを実行するには:あなたの質問は理解することが少し難しいです

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-hook --auto-scaling-group-name my-asg --lifecycle-transition autoscaling:EC2_INSTANCE_LAUNCHING --notification-target-arn arn:aws:sns:us-west-2:123456789012:my-sqs --role-arn arn:aws:iam::123456789012:role/my-notification-role 

http://docs.aws.amazon.com/autoscaling/latest/userguide/lifecycle-hooks.html#adding-lifecycle-hooks

http://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-lifecycle-hook.html

+0

優秀ですが、オートスケーリングが複数のインスタンスで実行された場合、SQSメッセージに起動されたインスタンスID "EC2InstanceId" –

+0

スケーリングイベントごとに発生する新しいメッセージが表示されます。だからあなたはそれらを解析した後にメッセージを削除するようにしたいでしょう。 – strongjz

+0

起動するインスタンスが1kから10kの場合、高価になる可能性があります。 Tnks。 AWSは、このスケーリングオプションに対応します –

関連する問題