Kuinka automatisoida Elixir-projektisi käyttöönotto AWS: ään

Tämä on ensimmäinen 2-osaisen sarjan artikkeli, jossa selitetään kokonaan, kuinka automatisoida Elixir-projektisi käyttöönotto. Käytettäviä tekniikoita ovat AWS projektin isäntänä ja CircleCI sovelluksen testauksen ja käyttöönoton automatisoimiseksi.

Osa II - Miten automatisoida Elixir-projektisi käyttöönotto CircleCI: n kanssa

AWS-kokoonpano

Sovelluksesi perus AWS-kokoonpanon tulisi koostua useista toisiinsa kytketyistä palveluista, joista EC2 on tärkein, koska se isännöi projektiasi ja olet vuorovaikutuksessa sen kanssa melko paljon.

Lisäksi käytämme RDS-tietokantaa ja Route 53 -toimintoa verkkotunnuksen hallintaan, samoin kuin joitain muita pieniä hyödyllisiä työkaluja. Tämä opetusohjelma on jaettu useisiin peräkkäisiin vaiheisiin, jotka selittävät näiden palveluiden koko määrittämisen siten, että sinulla on täysin toimiva infrastruktuuri, johon voit ottaa koodisi käyttöön.

AWS-kokoonpano - yleiskuva

Jos sinulla on vaikeuksia konfiguroitavien palveluiden löytämisessä, voit etsiä niitä ja käyttää niitä palveluvälilehdellä:

A) EC2

Konfiguroimme 2 esiintymää yhden vaiheittaista ja toisen tuotantoympäristöä varten.

1. Luo vaiheittainen instanssi

EC2-kokoonpano

Muista, että jotkut palvelut eivät ehkä ole saatavissa tietyillä alueilla, esimerkiksi käytämme Pohjois-Virginiaa.

Tässä esimerkissä aiomme käyttää ilmaista kerroskuvaa ubuntu 16.0.4: stä (AMI) t2.micro-esiintymän kanssa, joka koostuu 1 Gt RAM-muistista ja 20 Gt levystä (EBS-tilavuus). Oman projektisi suhteen voit säätää nämä arvot vastaamaan projektin tarpeita. Toinen tärkeä asia on alueet ja saatavuusvyöhykkeet, ja jokainen AWS-palvelu voi olla käytettävissä tai ei käytettävissä kyseisellä alueella.

Vaihe 1 - Valitse AMIVaihe 2 - Valitse ilmentymän tyyppiVaihe 3 - Määritä instanssi

Muista tarkistaa ”Suojaa tahattomalta lopettamiselta”.

Vaihe 4 - Lisää tallennustila

Viimeinen vaihe koostuu tunnisteiden lisäämisestä EC2-ilmentymään. Tämä vaihe ei ole ratkaiseva kokoonpanolle ja tunnisteiden ainoa tarkoitus on tunnistaa esimerkki AWS-palveluissa, joten lisää vapaasti omat tunnisteesi.

2. Määritä suojausryhmä

Suojausryhmä on yksi tärkeimmistä kokoonpanoista, koska se määrittelee tarkalleen, ketkä voivat käyttää konetta. Tapauksessamme määrittelemme SSH-, HTTP- ja HTTPS-protokollat.
SSH, koska haluamme päästä käsiksi koneeseen ja olla vuorovaikutuksessa sen kanssa päätelaitteen kautta, jotta voimme konfiguroida sen.
HTTP ja HTTPS, jotta projektimme voidaan käyttää, kun ne otetaan käyttöön.

Vaihe 6 - Määritä suojausryhmä

Varoitus: Säännöt, joiden lähde on 0.0.0.0/0, sallivat kaikkien IP-osoitteiden pääsyn instanssiin. Suosittelemme asettamaan suojausryhmän säännöt niin, että pääsy sallitaan vain tunnetuista IP-osoitteista.

3. Luo uusi avainpari (ulkoiseen pääsyyn ilmentymään)

EC2-ilmentymän luomisprosessin lopussa on välttämätöntä luoda avainpari (tallenna avainpari koneellesi, jotta voit määrittää SSH-käyttösi paikallisesti).

B) Joustava IP

Luo yksi joustava IP-osoite, joka liittyy luotuun EC2-ilmentymään. Joustavaa IP: tä tarvitaan, koska jos esimerkiksi sammutamme tämän ilmentymän ja luomme toisen, jolla on muut ominaisuudet, liitämme yksinkertaisesti luodun joustavan IP: n uuteen ilmentymään ja kaikki toimii hyvin.

Vaihe 1 - joustava IPVaihe 2 - Yhdistä joustava IP-tapaus instanssiin

C) Määritä EC2-kone

1. Määritä SSH-käyttö

### suosittelee, että key-pair.pem laitetaan ~ / .ssh-kansioon
chmod 400 avainpari.pem
### korvata 111.11.111 joustavalla IP: llä
ssh -i avain-pair.pem [email protected]

2. Asenna EC2-esimerkissä tarvittavat työkalut

Päästä koneeseen ja asenna tarvittavat ohjelmistot.

  • Elixir / Erlang
  • git
  • Solmu
  • nginx
  • Postgres (ei koko asennus, vain sen asiakasversio samassa versiossa kuin RDS: ssä)

3. Asenna Certbot

Sinun on asennettava Certbot ja luotava sitten SSL-varmenne verkkotunnukselle, jota kone vastaa. Tärkeää: Joskus sinun on suoritettava ensin vaihe "E) Reitti 53".

# Korvaa esimerkki.com verkkotunnuksellasi
sudo certbot --nginx -d esimerkki.com -d www.example.com
sudo certbot uusia - kuiva-ajaa

Seuraavaksi seuraa tämän oppaan vaiheita 3 ja 4.

Varoitus: Certboot on nopeusrajoitus.

4. Määritä Nginx

Seuraavaksi sinun on määritettävä Nginx käyttämään juuri tälle verkkotunnukselle luomaasi varmennetta. Siirry kansioon / etc / nginx / sites-available, josta löydät oletus Nginx-tiedoston, joka näyttää seuraavalta:

Varoitus: korvaa aiemmin luodulla palvelimen_nimellä.

5. Ilmentymän viimeiset asetukset

Lopuksi sinun on luotava -kansio hakemistoon / opt. Sen jälkeen meidän on siirrettävä ohjaus käyttäjälle ubuntu.

sudo mkdir 
sudo chown -R ubuntu: ubuntu  /

6. Luo kuva luodun ilmentymän perusteella ja Luo tuotantomenetelmä

Voit ohittaa tämän vaiheen, jos joudut vain määrittämään yhden ympäristön. Projekteissamme aloitamme yleensä lavastuksesta ja tuotantoympäristöstä. Lavastusympäristö sisältää kaiken tähän mennessä tehdyn koodin, ja sitä käytetään uusimpien ominaisuuksien testaamiseen ennen niiden tuotantoon siirtymistä. Tuotantoympäristö on se, jota oikeat käyttäjät käyttävät.

Vaihe 1 - Luo kuva luodun ilmentymän perusteellaVaihe 2 - Luo kuva

Luo kuva (EC2 - AMI) aiemmin luodun ilmentymän (vaiheittaisen ilmentymän) perusteella. Luo sitten tuotantomenetelmä kuvasta (joten meillä on kaksi tapausta luotu ja määritetty - tuotanto ja vaiheistus). Älä unohda: Tallenna avainpari koneeseesi määrittääksesi SSH-käyttösi paikallisesti.

Tuotanto-esimerkissä on tarpeen toistaa seuraavat vaiheet:

  • B) Joustava IP (tuotantoesimerkki)
  • C) 1. Määritä SSH-käyttö (tuotantoesimerkki)
  • C) 1. Määritä SSH-käyttö (tuotantoesimerkki)
  • C) 3. Asenna Certbot (tuotantoesimerkki)

D) RDS

Tässä esitetyssä esimerkissä käytetään relaatiotietokantaa. Tässä tapauksessa käytämme Postgresiä.

EC2- ja RDS-kokoonpanot

1. Luo 2 DB-tapausta (tuotanto ja vaiheistus)

  • Ole varovainen valittujen vaihtoehtojen suhteen: moottorin versio, varattu myymälä ja poistamisen suojaus.
Vaihe 1 - Valitse moottoriVaihe 2 - Ilmentymän eritelmätVaihe 3 - AsetuksetVaihe 4 - Verkko ja tietoturvaVaihe 5 - tietokantavaihtoehdotVaihe 6 - varmuuskopiointiVaihe 7 - HuoltoVaihe 8 - poistosuojaus

2. Määritä suojausryhmä sallimaan EC2: n muodostaa yhteys RDS: ään

Periaatteessa sinun on lisättävä ilmentymän suojausryhmä RDS-suojausryhmään, jotta EC2 voi muodostaa yhteyden RDS-ilmentymään.

Salli EC2: n muodostaa yhteys RDS-ilmentymään

E) Reitti 53

Reititämme verkkotunnukset ja aliverkkotunnukset aikaisemmin luotuihin koneisiin reitillä 53.

Reitti 53 - esimerkki

1. Luo isännöity vyöhyke verkkotunnuksella

Vaihe 1 - Luo isännöity vyöhyke

2. Luo aliaksia

  • Luo yksi aliastietuejoukko EC2-koneen joustavan IP: n asettamiseen
  • Luo yksi aliasrekisteri tuotannon EC2-koneen joustavalle IP: lle
Vaihe 2 - Luo tietuejoukko

Sinulla on nyt täysin toimiva AWS-asetus (reititys, tietokanta, palvelimen ilmentymä), joka on valmis vastaanottamaan ja ylläpitämään eliksiiripohjaista palvelinta. Opetusohjelman seuraavassa osassa aiomme määrittää CircleCI: n ottamaan projektisi automaattisesti käyttöön äskettäin luomassa AWS-asennuksessa.

Kiitos, että luit!

Kiitos paljon lukemisesta ja jos nautit tästä artikkelista, napsauta -painiketta. Se tarkoittaa meille paljon! Älä myöskään unohda seurata Coletivia Mediumissa, Twitterissä ja LinkedInissä, koska postitamme yhä mielenkiintoisempia artikkeleita useista tekniikoista.

Jos et tiedä, Coletiv on Porton ohjelmistokehitysstudio, joka on erikoistunut Elixir-, iOS- ja Android-sovelluskehitykseen. Mutta me teemme kaikenlaisia ​​juttuja. Me huolehdimme UX / UI-suunnittelusta, web-kehityksestä ja jopa turvallisuudesta sinulle.

Joten valmistetaan jotain yhdessä?