AWS Solutions Architect · Oppitunti

EC2-käynnistystyyppi ja Fargate

Vertaa EC2-kontti-instanssien itse hallinnointia Fargaten käyttöön palvelimettomaan konttien suorittamiseen ja ymmärrä kustannusten väliset kompromissit.

Oppitunti 2/413 vaihetta

EC2-käynnistystyyppi ja Fargate on ilmainen AWS Solutions Architect-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu AWS Solutions Architect-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. AWS Solutions Architect-kurssilla on yhteensä 4 oppituntia.

Kaksi tapaa suorittaa ECS-tehtäviä

ECS tarjoaa kaksi launch types -käynnistystapaa, jotka määrittävät, missä kontit suoritetaan: EC2 launch type suorittaa kontit EC2-instansseissa, jotka varaatte ja joita hallinnoitte klusterissa; Fargate launch type on palvelimeton laskentamoottori, jossa AWS hallinnoi taustalla olevia palvelimia kokonaan. Tehtävämäärittely ja palvelun määritykset ovat lähes samanlaiset molemmissa. Keskeinen ero on infrastruktuurin hallintavastuussa ja kustannusmallissa.

EC2 launch type: täysi hallinta

EC2 launch type -käynnistystavassa rekisteröitte EC2-instanssit klusterin kontti-instansseiksi ECS Container Agent -agentin avulla (agentti on esiasennettu ECS-optimisoituihin AMI-levykuviin). Valitsette instanssityypit, hallitsette käyttöjärjestelmätason asetuksia, käytätte mukautettuja suojausperusmäärityksiä ja voitte hyödyntää Spot Instances -instansseja kustannusten pienentämiseksi. ECS sijoittaa tehtävät rekisteröityihin instansseihin bin-packing- tai spread-sijoittelustrategioiden perusteella. Vastaatte taustalla olevan EC2-kaluston korjauspäivityksistä, skaalauksesta ja ylläpidosta.

# Launch an ECS-optimised EC2 instance that joins the cluster
# User data for ECS container agent
#!/bin/bash
echo ECS_CLUSTER=MyAppCluster >> /etc/ecs/ecs.config
echo ECS_ENABLE_CONTAINER_METADATA=true >> /etc/ecs/ecs.config

Fargate: palvelimettomat säilöt

Fargaten avulla määrität suorittimen ja muistin tehtäväkohtaisesti, ja AWS varaa taustalla olevan laskentakapasiteetin näkymättömästi. EC2-instansseja ei tarvitse rekisteröidä, päivittää tai skaalata, vaan AWS hallinnoi kaiken tämän. Tehtävät saavat oman eristetyn ytimensä (Firecracker-mikroVM:ien kautta), mikä tarjoaa vahvemman tietoturvaeristyksen kuin EC2-säilöinstanssit, joissa useat tehtävät jakavat saman isännän. Fargate edellyttää awsvpc-verkkotilaa, mikä tarkoittaa, että jokainen tehtävä saa oman ENI:n ja VPC:n IP-osoitteen.

aws ecs run-task \
  --cluster 'MyAppCluster' \
  --task-definition 'myapp-task:5' \
  --launch-type FARGATE \
  --network-configuration '{
    "awsvpcConfiguration": {
      "subnets": ["subnet-aaa111"],
      "securityGroups": ["sg-xyz"],
      "assignPublicIp": "ENABLED"
    }
  }'

Kustannusmallien vertailu

Kustannusmallit eroavat toisistaan perustavanlaatuisesti. EC2-käynnistystyyppi: maksat taustalla olevista EC2-instansseista riippumatta siitä, ovatko tehtävät käynnissä, mutta voit käyttää Reserved Instanceja tai Savings Plan -sopimuksia alennusten saamiseksi sekä Spot Instanceja jopa 90 %:n säästöihin keskeytettävissä työkuormissa. Fargate: maksat vain tehtäväkohtaisesti kulutetusta vCPU-ajasta ja muistista sekunnin tarkkuudella – tehtävien väliltä ei synny joutokäyntikustannuksia. Piikikkäissä tai eräajotyökuormissa Fargate on usein edullisempi; jatkuvasti runsaasti kuormitetuissa työkuormissa EC2 ja Reserved Instances voivat olla edullisempi vaihtoehto.

Fargate Spot kustannussäästöihin

Fargate Spot tarjoaa Fargate-laskentakapasiteettia huomattavasti alennettuun hintaan (jopa 70 %:n alennuksella) sillä ehdolla, että kapasiteetti voidaan keskeyttää, kun AWS tarvitsee sen takaisin. Fargate Spot sopii erinomaisesti eräkäsittelyyn, CI/CD-putkiin sekä kehitys- ja testiympäristöihin. Määritä kapasiteetin tarjoajastrategia, jolla yhdistät Fargaten (on-demand) ja Fargate Spotin: käytä Fargatessa arvoa base=1 varmistaaksesi vähintään yhden taatun tehtävän ja weight-arvoja jakaaksesi jäljellä olevan kapasiteetin näiden kahden välillä.

aws ecs create-service \
  --cluster 'MyAppCluster' \
  --service-name 'BatchService' \
  --task-definition 'batch-task:1' \
  --desired-count 10 \
  --capacity-provider-strategy \
    'capacityProvider=FARGATE,weight=1,base=1' \
    'capacityProvider=FARGATE_SPOT,weight=4'

Milloin EC2-käynnistystyyppi kannattaa valita

Valitse EC2-käynnistystyyppi, kun tarvitset seuraavia: GPU-instansseja (Fargaten GPU-tuki on rajallinen), tiettyjä instanssityyppejä, joita Fargate ei tarjoa, mukautettua käyttöjärjestelmän määritystä (ytimen säätö, mukautetut ohjaimet), verkon suorituskykyä, joka edellyttää sijoitteluryhmiä tai tehostettua verkkotoimintaa, Windows-säilöjä (EC2 tukee Windows Server -säilöjä; Fargate tukee Windowsia, mutta rajoituksin) tai kun käyttöaste on jatkuvasti korkea ja EC2:n Reserved Instances tarjoaa merkittävän kustannusedun Fargaten sekuntihinnoitteluun verrattuna.

Milloin Fargate kannattaa valita

Valitse Fargate, kun haluat: poistaa EC2:n hallinnan aiheuttaman lisätyön (ei käyttöjärjestelmän päivityksiä eikä klusterin skaalausta), maksaa vain käyttämästäsi kapasiteetista sekunnin tarkkuudella, suorittaa piikikkäitä tai eräajotyökuormia, jotka eivät oikeuta joutokapasiteetin varaamista EC2:lla, saavuttaa vahvemman tehtäväeristyksen Firecracker-mikroVM:ien avulla tai nopeuttaa kehitystä keskittymällä pelkästään sovelluskoodiin. Fargate on SAA-C03-kokeessa oletussuositus uusille ECS-työkuormille, ellei tehtävässä mainita erityistä EC2-vaatimusta.

ECS:n kapasiteetin tarjoajat

Kapasiteetin tarjoajat irrottavat laskentakerroksen ECS-palveluista. EC2:ssa kapasiteetin tarjoaja yhdistetään Auto Scaling Groupiin, jolloin ECS skaalaa ASG:tä automaattisesti, jos tehtäviä ei voida sijoittaa riittämättömän kapasiteetin vuoksi. Fargatessa FARGATE ja FARGATE_SPOT ovat sisäänrakennettuja kapasiteetin tarjoajia. Kapasiteetin tarjoajastrategian määrittäminen palvelulle mahdollistaa on-demand-kapasiteetin ja Spot-/Fargate Spot -kapasiteetin yhdistämisen, jolloin työkuorman kustannusten ja saatavuuden välistä kompromissia voidaan hallita tarkasti.

Toiminnan hallinnan lisätyön vertailu

Toiminnan hallinnan lisätyö vaihtelee merkittävästi käynnistystyyppien välillä. EC2-käynnistystyyppi edellyttää seuraavia: AMI:n valinta ja päivittäminen, EC2 Auto Scalingin määritys, käyttöjärjestelmän päivittäminen SSM:n tai omien komentosarjojen avulla, säilöinstanssien kapasiteetin hallinta sekä instanssitason tietoturvan vahvistaminen. Fargate poistaa kaiken edellä mainitun: AWS huolehtii Fargate-alustan päivityksistä, hallittavia instansseja ei ole eikä klusterin kapasiteettia tarvitse suunnitella. Fargate tarjoaa kuitenkin vähemmän joustavuutta käyttöjärjestelmätason mukautuksiin ja verkon suorituskyvyn säätämiseen.

Fargate-tehtävän suorittimen ja muistin mitoitus

Fargate-tehtävämääritelmien suorittimen ja muistin on oltava peräisin kiinteästä yhdistelmäjoukosta. Suoritinarvot ovat 256, 512, 1024, 2048, 4096, 8192 ja 16384 (vCPU-yksiköissä, joissa 1024 = 1 vCPU). Muistin on oltava kullekin suoritinarvolle sallitulla vaihteluvälillä – esimerkiksi suorittimen arvolla 256 muistia voi olla 512–2048 Mt. Tehtävän säilöt jakavat tehtävälle määritetyn suorittimen ja muistin ylärajan. Oikea mitoitus on tärkeää: Fargate veloittaa täsmälleen määrittämäsi kapasiteetin mukaan, joten ylimitoitus tuhlaa rahaa ilman todellista suorituskykyhyötyä, jos työkuormat ovat suoritinrajoitteisia.

# Valid Fargate combinations
# 256 CPU (.25 vCPU): 512, 1024, or 2048 MB
# 512 CPU (.5 vCPU): 1024 to 4096 MB
# 1024 CPU (1 vCPU): 2048 to 8192 MB
# 2048 CPU (2 vCPU): 4096 to 16384 MB
# 4096 CPU (4 vCPU): 8192 to 30720 MB

ECS Exec vianmääritykseen

ECS Exec mahdollistaa interaktiivisen komentotulkki-istunnon avaamisen suoraan käynnissä olevaan säilöön (sekä EC2:ssa että Fargatessa) ilman SSH:ta tai bastion-isäntiä. Se käyttää taustalla AWS Systems Manager Session Manageria. Ota se käyttöön palvelussa ja käynnistä bash-istunto execute-command-CLI-komennolla. Tämä on erittäin hyödyllistä säilöissä ilmenevien tuotantoympäristön ongelmien vianmäärityksessä. Tehtävän rooli tarvitsee oikeudet ssmmessages:CreateControlChannel ja muut siihen liittyvät SSM-oikeudet.

aws ecs execute-command \
  --cluster 'MyAppCluster' \
  --task 'abc123def456' \
  --container 'myapp' \
  --interactive \
  --command '/bin/bash'

Pikatarkistus

Testaa tämän oppitunnin AWS Solutions Architect (SAA-C03) -käsitteiden ymmärtämisesi.

Oppitunnin yhteenveto

Tässä oppitunnissa opit, että EC2-käynnistystyyppi tarjoaa täyden hallinnan instanssityyppeihin ja käyttöjärjestelmän määrityksiin, mutta edellyttää taustalla olevan instanssikannan hallintaa – se sopii GPU:ille, erikoislaitteistolle ja jatkuvasti runsaasti kuormitetuille työkuormille; Fargate poistaa infrastruktuurin hallinnan, veloittaa tehtävistä sekuntiperusteisesti ja tarjoaa vahvan Firecracker-eristyksen – se sopii useimpiin verkko- ja API-työkuormiin sekä erätöihin; ja Fargate Spot pienentää kustannuksia jopa 70 % työkuormissa, jotka sietävät keskeytyksiä. Seuraavaksi tutustumme Amazon ECR:ään säilökuvien tallentamista ja noutamista varten.

Aloita maksutta

Opi AWS Solutions Architect tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”EC2-käynnistystyyppi ja Fargate” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa AWS Solutions Architect-oppimispolun 3 oppituntia, myös oppitunnin “EC2-käynnistystyyppi ja Fargate”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. AWS Solutions Architect-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”EC2-käynnistystyyppi ja Fargate”?

Vertaa EC2-kontti-instanssien itse hallinnointia Fargaten käyttöön palvelimettomaan konttien suorittamiseen ja ymmärrä kustannusten väliset kompromissit. Harjoittelet AWS Solutions Architect-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni AWS Solutions Architect-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin AWS Solutions Architect-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”EC2-käynnistystyyppi ja Fargate”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä AWS Solutions Architect-oppitunnilla?

Kyllä. Jokainen AWS Solutions Architect-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. ECS-klusterit, tehtävämääritykset ja palvelut
  2. EC2-käynnistystyyppi ja Fargate
  3. ECR: Konttikuvien tallennus ja noutaminen
  4. ECS-palveluiden automaattinen skaalaus ja kuormantasaus
← Takaisin: AWS Solutions Architect