Utilizzo del ramo della piattaforma Docker ECS gestito in Elastic Beanstalk - AWS Elastic Beanstalk

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 del ramo della piattaforma Docker ECS gestito in Elastic Beanstalk

Questo argomento fornisce informazioni sui rami della piattaforma Docker ECS gestiti per Amazon Linux 2 e Amazon Linux 2023. Si applica anche al ramo della piattaforma dismesso Multi-container Docker su AL1 (anch'esso ECS gestito), se prevedi di migrarlo verso uno dei rami della piattaforma supportati.

Nota

Il 18 luglio 2022, Elastic Beanstalk ha impostato lo stato di tutte le filiali della piattaforma basate su Amazon Linux () come ritirato. AMI AL1

Migrazione da Multi-container Docker su AL1

Se attualmente utilizzi il Multi-container Docker dismesso in esecuzione su AL1 platform branch, puoi migrare alla versione più recente della piattaforma Running on 023. ECS AL2 L'ultima versione della ramificazione della piattaforma supporta tutte le funzionalità della ramificazione fuori produzione. Non sono richieste modifiche al codice sorgente. Per ulteriori informazioni, consulta Migrazione dell'ECSapplicazione Elastic Beanstalk da Docker multi-container gestito su Amazon Linux 2023 AL1 ECS.

ECSpanoramica della piattaforma Docker gestita

Elastic Beanstalk utilizza Amazon Elastic Container Service ECS (Amazon) per coordinare le distribuzioni di ECS container in ambienti Docker gestiti. Amazon ECS fornisce strumenti per gestire un cluster di istanze che eseguono contenitori Docker. Elastic Beanstalk si occupa ECS delle attività di Amazon, tra cui la creazione di cluster, la definizione e l'esecuzione delle attività. Le istanze nell'ambiente eseguono lo stesso set di container, che sono definiti in un file Dockerrun.aws.json v2. Per ottenere il massimo da Docker, Elastic Beanstalk ti consente di creare un ambiente in cui le tue istanze EC2 Amazon eseguono più contenitori Docker fianco a fianco.

Il diagramma seguente mostra un esempio di ambiente Elastic Beanstalk configurato con tre contenitori Docker in esecuzione su ogni EC2 istanza Amazon in un gruppo Auto Scaling:

Elastic Beanstalk environment with load balancer, auto scaling group, and containerized tasks.
Nota

Elastic Beanstalk offre funzionalità di estensibilità per tutte le piattaforme che è possibile utilizzare per personalizzare la distribuzione e l'esecuzione delle applicazioni. Per l'ECSesecuzione sulla piattaforma Amazon Linux 2, l'implementazione del flusso di lavoro di distribuzione delle istanze di queste funzionalità varia rispetto alle altre piattaforme. Per ulteriori informazioni, consulta Flusso di lavoro di distribuzione delle istanze per l'ECSesecuzione su Amazon Linux 2 e versioni successive.

ECSRisorse Amazon create da Elastic Beanstalk

Quando crei un ambiente utilizzando la piattaforma Docker ECS gestita, Elastic Beanstalk crea e configura automaticamente diverse risorse Amazon Elastic Container Service durante la creazione dell'ambiente. In tal modo, crea i contenitori necessari su ogni EC2 istanza Amazon.

  • Amazon ECS Cluster: le istanze di container in Amazon ECS sono organizzate in cluster. Se utilizzato con Elastic Beanstalk, viene sempre creato ECS un cluster per ogni ambiente Docker gestito.

  • Amazon ECS Task Definition — Elastic Beanstalk Dockerrun.aws.json utilizza la versione 2 nel tuo progetto per generare la definizione di attività ECS Amazon che viene utilizzata per configurare le istanze di container nell'ambiente.

  • Amazon ECS Task — Elastic Beanstalk comunica ECS con Amazon per eseguire un'attività su ogni istanza dell'ambiente per coordinare la distribuzione dei container. In un ambiente scalabile, Elastic Beanstalk avvia una nuova attività ogni volta che un'istanza viene aggiunta al cluster. In rari casi potrebbe essere necessario aumentare la quantità di spazio riservato a contenitori e immagini. Ulteriori informazioni nella sezione Configurazione degli ambienti Elastic Beanstalk Docker.

  • Amazon ECS Container Agent: l'agente viene eseguito in un contenitore Docker sulle istanze del tuo ambiente. L'agente interroga il ECS servizio Amazon e attende l'esecuzione di un'operazione.

  • Amazon ECS Data Volumes — Elastic Beanstalk inserisce le definizioni dei volumi (oltre ai volumi definiti nella v2) nella Dockerrun.aws.json definizione dell'attività per facilitare la raccolta dei log.

    Elastic Beanstalk crea volumi di log sull'istanza di container, uno per ogni container Docker, in /var/log/containers/containername. Questi volumi sono denominati awseb-logs-containername e vengono forniti per il montaggio dei container. Vedi Formato della definizione del container per ulteriori informazioni su come montarli.

Dockerrun.aws.jsonfile v2

Le istanze del contenitore richiedono un file di configurazione denominato. Dockerrun.aws.json Le istanze di container si riferiscono alle EC2 istanze Amazon che eseguono Docker ECS gestito in un ambiente Elastic Beanstalk. Questo file è specifico per Elastic Beanstalk e può essere utilizzato da solo o abbinato a un codice sorgente e a contenuti in un bundle di origine per creare un ambiente su una piattaforma Docker.

Nota

Il formato versione 2 di Dockerrun.aws.json aggiunge il supporto per più contenitori per EC2 istanza Amazon e può essere utilizzato solo con una piattaforma Docker ECS gestita. Il formato differisce notevolmente dalle altre versioni dei file di configurazione che supportano i rami della piattaforma Docker che non sono gestiti da. ECS

Vedi Dockerrun.aws.json v2 i dettagli sul formato aggiornato e un file di esempio.

Immagini Docker

La piattaforma Docker ECS gestita per Elastic Beanstalk richiede che le immagini siano predefinite e archiviate in un archivio di immagini online pubblico o privato prima di creare un ambiente Elastic Beanstalk.

Nota

La creazione di immagini personalizzate durante la distribuzione con a non Dockerfile è supportata dalla piattaforma Docker ECS gestita su Elastic Beanstalk. Crea le immagini e distribuiscile in un repository online prima di creare un ambiente Elastic Beanstalk.

Specifica le immagini per nome in Dockerrun.aws.json v2

Per configurare Elastic Beanstalk in modo che effettui l'autenticazione su un repository privato, includi il parametro authentication nel file Dockerrun.aws.json v2.

Distribuzioni di container non riuscite

Se un'ECSattività Amazon fallisce, uno o più contenitori nel tuo ambiente Elastic Beanstalk non verranno avviati. Elastic Beanstalk non ripristina gli ambienti multi-container a causa di un'attività Amazon non riuscita. ECS Se un container non viene avviato nell'ambiente, ridistribuisci la versione corrente o una versione funzionante precedente dalla console Elastic Beanstalk.

Per distribuire una versione esistente
  1. Apri la console Elastic Beanstalk nella regione dell'ambiente in uso.

  2. Fai clic su Actions (Operazioni) a destra del nome dell'applicazione, quindi su View application versions (Visualizza versioni dell'applicazione).

  3. Seleziona una versione dell'applicazione e fai clic su Deploy (Distribuisci).