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.
Utilisation de AWS AppConfig l'agent avec Amazon EC2 et des machines sur site
Vous pouvez intégrer AWS AppConfig des applications exécutées sur vos instances Linux Amazon Elastic Compute Cloud (AmazonEC2) à l'aide de l' AWS AppConfig agent. L'agent améliore le traitement et la gestion des demandes de la manière suivante :
-
L'agent appelle AWS AppConfig en votre nom en utilisant un rôle AWS Identity and Access Management (IAM) et en gérant un cache local de données de configuration. En extrayant les données de configuration du cache local, votre application nécessite moins de mises à jour de code pour gérer les données de configuration, récupère les données de configuration en quelques millisecondes et n'est pas affectée par les problèmes de réseau susceptibles de perturber les appels pour ces données. *
-
L'agent propose une expérience native pour récupérer et résoudre les indicateurs de AWS AppConfig fonctionnalités.
-
Prêt à l'emploi, l'agent fournit les meilleures pratiques en matière de stratégies de mise en cache, d'intervalles d'interrogation et de disponibilité des données de configuration locales, tout en suivant les jetons de configuration nécessaires pour les appels de service suivants.
-
Lorsqu'il s'exécute en arrière-plan, l'agent interroge régulièrement le plan de AWS AppConfig données pour obtenir des mises à jour des données de configuration. Votre application peut récupérer les données en se connectant à localhost sur le port 2772 (une valeur de port par défaut personnalisable) et en appelant HTTP GET pour récupérer les données.
*AWS AppConfig L'agent met en cache les données la première fois que le service récupère vos données de configuration. Pour cette raison, le premier appel pour récupérer les données est plus lent que les appels suivants.
Rubriques
- Étape 1 : (Obligatoire) Création de ressources et configuration des autorisations
- Étape 2 : (obligatoire) Installation et démarrage de AWS AppConfig l'agent sur les EC2 instances Amazon
- Étape 3 : (Facultatif, mais recommandé) Envoi de fichiers CloudWatch journaux à Logs
- Étape 4 : (Facultatif) Utilisation de variables d'environnement pour configurer AWS AppConfig l'agent pour Amazon EC2
- Étape 5 : (Obligatoire) Récupération des données de configuration
- Étape 6 (facultative, mais recommandée) : Automatisation des mises à AWS AppConfig jour de l'agent
Étape 1 : (Obligatoire) Création de ressources et configuration des autorisations
Pour intégrer AWS AppConfig les applications exécutées sur vos EC2 instances Amazon, vous devez créer des AWS AppConfig artefacts et des données de configuration, notamment des indicateurs de fonctionnalité ou des données de configuration sous forme libre. Pour de plus amples informations, veuillez consulter Création d'indicateurs de fonctionnalités et de données de configuration sous forme libre dans AWS AppConfig.
Pour récupérer les données de configuration hébergées par AWS AppConfig, vos applications doivent être configurées de manière à accéder au plan de AWS AppConfig données. Pour autoriser l'accès à vos applications, mettez à jour la politique d'IAMautorisation attribuée au rôle d'EC2instance Amazon. Plus précisément, vous devez ajouter les appconfig:GetLatestConfiguration
actions appconfig:StartConfigurationSession
et à la politique. Voici un exemple :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "appconfig:StartConfigurationSession", "appconfig:GetLatestConfiguration" ], "Resource": "*" } ] }
Pour plus d'informations sur l'ajout d'autorisations à une politique, consultez la section Ajouter et supprimer des autorisations IAM d'identité dans le Guide de IAM l'utilisateur.
Étape 2 : (obligatoire) Installation et démarrage de AWS AppConfig l'agent sur les EC2 instances Amazon
AWS AppConfig L'agent est hébergé dans un compartiment Amazon Simple Storage Service (Amazon S3) géré par. AWS Utilisez la procédure suivante pour installer la dernière version de l'agent sur votre instance Linux. Si votre application est distribuée sur plusieurs instances, vous devez exécuter cette procédure sur chaque instance hébergeant l'application.
Note
Veuillez noter les informations suivantes :
-
AWS AppConfig L'agent est disponible pour les systèmes d'exploitation Linux exécutant la version 4.15 ou supérieure du noyau. Les systèmes basés sur Debian, tels qu'Ubuntu, ne sont pas pris en charge.
-
L'agent prend en charge x86_64 et les architectures. ARM64
-
Pour les applications distribuées, nous recommandons d'ajouter les commandes d'installation et de démarrage aux données EC2 utilisateur Amazon de votre groupe Auto Scaling. Dans ce cas, chaque instance exécute les commandes automatiquement. Pour plus d'informations, consultez la section Exécuter des commandes sur votre instance Linux au lancement dans le guide de EC2 l'utilisateur Amazon. Consultez également Tutoriel : Configurer les données utilisateur pour récupérer l'état du cycle de vie cible via les métadonnées de l'instance dans le manuel Amazon EC2 Auto Scaling User Guide.
-
Les procédures décrites dans cette rubrique décrivent comment effectuer des actions telles que l'installation de l'agent en vous connectant à l'instance pour exécuter la commande. Vous pouvez exécuter les commandes depuis un ordinateur client local et cibler une ou plusieurs instances en utilisant Run Command, qui est une fonctionnalité de AWS Systems Manager. Pour plus d’informations, consultez AWS Systems Manager Run Command dans le AWS Systems Manager Guide de l’utilisateur.
-
AWS AppConfig L'agent sur les instances Amazon EC2 Linux est un
systemd
service.
Pour installer et démarrer AWS AppConfig l'agent sur une instance
-
Connectez-vous à votre instance Linux.
-
Ouvrez un terminal et exécutez la commande suivante avec les autorisations d'administrateur pour les architectures x86_64 :
sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/latest/aws-appconfig-agent.rpm
Pour les ARM64 architectures, exécutez la commande suivante :
sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/arm64/latest/aws-appconfig-agent.rpm
Si vous souhaitez installer une version spécifique de l' AWS AppConfig Agent,
latest
remplacez-la URL par un numéro de version spécifique. Voici un exemple pour x86_64 :sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/2.0.2/aws-appconfig-agent.rpm
-
Exécutez la commande suivante pour démarrer l'agent :
sudo systemctl start aws-appconfig-agent
-
Exécutez la commande suivante pour vérifier que l'agent est en cours d'exécution :
sudo systemctl status aws-appconfig-agent
En cas de succès, la commande renvoie des informations telles que les suivantes :
aws-appconfig-agent.service - aws-appconfig-agent ... Active: active (running) since Mon 2023-07-26 00:00:00 UTC; 0s ago ...
Note
Pour arrêter l'agent, exécutez la commande suivante :
sudo systemctl stop aws-appconfig-agent
Étape 3 : (Facultatif, mais recommandé) Envoi de fichiers CloudWatch journaux à Logs
Par défaut, AWS AppConfig l'Agent publie les journaux surSTDERR. Systemd redirige STDOUT et STDERR pour tous les services exécutés sur l'instance Linux vers le journal systemd. Vous pouvez afficher et gérer les données du journal dans le journal systemd si vous n'exécutez AWS AppConfig l'Agent que sur une ou deux instances. Une meilleure solution, que nous recommandons vivement pour les applications distribuées, consiste à écrire des fichiers journaux sur disque, puis à utiliser l' CloudWatch agent Amazon pour télécharger les données du journal AWS dans le cloud. En outre, vous pouvez configurer l' CloudWatch agent pour supprimer les anciens fichiers journaux de votre instance, afin d'éviter que celle-ci ne manque d'espace disque.
Pour activer la journalisation sur le disque, vous devez définir la variable d'LOG_PATH
environnement, comme décrit dansÉtape 4 : (Facultatif) Utilisation de variables d'environnement pour configurer AWS AppConfig l'agent pour Amazon EC2.
Pour commencer à utiliser l' CloudWatch agent, consultez la section Collecter des métriques et des journaux à partir d'EC2instances Amazon et de serveurs sur site avec l' CloudWatch agent dans le guide de l' CloudWatch utilisateur Amazon. Vous pouvez utiliser Quick Setup, une fonctionnalité de Systems Manager pour installer rapidement l' CloudWatch agent. Pour plus d'informations, consultez la section Configuration rapide de la gestion des hôtes dans le guide de AWS Systems Manager l'utilisateur.
Avertissement
Si vous choisissez d'écrire des fichiers journaux sur disque sans utiliser l' CloudWatch agent, vous devez supprimer les anciens fichiers journaux. AWS AppConfig L'agent fait automatiquement pivoter les fichiers journaux toutes les heures. Si vous ne supprimez pas les anciens fichiers journaux, votre instance risque de manquer d'espace disque.
Après avoir installé l' CloudWatch agent sur votre instance, créez un fichier de configuration de CloudWatch l'agent. Le fichier de configuration indique à CloudWatch l'agent comment utiliser les fichiers journaux de AWS AppConfig l'agent. Pour plus d'informations sur la création d'un fichier de configuration de CloudWatch l'agent, consultez la section Création du fichier de configuration de l' CloudWatch agent.
Ajoutez la logs
section suivante au fichier de configuration de l' CloudWatch agent sur l'instance et enregistrez vos modifications :
"logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/
path_you_specified_for_logging
", "log_group_name": "${YOUR_LOG_GROUP_NAME
}/aws-appconfig-agent.log", "auto_removal": true }, ... ] }, ... }, ... }
Si la valeur auto_removal
est esttrue
, l' CloudWatch agent supprime automatiquement les fichiers journaux de l' AWS AppConfig agent pivotés.
Étape 4 : (Facultatif) Utilisation de variables d'environnement pour configurer AWS AppConfig l'agent pour Amazon EC2
Vous pouvez configurer AWS AppConfig l'agent pour Amazon à EC2 l'aide de variables d'environnement. Pour définir les variables d'environnement d'un systemd
service, vous devez créer un fichier d'unité intégré. L'exemple suivant montre comment créer un fichier d'unité intégré pour définir le niveau de journalisation de l' AWS AppConfig agent surDEBUG
.
Exemple de création d'un fichier d'unité intégré pour les variables d'environnement
-
Connectez-vous à votre instance Linux.
-
Ouvrez un terminal et exécutez la commande suivante avec les autorisations d'administrateur. La commande crée un répertoire de configuration :
sudo mkdir /etc/systemd/system/aws-appconfig-agent.service.d
-
Exécutez la commande suivante pour créer le fichier d'unité intégré. Remplacez
file_name
avec un nom pour le fichier. L'extension doit être.conf
:sudo touch /etc/systemd/system/aws-appconfig-agent.service.d/
file_name
.conf -
Entrez les informations dans le fichier de l'unité d'accueil. L'exemple suivant ajoute une
Service
section qui définit une variable d'environnement. L'exemple définit le niveau de journalisation de l' AWS AppConfig agent surDEBUG
.[Service] Environment=LOG_LEVEL=DEBUG
-
Exécutez la commande suivante pour recharger la configuration systemd :
sudo systemctl daemon-reload
-
Exécutez la commande suivante pour redémarrer AWS AppConfig l'agent :
sudo systemctl restart aws-appconfig-agent
Vous pouvez configurer AWS AppConfig Agent for Amazon EC2 en spécifiant les variables d'environnement suivantes dans un fichier d'unité intégré.
Variable d'environnement | Détails | Valeur par défaut |
---|---|---|
|
Cette variable d'environnement définit un jeton qui doit être fourni lors de la demande de données de configuration auprès du HTTP serveur d'agents. La valeur du jeton doit être définie dans l'en-tête d'autorisation de la HTTP demande avec un type d'autorisation de
|
Aucun |
|
Cette variable d'environnement permet à l' AWS AppConfig agent d'enregistrer une sauvegarde de chaque configuration récupérée dans le répertoire spécifié. ImportantLes configurations sauvegardées sur disque ne sont pas cryptées. Si votre configuration contient des données sensibles, il est AWS AppConfig recommandé de mettre en pratique le principe du moindre privilège avec les autorisations de votre système de fichiers. Pour de plus amples informations, veuillez consulter Sécurité dans AWS AppConfig. |
Aucun |
|
Cette variable d'environnement indique le port sur lequel s'exécute le HTTP serveur de l'agent. |
2772 |
|
Cette variable d'environnement indique le niveau de détail enregistré par l'agent. Chaque niveau inclut le niveau actuel et tous les niveaux supérieurs. Les variables distinguent les majuscules et minuscules. Du plus détaillé au moins détaillé, les niveaux de journalisation sont les suivants : |
|
|
Emplacement du disque où les journaux sont écrits. Si ce n'est pas spécifié, les journaux sont écrits dans stderr. |
Aucun |
|
Cette variable d'environnement configure l' AWS AppConfig agent pour tirer parti de fonctionnalités supplémentaires par configuration, telles que la récupération de plusieurs comptes et l'enregistrement de la configuration sur disque. Vous pouvez saisir l'une des valeurs suivantes :
Pour de plus amples informations sur l'utilisation de ces modèles, consultez Utilisation d'un manifeste pour activer des fonctionnalités de récupération supplémentaires. |
true |
|
Cette variable d'environnement configure le nombre maximal de connexions que l'agent utilise pour récupérer des AWS AppConfig configurations. |
3 |
|
Cette variable d'environnement contrôle la fréquence à laquelle l'agent interroge les données AWS AppConfig de configuration mises à jour. Vous pouvez spécifier un nombre de secondes pour l'intervalle. Vous pouvez également spécifier un nombre avec une unité de temps : s pour les secondes, m pour les minutes et h pour les heures. Si aucune unité n'est spécifiée, l'agent utilise par défaut les secondes. Par exemple, 60, 60 s et 1 m donnent le même intervalle d'interrogation. |
45 secondes |
|
Cette variable d'environnement spécifie les données de configuration que l'agent demande AWS AppConfig dès son démarrage. |
Aucun |
|
S'il est défini sur |
true |
PROXY_HEADERS |
Cette variable d'environnement spécifie les en-têtes requis par le proxy référencé dans la variable d'PROXY_URL environnement. La valeur est une liste d'en-têtes séparés par des virgules. Chaque en-tête utilise le formulaire suivant.
|
Aucun |
PROXY_URL |
Cette variable d'environnement indique le proxy URL à utiliser pour les connexions entre l'agent services AWS et, notamment AWS AppConfig. HTTPS et HTTP URLs sont pris en charge. |
Aucun |
|
Cette variable d'environnement contrôle le temps pendant lequel l'agent attend une réponse. AWS AppConfig Si le service ne répond pas, la demande échoue. Si la demande concerne la récupération initiale des données, l'agent renvoie une erreur à votre application. Si le délai d'attente survient lors d'une vérification des données mises à jour en arrière-plan, l'agent enregistre l'erreur et réessaie après un court laps de temps. Vous pouvez spécifier le nombre de millisecondes pour le délai d'expiration. Vous pouvez également spécifier un nombre avec une unité de temps : ms pour les millisecondes et s pour les secondes. Si aucune unité n'est spécifiée, l'agent utilise par défaut les millisecondes. Par exemple, 5 000, 5 000 ms et 5 s entraînent la même valeur de délai d'expiration de la demande. |
3000 millisecondes |
ROLE_ARN |
Cette variable d'environnement spécifie le nom de ressource Amazon (ARN) d'un IAM rôle. AWS AppConfig L'agent assume ce rôle pour récupérer les données de configuration. | Aucun |
ROLE_EXTERNAL_ID |
Cette variable d'environnement indique l'ID externe à utiliser avec le rôle assuméARN. | Aucun |
ROLE_SESSION_NAME |
Cette variable d'environnement indique le nom de session à associer aux informations d'identification pour le IAM rôle assumé. | Aucun |
SERVICE_REGION |
Cette variable d'environnement indique une alternative Région AWS que AWS AppConfig l'agent utilise pour appeler le AWS AppConfig service. Si elle n'est pas définie, l'agent tente de déterminer la région actuelle. Si ce n'est pas le cas, l'agent ne démarre pas. | Aucun |
|
Cette variable d'environnement configure l' AWS AppConfig agent pour qu'il attende que le manifeste soit traité avant de terminer le démarrage. |
true |
Étape 5 : (Obligatoire) Récupération des données de configuration
Vous pouvez récupérer les données de configuration de AWS AppConfig l'agent à l'aide d'un appel HTTP localhost. Les exemples suivants sont utilisés curl
avec un HTTP client. Vous pouvez appeler l'agent en utilisant n'importe quel HTTP client disponible compatible avec le langage de votre application ou les bibliothèques disponibles, y compris un AWS SDK.
Pour récupérer le contenu complet de toute configuration déployée
$ curl "http://localhost:2772/applications/
application_name
/environments/environment_name
/configurations/configuration_name
"
Pour récupérer un seul drapeau et ses attributs à partir d'une AWS AppConfig
configuration de type Feature Flag
$ curl "http://localhost:2772/applications/
application_name
/environments/environment_name
/configurations/configuration_name
?flag=flag_name
"
Pour accéder à plusieurs drapeaux et à leurs attributs à partir d'une AWS AppConfig
configuration de type Feature Flag
$ curl "http://localhost:2772/applications/
application_name
/environments/environment_name
/configurations/configuration_name
?flag=flag_name_one
&flag=flag_name_two
"
Étape 6 (facultative, mais recommandée) : Automatisation des mises à AWS AppConfig jour de l'agent
AWS AppConfig L'agent est mis à jour périodiquement. Pour vous assurer que vous exécutez la dernière version d' AWS AppConfig Agent sur vos instances, nous vous recommandons d'ajouter les commandes suivantes à vos données EC2 utilisateur Amazon. Vous pouvez ajouter les commandes aux données utilisateur sur l'instance ou sur le groupe EC2 Auto Scaling. Le script installe et démarre la dernière version de l'agent chaque fois qu'une instance démarre ou redémarre.
#!/bin/bash # install the latest version of the agent yum install -y https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/latest/aws-appconfig-agent.rpm # optional: configure the agent mkdir /etc/systemd/system/aws-appconfig-agent.service.d echo "${
MY_AGENT_CONFIG
}" > /etc/systemd/system/aws-appconfig-agent.service.d/overrides.conf systemctl daemon-reload # start the agent systemctl start aws-appconfig-agent