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à.
Distribuisci microservizi Java su Amazon ECS utilizzando Amazon ECR e AWS Fargate
Creato da Vijay Thompson (AWS) e Sandeep Bondugula (AWS)
Ambiente: PoC o pilota | Fonte: Containers | Destinazione: Amazon ECS |
Tipo R: N/A | Tecnologie: contenitori e microservizi; app Web e mobili | Servizi AWS: Amazon ECS |
Riepilogo
Questo modello ti guida attraverso i passaggi per la distribuzione di microservizi Java come applicazioni containerizzate in Amazon Elastic Container Service (Amazon ECS). Il modello utilizza anche Amazon Elastic Container Registry (Amazon ECR) per gestire il container e AWS Fargate per eseguire il container.
Prerequisiti e limitazioni
Prerequisiti
Un'applicazione di microservizi Java esistente in esecuzione in locale su Docker
Un account AWS attivo
Familiarità con Amazon ECR, Amazon ECS, AWS Fargate e AWS Command Line Interface (AWS CLI)
Familiarità con i software Java e Docker
Versioni del prodotto
AWS CLI versione 1.7 o successiva
Architettura
Stack tecnologico di origine
Microservizi Java (ad esempio, sviluppati utilizzando Spring Boot) e distribuiti in locale
Docker
Architettura di origine
![Architettura di origine per la distribuzione di microservizi Java su Amazon ECS](images/pattern-img/a48764de-d310-42dd-bff6-0efd70bc3aed/images/27db76ee-b9e3-45f1-a385-1e51af8415a9.png)
Stack tecnologico Target
Amazon ECR
Amazon ECS
AWS Fargate
Architettura Target
![Architettura di destinazione per la distribuzione di microservizi Java su Amazon ECS](images/pattern-img/a48764de-d310-42dd-bff6-0efd70bc3aed/images/e85cb42a-9982-4050-96fb-b7886fce4d38.png)
Strumenti
Strumenti
Amazon Elastic Container Registry (Amazon ECR) Elastic Container Registry (Amazon ECR) è un registro completamente gestito che semplifica l'archiviazione, la gestione e la distribuzione delle immagini dei container Docker per gli sviluppatori. Amazon ECR è integrato con Amazon ECS per semplificare il development-to-production flusso di lavoro. Amazon ECR ospita le tue immagini in un'architettura altamente disponibile e scalabile in modo da poter distribuire in modo affidabile contenitori per le tue applicazioni. L'integrazione con AWS Identity and Access Management (IAM) fornisce il controllo a livello di risorsa di ogni repository.
Amazon Elastic Container Service (Amazon ECS) è un servizio di orchestrazione di container altamente scalabile e ad alte prestazioni che supporta i contenitori Docker e consente di eseguire e scalare facilmente applicazioni containerizzate su AWS. Amazon ECS elimina la necessità di installare e utilizzare il proprio software di orchestrazione dei container, gestire e scalare un cluster di macchine virtuali o pianificare contenitori su tali macchine virtuali.
AWS Fargate è un motore di calcolo per Amazon ECS che consente di eseguire container senza dover gestire server o cluster. Con AWS Fargate, non è più necessario effettuare il provisioning, configurare e scalare cluster di macchine virtuali per eseguire contenitori. Viene anche eliminata la necessità di scegliere i tipi di server, di decidere quando dimensionare i cluster o ottimizzarne il packing.
Docker
è una piattaforma che consente di creare, testare e distribuire applicazioni in pacchetti chiamati contenitori.
Codice
Quanto segue DockerFile specifica la versione di Java Development Kit (JDK) utilizzata, in cui esiste il file di archivio Java (JAR), il numero di porta esposto e il punto di ingresso dell'applicazione.
FROM openjdk:8 ADD target/Spring-docker.jar Spring-docker.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","Spring-docker.jar"]
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Creare un repository . | Accedi alla Console di gestione AWS e apri la console Amazon ECR all'indirizzo https://console.aws.amazon.com/ecr/repositories | Sviluppatore, amministratore di sistema |
Carica il progetto. | Apri il repository e scegli Visualizza comandi push. Segui i passaggi visualizzati per caricare il progetto. (Questi passaggi funzionano solo quando utilizzi AWS CLI versione 1.7 o successiva). Una volta completato il caricamento, copia l'URL della build nel repository. Utilizzerai questo URL quando crei un contenitore in Amazon ECS. | Sviluppatore, amministratore di sistema |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea una definizione di attività. | L'esecuzione di un contenitore Docker in Amazon ECS richiede una definizione di attività. Apri la console Amazon ECS all'indirizzo https://console.aws.amazon.com/ecs/ | Sviluppatore, amministratore di sistema |
Scegli il tipo di avvio. | Scegli Fargate come tipo di lancio. | Sviluppatore, amministratore di sistema |
Configura l'attività. | Definire un nome per l'attività e configurare l'applicazione con la quantità appropriata di memoria e CPU per le attività. | Sviluppatore, amministratore di sistema |
Definisci il contenitore. | Aggiungi il contenitore, fornendo un nome, l'URL del repository Amazon ECR, i limiti di memoria e la mappatura delle porte. Le porte 8080 e 80 sono configurate per la mappatura delle porte. Configura le impostazioni rimanenti in base ai requisiti dell'applicazione. | Sviluppatore, amministratore di sistema |
Crea l'attività. | Una volta stabilite le configurazioni dell'attività e del contenitore, create l'attività. Per istruzioni dettagliate, consulta i collegamenti nella sezione Risorse correlate. | Sviluppatore, amministratore di sistema |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea o scegli un cluster. | Un cluster Amazon ECS fornisce un raggruppamento logico di attività o servizi. Puoi scegliere di utilizzare un cluster esistente o crearne uno nuovo. Se decidi di creare un nuovo cluster, scegli il tipo di cluster in base alle tue esigenze. Nel nostro esempio, abbiamo selezionato un cluster di rete. Fornisci un nome per il cluster e scegli se desideri creare un nuovo cloud privato virtuale (VPC) da utilizzare per le attività di Fargate. | Sviluppatore, amministratore di sistema |
Crea un servizio. | All'interno del cluster, scegli Crea servizio. | Sviluppatore, amministratore di sistema |
Scegli il tipo di avvio. | Scegli Fargate come tipo di lancio. | Sviluppatore, amministratore di sistema |
Scegli la definizione dell'attività, la revisione e la versione della piattaforma. | Scegli l'attività che desideri eseguire, seguita dalla revisione della definizione dell'attività e dalla versione della piattaforma. | Sviluppatore, amministratore di sistema |
Seleziona il cluster . | Seleziona il cluster in cui creare il tuo servizio dall'elenco a discesa. | Sviluppatore, amministratore di sistema |
Fornisci un nome di servizio. | Fornisci un nome univoco per il servizio che stai creando. | Sviluppatore, amministratore di sistema |
Specificare il numero di attività. | Configura il numero di attività da eseguire all'avvio del servizio. Se si avvia con due o più attività, è necessario un sistema di bilanciamento del carico per bilanciare le attività. Il numero minimo di attività da configurare è una. | Sviluppatore, amministratore di sistema |
Imposta le percentuali di salute minima e massima. | Configura le percentuali di integrità minima e massima per l'applicazione o accetta l'opzione predefinita fornita. | Sviluppatore, amministratore di sistema |
Configura le impostazioni di distribuzione. | Scegli il tipo di implementazione in base alle tue esigenze. Puoi scegliere un aggiornamento progressivo o una distribuzione blu/verde. | Sviluppatore, amministratore di sistema |
Configura il VPC del cluster, le sottoreti e i gruppi di sicurezza. | Configura il VPC del cluster, le sottoreti su cui desideri distribuire l'applicazione e i gruppi di sicurezza (HTTP, HTTPS e porta 8080) per fornire l'accesso alle connessioni in entrata/uscita. | Sviluppatore, amministratore di sistema |
Configura le impostazioni IP pubbliche. | Abilita o disabilita l'IP pubblico, a seconda che desideri utilizzare un indirizzo IP pubblico per le attività di Fargate. | Sviluppatore, amministratore di sistema |
Configura il bilanciamento del carico. | Configura il load balancer, se stai avviando il servizio con più di un'attività. È necessario creare un sistema di bilanciamento del carico e il relativo gruppo target prima di avviare il servizio. | Sviluppatore, amministratore di sistema |
Configura il ridimensionamento automatico. | Configura il tuo servizio per utilizzare Amazon ECS Service Auto Scaling per aumentare o ridurre il numero desiderato di attività, a seconda delle tue esigenze. | Sviluppatore, amministratore di sistema |
Rivedi le impostazioni e crea il servizio. | Controlla le impostazioni del servizio, quindi scegli Crea servizio. | Sviluppatore, amministratore di sistema |
Attività | Descrizione | Competenze richieste |
---|---|---|
Metti alla prova la tua candidatura. | Testa l'applicazione utilizzando il DNS pubblico creato quando l'attività viene distribuita. Se l'applicazione dispone di un sistema di bilanciamento del carico, testala utilizzandolo e poi interrompi. | Sviluppatore, amministratore di sistema |
Risorse correlate
Nozioni di base su Docker per Amazon ECS (documentazione Amazon ECS)
Amazon ECS su AWS Fargate (documentazione Amazon ECS)
Creazione di un repository privato (documentazione Amazon ECR)
Creazione di una definizione di attività (documentazione Amazon ECS)
Definizioni dei container (documentazione Amazon ECS)
Creazione di un cluster (documentazione Amazon ECS)
Configurazione dei parametri di servizio di base (documentazione Amazon ECS)
Configurazione di una rete (documentazione Amazon ECS)
Configurazione del servizio per l'utilizzo di un sistema di bilanciamento del carico (documentazione Amazon ECS)
Configurazione del servizio per l'utilizzo di Service Auto Scaling (documentazione Amazon ECS)