Mi-a luat cea mai bună parte a unei luni să aflu cum să configurez un cont Amazon Web Services (AWS), să configurez o aplicație Node.js pentru implementare și apoi să o implementez.

Multe dintre acestea au încercat să descifreze documentația Amazon. Sperăm că acest ghid vă va ajuta să vă deplasați de la local pentru a trăi fără prea multă durere de cap.

Mă aflu în Los Angeles, așa că atunci când vă configurați configurarea, este posibil ca valorile implicite să nu fie exact aceleași.

Condiții prealabile

  1. Cunoștințe de bază în linia de comandă
    Sunt sigur că puteți face acest lucru fără linia de comandă, dar este mult mai ușor să utilizați CLI
  2. Un cont AWS
  3. Interfața liniei de comandă Elastic Beanstalk (EB CLI)
    Instrucțiuni de instalare de mai jos
  4. Cunoștințe de bază despre Git

Configurarea unui cont AWS

Primul lucru pe care trebuie să-l faceți este să configurați un cont AWS. Dacă aveți deja un cont, asigurați-vă că aveți un utilizator IAM care are chei API și accesul corespunzător.

Creați un cont

Destul de direct. Creați un cont. Procesul de înscriere ar trebui să vă ghideze prin toate lucrurile destul de ușor. Când configurați pentru prima dată un cont AWS, veți obține acces root. Cu toate acestea, cele mai bune practici de securitate sunt crearea unui utilizator separat pe care îl veți utiliza pentru a vă conecta în mod regulat.

Configurați-vă IAM-ul

NOTĂ: Nu sunt expert în AWS Identity and Access Management (IAM). Acțiunile pe care le-am întreprins au fost pentru cazul meu de uz personal și s-ar putea să nu fie adecvate nevoilor dumneavoastră. Examinați cu atenție permisiunile înainte de a oferi utilizatorilor acces.

AWS publică cele mai bune practici în mod regulat, obțineți una din 2016 Aici.

Configurați un grup

Înainte de a configura un utilizator cu care să vă conectați, creați un grup care va gestiona permisiunile. În cazul meu am configurat un SuperAdmin grup în care urma să mă pun, pentru a putea avea acces la toate.

Pentru acest grup, întrucât este practic să mă autentific și să am acces la toate, am ales AdministratorAccess ca permisiune.

Cum sa implementati o aplicatie Nodejs in AWS Elastic Beanstalk

Pentru mai multe informații despre grupurile IAM, accesați Aici.

Configurați un utilizator IAM

Configurarea unui utilizator este destul de simplă, dar dacă vă blocați, verificați Pagina IAM pentru AWS. Au o mulțime de videoclipuri utile.

Nu uitați să:

  1. Acordați-le permisiunile cheie de acces
    (vezi poza de mai jos)
  2. Alocați-le grupului IAM corespunzător
1611924848 921 Cum sa implementati o aplicatie Nodejs in AWS Elastic Beanstalk

După ce ați configurat propriul utilizator, deconectați-vă de la rădăcină și conectați-vă din nou ca noul dvs. utilizator IAM.

Configurarea mediului local

Acum, că avem cheile de cont gata, să începem cu implementarea.

Ce este Elastic Beanstalk?

Elastic Beanstalk (EB) este un mod destul de simplu de configurare a aplicațiilor scalabile. Folosește instanțe Amazon Elastic Compute Cloud (EC2), găleți Amazon Simple Storage Service (S3) și echilibratoare de sarcină pentru a gestiona arhitectura aplicației dvs. pentru dvs.

Dacă trebuie să vă extindeți rapid din cauza cererii rețelei, va face acest lucru. Este, de asemenea, uimitor să împingi actualizări, deoarece poate face „actualizări continue”, care permit aplicației să rămână online în timp ce actualizezi. Ingrijit.

Cum să împiedici Elastic Beanstalk să nu te coste o tonă

Acest lucru se aplică numai utilizatorilor noi care încă se califică pentru planul gratuit:

  1. Obțineți 750 de ore de t2.micro EC2 pe lună. Acest lucru vă va oferi suficient pentru a rula un singur server cu normă întreagă.
    Cu toate acestea, dacă mai adăugați un sever, veți plăti pentru asta.
  2. Ați putea trece toată logica serverului dvs. la funcțiile Lambda, dar acesta este un subiect pentru o altă zi (și, de asemenea, există câteva dezavantaje).
    Dacă sunteți interesat, verificați acest lucru articol.

Cât va costa totuși?

Buna intrebare. Iată o mostră a facturii mele. Acest lucru se întâmplă cu aplicația Node.js care rulează despre care scriu acest articol (EB, Cloudfront, S3 Buckets).

1611924848 952 Cum sa implementati o aplicatie Nodejs in AWS Elastic Beanstalk

Dacă vă întrebați cât va costa după finalizarea planului gratuit, verificați asta afară.

Crearea unui mediu EB în cadrul aplicației dvs.

Acesta nu este un tutorial Node.js, deoarece acesta nu intră în sfera acestui articol. Dar dacă aveți nevoie de o aplicație cu care să înșurubați, verificați Generator de aplicații expres. Vă va oferi cel puțin o „Hello World”. Este ceea ce am folosit ca init pentru proiectul meu.

Mergând mai departe, se presupune că aveți deja o aplicație Node.js care rulează local fără probleme.

Configurarea EB CLI

Primul lucru este să punem în funcțiune AWS / EB CLI, care constă doar în instalarea a două instrumente și configurarea configurației.

Documentele AWS fac o treabă mai bună decât am putut vreodată, așa că verificați-le Aici.

Notă: Dacă aveți vreodată probleme cu cheile API, le puteți verifica / modifica editând fișierul de configurare.

open ~/.aws/config

Implementarea inițială

Acum avem toate instrumentele noastre în linie, ce urmează?

eb init

Când rulați această comandă, vă va pune o mulțime de întrebări:

  1. Vi se va cere să alegeți o regiune.
    Valoarea implicită este us-west-2: US West (Oregon)
  2. Vă va întreba ce aplicație să utilizați sau să creați una nouă.
    Prima opțiune ar trebui să fie crearea uneia noi.
  3. Vă va întreba dacă doriți să utilizați AWS CodeCommit.
    Nu am experiență în acest sens, dar folosesc doar GitHub, așa că am spus că nu.

Configurați variabilele Env

Acesta a fost probabil cel mai mare punct de durere al meu. Nu știu dacă creierul meu a strălucit peste documentație sau ce. Odată ce mi-am dat seama, este de fapt foarte simplu. Și fișierele de configurare sunt scrise în YAML ❤️.

1611924849 378 Cum sa implementati o aplicatie Nodejs in AWS Elastic Beanstalk
YAML> JSON

Cand tu eb init , va crea un folder .elasticbeanstalk în directorul rădăcină. Nu trebuie să vă încurcați cu nimic aici, deoarece ar trebui configurat automat atunci când executați comanda prima dată.

Cu toate acestea, pentru a avea variabile de mediu și orice altă configurație pe care trebuie să o rulați la ora de început, creați un folder nou: .ebextensions

Structura de dosare ar trebui să arate cam așa:

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

Fișierele de configurare sunt scrise în YAML, așa cum am menționat anterior. Pentru a vă face o idee despre cum ar trebui să arate, iată câteva exemple:

Fișier variabile de mediu:

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

Un fișier pentru configurarea Node.js:
Tu nu într-adevăr trebuie să specificați NodeVersion deoarece vă va oferi cea mai recentă pe care o poate face în instanțele EC2. Dar este aici pentru orice eventualitate.

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

Acesta este cel mai simplu mod de a gestiona setările de configurare, dar acestea pot fi ajustate în tabloul de bord EB în configurație.

Dacă vrei să afli mai multe, Aici este un articol uimitor despre acest subiect.

Creați un mediu

eb create <env-name>

apoi implementați

eb deploy

Presupunând că totul a mers bine, aplicația dvs. este acum implementată în „cloud”.

Verifică-l cu eb open

Implementarea modificărilor

Odată ce ați configurat totul, împingerea modificărilor este foarte ușoară.

NOTĂ: Schimbările trebuie să fie făcute față de Git înainte de a împinge către mediu.

Nu mi-am dat seama de asta prima dată și mi-a trebuit pentru totdeauna să-mi dau seama. Nu faceți aceeași greșeală – comiteți aceste modificări!

Deci, odată ce ați comis modificările, pur și simplu tastați comanda de mai jos și așteptați ca aceasta să-și ruleze cursul.

eb deploy <env-name>

Alte comenzi EBCLI la îndemână

Pentru a deschide instanța în terminal, ceea ce este mult mai ușor decât să încercați să vă amintiți dicționarul unei adrese URL pe care AWS v-o oferă la început:

eb open

Pentru a deschide consola:

eb console

Pentru a obține fișiere jurnal direct la terminal:

eb logs

Ce urmeaza?

Numele de domeniu personalizat

Dacă alergi eb open veți observa că URL-ul este un URL nebun lung. Dacă doriți, îl puteți conecta la domeniul dvs. folosind Route 53. În cea mai mare parte, este vorba despre toate înregistrările DNS standard. Puteți părăsi gestionarea DNS oriunde v-ați înregistrat domeniul, dar mi se pare mai ușor să le am pe toate la un loc.

Certificat SSL

Obținerea unui certificat SSL pentru instanța dvs. este, de asemenea, destul de ușoară. Accesați managerul de certificate și creați un certificat nou pentru domeniul dvs. Acesta este și un proces simplu.

Notă: Dacă intenționați să utilizați un certificat SSL pentru Cloudfront, dvs. avea pentru a iniția procesul din zona N. Virginia. Vă puteți schimba zona în colțul din dreapta sus al ecranului.

1611924849 19 Cum sa implementati o aplicatie Nodejs in AWS Elastic Beanstalk

După ce este verificat și gata de utilizare, aruncați-l în configurația EB. Cel mai simplu mod este să mergeți la consolă și să o selectați.

  1. Accesați tabloul de bord EB
  2. Alegeți aplicația
  3. Alegeți-vă mediul
  4. Faceți clic pe „configurație” și alegeți certificatul SSL.
1611924849 806 Cum sa implementati o aplicatie Nodejs in AWS Elastic Beanstalk

O altă notă: Uneori este posibil să aveți probleme cu managerul de certificate dacă aveți un cont nou. Dacă vă spune să contactați asistența pentru clienți atunci când încercați să creați un certificat, faceți acest lucru și îl vor remedia.

Concluzie

Wow. Ce plimbare. Sperăm că ați avut succes și nu a trebuit să mergeți de prea multe ori la documentele AWS. Dar, dacă sunt sincer cu mine, sunt sigur că a trebuit să o faci măcar o dată. AWS este un serviciu monstruos și crește doar pe zi ce trece.

1611924849 656 Cum sa implementati o aplicatie Nodejs in AWS Elastic Beanstalk
Acum și tu poți țipa la Cloud

A sustine

Ți-a plăcut acest articol? Doriți să vedeți mai multe? Ai de câțiva dolari de rezervă? Consultați linkul de mai jos. Fiecare ceașcă de cafea este transformată în alte câteva sute de rânduri de cod 🙂

Cumpărați o cafea Jared Nutt – BuyMeACoffee.com
Web Developer din Los Angeles, care încearcă din răsputeri să contribuie la software-ul open source și să scrie tutoriale minunate.buymeacoff.ee

Resurse

AWS În engleză simplă

Cunoașterea și iubirea fișierelor de configurare AWS Elastic Beanstalk (.ebextensions)

Noțiuni introductive despre AWS

acloudguru (Nu este un serviciu gratuit, totuși au un curs introductiv gratuit și foarte informativ)