2017-05-15 3 views
1

Existe-t-il un moyen d'envoyer au message SQS la liste des instances "mises à l'échelle" créées pour le lancement par le service Auto Scale de EC2?Obtention de la liste des ID d'instance à partir de l'échelle automatique dans le service EC2

+1

Votre question est un peu difficile à comprendre. Pourriez-vous s'il vous plaît clarifier vos exigences? Par exemple: Voulez-vous un message SQS chaque fois qu'une instance est lancée dans un groupe Auto Scaling, ou juste un seul message répertoriant toutes les instances dans le groupe "en ce moment"? Pourquoi le voulez-vous via un message SQS - seriez-vous prêt à utiliser [AWS Command-Line Interface (CLI)] (http://aws.amazon.com/cli/) ou un appel d'API? N'hésitez pas à modifier votre question pour ajouter des détails. –

+0

mon cas d'utilisation est Monte Carlo Sim. Je souhaite mapper différents fichiers d'entrée contenus dans un dossier de S3 vers une instance. Je me suis dit, j'ai besoin d'utiliser l'ID de l'instance pour renommer le dossier, de sorte qu'une instance utilisera uniquement les fichiers d'entrée contenus dans un dossier qui a le même nom que l'ID de l'instance. Je comprends que c'est un hack, mais le traitement bash diffère forme MCS –

Répondre

1

Si vous souhaitez connaître l'ID d'instance d'une instance ec2 pendant un événement de mise à l'échelle, vous pouvez configurer des hooks Lifecycle avec SQS.

Recevoir notification à l'aide Amazon SQS

Vous pouvez utiliser Amazon SQS pour mettre en place une cible de notification pour recevoir des notifications lorsqu'une action du cycle de vie se produit.

Pour configurer les notifications en utilisant Amazon SQS

  1. Créer la cible en utilisant Amazon SQS. Pour plus d'informations, consultez Mise en route avec Amazon SQS dans le Guide du développeur Amazon Simple Queue Service. Notez l'ARN de la cible.

  2. Créez un rôle IAM pour accorder à Auto Scaling l'autorisation d'accéder à votre cible de notification, en procédant comme indiqué dans Création d'un rôle pour déléguer des autorisations à un service AWS dans le Guide de l'utilisateur IAM. Lorsque vous êtes invité à sélectionner un type de rôle, sélectionnez AWS Service Roles, AutoScaling Notification Access. Notez l'ARN du rôle. Par exemple, arn: aws: iam :: 123456789012: rôle/mon-notification-rôle.

  3. Lorsque Auto Scaling répond à un événement scale out ou scale in, il met l'instance dans un état d'attente. Pendant que l'instance est dans un état d'attente, Auto Scaling publie un message à la cible de notification.

Exemple de message:

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 

Puis Ajouter Lifecycle Crochet

Vous pouvez créer des crochets du cycle de vie à l'aide de la commande raccrochage de vente-cycle de vie.

Pour effectuer une action à l'échelle dehors, utilisez la commande suivante:

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

Excellent, je suppose que le message SQS aura une liste d'instances lancées ID "EC2InstanceId" si l'autoscaling est fait sur une multitude d'instances? –

+0

Il aura un nouveau message pour chaque événement de mise à l'échelle qui se produit avec chacun d'eux. Donc, vous voudrez faire pour supprimer les messages après les avoir analysés. – strongjz

+0

Cela peut coûter cher, si l'on a des instances de 1k à 10k à lancer. Tnks. Remarque AWS acceptera cette option de mise à l'échelle –