Architecture - Planificateur d'instances sur AWS

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.

Architecture

Cette section fournit un schéma d'architecture d'implémentation de référence, les considérations relatives à la conception d'AWS Well-Architected, les composants de sécurité, les configurations du planificateur et les services AWS utilisés dans cette solution.

Diagramme d’architecture

Le déploiement de cette solution déploie les composants suivants dans votre compte AWS.

Planificateur d'instances sur le cloud AWS

InstanceScheduler architecture
  1. Une EventBridge règle Amazon déclenche la fonction Lambda d'orchestration à des intervalles configurables (par défaut : toutes les 5 minutes).

  2. La EventBridge règle invoque une fonction d'orchestration AWS Lambda qui interroge la table de configuration DynamoDB pour identifier les cibles de planification actives. L'orchestrateur invoque ensuite les fonctions Lambda de planification parallèle pour chaque cible active.

  3. Les définitions et les périodes de planification sont stockées dans une table de configuration Amazon DynamoDB. Vous pouvez définir un nombre illimité de calendriers et de périodes dans ce tableau afin de contrôler le démarrage et l'arrêt de vos instances.

  4. Une table de registre DynamoDB assure automatiquement le suivi de toutes les ressources gérées. Lorsque des ressources sont balisées pour la planification, elles sont enregistrées dans ce tableau en réponse aux événements de balisage AWS.

  5. Chaque fonction Lambda de planification décrit les ressources étiquetées, évalue leurs plannings par rapport à l'heure actuelle et exécute les actions de démarrage ou d'arrêt appropriées.

    1. Pour les instances EC2, si une opération de démarrage échoue en raison d'une capacité insuffisante, la solution peut être configurée pour tenter de redimensionner l'instance en d'autres types d'instance avant de réessayer l'opération de démarrage.

  6. La gestion du planning est disponible via la console DynamoDB, l'outil CLI du planificateur ou les ressources personnalisées AWS. CloudFormation La solution se déploie avec plusieurs exemples de plannings préconfigurés.

  7. Les déploiements entre comptes utilisent une architecture hub-spoke dans laquelle les comptes parlés s'enregistrent automatiquement auprès du compte hub. Les stack Spoke doivent être déployés dans la même région que le hub stack et doivent être soit pré-approuvés par le hub stack, soit par des membres de la même organisation AWS.

  8. La solution publie les événements de planification et d'inscription sur les EventBridge bus sur le compte hub (événements mondiaux) et sur les comptes Spoke (événements locaux par région).

Note

Les CloudFormation ressources AWS sont créées à partir de constructions (AWS CDK).

Toutes les fonctions Lambda utilisées par cette solution tirent parti d'AWS IAM pour les exigences d'autorisation relatives à vos ressources, et d'AWS KMS pour le chiffrement d'Amazon Simple Notification Service (rubrique Amazon SNS) et des tables DynamoDB.

Chaque fois que la solution effectue un intervalle de planification, elle vérifie l'état actuel de chaque instance correctement étiquetée par rapport à l'état cible (défini par une ou plusieurs périodes dans un calendrier dans la balise d'instance) dans le calendrier associé. L'intervalle de planification applique ensuite l'action de démarrage ou d'arrêt appropriée, selon les besoins.

Par exemple, si la fonction Lambda est invoquée un vendredi à 9 h 00 (heure de l'Est) et qu'elle identifie une instance de base de données EC2 ou RDS arrêtée avec une balise Schedule=office-hours, elle consultera Amazon DynamoDB pour les détails de configuration du calendrier des heures de bureau. Si le calendrier des heures de bureau contient une période indiquant que l'instance doit fonctionner du lundi au vendredi de 9 h 00 ET à 17 h 00 ET, la fonction Lambda démarrera cette instance.

La fonction Lambda enregistre également des informations sur vos ressources et les affiche dans un tableau de bord Amazon CloudWatch Custom facultatif. Les informations enregistrées incluent le nombre d'instances étiquetées pour chaque calendrier, la taille de ces instances et si ces instances sont actuellement en cours d'exécution ou arrêtées. Pour plus d'informations sur ce tableau de bord personnalisé, reportez-vous à la section Tableau de bord des informations opérationnelles.

Note

L'arrêt d'une instance Amazon EC2 est différent de l'arrêt d'une instance Amazon EC2. Par défaut, les instances Amazon EC2 sont configurées pour s'arrêter, et non pour se terminer, lorsqu'elles sont arrêtées, mais vous pouvez modifier ce comportement. Avant d'utiliser cette solution, vérifiez que les instances sont configurées pour s'arrêter ou se terminer, selon le cas.