Il lungo processo di configurazione delle risorse richieste una per una non è più necessario per distribuire applicazioni e server web.
I prodotti Platform-as-a-service (PaaS) come AWS Elastic Beanstalk e Heroku sono stati creati per consentire applicazioni da implementare e rendere disponibili agli utenti con poco o nessun codice e pochi pulsanti clic.
Quindi, cos'è AWS Elastic Beanstalk e come puoi distribuire le tue applicazioni Web Go nel cloud con Elastic Beanstalk?
Cos'è AWS Elastic Beanstalk?
AWS Elastic Beanstalk (AWS EB) è un prodotto platform-as-a-service offerto da Amazon Web Services che consente la distribuzione e la gestione rapide e semplici delle applicazioni e delle risorse necessarie.
Con Elastic Beanstalk, è facile distribuire un'applicazione senza dover impostare tutte le risorse richieste come un file
server linux su EC2o un servizio di monitoraggio in cloudwatch. Elastic Beanstalk gestisce tutti i processi di configurazione delle risorse e consente di distribuire vari tipi di applicazioni, tra cui Node.js, Golang, PHP, Docker e così via.Creazione di un semplice server Web Golang
Ai fini di questo tutorial, è necessario disporre di un'applicazione Golang funzionante da distribuire su AWS Elastic Beanstalk, pertanto in questa sezione viene creato un semplice server Web Go.
Hai bisogno di un ambiente di sviluppo Golang configurato sulla tua macchina per seguire questa sezione.
Il primo passo è inizializzare un nuovo progetto Golang che può essere fatto dal terminale eseguendo i seguenti comandi:
Una volta fatto, puoi aprire la directory del progetto nel tuo IDE preferito. Nella directory principale del progetto, crea una cartella denominata statico e creare un indice.html file in esso. Copia e incolla il seguente codice nel file HTML e salvalo.
html>
<htmllang="it">
<Testa>
<metaset di caratteri="UTF-8">
<titolo>Ciao mondo!titolo>
Testa>
<corpo>
<h1>Hello World da Elastic Beanstalkh1>
corpo>
html>
Torna alla directory principale del tuo progetto e crea un file applicazione.go file. Copia e incolla il codice qui sotto nel tuo applicazione.go file e salvarlo. Devi nominare il file principale applicazione.go perché questo è il file che Elastic Beanstalk cercherà per creare la tua applicazione durante il processo di distribuzione.
pacchetto principale
importare (
"tronco d'albero"
"rete/http"
)funzprincipale() {
statico := http. Fileserver (http. Dir("./statico"))
http. Maniglia("/", statico)
tronco d'albero. fatale (http. AscoltaEServi(":5000", zero))
}
Per impostazione predefinita, Elastic Beanstalk utilizza una configurazione NGINX che inoltra le richieste all'applicazione solo sulla porta 5000. Tranne che sovrascriverai le configurazioni NGINX predefinite, la tua applicazione Golang dovrebbe sempre ascoltare le richieste sulla porta 5000.
Se salvi il file ed esegui il programma nel terminale con vai a eseguire application.go, sarai in grado di visualizzare in anteprima la pagina web statica aprendo l'indirizzo host locale: 5000 nel tuo browser.
Ora hai la tua applicazione di esempio creata e pronta per la distribuzione. Nella sezione successiva, distribuirai l'applicazione in AWS Elastic Beanstalk.
Distribuzione di un'applicazione Go in AWS Elastic Beanstalk
Per distribuire un'applicazione a qualsiasi servizio AWS, come Elastic Beanstalk, è necessario un account cloud AWS. Se al momento non disponi di un account AWS, vai a Pagina di registrazione di AWS per crearne uno nuovo gratuitamente.
Esistono diversi modi per distribuire le applicazioni in Elastic Beanstalk, tra cui l'AWS CLI, l'interfaccia a riga di comando (EB) di Elastic Beanstalk CLI) e dalla console Web, ma in questo tutorial imparerai come distribuire in Elastic Beanstalk dal terminale utilizzando l'interfaccia a riga di comando di EB attrezzo.
Puoi dare un'occhiata al Guida all'installazione dell'interfaccia a riga di comando di AWS EB per una guida dettagliata su come installare e configurare EB CLI per seguire questa sezione. Una volta terminata l'installazione e la configurazione della CLI di EB, ora puoi procedere e seguire i passaggi seguenti per distribuire la tua applicazione Golang.
- Apri una nuova finestra di terminale e vai alla cartella del progetto dell'applicazione Go da distribuire utilizzando il file CD comando.
- Correre eb init per inizializzare un nuovo repository CLI Elastic Beanstalk. Essendo la prima volta che esegui questo comando dopo l'installazione, l'interfaccia a riga di comando di EB ti chiederà le opzioni di configurazione iniziale come mostrato nei passaggi che seguono.
- Dopo aver scelto una regione preferita, devi impostare le tue credenziali di identità di sicurezza (ID chiave di accesso e chiave segreta). C'è una guida completa fornita da AWS sulla generazione delle credenziali di sicurezza nella console AWS.
- Successivamente, devi definire il nome dell'applicazione che stai distribuendo. Per impostazione predefinita, utilizza il nome della cartella del progetto corrente.
- Il passaggio successivo è selezionare la piattaforma dell'applicazione che stai per distribuire, in questo caso, dovresti selezionare la 4a opzione poiché stai distribuendo un'applicazione Golang.
- Il prompt successivo chiede se si desidera abilitare una connessione SSH per l'applicazione distribuita. Questo è consigliato in quanto consente un facile accesso remoto e il debug per la tua applicazione, ma in questo tutorial, NO è selezionato, poiché è solo una semplice applicazione.
La riga che indica che non è stato possibile configurare CodeCommit non è nulla di cui preoccuparsi, poiché è dovuta al fatto che Git o qualsiasi altro controllo del codice sorgente non viene utilizzato nel progetto in questo esempio.
- Dopo aver completato i passaggi precedenti, verrà creato un nuovo repository dell'interfaccia a riga di comando di Elastic Beanstalk e ora puoi creare un ambiente Elastic Beanstalk per distribuire la tua applicazione nei passaggi successivi.
- Correre eb crea "nome ambiente" per creare un nuovo ambiente chiamato specificato nome dell'ambiente. L'ambiente viene creato con tutte le risorse necessarie, tra cui un'istanza EC2, un gruppo di ridimensionamento automatico, un bucket S3, un bilanciatore del carico e così via. Questo processo richiede circa 5-10 minuti a seconda della velocità della rete.
Proprio come quando tu distribuire un sito Web statico in AWS, alla tua applicazione EB viene assegnato anche un URL (contrassegnato nella casella rossa nello screenshot sopra) che puoi utilizzare per accedere alla tua app web.
- Una volta eseguita correttamente, l'applicazione è pronta per essere visualizzata in anteprima e puoi eseguirla eb aperto per aprire l'applicazione distribuita nel browser. Ora dovresti vedere Ciao mondo visualizzato nel tuo browser Web utilizzando l'URL assegnatogli da Elastic Beanstalk.
Ogni volta che apporti una modifica alla tua applicazione, puoi eseguire eb distribuire per inviare gli ultimi aggiornamenti a Elastic Beanstalk. E per chiudere la tua applicazione e tutte le sue risorse, puoi eseguire eb terminare.
Ora hai distribuito correttamente un'applicazione Web Golang in AWS Elastic Beanstalk utilizzando lo strumento CLI di Elastic Beanstalk. Il processo è molto semplice e può essere seguito per distribuire qualsiasi forma di applicazione Web Golang in Elastic Beanstalk.
Puoi controllare il dashboard di Elastic Beanstalk nella console AWS per visualizzare lo stato o qualsiasi altra informazione sull'ambiente e sull'applicazione.
Distribuzione di applicazioni Web su Elastic Beanstalk
Elastic Beanstalk è un modo affidabile per portare le tue applicazioni dal locale al live in passaggi molto semplici. Puoi distribuire e gestire facilmente le tue applicazioni su piccola e larga scala utilizzando uno qualsiasi dei mezzi messi a disposizione da AWS, tra cui la console Web, l'AWS CLI, l'EB CLI, le API AWS o l'SDK AWS.
Per ulteriore pratica con le conoscenze acquisite da questo articolo, potresti prendere in considerazione la creazione di un'API CRUD con Go e la sua distribuzione in Elastic Beanstalk.