Trebao mi je bolji dio mjeseca da shvatim kako postaviti račun Amazon Web Services (AWS), konfigurirati aplikaciju Node.js za postavljanje i zatim je zapravo implementirati.
Puno toga pokušavalo je dešifrirati Amazonovu dokumentaciju. Nadamo se da će vas ovaj vodič odvesti na put prema raspoređivanju od lokalnog do života bez previše glavobolje.
Nalazim se u Los Angelesu, pa kad postavljate konfiguraciju, zadane vrijednosti možda neće biti potpuno iste.
Preduvjeti
- Osnovno znanje naredbenog retka
Siguran sam da to možete učiniti bez naredbenog retka, ali jednostavnije je koristiti CLI
- AWS račun
- Sučelje naredbenog retka elastičnog zrna graha (EB CLI)
Upute za instalaciju u nastavku
- Osnovno znanje Gita
Postavljanje AWS računa
Prvo što morate učiniti je postaviti AWS račun. Ako već imate račun, pobrinite se da imate IAM korisnika koji ima API ključeve i odgovarajući pristup.
Stvorite račun
Prilično izravno. Stvorite račun. Proces prijave trebao bi vas prilično lako proći kroz sve. Kada prvi put postavite AWS račun, dobit ćete root pristup. Međutim, to je najbolja praksa sigurnosti da stvorite zasebnog korisnika kojeg ćete koristiti za redovitu prijavu.
Postavite svoj IAM
NAPOMENA: Nisam stručnjak za AWS upravljanje identitetom i pristupom (IAM). Radnje koje sam poduzeo bile su za moj osobni slučaj i možda nisu prikladne za vaše potrebe. Prije pregledavanja dopuštenja temeljito pregledajte dozvole.
AWS redovito objavljuje najbolje prakse, ovdje ih potražite u 2016. godini.
Postavite grupu
Prije nego što postavite korisnika za prijavu, stvorite grupu koja će upravljati dozvolama. U mom slučaju postavljam SuperAdmin grupu u koju sam se namjeravao staviti kako bih mogao imati pristup svemu.
Za ovu grupu, s obzirom da se u osnovi moram prijaviti i imati pristup svemu, odabrao sam AdministratorAccess kao dopuštenje.

Za više informacija o IAM grupama idite ovdje.
Postavite IAM korisnika
Postavljanje korisnika prilično je jednostavno, ali ako zapnete, na IAM stranici potražite AWS. Imaju puno korisnih videozapisa.
Samo zapamtite:
- Dajte im dozvole za pristupni ključ
(vidi sliku dolje)
- Dodijelite ih odgovarajućoj IAM grupi

Nakon što postavite vlastite korisničke postavke, odjavite se iz root-a i prijavite se kao novi IAM korisnik.
Postavljanje lokalnog okruženja
Sad kad imamo spremne ključeve računa, krenimo s implementacijom.
Što je elastični grah?
Elastic Beanstalk (EB) prilično je jednostavan način postavljanja skalabilnih aplikacija. Koristi instance Elastic Compute Cloud (EC2), segmente Amazon Simple Storage Service (S3) i uravnoteživače opterećenja za upravljanje vašom arhitekturom aplikacija umjesto vas.
Ako se zbog mrežne potražnje trebate brzo povećati, to će i učiniti. Također je nevjerojatno gurati ažuriranja, jer može vršiti "stalna ažuriranja", što omogućava aplikaciji da ostane na mreži dok ažurirate. Uredan.
Kako spriječiti da vas elastično zrno graha košta tonu
To se odnosi samo na nove korisnike koji se još uvijek kvalificiraju za besplatni paket:
- Dobivate 750 sati t2.micro EC2 vremena mjesečno. To će vam dati dovoljno za rad jednog poslužitelja s punim radnim vremenom.
Međutim, ako dodate još jedan sjever, platit ćete ga.
- Možete prebaciti svu logiku svog poslužitelja na Lambda funkcije, ali to je tema za neki drugi dan (a također ima i nekoliko nedostataka).
Ako ste zainteresirani, pogledajte ovaj članak.
Koliko će ipak koštati?
Dobro pitanje. Evo uzorka mog računa. Ovo je slučaj s pokrenutom aplikacijom Node.js o čemu pišem ovaj članak (EB, Cloudfront, S3 Buckets).

Ako se pitate koliko će koštati nakon isteka besplatnog plana, pogledajte ovo.
Stvaranje EB okruženja unutar vaše aplikacije
Ovo nije vodič za Node.js, jer je to izvan dosega ovog članka. Ali ako vam treba aplikacija za šaljivdinu, pogledajte Expressov generator generatora aplikacija. Dobit ćete barem "Pozdrav svijetu". To sam koristio kao init
svoj projekt.
Krećući se naprijed, pretpostavlja se da već imate aplikaciju Node.js koja se lokalno izvodi bez problema.
Postavljanje EB CLI
Prva stvar je pokrenuti AWS / EB CLI, koji se sastoji od instaliranja nekoliko alata i postavljanja konfiguracije.
AWS dokumenti to bolje objašnjavaju nego što sam ikad mogao, pa ih pogledajte ovdje.
Napomena: Ako ikada budete imali problema s API ključevima, možete ih provjeriti / promijeniti uređivanjem konfiguracijske datoteke.
open ~/.aws/config
Početno raspoređivanje
Sad imamo sve naše alate u redu, što dalje?
eb init
Kada pokrenete ovu naredbu, postavit će vam mnoštvo pitanja:
- Od vas će se tražiti da odaberete regiju.
Zadana vrijednost je us-zapad-2: SAD zapad (Oregon)
- Upitat će vas koju aplikaciju koristiti ili stvoriti novu.
Prva opcija trebala bi biti stvaranje nove.
- Upitat će vas želite li koristiti AWS CodeCommit.
Nemam iskustva s tim, ali samo koristim GitHub, pa sam rekao ne.
Postavite varijable Env
Ovo je vjerojatno bila moja najveća bolna točka. Ne znam je li mi mozak zastaklio dokumentaciju, ili što već. Kad to shvatim, zapravo je stvarno jednostavno. A konfiguracijske datoteke napisane su u YAML-u ❤️.

Kada eb init
to napravite, stvorit će mapu .elasticbeanstalk
u vašem korijenskom direktoriju. Zapravo se ne morate petljati ni s čim ovdje, jer bi se to trebalo automatski postaviti kada prvi put pokrenete naredbu.
Međutim, da biste imali varijable okruženja i bilo koju drugu konfiguraciju koju trebate pokrenuti u vrijeme početka, stvorite novu mapu: .ebextensions
Struktura mape trebala bi izgledati otprilike ovako:
- .ebextensions -- 01_yourconfig.config - .elasticbeanstalk -- config.yml
Datoteke s konfiguracijom napisane su u YAML-u, kao što je ranije spomenuto. Evo nekoliko primjera kako biste dobili ideju kako bi trebali izgledati:
Datoteka varijabli okruženja:
# 01_envar.config option_settings: aws:elasticbeanstalk:application:environment: PORT: 8081 NODE_ENV: production
Datoteka za konfiguriranje Node.js:
Zapravo ne morate navesti, NodeVersion
jer će vam pružiti najnoviji koji može na instancama EC2. Ali ovdje je za svaki slučaj.
# 02_nodecommand.config option_settings: aws:elasticbeanstalk:container:nodejs: NodeCommand: "npm run start" NodeVersion: 8.8.1
Ovo je najlakši način za upravljanje postavkama konfiguracije, ali ih je moguće prilagoditi na nadzornoj ploči EB-a u okviru konfiguracije.
Ako želite znati više, evo nevjerojatnog članka upravo o toj temi.
Stvorite okruženje
eb create
zatim rasporediti
eb deploy
Pod pretpostavkom da je sve prošlo u redu, vaša je aplikacija sada postavljena u "oblak".
Provjerite s eb open
Uvođenje promjena
Nakon što sve postavite, guranje promjena vrlo je jednostavno.
NAPOMENA: Promjene moraju biti počinjene na Gitu prije guranja u okoliš.
Nisam to prvi put shvatila i trebalo mi je zauvijek da shvatim. Nemojte napraviti istu pogrešku - izvršite te promjene!
Dakle, nakon što izvršite promjene, jednostavno upišite naredbu ispod i pričekajte da krene svojim tijekom.
eb deploy
Ostale praktične EBCLI naredbe
Da biste otvorili instancu u terminalu, što je znatno lakše od pokušaja pamćenja rječnika URL-a koji vam AWS daje na početku:
eb open
Da biste otvorili konzolu:
eb console
Da biste datoteke dnevnika prenijeli izravno na terminal:
eb logs
Što je sljedeće?
Prilagođeno ime domene
Ako pokrenete eb open
, primijetit ćete da je URL ludo dugački URL. Ako želite, možete ga spojiti na svoju domenu pomoću Rute 53. To su većinom sve standardne DNS zapise. Možete ostaviti upravljanje DNS-om gdje god ste registrirali svoju domenu, ali jednostavno mi je lakše sve to smjestiti na jedno mjesto.
SSL certifikat
Dobivanje SSL certifikata za svoju instancu također je prilično jednostavno. Posjetite upravitelja certifikata i stvorite novi certifikat za svoju domenu. Ovo je također jednostavan postupak.
Napomena: Ako planirate koristiti SSL cert za Cloudfront, postupak morate pokrenuti iz zone N. Virginia. Zonu možete promijeniti u gornjem desnom dijelu zaslona.

Kad je provjeren i spreman za upotrebu, ubacite ga u svoj EB config. Najlakši način je otići do konzole i odabrati je.
- Idite na svoju nadzornu ploču EB-a
- Odaberite svoju aplikaciju
- Odaberite svoje okruženje
- Kliknite "konfiguracija" i odaberite SSL certifikat.

Još jedna napomena: Ponekad možete imati problema s upraviteljem certifikata ako imate potpuno novi račun. Ako vam kaže da se obratite korisničkoj podršci kada pokušate stvoriti certifikat, učinite to i oni će ga popraviti.
Zaključak
Vau. Kakva vožnja. Nadamo se da ste bili uspješni i da niste morali previše puta trčati do AWS dokumenata. Ali, ako sam iskren prema sebi, siguran sam da ste morali barem jednom. AWS je monstruozna usluga i ona svakim danom postaje sve veća.

Podrška
Jeste li uživali u ovom članku? Želite li vidjeti više? Imate nekoliko dolara na pretek? Pogledajte vezu u nastavku. Svaka šalica kave pretvara se u još nekoliko stotina redaka koda :)
Kupite kavu Jaredu Nuttu - BuyMeACoffee.com
Web programer sa sjedištem u Los Angelesu pokušava svim silama doprinijeti softveru otvorenog koda i napisati sjajne vodiče. buymeacoff.ee
Resursi
AWS Jednostavnim engleskim jezikom
Upoznavanje i ljubav prema AWS datotekama za konfiguraciju elastičnog zrna graha (.ebextensions)
Početak rada s AWS-om
acloudguru (Nije besplatna usluga, ali oni imaju uvodni tečaj koji je besplatan i vrlo informativan)