View a markdown version of this page

Utilisation AWS AppConfig Agent avec Amazon EC2 et machines sur site - AWS AppConfig

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 AWS AppConfig Agent avec Amazon EC2 et machines sur site

Vous pouvez intégrer AWS AppConfig des applications exécutées sur vos instances Linux Amazon Elastic Compute Cloud (Amazon EC2) à l'aide de l' AWS AppConfig Agent. L'agent améliore le traitement et la gestion des applications de la manière suivante :

  • L'agent appelle AWS AppConfig en votre nom en utilisant un rôle Gestion des identités et des accès AWS (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 de telles 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 les mises à jour des données de configuration. Votre application peut récupérer les données en se connectant à localhost sur le port 2772 (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. C'est pourquoi le premier appel pour récupérer des données est plus lent que les appels suivants.

Étape 1 : (Obligatoire) Création de ressources et configuration des autorisations

Pour intégrer AWS AppConfig les applications exécutées sur vos instances Amazon EC2, vous devez créer des AWS AppConfig artefacts et des données de configuration, notamment des indicateurs de fonctionnalités ou des données de configuration en 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 avec accès au plan de AWS AppConfig données. Pour donner accès à vos applications, mettez à jour la politique d'autorisations IAM attribuée au rôle d'instance Amazon EC2. Plus précisément, vous devez ajouter les appconfig:GetLatestConfiguration actions appconfig:StartConfigurationSession et à la politique. Voici un exemple :

JSON
{ "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 d'identité IAM dans le Guide de l'utilisateur IAM.

Étape 2 : (obligatoire) Installation et démarrage AWS AppConfig Agent sur les instances Amazon EC2

AWS AppConfig L'agent est hébergé dans un compartiment Amazon Simple Storage Service (Amazon S3) géré par AWS. Suivez 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 qui héberge 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. Debian-based les systèmes, tels qu'Ubuntu, ne sont pas pris en charge.

  • L'agent prend en charge les architectures x86_64 et ARM64.

  • Pour les applications distribuées, nous vous recommandons d'ajouter les commandes d'installation et de démarrage aux données utilisateur Amazon EC2 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 l'utilisateur Amazon EC2. Consultez également le didacticiel : Configuration des données utilisateur pour récupérer l'état du cycle de vie cible via les métadonnées de l'instance dans le guide de l'utilisateur Amazon EC2 Auto Scaling.

  • 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 à partir d'un ordinateur client local et cibler une ou plusieurs instances à l'aide de Run Command, un outil intégré à 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 Agent sur une instance
  1. Connectez-vous à votre instance Linux.

  2. Ouvrez un terminal et exécutez l'une des commandes suivantes avec les droits d'administrateur :

    x86_64

    sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/latest/aws-appconfig-agent.rpm

    ARM64

    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, remplacez latest l'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
  3. Exécutez la commande suivante pour démarrer l'agent :

    sudo systemctl start aws-appconfig-agent
  4. 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 les informations 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 sur STDERR. Systemd redirige les protocoles STDOUT et STDERR pour tous les services exécutés sur l'instance Linux vers le journal systemd. Vous pouvez consulter 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 CloudWatch un agent Amazon pour télécharger les données des journaux 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 votre instance ne manque d'espace disque.

Pour activer la journalisation sur disque, vous devez définir la variable d'LOG_PATHenvironnement, comme décrit dansÉtape 4 : (Facultatif) Utilisation de variables d'environnement pour configurer AWS AppConfig Agent pour Amazon EC2.

Pour commencer à utiliser l' CloudWatch agent, consultez la section Collecter des métriques et des journaux à partir d'instances Amazon EC2 et de serveurs locaux avec l' CloudWatch agent dans le guide de l' CloudWatch utilisateur Amazon. Vous pouvez utiliser Quick Setup, un outil de Systems Manager qui permet d'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 effectue automatiquement une rotation des 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 d' CloudWatch agent, voir Création du fichier de configuration d' 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 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 Agent pour Amazon EC2

Vous pouvez configurer AWS AppConfig l'agent pour Amazon EC2 à l'aide de variables d'environnement. Pour définir des variables d'environnement pour un systemd service, vous créez un fichier d'unités 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és intégré pour les variables d'environnement
  1. Connectez-vous à votre instance Linux.

  2. Ouvrez un terminal et exécutez la commande suivante avec les droits d'administrateur. La commande crée un répertoire de configuration :

    sudo mkdir /etc/systemd/system/aws-appconfig-agent.service.d
  3. Exécutez la commande suivante pour créer le fichier d'unité intégré. file_nameRemplacez-le par un nom pour le fichier. L'extension doit être .conf :

    sudo touch /etc/systemd/system/aws-appconfig-agent.service.d/file_name.conf
  4. Entrez les informations dans le fichier de l'unité de dépôt. 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
  5. Exécutez la commande suivante pour recharger la configuration de systemd :

    sudo systemctl daemon-reload
  6. Exécutez la commande suivante pour redémarrer AWS AppConfig l'agent :

    sudo systemctl restart aws-appconfig-agent

Vous pouvez configurer AWS AppConfig l'Agent pour Amazon EC2 en spécifiant les variables d'environnement suivantes dans un fichier d'unités intégré.

Note

Le tableau suivant inclut une colonne de valeurs d'exemple. En fonction de la résolution de votre écran, vous devrez peut-être faire défiler la page vers le bas du tableau, puis la faire défiler vers la droite pour afficher la colonne.

Variable d'environnement Détails Valeur par défaut Valeur (s) de l'échantillon

ACCESS_TOKEN

Cette variable d'environnement définit un jeton qui doit être fourni lors de la demande de données de configuration auprès du serveur HTTP de l'agent. La valeur du jeton doit être définie dans l'en-tête d'autorisation de la requête HTTP avec un type d'autorisation deBearer. Voici un exemple.

GET /applications/my_app/... Host: localhost:2772 Authorization: Bearer <token value>
Aucune MyAccessToken

BACKUP_DIRECTORY

Cette variable d'environnement permet à AWS AppConfig l'Agent d'enregistrer une sauvegarde de chaque configuration qu'il récupère dans le répertoire spécifié.

Important

Les configurations sauvegardées sur disque ne sont pas chiffrées. Si votre configuration contient des données sensibles, vous AWS AppConfig recommande d'appliquer 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.

Aucune /path/to/sauvegardes

EXPERIMENT_ASSIGNMENT_LOG_DESTINATION

Cette variable d'environnement permet à l' AWS AppConfig Agent d'enregistrer les enregistrements d'assignation des expériences, qui capturent chaque occurrence d'un traitement expérimental attribué à une entité donnée à un moment donné. Valeurs possibles : file:<path>/ indique un répertoire de base dans lequel les enregistrements d'affectation sont écrits sur le disque ; stderr indique que les enregistrements d'affectation sont émis vers stderr. Cette fonctionnalité nécessite la version 2.0.175233 ou ultérieure de l' AWS AppConfig Agent.

Aucune

file:/tmp/aws-appconfig/assignments/

stderr

HTTP_PORT

Cette variable d'environnement spécifie le port sur lequel s'exécute le serveur HTTP de l'agent.

2772 2772

HTTP_HOST

La variable HTTP_HOST contrôle la manière dont l' AWS AppConfig agent se lie aux interfaces réseau. Le comportement des liaisons varie en fonction de l'environnement d'exécution afin de garantir une sécurité et une accessibilité optimales.

ECS, EKS

  • Liaison par défaut : toutes les interfaces réseau (0.0.0.0)

EC2 et sur site

  • Liaison par défaut : localhost uniquement

  • Adresse IPv4 : 127.0.0. 1:2772

  • Adresse IPv6 : [::1] :2772

Options de configuration personnalisées. Vous pouvez modifier le comportement par défaut à l'aide des valeurs suivantes :

  • all(se lie à toutes les interfaces)

  • localhost(se lie explicitement aux interfaces localhost)

  • Adresse IP spécifique (par exemple192.168.1.1)

  • Nom d'hôte personnalisé

LOG_LEVEL

Cette variable d'environnement spécifie le niveau de détail enregistré par l'agent. Chaque niveau inclut le niveau actuel et tous les niveaux supérieurs. La valeur ne fait pas la distinction majuscules/minuscules. Du plus détaillé au moins détaillé, les niveaux de journalisation sont les suivants : trace debug infowarn,error,fatal, etnone. Le trace journal contient des informations détaillées, y compris des informations de synchronisation, concernant l'agent.

info

trace

debug

info

prévenir

error

fatal

Aucune

LOG_PATH

Emplacement du disque où les journaux sont écrits. S'il n'est pas spécifié, les journaux sont écrits sur stderr.

Aucune

path/to//logs/agent.journal

MANIFEST

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. 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.

Aucune

Lorsque vous utilisez AWS AppConfig la configuration comme manifeste :MyApp:MyEnv:MyManifestConfig.

Lors du chargement du manifeste depuis le disque : file:/path/to/manifest.json

MAX_CONNECTIONS

Cette variable d'environnement configure le nombre maximum de connexions que l'agent utilise pour récupérer les configurations. AWS AppConfig

3 3

POLL_INTERVAL

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 et 1 m donnent le même intervalle d'interrogation.

45 secondes

45

45 années

5 min

1 heure

PREFETCH_LIST

Cette variable d'environnement spécifie les données de configuration demandées par AWS AppConfig l'agent dès son démarrage. Plusieurs identifiants de configuration peuvent être fournis dans une liste séparée par des virgules.

Aucune

MyApp:MyEnv:MyConfig

abcd123 : efgh456 : ijkl789

MyApp:MyEnv:Config1,MyApp:MyEnv:Config2

PRELOAD_BACKUPS

Si ce paramètre est défini surtrue, l' AWS AppConfig agent charge les sauvegardes de configuration présentes BACKUP_DIRECTORY dans la mémoire et vérifie immédiatement si une version plus récente existe depuis le service. Si ce paramètre est défini surfalse, l' AWS AppConfig Agent charge le contenu d'une sauvegarde de configuration uniquement s'il ne peut pas récupérer les données de configuration du service, par exemple en cas de problème avec votre réseau.

true

vrai

false

PROXY_HEADERS Cette variable d'environnement spécifie les en-têtes requis par le proxy référencé dans la variable d'PROXY_URLenvironnement. La valeur est une liste d'en-têtes séparés par des virgules. Aucune

en-tête : valeur

h1 : v1, h2 : v2

PROXY_URL Cette variable d'environnement spécifie l'URL du proxy à utiliser pour les connexions entre l'agent Services AWS et, notamment AWS AppConfig. HTTPSet HTTP les URL sont prises en charge. Aucune

http://localhost: 7474

https://my-proxy.example.com

REQUEST_TIMEOUT

Cette variable d'environnement contrôle la durée pendant laquelle 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 antécédents pour les données mises à jour, 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'attente. 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 ms

3000

3000 ms

5s

ROLE_ARN Cette variable d'environnement spécifie le nom de ressource Amazon (ARN) d'un rôle IAM. AWS AppConfig L'agent assume ce rôle pour récupérer les données de configuration. Aucune arn:aws:iam : :123456789012 : role/MyRole
ROLE_EXTERNAL_ID Cette variable d'environnement spécifie l'ID externe à utiliser avec le rôle supposé ARN. Aucune MyExternalId
ROLE_SESSION_NAME Cette variable d'environnement spécifie le nom de session à associer aux informations d'identification pour le rôle IAM supposé. Aucune AWSAppConfigAgentSession
SERVICE_REGION Cette variable d'environnement spécifie 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 possible, l'agent ne démarre pas. Aucune

us-east-1

eu-west-1

WAIT_ON_MANIFEST

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

vrai

false

Étape 5 : (Obligatoire) Récupération des données de configuration

Vous pouvez récupérer les données de configuration depuis AWS AppConfig l'Agent en utilisant un appel HTTP localhost. Les exemples suivants sont utilisés curl avec un client HTTP. Vous pouvez appeler l'agent à l'aide de n'importe quel client HTTP disponible pris en charge par le langage de votre application ou par 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 indicateur unique 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) : Automatiser les mises à jour de AWS AppConfig 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 utilisateur Amazon EC2. Vous pouvez ajouter les commandes aux données utilisateur de l'instance ou du groupe EC2 Auto Scaling. Le script installe et lance 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