Läsare som du hjälper till att stödja MUO. När du gör ett köp med hjälp av länkar på vår webbplats kan vi tjäna en affiliate-provision. Läs mer.

Den tidskrävande processen att konfigurera nödvändiga resurser en efter en är inte längre nödvändig för att distribuera webbapplikationer och servrar.

Platform-as-a-service (PaaS)-produkter som AWS Elastic Beanstalk och Heroku skapades för att möjliggöra applikationer som ska distribueras och göras tillgängliga för användare med lite eller ingen kod och några knappar klickar.

Så, vad är AWS Elastic Beanstalk, och hur kan du distribuera dina Go-webbapplikationer i molnet med Elastic Beanstalk?

Vad är AWS Elastic Beanstalk?

AWS Elastic Beanstalk (AWS EB) är en plattform-som-en-tjänst-produkt som erbjuds av Amazon Web Services som möjliggör snabb och enkel distribution och hantering av applikationer och nödvändiga resurser.

Med Elastic Beanstalk är det enkelt att distribuera en applikation utan att behöva ställa in alla nödvändiga resurser som en linux-server på EC2

instagram viewer
, eller en övervakningstjänst i cloudwatch. Elastic Beanstalk hanterar alla processer för att ställa in resurserna, och den låter dig distribuera olika typer av applikationer, inklusive Node.js, Golang, PHP, Docker och så vidare.

Skapa en enkel Golang webbserver

För syftet med denna handledning måste du ha en fungerande Golang-applikation för att distribuera på AWS Elastic Beanstalk, så i det här avsnittet skapas en enkel Go-webbserver.

Du behöver en Golang-utvecklingsmiljö inställd på din maskin för att följa med i det här avsnittet.

Det första steget är att initiera ett nytt Golang-projekt som kan göras från terminalen genom att köra följande kommandon:

När du är klar kan du öppna projektkatalogen i din föredragna IDE. Skapa en mapp med namnet i din rotprojektkatalog statisk och skapa en index.html fil i den. Kopiera och klistra in följande kod i HTML-filen och spara den.

html>
<htmllang="en">
<huvud>
<metateckenuppsättning="UTF-8">
<titel>Hej världen!titel>
huvud>
<kropp>
<h1>Hello World från Elastic Beanstalkh1>
kropp>
html>

Gå tillbaka till ditt projekts rotkatalog och skapa en application.go fil. Kopiera och klistra in koden nedan i din application.go fil och spara den. Du måste namnge huvudfilen application.go eftersom det här är filen som Elastic Beanstalk kommer att leta efter för att bygga din applikation under distributionsprocessen.

paket huvud

importera (
"logga"
"net/http"
)

funchuvud() {
statisk := http. FileServer (http. Dir("./statisk"))
http. Hantera("/", statisk)

logga. Fatal (http. Lyssna OchServe(":5000", noll))
}

Elastic Beanstalk använder som standard en NGINX-konfiguration som endast vidarebefordrar förfrågningar till din applikation på port 5000. Förutom att du åsidosätter standard NGINX-konfigurationerna, bör din Golang-applikation alltid lyssna på port 5000 efter förfrågningar.

Om du sparar filen och kör programmet i terminalen med kör application.go, skulle du kunna förhandsgranska den statiska webbsidan genom att öppna adressen lokal värd: 5000 i din webbläsare.

Du har nu din exempelapplikation byggd och redo för driftsättning. I nästa avsnitt kommer du att distribuera applikationen till AWS Elastic Beanstalk.

Distribuera en Go-applikation till AWS Elastic Beanstalk

För att distribuera en applikation till någon AWS-tjänst, till exempel Elastic Beanstalk, behöver du ett AWS-molnkonto. Om du för närvarande inte har ett AWS-konto, gå till AWS: s registreringssida att skapa en ny gratis.

Det finns flera sätt att distribuera applikationer till Elastic Beanstalk, inklusive AWS CLI, Elastic Beanstalk Command Line Interface (EB CLI), och från webbkonsolen, men i den här handledningen lär du dig hur du distribuerar till Elastic Beanstalk från terminalen med hjälp av EB CLI verktyg.

Du kan kolla in AWS EB CLI installationsguide för en detaljerad guide om hur du installerar och konfigurerar EB CLI för att följa med i det här avsnittet. När du är klar med att installera och konfigurera EB CLI kan du nu gå vidare och följa stegen nedan för att distribuera din Golang-applikation.

  1. Öppna ett nytt terminalfönster och navigera till projektmappen för Go-applikationen som ska distribueras med hjälp av CD kommando.
  2. Springa eb init för att initiera ett nytt Elastic Beanstalk CLI-förråd. Eftersom det är första gången du kör det här kommandot efter installationen, kommer EB CLI att uppmana dig med initiala installationsalternativ som visas i stegen som följer.
  3. Efter att ha valt en föredragen region ska du ställa in dina säkerhetsidentitetsuppgifter (åtkomstnyckel-ID och hemlig nyckel). Det finns en omfattande guide som tillhandahålls av AWS om att generera säkerhetsuppgifterna i AWS-konsolen.
  4. Därefter ska du definiera namnet på programmet du distribuerar. Som standard använder detta namnet på din nuvarande projektmapp.
  5. Nästa steg är att välja plattformen för applikationen du ska distribuera, i det här fallet bör du välja det fjärde alternativet eftersom du distribuerar en Golang-applikation.
  6. Nästa uppmaning frågar om du vill aktivera en SSH-anslutning för ditt distribuerade program. Detta rekommenderas eftersom det möjliggör enkel fjärråtkomst och felsökning för din applikation, men i den här handledningen, Nej är valt, eftersom det bara är en enkel applikation.

    Raden som indikerar att CodeCommit inte kunde ställas in är inget att oroa sig för, eftersom det beror på att Git eller någon annan källkontroll inte används i projektet i detta exempel.

  7. Efter att ha slutfört stegen ovan kommer ett nytt Elastic Beanstalk CLI-förråd att skapas och du kan nu skapa en Elastic Beanstalk-miljö för att distribuera din applikation i nästa steg.
  8. Springa eb skapa "miljönamn" för att skapa en ny miljö som kallas den specificerade miljönamn. Miljön skapas med alla nödvändiga resurser inklusive en EC2-instans, automatisk skalningsgrupp, S3-skopa, lastbalanserare, etc. Denna process tar cirka 5-10 minuter beroende på nätverkshastigheten.

    Precis som när du distribuera en statisk webbplats till AWS, din EB-applikation tilldelas även en URL (markerad i den röda rutan i skärmdumpen ovan) som du kan använda för att komma åt din webbapp.

  9. När den är klar är applikationen redo att förhandsgranskas och du kan köra eb öppen för att öppna det distribuerade programmet i din webbläsare. Du borde nu se Hej världen visas i din webbläsare med den URL som den tilldelats av Elastic Beanstalk.

När du gör en ändring i din applikation kan du köra eb distribuera för att skicka de senaste uppdateringarna till Elastic Beanstalk. Och för att stänga av din applikation och alla dess resurser kan du köra eb upphöra.

Du har nu framgångsrikt distribuerat en Golang-webbapplikation till AWS Elastic Beanstalk med hjälp av Elastic Beanstalk CLI-verktyget. Processen är mycket enkel och kan följas för att distribuera någon form av Golang-webbapplikation i Elastic Beanstalk.

Du kan kontrollera din Elastic Beanstalk-instrumentpanel i AWS-konsolen för att se status eller annan information om din miljö och applikation.

Distribuera webbapplikationer till Elastic Beanstalk

Elastic Beanstalk är ett pålitligt sätt att ta dina applikationer från lokala till live i mycket enkla steg. Du kan enkelt distribuera och hantera dina små och storskaliga applikationer med hjälp av något av de medel som gjorts tillgängliga av AWS, inklusive webbkonsolen, AWS CLI, EB CLI, AWS API: er eller AWS SDK.

För ytterligare övning med kunskapen från den här artikeln kan du överväga att bygga ett CRUD API med Go och distribuera det till Elastic Beanstalk.