Lesere som deg er med på å støtte MUO. Når du foretar et kjøp ved å bruke lenker på nettstedet vårt, kan vi tjene en tilknyttet provisjon. Les mer.

Den tidkrevende prosessen med å konfigurere nødvendige ressurser én etter én er ikke lenger nødvendig for å distribuere webapplikasjoner og servere.

Platform-as-a-service (PaaS)-produkter som AWS Elastic Beanstalk og Heroku ble opprettet for å tillate applikasjoner som skal distribueres og gjøres tilgjengelige for brukere med lite eller ingen kode og noen få knapper klikker.

Så, hva er AWS Elastic Beanstalk, og hvordan kan du distribuere Go-webapplikasjonene dine i skyen med Elastic Beanstalk?

Hva er AWS Elastic Beanstalk?

AWS Elastic Beanstalk (AWS EB) er et plattform-som-en-tjeneste-produkt som tilbys av Amazon Web Services som muliggjør rask og enkel distribusjon og administrasjon av applikasjoner og nødvendige ressurser.

Med Elastic Beanstalk er det enkelt å distribuere en applikasjon uten å måtte sette opp alle nødvendige ressurser som en linux-server på EC2

instagram viewer
, eller en overvåkingstjeneste i cloudwatch. Elastic Beanstalk håndterer alle prosessene med å sette opp ressursene, og den lar deg distribuere ulike typer applikasjoner, inkludert Node.js, Golang, PHP, Docker, og så videre.

Opprette en enkel Golang-webserver

For formålet med denne opplæringen må du ha en fungerende Golang-applikasjon for å distribuere på AWS Elastic Beanstalk, så i denne delen opprettes en enkel Go-nettserver.

Du trenger et Golang-utviklingsmiljø satt opp på maskinen din for å følge med i denne delen.

Det første trinnet er å initialisere et nytt Golang-prosjekt som kan gjøres fra terminalen ved å kjøre følgende kommandoer:

Når du er ferdig, kan du åpne prosjektkatalogen i din foretrukne IDE. Opprett en mappe med navnet i rotprosjektkatalogen statisk og lage en index.html fil i den. Kopier og lim inn følgende kode i HTML-filen og lagre den.

html>
<htmllang="no">
<hode>
<metategnsett="UTF-8">
<tittel>Hei Verden!tittel>
hode>
<kropp>
<h1>Hello World fra Elastic Beanstalkh1>
kropp>
html>

Gå tilbake til prosjektets rotkatalog og lag en application.go fil. Kopier og lim inn koden nedenfor i din application.go fil og lagre den. Du må navngi hovedfilen application.go fordi dette er filen som Elastic Beanstalk vil se etter for å bygge applikasjonen din under distribusjonsprosessen.

pakke hoved-

import (
"Logg"
"net/http"
)

funchoved-() {
statisk := http. Filserver (http. Dir("./static"))
http. Håndtak("/", statisk)

Logg. Fatal (http. ListenAndServe(":5000", null))
}

Elastic Beanstalk bruker som standard en NGINX-konfigurasjon som kun videresender forespørsler til applikasjonen din på port 5000. Bortsett fra at du overstyrer standard NGINX-konfigurasjoner, bør Golang-applikasjonen alltid lytte på port 5000 for forespørsler.

Hvis du lagrer filen og kjører programmet i terminalen med kjør application.go, vil du kunne forhåndsvise den statiske nettsiden ved å åpne adressen lokal vert: 5000 i nettleseren din.

Du har nå prøveapplikasjonen din bygget og klar for distribusjon. I den neste delen skal du distribuere applikasjonen til AWS Elastic Beanstalk.

Distribuere en Go-applikasjon til AWS Elastic Beanstalk

For å distribuere en applikasjon til en hvilken som helst AWS-tjeneste, for eksempel Elastic Beanstalk, trenger du en AWS-skykonto. Hvis du for øyeblikket ikke har en AWS-konto, gå til AWS sin registreringsside å lage en ny gratis.

Det er flere måter å distribuere applikasjoner til Elastic Beanstalk, inkludert AWS CLI, Elastic Beanstalk Command Line Interface (EB CLI), og fra nettkonsollen, men i denne opplæringen vil du lære hvordan du distribuerer til Elastic Beanstalk fra terminalen ved å bruke EB CLI verktøy.

Du kan sjekke ut AWS EB CLI installasjonsveiledning for en detaljert veiledning om hvordan du installerer og konfigurerer EB CLI for å følge med i denne delen. Når du er ferdig med å installere og konfigurere EB CLI, kan du nå gå videre og følge trinnene nedenfor for å distribuere Golang-applikasjonen.

  1. Åpne et nytt terminalvindu og naviger til prosjektmappen til Go-applikasjonen som skal distribueres ved hjelp av cd kommando.
  2. Løpe eb init for å initialisere et nytt Elastic Beanstalk CLI-lager. Som første gang du kjører denne kommandoen etter installasjonen, vil EB CLI be deg om innledende oppsettalternativer som vist i trinnene som følger.
  3. Etter å ha valgt en foretrukket region, må du konfigurere legitimasjonen for sikkerhetsidentitet (tilgangsnøkkel-ID og hemmelig nøkkel). Det er en omfattende veiledning levert av AWS om å generere sikkerhetslegitimasjonen i AWS-konsollen.
  4. Deretter skal du definere navnet på applikasjonen du distribuerer. Som standard bruker dette navnet på din nåværende prosjektmappe.
  5. Det neste trinnet er å velge plattformen til applikasjonen du skal distribuere, i dette tilfellet bør du velge det fjerde alternativet siden du distribuerer en Golang-applikasjon.
  6. Den neste ledeteksten spør om du vil aktivere en SSH-tilkobling for din distribuerte applikasjon. Dette anbefales da det gir enkel ekstern tilgang og feilsøking for applikasjonen din, men i denne opplæringen, Nei er valgt, siden det bare er en enkel applikasjon.

    Linjen som indikerer at CodeCommit ikke kunne settes opp er ikke noe å bekymre seg for, da det skyldes at Git eller annen kildekontroll ikke blir brukt i prosjektet i dette eksemplet.

  7. Etter å ha fullført trinnene ovenfor, vil et nytt Elastic Beanstalk CLI-depot bli opprettet, og du kan nå opprette et Elastic Beanstalk-miljø for å distribuere applikasjonen din i de neste trinnene.
  8. Løpe eb opprette "miljønavn" å lage et nytt miljø kalt det spesifiserte miljønavn. Miljøet er skapt med alle nødvendige ressurser, inkludert en EC2-forekomst, automatisk skaleringsgruppe, S3-bøtte, lastbalanser, etc. Denne prosessen tar omtrent 5-10 minutter avhengig av nettverkshastigheten.

    Akkurat som når du distribuere et statisk nettsted til AWS, EB-applikasjonen din er også tildelt en URL (merket i den røde boksen i skjermbildet ovenfor) som du kan bruke for å få tilgang til nettappen din.

  9. Når det er gjort vellykket, er applikasjonen klar til forhåndsvisning, og du kan kjøre eb åpen for å åpne den distribuerte applikasjonen i nettleseren din. Du bør nå se Hei Verden vises i nettleseren din ved å bruke URL-en som er tildelt den av Elastic Beanstalk.

Hver gang du gjør en endring i applikasjonen din, kan du kjøre eb distribuere for å presse de siste oppdateringene til Elastic Beanstalk. Og for å stenge applikasjonen din og alle dens ressurser, kan du kjøre eb avslutte.

Du har nå implementert en Golang-nettapplikasjon til AWS Elastic Beanstalk ved å bruke Elastic Beanstalk CLI-verktøyet. Prosessen er veldig enkel og kan følges for å distribuere enhver form for Golang-nettapplikasjon i Elastic Beanstalk.

Du kan sjekke Elastic Beanstalk-dashbordet i AWS-konsollen for å se status eller annen informasjon om miljøet og applikasjonen.

Distribuere nettapplikasjoner til Elastic Beanstalk

Elastic Beanstalk er en pålitelig måte å ta applikasjonene dine fra lokale til live i svært enkle trinn. Du kan enkelt distribuere og administrere små og store applikasjoner ved å bruke alle midlene som er tilgjengelige av AWS, inkludert nettkonsollen, AWS CLI, EB CLI, AWS APIer eller AWS SDK.

For ytterligere praksis med kunnskapen du har fått fra denne artikkelen, kan du vurdere å bygge en CRUD API med Go og distribuere den til Elastic Beanstalk.