Usando o AWS AppConfig Agent com a Amazon EC2 e máquinas locais - AWS AppConfig

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando o AWS AppConfig Agent com a Amazon EC2 e máquinas locais

Você pode se integrar AWS AppConfig com aplicativos executados em suas instâncias Linux do Amazon Elastic Compute Cloud (AmazonEC2) usando o AWS AppConfig Agent. O agente aprimora o processamento e o gerenciamento de aplicativos das seguintes maneiras:

  • O agente liga AWS AppConfig em seu nome usando uma função AWS Identity and Access Management (IAM) e gerenciando um cache local de dados de configuração. Ao extrair dados de configuração do cache local, seu aplicativo exige menos atualizações de código para gerenciar dados de configuração, recupera dados de configuração em milissegundos e não é afetado por problemas de rede que podem afetar as chamadas para esses dados.*

  • O agente oferece uma experiência nativa para recuperar e resolver sinalizadores de AWS AppConfig recursos.

  • Pronto para uso, o agente fornece as práticas recomendadas para estratégias de armazenamento em cache, intervalos de pesquisa e disponibilidade de dados de configuração locais, enquanto rastreia os tokens de configuração necessários para chamadas de serviço subsequentes.

  • Durante a execução em segundo plano, o agente consulta periodicamente o plano de AWS AppConfig dados para atualizações de dados de configuração. Seu aplicativo pode recuperar os dados conectando-se ao localhost na porta 2772 (um valor de porta padrão personalizável) e ligando HTTP GET para recuperar os dados.

* O AWS AppConfig agente armazena os dados em cache na primeira vez que o serviço recupera seus dados de configuração. Por esse motivo, a primeira chamada para recuperar dados é mais lenta que as chamadas subsequentes.

Etapa 1: (obrigatória) crie recursos e configure permissões

Para se integrar AWS AppConfig aos aplicativos executados em suas EC2 instâncias da Amazon, você deve criar AWS AppConfig artefatos e dados de configuração, incluindo sinalizadores de recursos ou dados de configuração de formato livre. Para obter mais informações, consulte Criação de sinalizadores de recursos e dados de configuração de formato livre no AWS AppConfig.

Para recuperar dados de configuração hospedados por AWS AppConfig, seus aplicativos devem ser configurados com acesso ao plano de AWS AppConfig dados. Para dar acesso aos seus aplicativos, atualize a política de IAM permissões atribuída à função de EC2 instância da Amazon. Especificamente, você deve adicionar as ações appconfig:StartConfigurationSession e appconfig:GetLatestConfiguration à política. Exemplo:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "appconfig:StartConfigurationSession", "appconfig:GetLatestConfiguration" ], "Resource": "*" } ] }

Para obter mais informações sobre como adicionar permissões a uma política, consulte Adicionar e remover permissões de IAM identidade no Guia IAM do usuário.

Etapa 2: (Obrigatório) Instalar e iniciar o AWS AppConfig agente nas EC2 instâncias da Amazon

AWS AppConfig O agente está hospedado em um bucket do Amazon Simple Storage Service (Amazon S3) gerenciado por. AWS Use o procedimento a seguir para instalar a versão mais recente do agente em sua instância do Linux. Se seu aplicativo estiver distribuído entre várias instâncias, você deverá executar este procedimento em cada instância que hospeda o aplicativo.

nota

Observe as seguintes informações:

  • AWS AppConfig O agente está disponível para sistemas operacionais Linux que executam a versão 4.15 ou superior do kernel. Sistemas baseados em Debian, como o Ubuntu, não são suportados.

  • O agente oferece suporte a x86_64 e arquiteturas. ARM64

  • Para aplicativos distribuídos, recomendamos adicionar os comandos de instalação e inicialização aos dados de EC2 usuário da Amazon do seu grupo Auto Scaling. Se fizer isso, cada instância executará os comandos automaticamente. Para obter mais informações, consulte Executar comandos em sua instância Linux no lançamento no Guia EC2 do usuário da Amazon. Além disso, consulte o Tutorial: Configurar dados do usuário para recuperar o estado do ciclo de vida desejado por meio de metadados da instância no Guia do usuário do Amazon Auto Scaling. EC2

  • Os procedimentos deste tópico descrevem como realizar ações como instalar o agente fazendo login na instância para executar o comando. Você pode executar os comandos em uma máquina cliente local e direcionar uma ou mais instâncias usando o Run Command, que é um recurso do AWS Systems Manager. Para obter mais informações, consulte Comando AWS Systems Manager Run no Guia do usuário do AWS Systems Manager .

  • AWS AppConfig O agente nas instâncias EC2 Linux da Amazon é um systemd serviço.

Para instalar e iniciar o AWS AppConfig Agente em uma instância
  1. Faça login na sua instância do Linux.

  2. Abra um terminal e execute o seguinte comando com permissões de administrador para arquiteturas x86_64:

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

    Para ARM64 arquiteturas, execute o seguinte comando:

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

    Se você quiser instalar uma versão específica do AWS AppConfig Agente, latest substitua-a URL por um número de versão específico. Veja um exemplo 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
  3. Para iniciar o agente, execute o seguinte comando:

    sudo systemctl start aws-appconfig-agent
  4. Execute o seguinte comando para verificar se o agente está em execução:

    sudo systemctl status aws-appconfig-agent

    Se houver êxito, o comando retornará informações como as seguintes:

    aws-appconfig-agent.service - aws-appconfig-agent ... Active: active (running) since Mon 2023-07-26 00:00:00 UTC; 0s ago ...
nota

Para interromper o agente, execute o seguinte comando:

sudo systemctl stop aws-appconfig-agent

Etapa 3: (opcional, mas recomendado) Enviar arquivos de log para o CloudWatch Logs

Por padrão, o AWS AppConfig Agente publica registros emSTDERR. O Systemd redireciona STDOUT e, STDERR para todos os serviços executados na instância Linux, para o diário systemd. Você pode visualizar e gerenciar dados de log no diário do systemd se estiver executando o AWS AppConfig Agent em apenas uma ou duas instâncias. Uma solução melhor, uma solução altamente recomendada para aplicativos distribuídos, é gravar arquivos de log em disco e, em seguida, usar o CloudWatch agente da Amazon para carregar os dados de log na AWS nuvem. Além disso, você pode configurar o CloudWatch agente para excluir arquivos de log antigos da sua instância, o que evita que ela fique sem espaço em disco.

Para habilitar o log em disco, você deve definir a variável de ambiente LOG_PATH, conforme descrito em Etapa 4: (opcional) Usando variáveis de ambiente para configurar o AWS AppConfig agente para a Amazon EC2.

Para começar a usar o CloudWatch agente, consulte Coletar métricas e registros de EC2 instâncias da Amazon e servidores locais com o CloudWatch agente no Guia do CloudWatch usuário da Amazon. Você pode usar o Quick Setup, um recurso do Systems Manager para instalar rapidamente o CloudWatch agente. Para obter mais informações, consulte Gerenciamento do host de Configuração Rápida no Guia do usuário do AWS Systems Manager .

Atenção

Se você optar por gravar arquivos de log no disco sem usar o CloudWatch agente, deverá excluir os arquivos de log antigos. AWS AppConfig O agente gira automaticamente os arquivos de log a cada hora. Se você não excluir os arquivos de log antigos, sua instância poderá ficar sem espaço em disco.

Depois de instalar o CloudWatch agente na sua instância, crie um arquivo de configuração do CloudWatch agente. O arquivo de configuração instrui o CloudWatch agente sobre como trabalhar com os arquivos de log do AWS AppConfig agente. Para obter mais informações sobre a criação de um arquivo de configuração do CloudWatch agente, consulte Criar o arquivo de configuração do CloudWatch agente.

Adicione a logs seção a seguir ao arquivo de configuração do CloudWatch agente na instância e salve suas alterações:

"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 }, ... ] }, ... }, ... }

Se o valor de auto_removal fortrue, o CloudWatch agente excluirá automaticamente os arquivos de log do AWS AppConfig Agente rotacionados.

Etapa 4: (opcional) Usando variáveis de ambiente para configurar o AWS AppConfig agente para a Amazon EC2

Você pode configurar o AWS AppConfig Agent for Amazon EC2 usando variáveis de ambiente. Para definir variáveis de ambiente para um serviço do systemd, crie um arquivo de unidade drop-in. O exemplo a seguir mostra como criar um arquivo de unidade drop-in para definir o nível de registro do AWS AppConfig agente como. DEBUG

Exemplo de como criar um arquivo de unidade drop-in para variáveis de ambiente
  1. Faça login na sua instância do Linux.

  2. Abra um terminal ou execute o comando a seguir com permissões de administrador. O comando cria um diretório de configuração:

    sudo mkdir /etc/systemd/system/aws-appconfig-agent.service.d
  3. Execute o comando a seguir para criar o arquivo de unidade drop-in. Substituir file_name com um nome para o arquivo. A extensão deve ser .conf:

    sudo touch /etc/systemd/system/aws-appconfig-agent.service.d/file_name.conf
  4. Insira as informações no arquivo da unidade drop-in. O exemplo a seguir adiciona uma seção Service que define uma variável de ambiente. O exemplo define o nível de log do AWS AppConfig Agente como DEBUG.

    [Service] Environment=LOG_LEVEL=DEBUG
  5. Execute o comando a seguir para recarregar a configuração do systemd:

    sudo systemctl daemon-reload
  6. Execute o comando a seguir para reiniciar o AWS AppConfig Agente:

    sudo systemctl restart aws-appconfig-agent

Você pode configurar o AWS AppConfig Agent for Amazon EC2 especificando as seguintes variáveis de ambiente em um arquivo de unidade suspenso.

Variável de ambiente Detalhes Valor padrão

ACCESS_TOKEN

Essa variável de ambiente define um token que deve ser fornecido ao solicitar dados de configuração do HTTP servidor do agente. O valor do token deve ser definido no cabeçalho de autorização da HTTP solicitação com um tipo de autorização deBearer. Aqui está um exemplo.

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

BACKUP_DIRECTORY

Essa variável de ambiente permite que o AWS AppConfig Agente salve um backup de cada configuração recuperada no diretório especificado.

Importante

As configurações copiadas em disco não são criptografadas. Se sua configuração contiver dados confidenciais, recomendamos AWS AppConfig que você pratique o princípio do menor privilégio com as permissões do sistema de arquivos. Para obter mais informações, consulte Segurança em AWS AppConfig.

Nenhum

HTTP_PORT

Essa variável de ambiente especifica a porta na qual o HTTP servidor do agente é executado.

2772

LOG_LEVEL

Esta variável de ambiente especifica o nível de detalhes que o agente registra. Cada nível inclui o nível atual e todos os níveis superiores. As variáveis diferenciam maiúsculas de minúsculas. Do mais detalhado ao menos detalhado, os níveis de log são: debug, info, warn, error e none. O Debug inclui informações detalhadas, incluindo informações de tempo, sobre o agente.

info

LOG_PATH

O local do disco em que os logs são gravados. Se não especificado, os logs serão gravados em stderr.

Nenhum

MANIFEST

Essa variável de ambiente configura o AWS AppConfig Agente para aproveitar os recursos adicionais por configuração, como recuperações de várias contas e salvamento da configuração em disco. Você pode inserir um dos seguintes valores:

  • "app:env:manifest-config"

  • "file:/fully/qualified/path/to/manifest.json"

Para obter mais informações sobre esses recursos, consulte Usando um manifesto para habilitar recursos adicionais de recuperação.

verdadeiro

MAX_CONNECTIONS

Esta variável de ambiente configura o número máximo de conexões que o agente usa para recuperar configurações do AWS AppConfig.

3

POLL_INTERVAL

Essa variável de ambiente controla a frequência com que o agente pesquisa dados AWS AppConfig de configuração atualizados. É possível especificar um número de segundos para o intervalo. Você também pode especificar um número com uma unidade de tempo: s para segundos, m para minutos, e h para horas. Se nenhuma unidade for especificada, o agente usará segundos como padrão. Por exemplo, 60, 60 s e 1 min resultam no mesmo intervalo de pesquisa.

45 segundos

PREFETCH_LIST

Essa variável de ambiente especifica os dados de configuração que o agente solicita AWS AppConfig assim que é iniciado.

Nenhum

PRELOAD_BACKUPS

Se definido comotrue, o AWS AppConfig Agente carrega os backups de configuração encontrados BACKUP_DIRECTORY na memória e verifica imediatamente se existe uma versão mais recente do serviço. Se definido comofalse, o AWS AppConfig Agente só carrega o conteúdo de um backup de configuração se não conseguir recuperar dados de configuração do serviço, por exemplo, se houver um problema com sua rede.

verdadeiro
PROXY_HEADERS Esta variável de ambiente especifica cabeçalhos que são exigidos pelo proxy referenciado na variável de ambiente PROXY_URL. O valor é uma lista de cabeçalhos separados por vírgula. Cada cabeçalho usa o formato a seguir:
"header: value"
Nenhum
PROXY_URL Essa variável de ambiente especifica o proxy URL a ser usado para conexões do agente com Serviços da AWS, inclusive AWS AppConfig. HTTPSe HTTP URLs são suportados. Nenhum

REQUEST_TIMEOUT

Essa variável de ambiente controla a quantidade de tempo do qual o agente espera por uma resposta. AWS AppConfig Se o serviço não responder, a solicitação falhará.

Se a solicitação for para a recuperação inicial de dados, o agente retornará um erro ao seu aplicativo.

Se o tempo limite ocorrer durante uma verificação de dados atualizados em segundo plano, o agente registrará o erro e tentará novamente após um pequeno atraso.

Você pode especificar o número de milissegundos para o tempo limite. Você pode também especificar um número com uma unidade de tempo: ms, para milissegundos, e s, para segundos. Se nenhuma unidade for especificada, o agente usará milissegundos como padrão. Por exemplo, 5000, 5000 ms e 5 s resultam no mesmo valor de tempo limite da solicitação.

3000 milissegundos
ROLE_ARN Essa variável de ambiente especifica o Amazon Resource Name (ARN) de uma IAM função. AWS AppConfig O agente assume essa função para recuperar os dados de configuração. Nenhum
ROLE_EXTERNAL_ID Essa variável de ambiente especifica a ID externa a ser usada com a função ARN assumida. Nenhum
ROLE_SESSION_NAME Essa variável de ambiente especifica o nome da sessão a ser associado às credenciais da função assumidaIAM. Nenhum
SERVICE_REGION Essa variável de ambiente especifica uma alternativa Região da AWS que o AWS AppConfig Agente usa para chamar o AWS AppConfig serviço. Se não for definida, o agente tentará determinar a região atual. Se não for possível, o agente não iniciará. Nenhum

WAIT_ON_MANIFEST

Essa variável de ambiente configura o AWS AppConfig Agente para esperar até que o manifesto seja processado antes de concluir a inicialização.

verdadeiro

Etapa 5: (obrigatória) recuperação de dados de configuração

Você pode recuperar dados de configuração do AWS AppConfig Agente usando uma chamada HTTP localhost. Os exemplos a seguir são usados curl com um HTTP cliente. Você pode chamar o agente usando qualquer HTTP cliente disponível suportado pela linguagem do seu aplicativo ou pelas bibliotecas disponíveis, incluindo um AWS SDK.

Para recuperar o conteúdo completo de qualquer configuração implantada

$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name"

Para recuperar um único sinalizador e seus atributos de uma configuração do AWS AppConfig do tipo Feature Flag

$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name?flag=flag_name"

Para acessar vários sinalizadores e seus atributos a partir de uma configuração do AWS AppConfig do tipo Feature Flag

$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name?flag=flag_name_one&flag=flag_name_two"

Etapa 6 (opcional, mas recomendada): automatizar as atualizações do Agente AWS AppConfig

AWS AppConfig O agente é atualizado periodicamente. Para garantir que você esteja executando a versão mais recente do AWS AppConfig Agent em suas instâncias, recomendamos que você adicione os seguintes comandos aos seus dados de EC2 usuário da Amazon. Você pode adicionar os comandos aos dados do usuário na instância ou no grupo EC2 Auto Scaling. O script instala e inicia a versão mais recente do agente sempre que uma instância é iniciada ou reinicializada.

#!/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