View a markdown version of this page

Utilizzo AWS AppConfig Agente con Amazon EC2 e macchine locali - AWS AppConfig

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo AWS AppConfig Agente con Amazon EC2 e macchine locali

Puoi integrarti AWS AppConfig con le applicazioni in esecuzione sulle tue istanze Linux di Amazon Elastic Compute Cloud (Amazon EC2) utilizzando Agent. AWS AppConfig L'agente migliora l'elaborazione e la gestione delle applicazioni nei seguenti modi:

  • L'agente chiama AWS AppConfig per conto dell'utente utilizzando un ruolo AWS Identity and Access Management (IAM) e gestendo una cache locale di dati di configurazione. Estraendo i dati di configurazione dalla cache locale, l'applicazione richiede meno aggiornamenti del codice per gestire i dati di configurazione, recupera i dati di configurazione in millisecondi e non è affetta da problemi di rete che possono interrompere le chiamate per tali dati. *

  • L'agente offre un'esperienza nativa per il recupero e la risoluzione dei AWS AppConfig flag delle funzionalità.

  • L'agente fornisce immediatamente le migliori pratiche per le strategie di memorizzazione nella cache, gli intervalli di polling e la disponibilità dei dati di configurazione locali, tenendo traccia dei token di configurazione necessari per le successive chiamate di servizio.

  • Durante l'esecuzione in background, l'agente interroga periodicamente il piano AWS AppConfig dati per gli aggiornamenti dei dati di configurazione. L'applicazione può recuperare i dati connettendosi a localhost sulla porta 2772 (un valore di porta predefinito personalizzabile) e chiamando HTTP GET per recuperare i dati.

*AWS AppConfig L'agente memorizza i dati nella cache la prima volta che il servizio recupera i dati di configurazione. Per questo motivo, la prima chiamata per recuperare i dati è più lenta delle chiamate successive.

Fase 1: (Obbligatorio) Creazione di risorse e configurazione delle autorizzazioni

Per l'integrazione AWS AppConfig con le applicazioni in esecuzione sulle tue istanze Amazon EC2, devi creare AWS AppConfig artefatti e dati di configurazione, inclusi flag di funzionalità o dati di configurazione in formato libero. Per ulteriori informazioni, consulta Creazione di flag di funzionalità e dati di configurazione in formato libero in AWS AppConfig.

Per recuperare i dati di configurazione ospitati da AWS AppConfig, le applicazioni devono essere configurate con accesso al piano dati. AWS AppConfig Per consentire l'accesso alle tue applicazioni, aggiorna la policy delle autorizzazioni IAM assegnata al ruolo dell'istanza Amazon EC2. In particolare, è necessario aggiungere le appconfig:GetLatestConfiguration azioni appconfig:StartConfigurationSession e alla policy. Ecco un esempio:

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

Per ulteriori informazioni sull'aggiunta di autorizzazioni a una policy, consulta Aggiungere e rimuovere le autorizzazioni di identità IAM nella IAM User Guide.

Fase 2: (Obbligatorio) Installazione e avvio AWS AppConfig Agente su istanze Amazon EC2

AWS AppConfig L'agente è ospitato in un bucket Amazon Simple Storage Service (Amazon S3) gestito da. AWS Utilizza la seguente procedura per installare la versione più recente dell'agente sulla tua istanza Linux. Se l'applicazione è distribuita su più istanze, è necessario eseguire questa procedura su ogni istanza che ospita l'applicazione.

Nota

Prendi nota delle seguenti informazioni:

  • AWS AppConfig L'agente è disponibile per i sistemi operativi Linux che eseguono la versione del kernel 4.15 o successiva. Debian-based i sistemi, come Ubuntu, non sono supportati.

  • L'agente supporta le architetture x86_64 e ARM64.

  • Per le applicazioni distribuite, consigliamo di aggiungere i comandi di installazione e avvio ai dati utente di Amazon EC2 del gruppo Auto Scaling. In tal caso, ogni istanza esegue i comandi automaticamente. Per ulteriori informazioni, consulta Run commands on your Linux instance at launch nella Amazon EC2 User Guide. Inoltre, consulta Tutorial: Configurare i dati utente per recuperare lo stato del ciclo di vita di destinazione tramite i metadati dell'istanza nella Amazon EC2 Auto Scaling User Guide.

  • Le procedure descritte in questo argomento descrivono come eseguire azioni come installare l'agente accedendo all'istanza per eseguire il comando. È possibile eseguire i comandi da un computer client locale e indirizzare una o più istanze utilizzando Run Command, che è uno strumento in. AWS Systems Manager Per ulteriori informazioni, consulta Run Command AWS Systems Manager nella Guida per l'utente AWS Systems Manager .

  • AWS AppConfig L'agente sulle istanze Linux di Amazon EC2 è un servizio. systemd

Per installare e avviare AWS AppConfig Agente su un'istanza
  1. Accedi alla tua istanza Linux.

  2. Apri un terminale ed esegui uno dei seguenti comandi con i permessi di amministratore:

    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

    Se desideri installare una versione specifica di AWS AppConfig Agent, sostituisci latest l'URL con un numero di versione specifico. Ecco un esempio per 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. Esegui il comando seguente per avviare l'agente:

    sudo systemctl start aws-appconfig-agent
  4. Esegui il comando seguente per verificare che l'agente sia in esecuzione:

    sudo systemctl status aws-appconfig-agent

    In caso di successo, il comando restituisce informazioni come le seguenti:

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

Per arrestare l'agente, esegui questo comando:

sudo systemctl stop aws-appconfig-agent

Passaggio 3: (facoltativo, ma consigliato) Invio dei file di registro ai CloudWatch log

Per impostazione predefinita, AWS AppConfig l'agente pubblica i log su STDERR. Systemd reindirizza STDOUT e STDERR per tutti i servizi in esecuzione sull'istanza Linux al journal systemd. È possibile visualizzare e gestire i dati di registro nel journal systemd se si esegue Agent solo su una o due istanze. AWS AppConfig Una soluzione migliore, una soluzione che consigliamo vivamente per le applicazioni distribuite, consiste nello scrivere i file di log su disco e quindi utilizzare Amazon CloudWatch Agent per caricare i dati di log nel AWS cloud. Inoltre, puoi configurare l' CloudWatch agente per eliminare i vecchi file di registro dalla tua istanza, evitando che l'istanza esaurisca lo spazio su disco.

Per abilitare la registrazione su disco, è necessario impostare la variabile di LOG_PATH ambiente, come descritto inFase 4: (Facoltativo) Utilizzo delle variabili di ambiente per la configurazione AWS AppConfig Agente per Amazon EC2.

Per iniziare a usare l' CloudWatch agente, consulta Raccogli metriche e log da istanze Amazon EC2 e server locali con l' CloudWatch agente nella Amazon User Guide. CloudWatch Puoi utilizzare Quick Setup, uno strumento in Systems Manager per installare rapidamente l'agente. CloudWatch Per ulteriori informazioni, vedere Quick Setup Host Management nella Guida AWS Systems Manager per l'utente.

avvertimento

Se si sceglie di scrivere i file di registro su disco senza utilizzare l' CloudWatch agente, è necessario eliminare i vecchi file di registro. AWS AppConfig L'agente ruota automaticamente i file di registro ogni ora. Se non elimini i vecchi file di registro, lo spazio su disco dell'istanza potrebbe esaurirsi.

Dopo aver installato l' CloudWatch agente sulla tua istanza, crea un file di configurazione CloudWatch dell'agente. Il file di configurazione indica all' CloudWatch agente come lavorare con i file di registro AWS AppConfig dell'agente. Per ulteriori informazioni sulla creazione di un file di configurazione CloudWatch dell'agente, vedere Creazione del file di configurazione dell' CloudWatch agente.

Aggiungi la seguente logs sezione al file di configurazione dell' CloudWatch agente sull'istanza e salva le modifiche:

"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 il valore auto_removal ètrue, l' CloudWatch agente elimina automaticamente i file di log AWS AppConfig dell'agente ruotati.

Fase 4: (Facoltativo) Utilizzo delle variabili di ambiente per la configurazione AWS AppConfig Agente per Amazon EC2

Puoi configurare AWS AppConfig l'agente per Amazon EC2 utilizzando le variabili di ambiente. Per impostare le variabili di ambiente per un systemd servizio, crei un file di unità drop-in. L'esempio seguente mostra come creare un file di unità drop-in su cui impostare il livello di registrazione dell' AWS AppConfig agente. DEBUG

Esempio di come creare un file di unità drop-in per le variabili di ambiente
  1. Accedi alla tua istanza Linux.

  2. Apri un terminale ed esegui il seguente comando con i permessi di amministratore. Il comando crea una directory di configurazione:

    sudo mkdir /etc/systemd/system/aws-appconfig-agent.service.d
  3. Esegui il comando seguente per creare il file di unità drop-in. Sostituisci file_name con un nome per il file. L'estensione deve essere.conf:

    sudo touch /etc/systemd/system/aws-appconfig-agent.service.d/file_name.conf
  4. Inserisci le informazioni nel file unitario a discesa. L'esempio seguente aggiunge una Service sezione che definisce una variabile di ambiente. L'esempio imposta il livello di registro AWS AppConfig dell'agente suDEBUG.

    [Service] Environment=LOG_LEVEL=DEBUG
  5. Eseguite il comando seguente per ricaricare la configurazione systemd:

    sudo systemctl daemon-reload
  6. Esegui il comando seguente per riavviare AWS AppConfig l'agente:

    sudo systemctl restart aws-appconfig-agent

Puoi configurare AWS AppConfig l'agente per Amazon EC2 specificando le seguenti variabili di ambiente in un file di unità drop-in.

Nota

La tabella seguente include una colonna di valori di esempio. A seconda della risoluzione del monitor, potrebbe essere necessario scorrere fino alla fine della tabella e quindi scorrere verso destra per visualizzare la colonna.

Variabile di ambiente Informazioni Valore predefinito Valori di esempio

ACCESS_TOKEN

Questa variabile di ambiente definisce un token che deve essere fornito quando si richiedono i dati di configurazione dal server HTTP dell'agente. Il valore del token deve essere impostato nell'intestazione di autorizzazione della richiesta HTTP con un tipo di autorizzazione pari a. Bearer Ecco un esempio.

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

BACKUP_DIRECTORY

Questa variabile di ambiente consente all' AWS AppConfig agente di salvare un backup di ogni configurazione recuperata nella directory specificata.

Importante

Le configurazioni di cui è stato eseguito il backup su disco non sono crittografate. Se la configurazione contiene dati sensibili, AWS AppConfig consiglia di applicare il principio del privilegio minimo con le autorizzazioni del file system. Per ulteriori informazioni, consulta Sicurezza in AWS AppConfig.

Nessuno /path/to/backup

EXPERIMENT_ASSIGNMENT_LOG_DESTINATION

Questa variabile di ambiente consente all' AWS AppConfig agente di registrare i record di assegnazione degli esperimenti, che registrano ogni occorrenza di un trattamento sperimentale assegnato a una determinata entità in un determinato momento. Valori possibili: file:<path>/ indica una directory di base in cui i record di assegnazione vengono scritti su disco; stderr indica che i record di assegnazione vengono emessi su stderr. Questa funzionalità richiede la versione AWS AppConfig dell'agente 2.0.175233 o successiva.

Nessuno

file:/tmp/aws-appconfig/assignments/

stderr

HTTP_PORT

Questa variabile di ambiente specifica la porta su cui viene eseguito il server HTTP dell'agente.

2772 2772

HTTP_HOST

La variabile HTTP_HOST controlla il modo in cui l' AWS AppConfig agente si collega alle interfacce di rete. Il comportamento di associazione varia in base all'ambiente di runtime per garantire sicurezza e accessibilità ottimali.

ECS, EKS

  • Associazione predefinita: tutte le interfacce di rete (0.0.0.0)

EC2 e on-premise

  • Associazione predefinita: solo localhost

  • Indirizzo IPv4:127.0.0. 1:2772

  • Indirizzo IPv6: [::1] :2772

Opzioni di configurazione personalizzate. È possibile sovrascrivere il comportamento predefinito utilizzando questi valori:

  • all(si lega a tutte le interfacce)

  • localhost(si lega esplicitamente alle interfacce localhost)

  • Indirizzo IP specifico (ad es.) 192.168.1.1

  • Nome host personalizzato

LOG_LEVEL

Questa variabile di ambiente specifica il livello di dettaglio registrato dall'agente. Ogni livello include il livello corrente e tutti i livelli superiori. Il valore non fa distinzione tra maiuscole e minuscole. Dal più dettagliato al meno dettagliato, i livelli di registro sono: tracedebug,,info,warn, errorfatal, enone. Il trace registro include informazioni dettagliate, comprese le informazioni sulla tempistica, sull'agente.

Info

trace

debug

Info

avviso

error

fatali

nessuno

LOG_PATH

La posizione del disco in cui vengono scritti i log. Se non specificato, i log vengono scritti su stderr.

Nessuno

//.log path/to logs/agent

MANIFEST

Questa variabile di ambiente configura l' AWS AppConfig Agent per sfruttare le funzionalità aggiuntive per configurazione, come il recupero di più account e il salvataggio della configurazione su disco. Per ulteriori informazioni su queste caratteristiche, consultare Utilizzo di un manifesto per abilitare funzionalità di recupero aggiuntive.

Nessuno

Quando si utilizza la configurazione come manifesto:. AWS AppConfig MyApp:MyEnv:MyManifestConfig

Quando si carica il manifest dal disco: file:/path/to/manifest.json

MAX_CONNECTIONS

Questa variabile di ambiente configura il numero massimo di connessioni da cui l'agente utilizza per recuperare le configurazioni. AWS AppConfig

3 3

POLL_INTERVAL

Questa variabile di ambiente controlla la frequenza con cui l'agente esegue il polling AWS AppConfig per i dati di configurazione aggiornati. È possibile specificare un numero di secondi per l'intervallo. È inoltre possibile specificare un numero con un'unità di tempo: s per secondi, m per minuti e h per ore. Se non viene specificata un'unità, per impostazione predefinita l'agente utilizza i secondi. Ad esempio, 60, 60s e 1 m corrispondono allo stesso intervallo di polling.

45 secondi

45

45 secondi

5 min

1 ora

PREFETCH_LIST

Questa variabile di ambiente specifica i dati di configurazione richiesti dall'agente non AWS AppConfig appena viene avviato. È possibile fornire più identificatori di configurazione in un elenco separato da virgole.

Nessuno

MyApp:MyEnv:MyConfig

abcd123:efgh456:ijkl789

MyApp:MyEnv:Config1,MyApp:MyEnv:Config2

PRELOAD_BACKUPS

Se impostato sutrue, l' AWS AppConfig agente carica i backup di configurazione trovati BACKUP_DIRECTORY nella memoria e controlla immediatamente se esiste una versione più recente del servizio. Se impostato sufalse, l' AWS AppConfig Agent carica il contenuto di un backup di configurazione solo se non è in grado di recuperare i dati di configurazione dal servizio, ad esempio se c'è un problema con la rete.

true

true

false

PROXY_HEADERS Questa variabile di ambiente specifica le intestazioni richieste dal proxy a cui si fa riferimento nella variabile di ambiente. PROXY_URL Il valore è un elenco di intestazioni separato da virgole. Nessuno

intestazione: valore

h1: v1, h2: v2

PROXY_URL Questa variabile di ambiente specifica l'URL del proxy da utilizzare per le connessioni dall'agente a, tra cui. Servizi AWS AWS AppConfigHTTPSe gli HTTP URL sono supportati. Nessuno

http://localhoste gli URL sono supportati. ----sep----:7474

https://my-proxy.example.com

REQUEST_TIMEOUT

Questa variabile di ambiente controlla la quantità di tempo da cui l'agente attende una risposta. AWS AppConfig Se il servizio non risponde, la richiesta ha esito negativo.

Se la richiesta riguarda il recupero iniziale dei dati, l'agente restituisce un errore all'applicazione.

Se il timeout si verifica durante un controllo in background dei dati aggiornati, l'agente registra l'errore e riprova dopo un breve ritardo.

È possibile specificare il numero di millisecondi per il timeout. È inoltre possibile specificare un numero con un'unità di tempo: ms per millisecondi e s per secondi. Se non viene specificata un'unità, per impostazione predefinita l'agente utilizza i millisecondi. Ad esempio, 5000, 5000 ms e 5 secondi danno come risultato lo stesso valore di timeout della richiesta.

3000 ms

3000

3000 ms

5s

ROLE_ARN Questa variabile di ambiente specifica l'Amazon Resource Name (ARN) di un ruolo IAM. AWS AppConfig L'agente assume questo ruolo per recuperare i dati di configurazione. Nessuno arn:aws:iam: :123456789012: role/MyRole
ROLE_EXTERNAL_ID Questa variabile di ambiente specifica l'ID esterno da utilizzare con il ruolo assunto ARN. Nessuno MyExternalId
ROLE_SESSION_NAME Questa variabile di ambiente specifica il nome della sessione da associare alle credenziali per il ruolo IAM assunto. Nessuno AWSAppConfigAgentSession
SERVICE_REGION Questa variabile di ambiente specifica un'alternativa Regione AWS che l' AWS AppConfig Agent utilizza per chiamare il servizio. AWS AppConfig Se non viene definita, l'agente tenta di determinare la regione corrente. In caso contrario, l'agente non si avvia. Nessuno

us-east-1

eu-west-1

WAIT_ON_MANIFEST

Questa variabile di ambiente configura l' AWS AppConfig agente in modo che attenda l'elaborazione del manifest prima di completare l'avvio.

true

true

false

Fase 5: (Obbligatorio) Recupero dei dati di configurazione

È possibile recuperare i dati di configurazione dall' AWS AppConfig agente utilizzando una chiamata HTTP localhost. I seguenti esempi vengono utilizzati curl con un client HTTP. È possibile chiamare l'agente utilizzando qualsiasi client HTTP disponibile supportato dal linguaggio dell'applicazione o dalle librerie disponibili, incluso un AWS SDK.

Per recuperare il contenuto completo di qualsiasi configurazione distribuita

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

Per recuperare un singolo flag e i relativi attributi da una configurazione di tipo AWS AppConfig Feature Flag

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

Per accedere a più flag e ai relativi attributi da una AWS AppConfig configurazione di tipo Feature Flag

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

Fase 6 (facoltativa, ma consigliata): Automazione degli aggiornamenti di AWS AppConfig Agente

AWS AppConfig L'agente viene aggiornato periodicamente. Per assicurarti di eseguire la versione più recente di AWS AppConfig Agent sulle tue istanze, ti consigliamo di aggiungere i seguenti comandi ai tuoi dati utente di Amazon EC2. Puoi aggiungere i comandi ai dati utente sull'istanza o sul gruppo EC2 Auto Scaling. Lo script installa e avvia la versione più recente dell'agente ogni volta che un'istanza viene avviata o riavviata.

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