(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5LHNRP9'); Að setja upp Rails-forrit með Amazon ECS - The Codest
The Codest
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Iðnaðargreinar
    • Fjártæknifyrirtæki og bankastarfsemi
    • E-commerce
    • Adtech
    • Heilbrigðistækni
    • Framleiðsla
    • Flutningar
    • Bifreiða
    • Internet hlutanna
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
Aftur ör Farðu aftur
2019-03-24
Hugbúnaðarþróun

Að setja upp Rails-forrit með Amazon ECS

The Codest

Marcin Doliwa

Software Engineer

Í þessari kennslu vil ég sýna þér hvernig á að setja upp sýnishorns Rails-forrit með Amazon Elastic Container Service (ECS).

Hér er tómt.

Skulum búa það til með því að keyra járnbrautir nýtt sýnishorns-rails-forrit, síðan búa til grunnstjórnendaaðgerð rails g controller Kveðja vísitala og stilla leiðir til rótarbrautarinnar sem ”root to: welcome#index".

Markmið okkar er að sjá þessa velkominsíðu útfærða með ECS.

Búðu til geymslu með Amazon Elastic Container Registry (ECR)

Amazon ECR er gámamiðlæging. Við munum nota hana til að geyma myndir forritsins okkar og sækja þær þaðan svo þær keyri á ECS.

Farðu í þitt AWS panel, leitaðu að Teygjanlegur ílátur
Skrá
og smelltu Byrjaðu. Þú munt sjá skjáinn hér að neðan:

geymsla með Amazon Elastic Container Registry

Við munum búa til einka-geymslu og nefna hana sýnishorn-rails-forrit.

Geymslan er til staðar, en hún er tóm. Við viljum að hún innihaldi mynd forritsins okkar. Þetta er næsta skref.

# kasta villum ef Gemfile hefur verið breytt síðan Gemfile.lock

RUN bundle config --global frozen 1

WORKDIR /app

COPY Gemfile Gemfile.lock ./

RUN bundle install

COPY . .

CMD ["rails", "server", "-b", "0.0.0.0"]

Þá ættum við að búa til ímynd og senda hana í ECR-geymsluna.

Áður en við gerum það skulum við forkompíla eignir með `rails assets:precompile`.

Nú skaltu fara í þann geymslustað sem búinn var til. Efst á skjánum munt þú sjá a Skoða push-skipanir hnappur með upplýsingum um hvernig á að gera þetta.

Í mínu tilfelli (Linux) keyri ég það með þessum AWS leiðbeiningum:

aws ecr get-login-password --region eu-central-1 | dökker login --username AWS --password-stdin 212516879399.dkr.ecr.eu-central-1.amazonaws.com

docker build -t sample-rails-app .

docker tag sample-rails-app:latest 212516879399.dkr.ecr.eu-central-1.amazonaws.com/sample-rails-app:latest

docker push 212516879399.dkr.ecr.eu-central-1.amazonaws.com/sample-rails-app:latest

Gakktu úr skugga um að notandinn þinn hafi heimild til að framkvæma þessa aðgerð. Ég bætti AmazonElasticContainerRegistryPowerUser-stefnu við notandann minn, sem lítur svona út:

{
    "Version": "2012-10-17",
    "Statement": [
 {
 "Sid": "VisualEditor0",
 "Effect": "Allow",
 "Action": [
 "ecr:GetRegistryPolicy",
                "ecr:DescribeRegistry",
 "ecr:GetAuthorizationToken",
 "ecr:DeleteRegistryPolicy",
 "ecr:PutRegistryPolicy",
 "ecr:PutReplicationConfiguration"
 ],
 "Resource": "*"
 },
        {
 "Sid": "VisualEditor1",
 "Effect": "Allow",
 "Action": "ecr:*",
 "Resource": "arn:aws:ecr:*:212516879399:repository/*"
 }
    ]
}

Við höfum Docker-myndina okkar tilbúna.

Að búa til forritalestursjöfnunartæki

Ég vil að ytri heimurinn geti tengst eingöngu Application Load Balancer-inum mínum. Hann mun senda umferð til gámanna sem keyra í ECS-þyrpingunni okkar.

Farðu á EC2-þjónustur -> Aðlögun álags -> Hleðslujafnara, smelltu Búðu til álagsjafnvægi, velja Forritabyrðajafnari og smelltu á Búa til hnappur.

Settu nafn þess á sýnishorn-rails-app-alb, notaðu sjálfgefna VPC-ið þitt og veldu öll undarnet þess.

Við erum eftir með Öryggishópar og Hlustendur og leiðsögn kafla.

Öryggishópar

Við munum búa til nýja öryggishóp fyrir álagsjafnvægið okkar. Hann virkar eins og eldveggur; við munum setja reglur fyrir innkomandi og útgangandi umferð. Við viljum samþykkja innkomandi HTTP-umferð (TCP-port 80) og leyfa alla útgangandi umferð. 

Til að gera þetta, smelltu á “Búðu til nýja öryggishóp”tengill.

Í kaflanum “Grunnupplýsingar”, stilltu nafn og lýsingu, skildu eftir sjálfgefna VPC.

Í mínu tilfelli – nafn: “sýnishorn-rails-app-alb-sg”, lýsing: “http utanfrá, allt innanfrá”

Bættu við innkomandi reglu með gerð: HTTP og heimild: Hvar sem er-IPv4. Láttu útgöngureglur vera óbreyttar.

Smelltu Búa til öryggishóp, farðu svo aftur í flipann þar sem þú varst að búa til Application Load Balancer, endurnýjaðu öryggishópana og bættu við þeim sem við höfum nýlega búið til, fjarlægðu sjálfgefna hópinn.

Hlustendur og leiðsögn

Í þessum hluta munum við skilgreina hvert við viljum að álagsjafnari sendi umferð. Láttu vera Hlustandi Samkomulag og Höfn sem HTTP og 80, þar sem þetta er nákvæmlega það sem við viljum, og smelltu á “Búa til markhóp”tengill.

Settu nafnið á “sýnishorn-rails-app-alb-tg”. Eina breytingin er portnúmerið. Við munum senda það á port 3000 þar sem það er fyrir Rails-forritið okkar. Hunsaðu næsta skref (Skráðar skotmarkmið) og búa til markhópinn.

Farðu nú aftur í flipann þar sem við vorum að búa til Application Load Balancer, endurnýjaðu markhópinn og veldu þann sem við höfum nýlega búið til.

Við höfum forritalegra álagsjafnvægið okkar tilbúið, nú skulum við leika okkur með ECS.

Að búa til ECS-þyrpingu

Það eru margir ógnvekjandi hugtök sem þú munt sjá – klasa, verkefni, verkefnadefinition, þjónustur. Til að einfalda málið skaltu hugsa um klasann sem hóp netþjóna (EC2-dæmi). Á hverjum þeirra keyrum við verkefni, sem eru einfaldlega hópur af gámum sem keyra saman. Verkefnislýsing lýsir hvaða gámar eru í tilteknum hópi og hvaða auðlindir við viljum úthluta þeim (minni, örgjörvi). Þjónustur fylgjast með þessum verkefnum til að tryggja að í klasanum okkar séu alltaf réttan fjölda heilbrigðra verkefna í gangi.

Með þetta í huga skulum við búa til klasann okkar.

Farðu á ECS-síðuna og smelltu á Klasar tengill og Búa til klasa hnappur. Veldu “EC2 + Linux netverk”einn og smella Næsta skref. 

Settu nafn klasans í “sýnishorn-rails-app-þyrping”Veldu EC2-dæmigerðstýpu; ég valdi t2-micro þar sem hún er fáanleg í ókeypis þrepi. Láttu fjölda eintaka vera 1. 

Í netkerfis kaflanum skaltu nota sjálfgefna VPC-ið þitt og velja öll undarnet þess. Smelltu á Búa til, bíddu smá og voilà, við höfum nýjan ECS-klúster tilbúinn.

Verkefnislýsing

Smelltu á Verkefnislýsingar tengill, þá Búðu til nýja verkefnisskilgreiningu hnappur. Veldu EC2 valkostur og smella Næsta skref. Forritið sem við ætlum að keyra er mjög einfalt, svo við þurfum aðeins nokkra valkosti hér. 

Settu Verkefnislýsing nafn til “sýnishorn-rails-forrit”, farðu síðan beint á Skjálýsingar kafla og smelltu á “Bæta við ílát”. Nefndu ílátið sem “sýnishorn-rails-forrit”, og stilltu myndstaðsetningu í sniði “geymslu-slóð/mynd:merki”Í nýrri vafraglugga farðu í ECR til að afrita mynd-URI. Í mínu tilfelli var það: “212516879399.dkr.ecr.eu-central-1.amazonaws.com/sample-rails-app:latest”.

Settu minnismörk þín á ráðlagða 300–500 MiB. Nú kemur flóknasta atriðið – portakortlagning.

Forritið okkar keyrir í gám á höfn 3000. Settu því 3000 sem gámahöfn. Við sláum inn 0 sem gestahöfn, sem í raun þýðir að valið er handahófskennd höfn. Sem betur fer mun Application Load Balancer-inn okkar þekkja þessa höfnarmyndun og geta beint umferðinni rétt. Við getum jafnvel keyrt mörg verkefni á þessari einu einingu. 

Bættu við umhverfisbreytunni Umhverfi Rails og stilltu það á framleiðsla.

Nú skaltu smella Bæta við að bæta við gámabreytingu okkar og smella Búa til til að ljúka uppsetningu verkefnisskilgreiningar.

Þjónusta

Við höfum klasann okkar, álagsjafnvægið og verkefnisskilgreininguna. Nú verðum við einhvern veginn að keyra þessi verkefni innan klasans. Þetta er hlutverk þjónustna. Farðu í nýlega búinn klasann og veldu Þjónusta Smelltu á flipann og smelltu á Búa til hnappur. 

Settu gerð ræsingu á EC2, bættu við nafni “sýnishorn-rails-app-þjónusta”. Stilltu fjölda verkefna á 1 og smelltu Næsta skref. Á þessari síðu skaltu velja hringkassahnappinn fyrir Application Load Balancer og velja núverandi IAM-hlutverk fyrir hann. Í kaflanum “Íláti til álagsjafnvægis” ættirðu þegar að hafa slegið inn rétt íláti “sample-rails-app:0:3000”, og smelltu síðan á “Bæta við álagsjafnvægi”.”

Fyrir “Production listener port” veldu 80:HTTP; sem nafn markhópsins notaðu það sem við bjuggum til áður – “sýnishorn-rails-app-alb-tg”og smelltu Næsta skref. Fara Sjálfvirk stærðarstilling valkostir eins og þeir eru, smelltu Næsta skref og Búa til þjónustu.

Uppfæra ECS öryggishópinn

Þú getur farið á síðuna fyrir búinn klasa og athugað hann. Verkefni Í flipunum ætti eitt verkefni að vera í gangi. Þjónustan hefur ræst það. Nú skaltu fara á EC2 þjónustusíðuna, smella á Load Balancers og skoða upplýsingar um Application Load Balancer okkar. Þar ættir þú að sjá DNS-nafn þess. Afritaðu það og opnaðu í vafranum. Það ætti að vísa þér á appið okkar. Því miður fáum við “504 gateway tímaút” villa. 

Vandamálið er í öryggishópi klasans okkar. Inntaksreglur hans leyfa ekki umferð sem berst frá álagsjafnvægi. Til að laga þetta skaltu fara aftur í EC2-vitanum og smella á Öryggishópar tengill. Það er nýr hópur sem var búinn til í ferlinu við klasa-sköpun. Hann ætti að heita með nafni sem byrjar á “EC2ContainerService-dæmi-rails-app-þyrping”. Smelltu á það og breyttu innkomandi reglum. Þar sem við viljum leyfa alla umferð frá VPC-inu okkar skaltu fara í Amazon VPC-stjórnborðið og athuga hvaða IPv4 CIDR VPC-ið þitt er. Stilltu reglutegundina á “Allur umferð”og uppspretta IPv4 CIDR. Vistaðu þessa reglu og reyndu að hlaða DNS-nafninu á jafnvægishlutann. 

Vonandi sérðu eins og ég 🙂

Lesa meira

GraphQL Ruby. Hvernig er frammistaðan?

Lestar og önnur samgöngutæki

Rails-þróun með tmux, vim, fzf og ripgrep

Tengdar greinar

Myndskreyting af heilbrigðisforriti fyrir snjallsíma með hjartatákni og hækkandi heilsufarsgrafík, merkt með The Codest-merkinu, sem táknar stafræna heilsu og HealthTech-lausnir.
Hugbúnaðarþróun

Heilbrigðis-hugbúnaður: gerðir og notkunartilvik

Tólin sem heilbrigðisstofnanir treysta á í dag líta ekkert út eins og pappírsskjöl frá fyrri áratugum. Heilbrigðisforrit styðja nú heilbrigðiskerfi, sjúklingameðferð og nútímalega heilbrigðisþjónustu á klínískum og...

THECODEST
Yfirlitsmynd sem sýnir hnignandi súlurit með uppstrekktri ör og gullmynt sem táknar kostnaðarhagkvæmni eða sparnað. The Codest-merkið birtist í efra vinstra horni með slagorðinu "In Code We Trust" á ljósgráum bakgrunni.
Hugbúnaðarþróun

Hvernig á að stækka þróunarteymið án þess að fórna gæðum vörunnar

Ertu að stækka þróunarteymið þitt? Lærðu hvernig á að vaxa án þess að fórna gæðum vörunnar. Þessi leiðarvísir fjallar um merki um að kominn sé tími til að stækka, uppbyggingu teymisins, ráðningar, forystu og verkfæri—og hvernig teymið getur...

THECODEST
Hugbúnaðarþróun

Búðu til vefumsóknir sem þola framtíðina: innsýn frá sérfræðiteymi The Codest

Uppgötvaðu hvernig The Codest skarar fram úr við að búa til stigstækar, gagnvirkar vefumsóknir með nýjustu tækni, sem bjóða upp á hnökralausa notendaupplifun á öllum kerfum. Lærðu hvernig sérfræðiþekking okkar knýr fram stafræna umbreytingu og viðskipti...

THECODEST
Hugbúnaðarþróun

Topp 10 hugbúnaðarþróunarfyrirtæki í Lettlandi

Kynntu þér fremstu hugbúnaðarþróunarfyrirtæki Lettlands og nýstárlegar lausnir þeirra í nýjustu grein okkar. Uppgötvaðu hvernig þessir tækniforingjar geta hjálpað til við að efla fyrirtækið þitt.

thecodest
Lausnir fyrir fyrirtæki og vaxtarfyrirtæki

Grunnatriði í Java hugbúnaðarþróun: Leiðarvísir að árangursríkri útvistun

Kannaðu þessa ómissandi leiðbeiningu um árangursríka outsourcing Java hugbúnaðarþróun til að auka skilvirkni, afla aðgangs að sérfræðiþekkingu og tryggja árangur verkefna með The Codest.

thecodest

Gerðu þig áskrifanda að þekkingargrunni okkar og vertu upplýstur um sérfræðiþekkingu upplýsingatæknigeirans.

    Um okkur

    The Codest – Alþjóðlegt hugbúnaðarþróunarfyrirtæki með tæknimiðstöðvar í Póllandi.

    Bretland - Höfuðstöðvar

    • Skrifstofa 303B, 182-184 High Street North E6 2JA
      Lundúnir, England

    Pólland - staðbundin tæknimiðstöðvar

    • Fabryczna skrifstofugarður, Aleja
      Herbergi 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsjá, Pólland

    The Codest

    • Heim
    • Um okkur
    • Þjónusta
    • Case Studies
    • Vitið hvernig
    • Starfsferilmöguleikar
    • Orðabók

    Þjónusta

    • Það er ráðgjafi
    • Hugbúnaðarþróun
    • Bakendaþróun
    • Framhliðþróun
    • Staff Augmentation
    • Bakhliðaráþróunaraðilar
    • Skýjaverkfræðingar
    • Gagnaverkfræðingar
    • Annað
    • Gæðatryggingartæknimenn

    Auðlindir

    • Staðreyndir og goðsagnir um samstarf við utanaðkomandi hugbúnaðarþróunaraðila
    • Frá Bandaríkjunum til Evrópu: Af hverju ákveða bandarísk sprotafyrirtæki að flytja til Evrópu?
    • Samanburður á tæknifjarkerfisþróunarmiðstöðvum: Tech Offshore Europe (Pólland), ASEAN (Filippseyjar), Eurasia (Tyrkland)
    • Hvert eru helstu áskoranir CTO-a og CIO-a?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Höfundarréttur © 2026 af The Codest. Öll réttindi áskilin.

    is_ISIcelandic
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lvLatvian lt_LTLithuanian is_ISIcelandic