Како распоредити апликацију Раилс 5.2 ПостгреСКЛ на АВС Еластиц Беансталк

Званично је, употреба Хероку-а за све моје Раилс пројекте до сада ме покварила. Након што сам добио неке АВС кредите захваљујући такмичењу у смотри, одлучио сам да свој најновији пројекат поставим на Еластиц Беансталк (АВС-ов Хероку конкурент). Све што морам да кажем је да ми недостаје Хероку.

Авај, ако сте и ви у сличној ситуацији, ево детаљних упутстава за постављање ваше апликације Раилс 5.2 / ПостгреСКЛ на Еластиц Беансталк.

Инсталирање Еластиц Беансталк ЦЛИ

Терминал ћемо користити у овом упутству. Почнимо са инсталирањем „Еластичног интерфејса наредбене линије Беансталк“. Ево како се то ради на мацОС-у помоћу Хомебрев-а:

brew install awsebcli

Ако користите другу платформу, гуглање „како инсталирати авсебцли на [вашу платформу]“ требало би да вас води у правом смеру.

Иницијализација еластичног зрна пасуља

Претпостављам да већ имате налог за Амазон Веб Сервицес, ако не, креирајте га. Сада идите у директоријум вашег пројекта и иницијализујте Еластиц Беансталк:

cd my_projecteb init

Тада ће вам ЕБ ЦЛИ поставити неколико питања за иницијализацију апликације Еластиц Беансталк. Дио за иницијализацију је једноставан. Ако негде запнете, можете погледати страницу „Конфигурисање ЕБ ЦЛИ“ из документације.

Стварање новог окружења

Као што већ знате, ваша апликација може имати много окружења (замислите их као различите конфигурације). На пример, можда имате „производно“ окружење. Ово је окружење које користите за верзију апликације окренуте ка корисницима. Али можда бисте желели да имате друго окружење под називом „инсценација“. Овде испробавате нове верзије апликације пре него што је гурнете у производно окружење.

Окружење можемо створити помоћу наредбе испод:

eb create production

Увођење у Еластиц Беансталк

Под претпоставком да користите Гит, извршите промене пре примене апликације. ЕБ ЦЛИ поставља вашу последњу предају. Ако примените пре урезивања, поставићете старију верзију апликације.

Након урезивања промена, примените на следећи начин:

eb deploy

За сада је добро, сада морамо да поставимо неколико ствари пре него што наша апликација заиста почне да ради.

Постављање главног кључа

ЦЛИ можете користити и за ову сврху, али ја више волим да користим веб панел за ово. Ево како:

  1. Идите на АВС, одаберите „Сервицес -> Еластиц Беансталк“, а затим кликните на своје окружење.
  2. Отворите картицу „Конфигурација“ и кликните „Измени“ испод оквира под називом „Софтвер“.
  3. У „Својства окружења“ додајте нови кључ под називом RAILS_MASTER_KEY. Поставите његову вредност на садржај датотеке „мастер.кеи“. Ову датотеку можете пронаћи у директоријуму „цонфиг“ апликације Раилс.
  4. Кликните на дугме „Примени“ на дну странице.

Постављање базе података ПостгреСКЛ

Еластиц Беансталк пружа једноставан начин за постављање базе података до које можете доћи путем „Конфигурација -> База података“. Више бих волео да то не користим, јер ће вам база података бити избрисана ако будете требали обновити окружење Еластиц Беансталк. Дакле, базу података ћемо поставити одвојено од нашег окружења Еластиц Беансталк.

Стварање ПостгреСКЛ базе података на РДС-у

  1. Идите на АВС, одаберите „Услуге -> РДС“.
  2. Изаберите „Направи базу података“.
  3. Изаберите „ПостгреСКЛ“ и кликните на „Даље“.
  4. Изаберите случај употребе, „Производња“ или „Развој / тест“, и кликните на „Даље“.
  5. Овде можете испробати различите опције и видети колики су процењени месечни трошкови. Решите се са нечим што вам је у оквиру буџета. Можете почети са db.t2.microинстанцом, без примене мулти-АЗ и ССД опште намене.
  6. Изаберите идентификатор инстанце, ово је нека врста „простора имена“.
  7. Изаберите корисничко име и лозинку, држите их за сада при руци, кликните на „Даље“.
  8. У одељку „Конфигурисање напредних поставки“ важне су безбедносне групе. Изаберите „Изаберите постојеће ВПЦ безбедносне групе“, а затим изаберите безбедносну групу која изгледа као „… -АВСЕБСецуритиГроуп- ...“
  9. Изаберите име базе података, као што је my_app_production.
  10. Кликните на „Направи базу података“, ово ће потрајати.

Омогућавање приступа бази података

У међувремену, додамо Постгрес приступ вашој безбедносној групи:

  1. Идите на АВС, одаберите „Услуге -> ЕЦ2“.
  2. Кликните на „Безбедносне групе“ на левој табли.
  3. Изаберите сигурносну групу из претходног одељка.
  4. Идите на картицу „Улазно“ и кликните на „Уреди“.
  5. Кликните на „Додај правило“. За „Тип“ одаберите „ПостгреСКЛ“, а за „Извор“ у ИД безбедносне групе у коју додајете ово правило. Требало би да буде тачно изнад картице „Улазни“ и требало би да изгледа sg-*.
  6. Кликните на „Сачувај“.

Постављање конфигурације производне базе података

Сада, у вашем директоријуму Раилс, отворите config/database.yml. Промените га као таквог:

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

Додавање релевантних променљивих околине у Еластиц Беансталк

Рекли смо Раилс-у да добије информације за продукцијску базу података користећи горње променљиве окружења. Сада морамо бити сигурни да наше окружење Еластиц Беансталк укључује ове променљиве:

  1. Идите на АВС, одаберите „Сервицес -> Еластиц Беансталк“, а затим кликните на своје окружење.
  2. Отворите картицу „Конфигурација“ и кликните „Измени“ испод оквира под називом „Софтвер“.
  3. У „Својства окружења“ додајте следеће парове кључ / вредност:
  4. RDS_DB_NAME: Име базе података које сте одабрали приликом подешавања базе података.
  5. RDS_USERNAME: Корисничко име које сте одабрали приликом подешавања базе података.
  6. RDS_PASSWORD: Лозинка коју сте изабрали приликом подешавања базе података.
  7. RDS_HOSTNAME: Идите на „Услуге -> РДС“ и ове информације можете пронаћи у одељку „Повезивање“ на страници са информацијама о инстанци базе података. Зове се „Крајња тачка“.
  8. RDS_PORT: Подесите ово на 5432.
  9. Кликните на дугме „Примени“ на дну странице.

После овога, поново урежите свој директоријум апликације Раилс и покрените eb deploy. Можда ћете желети да сачекате неколико минута пре него што то учините, јер Еластиц Беансталк ради неке ствари у позадини након ажурирања променљивих окружења.

Након ових корака, ваша апликација Раилс „треба“ да буде покренута.

И даље не ради?

Ако постоје било какви проблеми, можете да одете у своје ЕБ окружење на АВС веб табли, кликнете на „Евиденције“ и одаберете „Рекуест Логс -> Ласт 100 Линес“ да бисте видели евиденције. Али пре него што то учините, препоручио бих да покушате да покренете своју апликацију Раилс користећи производно окружење на вашој локалној машини помоћу зареза nd rails s RAILS_ENV=product.

Први ћу признати да нисам најискуснија особа по питању распоређивања. Као што сам рекао, Хероку сам увек користио у прошлости, а вероватно ћу га користити и за своје будуће пројекте. Ови кораци су ми помогли након неколико дана чешања по глави покушавајући да подесим апликацију Раилс на Еластиц Беансталк, па сам желео да их поделим у нади да ћу уштедети време за људе који су у истој ситуацији у којој сам био и ја. Па, узми све ово са резервом, и срећно!

Ако вам се свиђа овај чланак, пратите ме на Твиттеру или се пријавите на мој билтен да бисте ме обавештавали када пишем нове чланке. Пишем о софтверу и стартуповима.

Ако тражите програмера за Раилс, тренутно сам доступан за рад на даљину. Слободно ме контактирајте на хи {ат} еврим.ио.

Првобитно објављено на еврим.ио 28. новембра 2018.