A Node.js alkalmazás telepítése az AWS Elastic Beanstalk alkalmazásba

Egy hónap jobb részébe került, mire rájöttem, hogyan állítsak be egy Amazon Web Services (AWS) fiókot, konfiguráljak egy Node.js alkalmazást a telepítéshez, majd ténylegesen telepítsem.

Sok ilyen az Amazon dokumentációjának megfejtését próbálta meg. Remélhetőleg ez az útmutató arra készteti Önt, hogy túl sok fejfájás nélkül éljen a helyi lakosoktól, hogy éljen.

Los Angelesben vagyok, így a konfiguráció beállításakor az alapértelmezett értékek nem feltétlenül egyeznek meg.

Előfeltételek

  1. Alapszintű parancssori ismeretek

    Biztos vagyok benne, hogy ezt a parancssor nélkül is megteheti, de így sokkal egyszerűbb használni a CLI-t

  2. AWS-fiók
  3. Az Elastic Beanstalk parancssori interfész (EB CLI)

    Az alábbi utasítások a telepítéshez

  4. Git alapismeretek

AWS-fiók beállítása

Az első dolog, amit meg kell tennie, az AWS-fiók beállítása. Ha már rendelkezik fiókkal, győződjön meg arról, hogy rendelkezik-e IAM-felhasználóval, aki rendelkezik API-kulcsokkal és megfelelő hozzáféréssel.

Hozzon létre egy fiókot

Elég egyértelmű. Hozzon létre egy fiókot. A feliratkozási folyamatnak nagyon könnyen át kell vezetnie mindent. Az AWS-fiók első beállításakor root hozzáférést kap. A biztonsági bevált módszer azonban egy külön felhasználó létrehozása, amelyet rendszeresen bejelentkezni fog.

Állítsa be az IAM-ot

MEGJEGYZÉS: Nem vagyok az AWS Identity and Access Management (IAM) szakértője. Az általam végzett tevékenységek saját személyes használatra készültek, és nem biztos, hogy megfelelnek az Ön igényeinek. Alaposan vizsgálja felül az engedélyeket, mielőtt hozzáférést adna a felhasználóknak.

Az AWS rendszeresen közzéteszi a legjobb gyakorlatokat, itt kaphat egyet 2016-tól.

Állítson be egy csoportot

Mielőtt beállítana egy felhasználót a bejelentkezéshez, hozzon létre egy csoportot, amely kezeli az engedélyeket. Esetemben létrehoztam egy SuperAdmin csoportot, amelybe bele akartam magam tenni, hogy mindenhez hozzáférhessek.

Ennél a csoportnál, mivel alapvetően a bejelentkezés és mindenhez való hozzáférésem van, engedélyként az AdministratorAccess szolgáltatást választottam.

Az IAM csoportokról további információt itt talál.

Állítson be egy IAM-felhasználót

A felhasználó beállítása nagyon egyszerű, de ha elakad, ellenőrizze az IAM oldalt az AWS számára. Nagyon sok hasznos videójuk van.

Ne felejtsd el:

  1. Adjon nekik hozzáférési kulcs engedélyeket

    (lásd az alábbi képet)

  2. Rendelje őket a megfelelő IAM csoporthoz

Miután elkészítette saját felhasználói beállításait, jelentkezzen ki a gyökérből, és jelentkezzen be új IAM-felhasználóként.

A helyi környezet beállítása

Most, hogy készen vannak a fiókkulcsaink, kezdjük el a telepítést.

Mi az elasztikus babkagyló?

Az Elastic Beanstalk (EB) a skálázható alkalmazások beállításának meglehetősen egyszerű módja. Az Amazon Elastic Compute Cloud (EC2) példányokat, az Amazon Simple Storage Service (S3) vödröket és a terheléselosztókat használja az alkalmazás architektúrájának kezelésére az Ön számára.

Ha gyorsan bővítenie kell a hálózati igény miatt, akkor megteszi. A frissítések lenyomása azért is csodálatos, mert képes „gördülő frissítéseket” végrehajtani, amelyek lehetővé teszik az alkalmazás számára, hogy online maradjon, amíg Ön frissít. Tiszta.

Hogyan lehet megakadályozni, hogy az Elastic Beanstalk egy tonnába kerüljön

Ez csak azokra az új felhasználókra vonatkozik, akik továbbra is jogosultak az ingyenes csomagra:

  1. Havi 750 óra t2.micro EC2 időt kap. Ez elegendő lesz ahhoz, hogy egyetlen szervert futtasson teljes munkaidőben.

    Azonban, ha hozzáad még egyet, akkor fizetni fog érte.

  2. Átválthatja az összes szerver logikáját a Lambda funkciókra, de ez egy másik nap témája (és van néhány hátránya is).

    Ha érdekli, nézze meg ezt a cikket.

Mennyibe fog kerülni mégis?

Jó kérdés. Itt van egy minta a számlámról. Ez azzal a Node.js alkalmazással fut, amelyről cikket írok (EB, Cloudfront, S3 vödrök).

Ha kíváncsi arra, mennyibe fog kerülni az ingyenes terv megvalósulása után, nézze meg ezt.

EB környezet létrehozása az alkalmazáson belül

Ez nem egy Node.js oktatóanyag, mivel ez kívül esik a cikk hatályán. De ha szüksége van egy alkalmazásra, amellyel körbejárhat, nézze meg az Express alkalmazásgenerátort. Legalább egy "Hello World" -t kap. Ezt használtam inita projektemhez.

Továbblépve feltételezzük, hogy már rendelkezik egy Node.js alkalmazással, amely probléma nélkül helyben fut.

Az EB CLI beállítása

Első dolog az AWS / EB CLI futtatása, amely csak egy pár eszköz telepítéséből és a konfiguráció beállításából áll.

Az AWS-dokumentumok jobban megmagyarázzák a munkát, mint valaha tudtam, ezért nézd meg őket itt.

Megjegyzés: Ha bármilyen problémája van az API-kulcsokkal, a konfigurációs fájl szerkesztésével ellenőrizheti / módosíthatja őket.

open ~/.aws/config

Első telepítés

Most minden eszközünk összhangban van, mi a következő lépés?

eb init

Amikor futtatja ezt a parancsot, rengeteg kérdést fog feltenni Önnek:

  1. Megkérik, hogy válasszon egy régiót.

    Alapértelmezés: us-nyugat-2: USA nyugat (Oregon)

  2. Megkérdezi, melyik alkalmazást használja, vagy hozzon létre újat.

    Az első lehetőség egy új létrehozása kell, hogy legyen.

  3. Megkérdezi, hogy szeretné-e használni az AWS CodeCommit alkalmazást.

    Nincs tapasztalatom ezzel kapcsolatban, de csak a GitHub-ot használom, ezért nemet mondtam.

Állítsa be az Env változókat

Valószínűleg ez volt a legnagyobb fájdalom. Nem tudom, hogy az agyam üveges-e a dokumentáció felett, vagy mi. Miután rájöttem, valójában nagyon egyszerű. A konfigurációs fájlok pedig YAML ❤️-be vannak írva.

Amikor eb init, akkor létrehoz egy mappát .elasticbeanstalka gyökérkönyvtárban. Itt valójában nem kell semmivel sem bajlódnia, mivel a parancs első futtatásakor automatikusan be kell állítani.

Ahhoz azonban, hogy a környezeti változók és minden más konfiguráció futtatható legyen a kezdetkor, hozzon létre egy új mappát: .ebextensions

A mappaszerkezetnek ilyennek kell kinéznie:

- .ebextensions -- 01_yourconfig.config - .elasticbeanstalk -- config.yml

A konfigurációs fájlok YAML-ben íródnak, amint azt korábban említettük. Hogy ötletet adjon nekik, hogy nézzen ki, íme néhány minta:

Környezeti változók fájl:

# 01_envar.config option_settings: aws:elasticbeanstalk:application:environment: PORT: 8081 NODE_ENV: production

Fájl a Node.js konfigurálásához:

Nem igazán kell megadnia, NodeVersionmert megadja a legfrissebbet az EC2 példányokon. De minden esetre itt van.

# 02_nodecommand.config option_settings: aws:elasticbeanstalk:container:nodejs: NodeCommand: "npm run start" NodeVersion: 8.8.1

Ez a legkönnyebb módszer a konfigurációs beállítások kezelésére, de az EB műszerfalon konfigurálás alatt módosíthatók.

Ha többet szeretne megtudni, íme egy csodálatos cikk éppen erről a témáról.

Hozzon létre egy környezetet

eb create 

majd bevetni

eb deploy

Feltételezve, hogy minden jól ment, az alkalmazásod most már telepítve van a „felhőbe”.

Ellenőrizze eb open

Változások bevezetése

Miután mindent beállítottál, a változtatások nyomása rendkívül egyszerű.

MEGJEGYZÉS: A környezetre való áttérés előtt változtatásokat kell végrehajtani a Git számára.

Először nem jöttem rá, és örökké tartott, mire rájöttem. Ne kövesse ugyanazt a hibát - hajtsa végre ezeket a változásokat!

Tehát, miután végrehajtotta a változtatásokat, egyszerűen írja be az alábbi parancsot, és várja meg, amíg futni fog.

eb deploy 

Egyéb praktikus EBCLI parancsok

A példány megnyitása a terminálon belül, ami lényegesen egyszerűbb, mint megpróbálni megjegyezni az AWS által először megadott URL szótárát:

eb open

A konzol megnyitása:

eb console

A naplófájlok közvetlen elérése a terminálhoz:

eb logs

Mi a következő lépés?

Egyéni domain név

Ha fut eb open, észreveszi, hogy az URL egy őrült hosszú URL. Ha szeretné, az 53-as útvonal használatával bekapcsolhatja a tartományába. A legtöbb esetben ez az összes szokásos DNS-rekord. A DNS-kezelést bárhonnan elhagyhatja, bárhová regisztrálta a domainjét, de én könnyebbnek tartom, ha mindezt egy helyen van.

SSL Cert

Az SSL-tanúsítvány megszerzése a példányához szintén nagyon egyszerű. Látogasson el a tanúsítványkezelőbe, és hozzon létre egy új tanúsítványt a domainjéhez. Ez is egyszerű folyamat.

Megjegyzés: Ha a terv SSL cert az Cloudfront, akkor van , hogy megindítja az eljárást a N. Virginia zónában. A zónát a képernyő jobb felső sarkában módosíthatja.

Miután ellenőrizte és használatra kész, dobja be az EB konfigurációba. A legegyszerűbb mód, ha a konzolhoz megy és kiválasztja.

  1. Lépjen az EB irányítópultjára
  2. Válassza ki az alkalmazását
  3. Válassza ki a környezetét
  4. Kattintson a „konfiguráció” elemre, és válassza ki az SSL tanúsítványt.

Egy másik megjegyzés: Néha problémái lehetnek a tanúsítványkezelővel, ha vadonatúj fiókja van. Ha azt tanácsolja, hogy vegye fel a kapcsolatot az ügyfélszolgálattal, amikor megpróbálja létrehozni a tanúsítványt, tegye meg, és ők kijavítják.

Következtetés

Azta. Micsoda út. Remélhetőleg sikeres volt, és nem kellett túl sokszor futnia az AWS dokumentumokhoz. De, ha őszinte vagyok magamhoz, akkor biztos vagyok benne, hogy legalább egyszer muszáj volt. Az AWS szörnyű szolgáltatás, és napról napra növekszik.

Támogatás

Élvezte ezt a cikket? Szeretne többet látni? Van pár dollár tartalék? Nézze meg az alábbi linket. Minden csésze kávéból további néhány száz kódsor kerül :)

Vásároljon Jared Nuttnak egy kávét - BuyMeACoffee.com

A Los Angeles-i székhelyű webfejlesztő minden erejével megpróbál hozzájárulni a nyílt forráskódú szoftverekhez és remek oktatóanyagok készítéséhez. buymeacoff.ee

Erőforrások

AWS Egyszerű angol nyelven

Az AWS Rugalmas Beanstalk konfigurációs fájlok megismerése és megszeretése (.ebextensions)

Az AWS használatának megkezdése

acloudguru (Nem ingyenes szolgáltatás, de van egy bevezető tanfolyamuk, amely ingyenes és nagyon informatív)