4

Lors de l'utilisation d'un groupe de mise à l'échelle automatique sur EC2, la documentation indique que vous pouvez déclencher l'apparition de nouveaux serveurs en fonction des métriques cloudwatch. Est-il possible de lancer de nouvelles instances par vous-même? Par exemple, une application a une file d'attente interne d'éléments et une fois que cette file atteint un seuil, elle envoie un message à EC2 pour ajouter plus de serveurs au groupe.Pouvez-vous créer vos propres déclencheurs d'autoscaling EC2?

Est-ce possible?

Répondre

2

Pour le bénéfice des utilisateurs qui visitent cette réponse à l'avenir, voici une explication plus élaborée:

EC2 vous permet de définir/modifiez manuellement la capacité de votre groupe de mise à l'échelle automatique, en fonction du planning ou de la demande, comme indiqué dans the docs. Cependant, le terme «mise à l'échelle manuelle» peut être un peu trompeur car, comme presque tous les aspects d'AWS, tout ce que vous pouvez faire manuellement peut être scripté via l'interface CLI ou via les SDK.

Dans le cas d'un groupe de mise à l'échelle automatique EC2, la capacité est configurable et peut être modifiée dynamiquement pendant l'exécution - le changement de capacité entraîne l'ajout ou le retrait automatique d'instances. Dans ce cas, une solution consisterait à détecter les événements de cycle de vie spécifiques à votre application dans votre code d'application. En réponse à ces événements, utilisez le kit AWS SDK approprié pour modifier la capacité de votre groupe de mise à l'échelle automatique.

En ruby ​​cela peut se faire comme suit (exemples tirés de AWS API documentation):

autoscaling = Aws::AutoScaling::Client.new(
    region: region_name, 
    credentials: credentials 
) 

resp = autoscaling.set_desired_capacity(
    # required 
    auto_scaling_group_name: "ResourceName", 
    # required 
    desired_capacity: 1, 
    honor_cooldown: true, 
) 
Questions connexes