Kuidas automatiseerida oma Elixiri projekti juurutamist AWS-i

See on kaheosalise sarja esimene artikkel, kus selgitame täielikult, kuidas automatiseerida teie Elixiri projekti juurutamist. Kasutatavad tehnoloogiad on AWS teie projekti hostimiseks ja CircleCI rakenduse testimise ja juurutamise automatiseerimiseks.

II osa - Kuidas automatiseerida oma Elixiri projekti juurutamist CircleCI abil

AWS-i konfiguratsioon

Teie rakenduse põhiline AWS-konfiguratsioon peaks koosnema mitmesugustest ühendatud teenustest, millest EC2 on kõige olulisem, kuna see majutab teie projekti ja te suhtlete sellega üsna palju.

Lisaks kasutame andmebaasi jaoks RDS-i ja domeeni haldamiseks marsruuti 53 koos mõne teise väiksema kasuliku tööriistaga. See õpetus on jagatud mitmeks järjestikuseks etapiks, mis selgitavad, kuidas neid teenuseid täielikult konfigureerida, nii et teil oleks täielikult töötav taristu, kuhu saate oma koodi juurutada.

AWS-i konfiguratsioon - üldvaade

Kui teil on probleeme konfigureeritavate teenuste leidmisega, saate neid vahekaardil teenused otsida ja neile juurde pääseda:

A) EC2

Konfigureerime 2 esinemisjuhtu nii lavastamiseks kui teise tootmiskeskkonna jaoks.

1. Looge astmelause

EC2 konfiguratsioon

Pidage meeles, et mõned teenused ei pruugi teatud piirkondades saadaval olla, näiteks kasutame Põhja-Virginiat.

Selles näites kasutame ubuntu 16.0.4 (AMI) tasuta astmepilti t2.micro eksemplariga, mis koosneb 1 GB RAM-ist ja 20 GB kettast (EBS-i maht). Enda projekti jaoks kohandage neid väärtusi vastavalt projekti vajadustele. Teine oluline asi on piirkonnad ja saadavustsoonid ning iga AWS-teenus võib selles piirkonnas olla saadaval või mitte.

1. samm - valige AMI2. samm - valige astme tüüp3. samm - konfigureerige eksemplar

Palun ärge unustage kontrollida jaotist “Kaitse juhusliku lõpetamise eest”.

4. samm - lisage salvestusruum

Viimane samm sisaldab siltide lisamist meie EC2 eksemplarile. See samm pole konfiguratsiooni jaoks ülioluline ja siltide ainus eesmärk on tuvastada meie eksemplar AWS-i teenustes, nii et lisage julgelt oma sildid.

2. Seadistage turvarühm

Turvarühm on üks olulisemaid konfiguratsioone, kuna see määratleb täpselt, kellele masinale juurde pääseb. Meie puhul määratleme SSH, HTTP ja HTTPS protokollid.
SSH, kuna tahame masinale juurde pääseda ja sellega terminali kaudu suhelda, et saaksime selle konfigureerida.
HTTP ja HTTPS, et meie projektile oleks juurutamisel juurde pääseda.

6. samm - turvarühma seadistamine

Hoiatus: reeglid, mille allikas on 0.0.0.0/0, lubavad kõikidel IP-aadressidel teie eksemplarile juurde pääseda. Soovitame seada turvarühma reeglid, et võimaldada juurdepääs ainult teadaolevate IP-aadresside kaudu.

3. Looge uus võtmepaar (eksemplaride väliseks kasutamiseks)

EC2 eksemplari loomise protsessi lõpus on vaja luua võtmepaar (salvestage võtmepaar oma arvutisse, et saaksite oma SSH-juurdepääsu kohapeal konfigureerida).

B) Elastne IP

Looge loodud EC2 eksemplariga seotud elastne IP-aadress. Elastset IP-d on vaja, sest kui näiteks sulgeme selle eksemplari ja loome veel ühe, millel on muud omadused, seostame lihtsalt loodud elastse IP-d uue eksemplariga ja kõik töötab hästi.

1. samm - elastne IP2. samm - seostage elastne IP eksemplariga

C) Seadistage EC2 masin

1. Seadistage SSH-juurdepääs

### soovitatav panna key-pair.pem kausta ~ / .ssh
chmod 400 võtmepaar.pem
### asendada 111.11.111 genereeritud IP-ga
ssh -i võti-pair.pem ubuntu@111.11.111

2. Installige EC2 eksemplari jaoks vajalikud tööriistad

Juurdepääs masinale ja installige vajalik tarkvara.

  • Elixir / Erlang
  • Git
  • Sõlm
  • Nginx
  • Postgres (mitte täielik install, vaid selle kliendi versioon samas versioonis, mis RDS-is)

3. Installige Certbot

Peate installima Certboti ja genereerima seejärel domeeni jaoks SSL-sertifikaadi, millele teie masin vastab. Tähtis: Mõnikord peate esmalt joosta samm „E) marsruut 53“.

# Palun asendage example.com oma domeeniga
sudo certbot --nginx -d example.com -d www.example.com
sudo certbot uuendamine --dry-run

Järgmisena järgige selle õpetuse samme 3 ja 4.

Hoiatus: Certboot on kiirusepiirang.

4. Seadistage Nginx

Järgmisena peate konfigureerima Nginxi kasutama selle domeeni jaoks just loodud sertifikaati. Liikuge kausta / etc / nginx / sites-available, kust leiate vaikimisi Nginxi faili, mis näeb välja järgmine:

Hoiatus: palun asendage varem loodud serveri nimega.

5. Eksemplari viimased seaded

Lõpuks peate looma kataloogi kataloogis / opt. Pärast seda peame juhtimisse andma kasutajale ubuntu.

sudo mkdir 
sudo chown -R ubuntu: ubuntu  /

6. Looge loodud eksemplari põhjal pilt ja looge tootmise eksemplar

Selle sammu võite vahele jätta, kui peate lihtsalt seadistama ühe keskkonna. Meie projektides lähtume tavaliselt lavastusest ja tootmiskeskkonnast. Lavastuskeskkond sisaldab kogu senini tehtud koodi ja seda kasutatakse uusimate funktsioonide testimiseks enne nende tootmiseks minekut. Tootmiskeskkond on see, mida kasutavad tegelikud kasutajad.

1. samm - looge loodud eksemplari põhjal pilt2. samm - looge pilt

Looge pilt (EC2 - AMI) eelnevalt loodud eksemplari (järkjärgulise eksemplari) põhjal. Seejärel looge tootest eksemplar pildi järgi (nii et meil on kaks eksemplari loodud ja konfigureeritud - tootmine ja lavastus). Ärge unustage: SSH-juurdepääsu kohaliku konfigureerimise jaoks salvestage võtmepaar oma arvutisse.

Tootmisjuhu jaoks on vaja korrata järgmisi samme:

  • B) Elastne IP (tootmisnäide)
  • C) 1. SSH-juurdepääsu seadistamine (tootmisnäide)
  • C) 1. SSH-juurdepääsu seadistamine (tootmisnäide)
  • C) 3. Installige Certbot (tootmisnäide)

D) RDS

Siin toodud näites kasutatakse relatsiooniandmebaasi. Sel juhul kasutame Postgresit.

EC2 ja RDS konfiguratsioonid

1. Looge 2 DB esinemisjuhtu (tootmine ja lavastamine)

  • Olge valitud variantidega ettevaatlik: mootori versioon, eraldatud pood ja võimaldage kustutuskaitset.
1. samm - valige mootor2. samm - eksemplari spetsifikatsioonid3. samm - sätted4. samm - võrk ja turvalisus5. samm - andmebaasi valikud6. samm - varundamine7. samm - hooldus8. samm - kustutamise kaitse

2. Seadistage turvarühm, et EC2 saaks RDS-iga ühenduse luua

Põhimõtteliselt peate RDS-i turvarühma lisama eksemplari turvarühma, et EC2 saaks RDS-eksemplariga ühenduda.

Laske EC2-l RDS-eksemplariga ühenduda

E) Tee nr 53

Domeenide ja alamdomeenide suunamiseks varem loodud masinatesse kasutasime marsruuti 53.

Marsruut 53 - näide

1. Looge hostitud tsoon domeeninimega

1. samm - looge hostitud tsoon

2. Loo varjunimed

  • EC2-masina elastse IP lavastamiseks looge üks varjunimede komplekt
  • Looge üks varjunimekirje komplekt EC2 masina elastse IP jaoks
2. samm - looge kirjekomplekt

Teil on nüüd täielikult töötav AWS-i häälestamine (marsruutimine, andmebaas, serveri eksemplar), mis on valmis eliksiiripõhise serveri vastuvõtmiseks ja hostimiseks. Õpiku järgmises osas konfigureerime CircleCI automaatselt teie projekti automaatseks juurutamiseks äsja loodud AWS-i seadistusse.

Aitäh, et lugesite!

Tänan teid lugemise eest ja kui teile see artikkel meeldis, siis klõpsake seda nuppu.. See tähendab meile palju! Ärge unustage ka jälgida Coletivit Mediumis, Twitteris ja LinkedInis, kuna postitame pidevalt üha huvitavamaid artikleid mitme tehnoloogia kohta.

Kui te ei tea, on Coletiv Porto tarkvaraarendusstuudio, mis on spetsialiseerunud Elixiri, iOS-i ja Androidi rakenduste arendamisele. Kuid me teeme igasuguseid asju. Hoolime UX / UI kujundamise, veebiarenduse ja isegi teie turvalisuse eest.

Vaatleme siis midagi koos?