Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de AWS AppConfig Agent con Amazon EC2 y máquinas locales
Puede realizar la integración AWS AppConfig con las aplicaciones que se ejecutan en sus instancias Linux de Amazon Elastic Compute Cloud (Amazon EC2) mediante AWS AppConfig Agent. El agente mejora el procesamiento y la administración de las aplicaciones de las siguientes maneras:
-
El agente llama AWS AppConfig en su nombre utilizando una función AWS Identity and Access Management (IAM) y gestionando una caché local de datos de configuración. Al extraer los datos de configuración de la memoria caché local, su aplicación necesita menos actualizaciones de código para gestionar los datos de configuración, recupera los datos de configuración en milisegundos y no se ve afectada por problemas de red que puedan interrumpir las llamadas a dichos datos.*
-
El agente ofrece una experiencia nativa para recuperar y resolver los indicadores de AWS AppConfig funciones.
-
En su estado original, el agente proporciona las prácticas recomendadas para las estrategias de almacenamiento en caché, los intervalos de sondeo y la disponibilidad de los datos de configuración local, al tiempo que rastrea los tokens de configuración necesarios para las siguientes llamadas de servicio.
-
Mientras se ejecuta en segundo plano, el agente sondea periódicamente el plano de AWS AppConfig datos en busca de actualizaciones de los datos de configuración. La aplicación puede recuperar los datos conectándose a localhost en el puerto 2772 (un valor de puerto predeterminado personalizable) y llamando a HTTP GET para recuperar los datos.
* El AWS AppConfig agente almacena los datos en caché la primera vez que el servicio recupera los datos de configuración. Por este motivo, la primera llamada para recuperar datos es más lenta que las llamadas posteriores.
Temas
- Paso 1 (obligatorio): Crear recursos y configurar los permisos
- Paso 2: (obligatorio) Instalar e iniciar AWS AppConfig Agent en EC2 instancias de Amazon
- Paso 3: (opcional, pero recomendado) Enviar los archivos de registro a CloudWatch Logs
- Paso 4: (opcional) Uso de variables de entorno para configurar AWS AppConfig Agent for Amazon EC2
- Paso 5 (obligatorio): Recuperar datos de configuración
- Paso 6 (opcional, pero recomendado): Automatizar AWS AppConfig las actualizaciones del agente
Paso 1 (obligatorio): Crear recursos y configurar los permisos
Para integrarse AWS AppConfig con las aplicaciones que se ejecutan en sus EC2 instancias de Amazon, debe crear AWS AppConfig artefactos y datos de configuración, incluidos indicadores de características o datos de configuración de formato libre. Para obtener más información, consulte Creación de indicadores de características y datos de configuración de formato libre en AWS AppConfig.
Para recuperar los datos de configuración alojados por AWS AppConfig, sus aplicaciones deben configurarse con acceso al plano de AWS AppConfig datos. Para dar acceso a tus aplicaciones, actualiza la política de permisos de IAM que está asignada a la función de EC2 instancia de Amazon. En concreto, debe añadir las acciones appconfig:StartConfigurationSession
y appconfig:GetLatestConfiguration
a la política. A continuación se muestra un ejemplo:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "appconfig:StartConfigurationSession", "appconfig:GetLatestConfiguration" ], "Resource": "*" } ] }
Para obtener información sobre cómo añadir permisos a la política, consulte Adición y eliminación de permisos de identidad de IAM en la Guía del usuario de IAM.
Paso 2: (obligatorio) Instalar e iniciar AWS AppConfig Agent en EC2 instancias de Amazon
AWS AppConfig El agente está alojado en un bucket de Amazon Simple Storage Service (Amazon S3) administrado por. AWS Siga este procedimiento para descargar la versión más reciente del agente en su instancia de Linux. Si la aplicación está distribuida en varias instancias, debe realizar este procedimiento en cada instancia que aloje la aplicación.
nota
Tenga en cuenta la siguiente información:
-
AWS AppConfig El agente está disponible para los sistemas operativos Linux que ejecutan la versión 4.15 o superior del kernel. Los sistemas basados en Debian, como por ejemplo Ubuntu, no son compatibles.
-
El agente es compatible con x86_64 y arquitecturas. ARM64
-
Para aplicaciones distribuidas, recomendamos añadir los comandos install y start a los datos de EC2 usuario de Amazon de su grupo de Auto Scaling. Si lo hace, cada instancia ejecuta los comandos automáticamente. Para obtener más información, consulta Ejecutar comandos en tu instancia de Linux en el momento del lanzamiento en la Guía del EC2 usuario de Amazon. Además, consulte el tutorial: Configurar los datos de usuario para recuperar el estado del ciclo de vida de destino a través de los metadatos de la instancia en la Guía del usuario de Amazon EC2 Auto Scaling.
-
Los procedimientos de este tema describen la manera de realizar acciones, como por ejemplo instalar el agente iniciando sesión en la instancia para ejecutar el comando. Puede ejecutar los comandos desde una máquina cliente local y dirigirse a una o más instancias mediante Run Command, que es una herramienta incluida AWS Systems Manager. Para obtener más información, consulte Run Command de AWS Systems Manager en la Guía del usuario de AWS Systems Manager .
-
AWS AppConfig El agente en las instancias de Amazon EC2 Linux es un
systemd
servicio.
Para instalar e iniciar el AWS AppConfig agente en una instancia
-
Conexión con su instancia de Linux.
-
Abra una terminal y ejecute uno de los siguientes comandos con permisos de administrador:
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 quiere instalar una versión específica del AWS AppConfig agente, sustituya
latest
la URL por un número de versión específico. Este es un ejemplo para 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
-
Para iniciar el agente, ejecute el comando siguiente:
sudo systemctl start aws-appconfig-agent
-
Ejecute el siguiente comando para verificar que el agente está funcionando:
sudo systemctl status aws-appconfig-agent
En caso de éxito, este comando devuelve información similar a la siguiente:
aws-appconfig-agent.service - aws-appconfig-agent ... Active: active (running) since Mon 2023-07-26 00:00:00 UTC; 0s ago ...
nota
Para detener el agente, ejecute el comando siguiente:
sudo systemctl stop aws-appconfig-agent
Paso 3: (opcional, pero recomendado) Enviar los archivos de registro a CloudWatch Logs
De forma predeterminada, el AWS AppConfig agente publica los registros en STDERR. Systemd redirige los códigos STDOUT y STDERR de todos los servicios que se ejecutan en la instancia de Linux al diario de systemd. Puede ver y administrar los datos de registro en el registro de systemd si ejecuta AWS AppConfig Agent solo en una o dos instancias. Una solución mejor, una solución que recomendamos encarecidamente para las aplicaciones distribuidas, es escribir los archivos de registro en el disco y, a continuación, utilizar el CloudWatch agente de Amazon para cargar los datos de registro AWS en la nube. Además, puedes configurar el CloudWatch agente para que elimine los archivos de registro antiguos de la instancia, lo que evitará que la instancia se quede sin espacio en disco.
Para habilitar el registro en el disco, debe configurar la variable de entorno LOG_PATH
, tal y como se describe en Paso 4: (opcional) Uso de variables de entorno para configurar AWS AppConfig Agent for Amazon EC2.
Para empezar a usar el CloudWatch agente, consulta Recopilar métricas y registros de EC2 instancias de Amazon y servidores locales con el CloudWatch agente en la Guía del CloudWatch usuario de Amazon. Puede utilizar Quick Setup, una herramienta de Systems Manager para instalar rápidamente el CloudWatch agente. Para obtener más información, consulte Administración de host con Configuración Rápida en la Guía del usuario de AWS Systems Manager .
aviso
Si decide escribir los archivos de registro en el disco sin utilizar el CloudWatch agente, debe eliminar los archivos de registro antiguos. AWS AppConfig El agente rota automáticamente los archivos de registro cada hora. Si no se eliminan los archivos de registro antiguos, es posible que la instancia se quede sin espacio en disco.
Tras instalar el CloudWatch agente en la instancia, cree un archivo de configuración del CloudWatch agente. El archivo de configuración indica al CloudWatch agente cómo trabajar con los archivos de registro AWS AppConfig del agente. Para obtener más información sobre la creación de un archivo de configuración del CloudWatch agente, consulte Crear el archivo de configuración del CloudWatch agente.
Añada la siguiente logs
sección al archivo de configuración del CloudWatch agente de la instancia y guarde los cambios:
"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 el valor auto_removal
estrue
, el CloudWatch agente elimina automáticamente los archivos de registro del AWS AppConfig agente rotados.
Paso 4: (opcional) Uso de variables de entorno para configurar AWS AppConfig Agent for Amazon EC2
Puede configurar AWS AppConfig Agent for Amazon EC2 mediante variables de entorno. Para establecer las variables de entorno de un servicio de systemd
, debe crear un archivo de unidad integrado. El siguiente ejemplo muestra cómo crear un archivo unitario integrado para establecer el nivel de registro del AWS AppConfig agente. DEBUG
Ejemplo de cómo crear un archivo de unidad integrada para variables de entorno
-
Conexión con su instancia de Linux.
-
Abra una terminal y ejecute el siguiente comando con permisos de administrador. El comando crea un directorio de configuración:
sudo mkdir /etc/systemd/system/aws-appconfig-agent.service.d
-
Ejecute el siguiente comando para crear un archivo de unidad integrada.
file_name
Sustitúyalo por un nombre para el archivo. La extensión debe ser.conf
:sudo touch /etc/systemd/system/aws-appconfig-agent.service.d/
file_name
.conf -
Introduzca la información en el archivo de unidad integrada. En el siguiente ejemplo, se añade una sección
Service
que define una variable de entorno. El ejemplo establece AWS AppConfig el nivel de registro del agente de enDEBUG
.[Service] Environment=LOG_LEVEL=DEBUG
-
Ejecute el siguiente comando para volver a cargar la configuración de systemd:
sudo systemctl daemon-reload
-
Ejecute el siguiente comando para reiniciar el AWS AppConfig agente:
sudo systemctl restart aws-appconfig-agent
Puede configurar AWS AppConfig Agent for Amazon EC2 especificando las siguientes variables de entorno en un archivo de unidad desplegable.
nota
La siguiente tabla incluye una columna de valores de muestra. En función de la resolución del monitor, es posible que tenga que desplazarse hasta la parte inferior de la tabla y, a continuación, hacia la derecha para ver la columna.
Variable de entorno | Detalles | Valor predeterminado | Valor (s) de muestra |
---|---|---|---|
|
Esta variable de entorno define un token que se debe proporcionar al solicitar datos de configuración al servidor HTTP del agente. El valor del token debe estar establecido en el encabezado de autorización de la solicitud HTTP con un tipo de autorización de
|
Ninguno | MyAccessToken |
|
Esta variable de entorno permite al AWS AppConfig agente guardar una copia de seguridad de cada configuración que recupera en el directorio especificado. importanteLas configuraciones con copia de seguridad en el disco no están cifradas. Si su configuración contiene datos confidenciales, le AWS AppConfig recomienda que practique el principio de privilegios mínimos con los permisos del sistema de archivos. Para obtener más información, consulte Seguridad en AWS AppConfig. |
Ninguno | /path/to/backups |
|
Esta variable de entorno especifica el puerto en el que se ejecuta el servidor HTTP del agente. |
2772 | 2772 |
|
Esta variable de entorno especifica el nivel de detalle que registra el agente. Cada nivel incluye el nivel actual y todos los niveles superiores. El valor no distingue entre mayúsculas y minúsculas. Del más detallado al menos detallado, los niveles de registro son: |
info |
rastro depuración info aviso error fatal none |
|
La ubicación del disco en la que se escriben los registros. Si no se especifica, los registros se escriben en stderr. |
Ninguno |
/path/to/logs/agent.log |
|
Esta variable de entorno configura el AWS AppConfig Agente para que aproveche las funciones adicionales por configuración, como las recuperaciones de varias cuentas y el almacenamiento de la configuración en el disco. Para obtener más información sobre el uso de estas características, consulte Uso de un manifiesto para habilitar características de recuperación adicionales. |
Ninguno | Cuando se utiliza AWS AppConfig la configuración como manifiesto:. Al cargar el manifiesto desde el disco: |
|
Esta variable de entorno configura el número máximo de conexiones que el agente utiliza para recuperar las configuraciones de AWS AppConfig. |
3 | 3 |
|
Esta variable de entorno controla la frecuencia con la que el agente AWS AppConfig consulta los datos de configuración actualizados. Puede especificar un número de segundos para el intervalo. También puede especificar un número con una unidad de tiempo: s para segundos, m para minutos y h para horas. Si no se especifica una unidad, el agente ejecuta de forma predeterminada los segundos. Por ejemplo, 60, 60s y 1m dan como resultado el mismo intervalo de sondeo. |
45 segundos | 45 45 segundos 5 m 1h |
|
Esta variable de entorno especifica los datos de configuración que solicita el agente en AWS AppConfig cuanto se inicia. Se pueden proporcionar varios identificadores de configuración en una lista separada por comas. |
Ninguno | MyApp:MyEnv:MyConfig abcd123: efgh456: ijkl789 MyApp::Configuración 1, ::Configuración 2 MyEnv MyApp MyEnv |
|
Si se establece en |
true | true false |
PROXY_HEADERS |
Esta variable de entorno especifica los encabezados que requiere el proxy al que se hace referencia en la variable de entorno PROXY_URL . El valor es una lista de encabezados separados por comas. |
Ninguno |
encabezado: valor h1: v1, h2: v2 |
PROXY_URL |
Esta variable de entorno especifica la URL del proxy que se utilizará para las conexiones entre el agente y, por ejemplo Servicios de AWS, AWS AppConfigHTTPS y HTTP URLs son compatibles. |
Ninguno | http://localhost:7474 https://my-proxy.example.com |
|
Esta variable de entorno controla el tiempo que el agente espera una respuesta. AWS AppConfig Si el servicio no responde, se produce un error en la solicitud. Si la solicitud se emplea para la recuperación inicial de datos, el agente devuelve un error a su solicitud. Si el tiempo de espera se agota cuando se está comprobando en segundo plano si hay datos actualizados, el agente registra el error y lo vuelve a intentar tras un breve retraso. Puede especificar el número de milisegundos del tiempo de espera. También puede especificar un número con una unidad de tiempo: ms para milisegundos y s para segundos. Si no se especifica una unidad, el valor predeterminado del agente es milisegundos. Por ejemplo, 5000, 5000ms y 5s dan como resultado el mismo valor de tiempo de espera de la solicitud. |
3000 ms | 3 000 3000 ms 5 s |
ROLE_ARN |
Esta variable de entorno especifica el nombre de recurso de Amazon (ARN) de un rol de IAM. AWS AppConfig El agente asume esta función para recuperar los datos de configuración. | Ninguno | arn:aws:iam: :123456789012:role/ MyRole |
ROLE_EXTERNAL_ID |
Esta variable de entorno especifica el ID externo que se utilizará con el ARN del rol asumido. | Ninguno | MyExternalId |
ROLE_SESSION_NAME |
Esta variable de entorno especifica el nombre de la sesión que se va a asociar a las credenciales del rol de IAM asumido. | Ninguno | AWSAppConfigAgentSession |
SERVICE_REGION |
Esta variable de entorno especifica una alternativa que el agente utiliza para llamar al servicio. Región de AWS AWS AppConfig AWS AppConfig Si no se define, el agente intenta determinar la región actual. Si no puede, el agente no podrá iniciarse. | Ninguno | us-east-1 eu-west-1 |
|
Esta variable de entorno configura el AWS AppConfig agente para que espere hasta que se procese el manifiesto antes de completar el inicio. |
true | true false |
Paso 5 (obligatorio): Recuperar datos de configuración
Puede recuperar los datos de configuración del AWS AppConfig agente mediante una llamada HTTP localhost. Los siguientes ejemplos utilizan curl
con un cliente HTTP. Puede llamar al agente mediante cualquier cliente HTTP disponible compatible con el idioma de su aplicación o con las bibliotecas disponibles, incluido un AWS SDK.
Para recuperar el contenido completo de cualquier configuración implementada
$ curl "http://localhost:2772/applications/
application_name
/environments/environment_name
/configurations/configuration_name
"
Para recuperar una única marca y sus atributos desde una configuración AWS AppConfig
de tipo Feature Flag
$ curl "http://localhost:2772/applications/
application_name
/environments/environment_name
/configurations/configuration_name
?flag=flag_name
"
Para acceder a varias marcas y sus atributos desde una configuración de AWS AppConfig
de tipo Feature Flag
$ curl "http://localhost:2772/applications/
application_name
/environments/environment_name
/configurations/configuration_name
?flag=flag_name_one
&flag=flag_name_two
"
Paso 6 (opcional, pero recomendado): Automatizar AWS AppConfig las actualizaciones del agente
AWS AppConfig El agente se actualiza periódicamente. Para asegurarse de que está ejecutando la última versión de AWS AppConfig Agent en sus instancias, le recomendamos que añada los siguientes comandos a sus datos de EC2 usuario de Amazon. Puede agregar los comandos a los datos del usuario en la instancia o en el grupo EC2 Auto Scaling. El script instala e inicia la última versión del agente cada vez que se inicia o se reinicia una instancia.
#!/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