Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Spot instances
La capacité Spot peut permettre de réaliser d'importantes économies par rapport aux instances à la demande. La capacité Spot est une capacité excédentaire dont le prix est nettement inférieur à celui de la capacité réservée ou à la demande. Elle convient aux charges de travail de traitement par lots et de machine learning, ainsi qu'aux environnements de développement et intermédiaire. Plus généralement, elle convient à toutes les charges de travail qui tolèrent des temps d'arrêt temporaires.
Ayez conscience des conséquences suivantes, car la capacité Spot peut ne pas être disponible en permanence.
-
Pendant les périodes de très forte demande, la capacité Spot peut être indisponible. Cela peut retarder le lancement des instances Spot d'Amazon EC2. Dans ce cas, les services Amazon ECS réessayent de lancer des tâches, et les groupes Amazon EC2 Auto Scaling réessayent également de lancer des instances, jusqu'à ce que la capacité requise soit disponible. Amazon EC2 ne remplace pas la capacité Spot par une capacité à la demande.
-
Lorsque la demande globale de capacité augmente, les instances Spot et les tâches peuvent être résiliées avec un avertissement de deux minutes seulement. Une fois l'avertissement envoyé, les tâches doivent commencer à s'arrêter de manière ordonnée si nécessaire avant que l'instance ne soit complètement résiliée. Cela permet de réduire les risques d'erreurs. Pour plus d'informations sur un arrêt progressif, veuillez consulter le billet de blog Graceful shutdowns with ECS
.
Pour réduire les pénuries de capacité Spot, tenez compte des recommandations suivantes :
-
Utilisez plusieurs régions et zones de disponibilité : la capacité Spot varie en fonction de la région et de la zone de disponibilité. Vous pouvez améliorer la disponibilité Spot en exécutant vos charges de travail dans plusieurs régions et zones de disponibilité. Si possible, spécifiez des sous-réseaux dans toutes les zones de disponibilité des régions dans lesquelles vous exécutez vos tâches et instances.
-
Utiliser plusieurs types d'instances Amazon EC2 : lorsque vous utilisez des stratégies d'instance mixtes avec Amazon EC2 Auto Scaling, plusieurs types d'instances sont lancés dans votre groupe Auto Scaling. Cela garantit qu'une demande de capacité Spot peut être satisfaite en cas de besoin. Pour optimiser la fiabilité et réduire la complexité, utilisez des types d'instances dotés à peu près de la même quantité de processeur et de mémoire dans votre stratégie d'instances mixtes. Ces instances peuvent provenir d'une génération différente ou de variantes du même type d'instance de base. Veuillez noter qu'elles peuvent être dotées de fonctionnalités supplémentaires dont vous n'aurez peut-être pas besoin. Une telle liste pourrait inclure, par exemple m4.large, m5.large, m5a.large, m5d.large, m5n.large, m5dn.large et m5ad.large. Pour plus d’informations, consultez Groupes Auto Scaling avec types d’instance et options d’achat multiples dans le Guide de l’utilisateur Amazon EC2 Auto Scaling.
-
Utilisez la stratégie d'allocation Spot optimisée en termes de capacité : avec Amazon EC2 Spot, vous pouvez choisir entre des stratégies d'allocation optimisées en termes de capacité et de coûts. Si vous optez pour la stratégie optimisée en termes de capacités lors du lancement d'une nouvelle instance, Amazon EC2 Spot sélectionne le type d'instance le plus disponible dans la zone de disponibilité sélectionnée. Cela permet de réduire le risque que l'instance soit résiliée peu après son lancement.
Drainage des instances Linux Spot
Amazon EC2 résilie, arrête ou met en veille prolongée votre instance Spot lorsque le prix Spot dépasse le prix maximum de votre demande ou lorsque la capacité n'est plus disponible. Amazon EC2 fournit un avis d'interruption de deux minutes pour les actions de résiliation et d'arrêt des instances Spot. Il ne fournit pas l'avis de deux minutes pour l'action de mise en veille prolongée. Si le drainage des instances Spot Amazon ECS est activé sur l'instance, ECS reçoit l'avis d'interruption d'instance Spot et bascule l'instance à l'état DRAINING
.
Important
Amazon ECS ne reçoit pas d'avis de la part d'Amazon EC2 lorsque les instances sont supprimées par le rééquilibrage de la capacité Auto Scaling. Pour plus d'informations, consultez Rééquilibrage de la capacité Amazon EC2 Auto Scaling.
Lorsqu'une instance de conteneur est définie sur DRAINING
, Amazon ECS bloque la planification du placement des nouvelles tâches sur l'instance de conteneur. Les tâches de service ayant l'état PENDING
sur l'instance de conteneur faisant l'objet du drainage sont arrêtées immédiatement. S'il y a des instances de conteneur disponibles dans le cluster, des tâches de service de remplacement sont lancées dessus.
Le drainage des instances Spot est désactivé par défaut et doit être activé manuellement. Pour activer le drainage d'une instance Spot pour une nouvelle instance de conteneur, lors du lancement de l'instance de conteneur, ajoutez le script suivant dans le champ Données utilisateur, en le MyCluster
remplaçant par le nom du cluster dans lequel enregistrer l'instance de conteneur.
#!/bin/bash cat <<'EOF' >> /etc/ecs/ecs.config ECS_CLUSTER=
MyCluster
ECS_ENABLE_SPOT_INSTANCE_DRAINING=true EOF
Pour plus d’informations, consultez Lancement d'une instance de conteneur Amazon ECS Linux.
Pour activer le drainage des instances Spot pour une instance de conteneur existante
-
Connectez-vous à l'instance Spot via SSH.
-
Modifiez le fichier
/etc/ecs/ecs.config
et ajoutez le code suivant :ECS_ENABLE_SPOT_INSTANCE_DRAINING=true
-
Redémarrez le service
ecs
.-
Pour l'AMI Amazon Linux 2 optimisée pour Amazon ECS :
sudo systemctl restart ecs
-
Pour l'AMI Amazon Linux optimisée pour Amazon ECS :
sudo stop ecs && sudo start ecs
-
-
(Facultatif) Vous pouvez vérifier que l'agent est en cours d'exécution et consulter des informations sur votre nouvelle instance de conteneur en interrogeant l'opération API d'introspection d'agent. Pour plus d’informations, consultez Introspection des conteneurs Amazon ECS.
curl http://localhost:51678/v1/metadata
Drainage des instances Windows Spot
Amazon EC2 résilie, arrête ou met en veille prolongée votre instance Spot lorsque le prix Spot dépasse le prix maximum de votre demande ou lorsque la capacité n'est plus disponible. Amazon EC2 communique un avis d'interruption d'instance Spot, qui donne à l'instance un avertissement deux minutes avant qu'elle soit interrompue. Si le drainage des instances Spot Amazon ECS est activé sur l'instance, ECS reçoit l'avis d'interruption d'instance Spot et bascule l'instance à l'état DRAINING
.
Important
Amazon ECS surveille les avis d'interruption d'instance Spot qui comportent les actions d'instance terminate
et stop
. Si vous avez spécifié le comportement d'interruption d'instance hibernate
lors de la demande de vos instances Spot ou de votre parc d'instances Spot, le drainage des instances Spot Amazon ECS n'est pas pris en charge pour ces instances.
Lorsqu'une instance de conteneur est définie sur DRAINING
, Amazon ECS bloque la planification du placement des nouvelles tâches sur l'instance de conteneur. Les tâches de service ayant l'état PENDING
sur l'instance de conteneur faisant l'objet du drainage sont arrêtées immédiatement. S'il y a des instances de conteneur disponibles dans le cluster, des tâches de service de remplacement sont lancées dessus.
Vous devez définir le paramètre ECS_ENABLE_SPOT_INSTANCE_DRAINING
avant de démarrer l'agent de conteneur. Utilisez les commandes suivantes pour activer manuellement le drainage des instances Spot. Remplacez my-cluster
par le nom de votre cluster.
[Environment]::SetEnvironmentVariable("ECS_ENABLE_SPOT_INSTANCE_DRAINING", "true", "Machine") # Initialize the agent Initialize-ECSAgent -Cluster
my-cluster
Pour plus d’informations, consultez Lancement d'une instance de conteneur Amazon ECS Windows.