Rails 5.2 PostgreSQL -sovelluksen asentaminen AWS Elastic Beanstalk -sovellukseen

Se on virallista, Herokun käyttö kaikissa tähän mennessä toteutetuissa Rails-projekteissani on pilannut minut mätää. Saatuani AWS-hyvityksiä pikakilpailun ansiosta päätin sijoittaa viimeisimmän projektini Elastic Beanstalkiin (AWS: n Heroku-kilpailija). Minun on vain sanottava, että kaipaan Herokua.

Valitettavasti, jos olet samankaltaisessa tilanteessa, tässä on vaiheittaiset ohjeet Rails 5.2 / PostgreSQL -sovelluksen käyttöönottoon Elastic Beanstalk -sovelluksessa.

Elastisen pavunvarren CLI: n asentaminen

Käytämme terminaalia tässä opetusohjelmassa. Aloitetaan asentamalla “Elastic Beanstalk Command Line Interface.” Näin voit tehdä sen macOS: lla Homebrew: n avulla:

brew install awsebcli

Jos käytät toista käyttöympäristöä, Googlen "miten asentaa awsebcli [käyttöjärjestelmällesi]" pitäisi ohjata sinut oikeaan suuntaan.

Elastisen pavunvarren alustaminen

Oletan, että sinulla on jo Amazon Web Services -tili, ellet edes luo sitä. Mene nyt projektisi hakemistoon ja alusta Elastic Beanstalk:

cd my_projecteb init

Sitten EB CLI kysyy muutamia kysymyksiä Elastic Beanstalk -sovelluksen alustamiseksi. Alustusosa on yksinkertainen. Jos juutut mihinkään, voit tutustua "Configure the EB CLI" -sivuun dokumentaatiosta.

Uuden ympäristön luominen

Kuten jo tiedät, sovelluksellasi voi olla monia ympäristöjä (ajattele niitä erilaisina kokoonpanoina). Sinulla voi olla esimerkiksi "tuotanto" -ympäristö. Tämä on ympäristö, jota käytät sovelluksesi käyttäjäversiossa. Mutta saatat haluta saada toisen ympäristön nimeltä "lavastus". Tässä kokeilet sovelluksesi uusia versioita ennen kuin siirrät sen tuotantoympäristöön.

Voimme luoda ympäristön käyttämällä alla olevaa komentoa:

eb create production

Käyttöönotto Elastinen pavunvarsi

Olettaen, että käytät Gitiä, tee muutokset ennen sovelluksen käyttöönottoa. EB CLI käyttää viimeistä sitoutumistasi. Jos otat käyttöön ennen sitoutumista, otat käyttöön sovelluksesi aiemman version.

Kun olet tehnyt muutokset, ota käyttöön seuraavasti:

eb deploy

Toistaiseksi niin hyvä, nyt meidän on asetettava muutama asia, ennen kuin sovelluksemme todella alkaa toimia.

Pääavaimen asettaminen

Voit käyttää CLI: tä myös tähän tarkoitukseen, mutta mieluummin käytän tähän web-paneelia. Näin:

  1. Siirry AWS: ään, valitse Palvelut -> Elastinen pavunvarsi ja napsauta sitten ympäristöäsi.
  2. Avaa "Kokoonpano" -välilehti ja napsauta "Muokkaa" -ruudun "Ohjelmisto" alla.
  3. Lisää Ympäristöominaisuudet-kohtaan uusi avain nimeltä RAILS_MASTER_KEY. Aseta sen arvo “master.key” -tiedostosi sisältöön. Löydät tämän tiedoston Rails-sovelluksen “config” -hakemistosta.
  4. Napsauta sivun alaosassa olevaa Käytä-painiketta.

PostgreSQL-tietokannan määrittäminen

Elastic Beanstalk tarjoaa helpon tavan perustaa tietokanta, johon pääset kohdasta "Kokoonpano -> Tietokanta". En halua käyttää sitä, koska jos sinun on rakennettava Elastic Beanstalk -ympäristösi uudelleen, tietokanta poistetaan. Joten perustamme tietokannan erillään Elastic Beanstalk -ympäristöstämme.

PostgreSQL-tietokannan luominen RDS: lle

  1. Siirry AWS: ään ja valitse Palvelut -> RDS.
  2. Valitse Luo tietokanta.
  3. Valitse PostgreSQL ja napsauta Seuraava.
  4. Valitse käyttötapasi "Tuotanto" tai "Kehitys / testi" ja napsauta "Seuraava".
  5. Täällä voit kokeilla erilaisia ​​vaihtoehtoja ja nähdä arvioidut kuukausittaiset kustannukset. Suorita jotain, mikä on budjettisi rajoissa. Voit aloittaa db.t2.microilmentymällä, ei multi-AZ-käyttöönottoa ja yleiskäyttöisellä SSD: llä.
  6. Valitse ilmentymän tunniste, tämä on tavallaan nimitila.
  7. Valitse käyttäjänimi ja salasana, pidä ne nyt kätevinä, napsauta Seuraava.
  8. Määritä lisäasetukset -osiossa tärkeä asia on suojausryhmät. Valitse "Valitse olemassa olevat VPC-suojausryhmät" ja valitse suojausryhmä, joka näyttää "… -AWSEBSecurityGroup-…"
  9. Valitse tietokannan nimi, kuten my_app_production.
  10. Napsauta Luo tietokanta. Tämä vie jonkin aikaa.

Tietokantaan pääsyn salliminen

Lisää sillä välin Postgres-käyttöoikeus suojausryhmääsi:

  1. Siirry AWS: ään ja valitse Palvelut -> EC2.
  2. Napsauta vasemmassa paneelissa kohtaa ”Turvaryhmät”.
  3. Valitse suojausryhmä edellisestä osiosta.
  4. Siirry Saapuvat-välilehdelle ja napsauta Muokkaa.
  5. Napsauta Lisää sääntö. Valitse Tyyppi-kohdassa PostgreSQL ja Lähde-kohdassa sen suojausryhmän tunnus, johon lisäät tämän säännön. Sen pitäisi olla aivan "Saapuva" -välilehden yläpuolella ja sen pitäisi näyttää sg-*.
  6. Napsauta Tallenna.

Tuotantotietokannan kokoonpanon määrittäminen

Avaa nyt Rails-hakemistossa config/database.yml. Muuta se sellaisenaan:

# ...
production: <<: *default database:  username:  password:  host:  port: 

Asiaankuuluvien ympäristömuuttujien lisääminen Elastic Beanstalkiin

Käskimme Railsia hankkimaan tuotantotietokannan tiedot käyttämällä yllä olevia ympäristömuuttujia. Nyt meidän on varmistettava, että Elastic Beanstalk -ympäristömme sisältää nämä muuttujat:

  1. Siirry AWS: ään, valitse Palvelut -> Elastinen pavunvarsi ja napsauta sitten ympäristöäsi.
  2. Avaa "Kokoonpano" -välilehti ja napsauta "Muokkaa" -ruudun "Ohjelmisto" alla.
  3. Lisää Ympäristöominaisuudet-kohtaan seuraavat avainarvoparit:
  4. RDS_DB_NAME: Tietokannan nimi, jonka valitsit tietokantaa asetettaessa.
  5. RDS_USERNAME: Käyttäjätunnus, jonka valitsit tietokantaa määrittäessäsi.
  6. RDS_PASSWORD: Salasana, jonka valitsit tietokantaa asetettaessa.
  7. RDS_HOSTNAME: Siirry kohtaan Palvelut -> RDS ja löydät nämä tiedot tietokannan ilmentymäsivun Yhdistä-osiosta. Sitä kutsutaan "päätepisteeksi".
  8. RDS_PORT: Aseta tämä arvoon 5432.
  9. Napsauta sivun alaosassa olevaa Käytä-painiketta.

Tämän jälkeen sitouta Rails-sovellushakemisto uudelleen ja suorita eb deploy. Voit odottaa muutama minuutti ennen kuin teet tämän, koska Elastic Beanstalk tekee joitain juttuja taustalla ympäristömuuttujien päivittämisen jälkeen.

Näiden vaiheiden jälkeen Rails-sovelluksen pitäisi "olla" käynnissä.

Ei toimi vieläkään?

Jos on ongelmia, voit siirtyä EB-ympäristöön AWS-verkkopaneelissa, napsauttaa "Lokit" ja valita "Pyydä lokeja -> Viimeiset 100 riviä" nähdäksesi lokit. Mutta ennen sen tekemistä suosittelen yrittämään ajaa Rails-sovelluksesi käyttämällä paikallisen koneesi tuotantoympäristöä pilkulla nd rails s RAILS_ENV=product.

Tunnustan ensimmäisenä, että en ole kokenut henkilö käyttöönoton suhteen. Kuten sanoin, käytin aina Herokua aiemmin, ja käytän sitä todennäköisesti myös tuleviin projekteihini. Nämä vaiheet toimivat minulle muutaman päivän naarmuessani päätäni yrittäessäni asentaa Rails-sovellukseni Elastic Beanstalk -laitteeseen, joten halusin jakaa ne toivoakseni säästää aikaa ihmisille, jotka ovat samassa tilanteessa kuin minä. Joten, ota tämä kaikki jyvällä suolaa, ja onnea!

Jos pidät tästä artikkelista, seuraa minua Twitterissä tai liity uutiskirjeeseeni saadaksesi ilmoituksen kirjoittaessani uusia artikkeleita. Kirjoitan ohjelmistoista ja startup-yrityksistä.

Jos etsit Rails-kehittäjää, olen tällä hetkellä käytettävissä etätyöhön. Ota rohkeasti yhteyttä minuun osoitteessa hi {at} evrim.io.

Alun perin julkaistu osoitteessa evrim.io 28. marraskuuta 2018.