QuickStart: distribuisci un'applicazione Docker su 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à.

QuickStart: distribuisci un'applicazione Docker su Elastic Beanstalk

Questo QuickStart tutorial illustra il processo di creazione di un'applicazione Docker e la sua distribuzione in un ambiente. AWS Elastic Beanstalk

Nota

Questo QuickStart tutorial è destinato a scopi dimostrativi. Non utilizzate l'applicazione creata in questo tutorial per il traffico di produzione.

Il tuo AWS account

Se non sei già un AWS cliente, devi creare un AWS account. La registrazione ti consente di accedere a Elastic Beanstalk AWS e ad altri servizi di cui hai bisogno.

Se hai già un AWS account, puoi passare a. Prerequisiti

Registrati per un Account AWS

Se non ne hai uno Account AWS, completa i seguenti passaggi per crearne uno.

Per iscriverti a un Account AWS
  1. Apri la pagina all'indirizzo https://portal.aws.amazon.com/billing/signup.

  2. Segui le istruzioni online.

    Nel corso della procedura di registrazione riceverai una telefonata, durante la quale sarà necessario inserire un codice di verifica attraverso la tastiera del telefono.

    Quando ti iscrivi a un Account AWS, Utente root dell'account AWSviene creato un. L'utente root dispone dell'accesso a tutte le risorse e tutti i Servizi AWS nell'account. Come procedura consigliata in materia di sicurezza, assegnate l'accesso amministrativo a un utente e utilizzate solo l'utente root per eseguire attività che richiedono l'accesso da parte dell'utente root.

AWS ti invia un'e-mail di conferma dopo il completamento della procedura di registrazione. È possibile visualizzare l'attività corrente dell'account e gestire l'account in qualsiasi momento accedendo all'indirizzo https://aws.amazon.com/ e selezionando Il mio account.

Crea un utente con accesso amministrativo

Dopo esserti registrato Account AWS, proteggi Utente root dell'account AWS AWS IAM Identity Center, abilita e crea un utente amministrativo in modo da non utilizzare l'utente root per le attività quotidiane.

Proteggi i tuoi Utente root dell'account AWS
  1. Accedi AWS Management Consolecome proprietario dell'account scegliendo Utente root e inserendo il tuo indirizzo Account AWS email. Nella pagina successiva, inserisci la password.

    Per informazioni sull'accesso utilizzando un utente root, consulta la pagina Signing in as the root user della Guida per l'utente di Accedi ad AWS .

  2. Abilita l'autenticazione a più fattori (MFA) per l'utente root.

    Per istruzioni, consulta Abilitare un dispositivo MFA virtuale per l'utente Account AWS root (console) nella Guida per l'utente IAM.

Crea un utente con accesso amministrativo
  1. Abilita Centro identità IAM.

    Per istruzioni, consulta Abilitazione di AWS IAM Identity Center nella Guida per l'utente di AWS IAM Identity Center .

  2. In IAM Identity Center, concedi l'accesso amministrativo a un utente.

    Per un tutorial sull'utilizzo di IAM Identity Center directory come fonte di identità, consulta Configurare l'accesso utente con le impostazioni predefinite IAM Identity Center directory nella Guida per l'AWS IAM Identity Center utente.

Accedi come utente con accesso amministrativo
  • Per accedere con l'utente IAM Identity Center, utilizza l'URL di accesso che è stato inviato al tuo indirizzo e-mail quando hai creato l'utente IAM Identity Center.

    Per informazioni sull'accesso utilizzando un utente IAM Identity Center, consulta AWS Accedere al portale di accesso nella Guida per l'Accedi ad AWS utente.

Assegna l'accesso ad altri utenti
  1. In IAM Identity Center, crea un set di autorizzazioni che segua la migliore pratica di applicazione delle autorizzazioni con privilegi minimi.

    Per istruzioni, consulta Creare un set di autorizzazioni nella Guida per l'utente.AWS IAM Identity Center

  2. Assegna gli utenti a un gruppo, quindi assegna l'accesso Single Sign-On al gruppo.

    Per istruzioni, consulta Aggiungere gruppi nella Guida per l'utente.AWS IAM Identity Center

Prerequisiti

Per seguire le procedure in questa guida, devi usare un terminale a riga di comando o una shell per eseguire i comandi. I comandi vengono visualizzati in elenchi preceduti da un simbolo di prompt ($) e dal nome della directory corrente, se appropriato.

~/eb-project$ this is a command this is output

Su Linux e macOS usa la tua shell e il tuo programma di gestione dei pacchetti preferiti. Su Windows puoi installare il sottosistema Windows per Linux per ottenere una versione integrata per Windows di Ubuntu e Bash.

CLI EB

Questo tutorial utilizza l'interfaccia a riga di comando di Elastic Beanstalk (CLI EB). Per istruzioni dettagliate su come configurare e utilizzare la CLI EB, consulta Installa l'interfaccia a riga di comando EB e Configurazione dell'interfaccia a riga di comando EB.

Docker

Per seguire questo tutorial, avrai bisogno di un'installazione locale funzionante di Docker. Per ulteriori informazioni, consulta Ottieni Docker sul sito Web della documentazione di Docker.

Verifica che il demone Docker sia attivo e funzionante eseguendo il seguente comando.

~$ docker info

Passaggio 1: creare un'applicazione e un contenitore Docker

Per questo esempio, creiamo un'immagine Docker dell'applicazione Flask di esempio, anch'essa referenziata in. Implementazione di un'applicazione Flask in Elastic Beanstalk

L'applicazione è composta da due file:

  • app.py— il file Python che contiene il codice che verrà eseguito nel contenitore.

  • Dockerfile— il Dockerfile per creare la tua immagine.

Posiziona entrambi i file nella radice di una directory.

~/eb-docker-flask/ |-- Dockerfile |-- app.py

Aggiungi i seguenti contenuti al tuoDockerfile.

Esempio ~/eb-docker-flask/Dockerfile
FROM python:3.12 COPY . /app WORKDIR /app RUN pip install Flask==3.0.2 EXPOSE 5000 CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]

Aggiungi i seguenti contenuti al tuo app.py file.

Esempio ~/eb-docker-flask/app.py
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello Elastic Beanstalk! This is a Docker application'

Crea il tuo contenitore Docker, taggando l'immagine con. eb-docker-flask

~/eb-docker-flask$ docker build -t eb-docker-flask

Fase 2: Esegui l'applicazione localmente

Usa il comando docker build per creare l'immagine del contenitore localmente, taggando l'immagine con. eb-docker-flask Il periodo (.) alla fine del comando specifica che il percorso è una directory locale.

~/eb-docker-flask$ docker run -dp 127.0.0.1:5000:5000 eb-docker-flask .

Esegui il tuo contenitore con il comando docker run. Il comando stamperà l'ID del contenitore in esecuzione. L'-dopzione esegue docker in modalità background. L'-popzione espone l'applicazione alla porta 5000. Elastic Beanstalk invia il traffico alla porta 5000 sulla piattaforma Docker per impostazione predefinita.

~/eb-docker-flask$ docker run -dp 127.0.0.1:5000:5000 eb-docker-flask container-id

Accedi a nel tuo browser. http://127.0.0.1:5000/ Dovresti vedere il testo «Hello Elastic Beanstalk! Questa è un'applicazione Docker».

Esegui il comando docker kill per terminare il contenitore.

~/eb-docker-flask$ docker kill container-id

Fase 3: Implementa l'applicazione Docker con l'EB CLI

Esegui i seguenti comandi per creare un ambiente Elastic Beanstalk per questa applicazione.

Per creare un ambiente e distribuire l'applicazione Docker
  1. Inizializza il repository della CLI EB con il comando eb init.

    ~/eb-docker-flask$ eb init -p docker docker-tutorial us-east-2 Application docker-tutorial has been created.

    Questo comando crea un'applicazione denominata docker-tutorial e configura il repository locale per creare ambienti con l'ultima versione della piattaforma Docker.

  2. (Facoltativo) Esegui nuovamente eb init per configurare una coppia di chiavi predefinite e connetterti all'istanza EC2 che esegue l'applicazione.

    ~/eb-docker-flask$ eb init Do you want to set up SSH for your instances? (y/n): y Select a keypair. 1) my-keypair 2) [ Create new KeyPair ]

    Seleziona una coppia di chiavi se ne hai già una, oppure segui le istruzioni per creare una nuova. Se il prompt non è visualizzato o devi modificare le impostazioni in seguito, esegui eb init -i.

  3. Crea un ambiente e distribuisci in esso l'applicazione con eb create: Elastic Beanstalk crea automaticamente un file zip per l'applicazione e lo avvia sulla porta 5000.

    ~/eb-docker-flask$ eb create docker-tutorial

    Elastic Beanstalk impiega circa cinque minuti per creare l'ambiente.

Fase 4: Esegui l'applicazione su Elastic Beanstalk

Una volta completato il processo di creazione dell'ambiente, apri il sito Web con. eb open

~/eb-docker-flask$ eb open

Complimenti! Hai distribuito un'applicazione Docker con Elastic Beanstalk! Si aprirà una finestra del browser che utilizza il nome di dominio creato per l'applicazione.

Fase 5: rimozione

Puoi chiudere il tuo ambiente quando finisci di lavorare con l'applicazione. Elastic Beanstalk AWS interrompe tutte le risorse associate all'ambiente.

Per terminare l'ambiente Elastic Beanstalk con l'EB CLI, esegui il comando seguente.

~/eb-docker-flask$ eb terminate

AWS risorse per la tua applicazione

Hai appena creato un'applicazione a istanza singola. Funge da semplice applicazione di esempio con una singola istanza EC2, quindi non richiede il bilanciamento del carico o la scalabilità automatica. Per le applicazioni a istanza singola Elastic Beanstalk crea le seguenti risorse: AWS

  • Istanza EC2: una macchina virtuale di Amazon EC2 configurata per eseguire applicazioni Web sulla piattaforma selezionata.

    Ogni piattaforma esegue un insieme diverso di software, file di configurazione e script per supportare una versione della lingua, un framework, un container Web specifici o una determinata combinazione di tutti questi elementi. La maggior parte delle piattaforme utilizza Apache o nginx come proxy inverso che elabora il traffico web su cui viene eseguita l'app Web, inoltra le richieste all'app, fornisce asset statici e genera log degli accessi e di errore.

  • Gruppo di sicurezza istanze: un gruppo di sicurezza di Amazon EC2 configurato per abilitare il traffico in entrata sulla porta 80. Questa risorsa consente al traffico TTP proveniente dal load balancer di raggiungere l'istanza EC2 in esecuzione sull'app Web. Per impostazione predefinita, il traffico non è consentito su altre porte.

  • Bucket Amazon S3: posizione di storage per il codice sorgente, i log e altri artefatti creati quando si utilizza Elastic Beanstalk.

  • CloudWatch Allarmi Amazon: due CloudWatch allarmi che monitorano il carico sulle istanze nel tuo ambiente e vengono attivati se il carico è troppo alto o troppo basso. Quando viene attivato un allarme, il gruppo Auto Scaling aumenta o diminuisce di conseguenza.

  • AWS CloudFormation stack: Elastic AWS CloudFormation Beanstalk utilizza per avviare le risorse nell'ambiente e propagare le modifiche alla configurazione. Le risorse sono definite in un modello, visualizzabile nella console AWS CloudFormation.

  • Nome dominio: un nome di dominio che esegue l'instradamento all'applicazione Web utilizzando il formato sottodominio.regione.elasticbeanstalk.com.

Elastic Beanstalk gestisce tutte queste risorse. Quando arresti l'ambiente, Elastic Beanstalk termina tutte le risorse che contiene.

Passaggi successivi

Quando disponi di un'applicazione in esecuzione in un ambiente, puoi distribuire una nuova versione dell'applicazione o un'applicazione diversa in qualsiasi momento. La distribuzione di una nuova versione dell'applicazione è molto veloce perché non richiede il provisioning o il riavvio delle istanze EC2. Puoi anche esplorare il tuo nuovo ambiente utilizzando la console Elastic Beanstalk. Per i passaggi dettagliati, consulta Esplora il tuo ambiente nel capitolo Guida introduttiva di questa guida.

Dopo aver distribuito una o due applicazioni di esempio e essere pronti per iniziare a sviluppare ed eseguire applicazioni Docker localmente, vedi

Esegui la distribuzione con la console Elastic Beanstalk

Puoi anche utilizzare la console Elastic Beanstalk per avviare l'applicazione di esempio. Per i passaggi dettagliati, consulta Creare un'applicazione di esempio nel capitolo Guida introduttiva di questa guida.