Sanibonani nonke! Igama lami nginguKirill, ngiyi-CTO e-Adapty. Iningi lezakhiwo zethu liku-AWS, futhi namuhla ngizokhuluma ngendlela esinciphise ngayo izindleko zeseva izikhathi ezingu-3 ngokusebenzisa izimo zendawo endaweni yokukhiqiza, kanye nendlela yokusetha i-autoscaling yabo. Okokuqala kuzoba nohlolojikelele lokuthi isebenza kanjani, bese kuba nemiyalelo enemininingwane yokuqalisa.
Ayini ama-Spot Instances?
Ngezansi kunezithombe-skrini ezimbalwa ezibonisa umlando wentengo wezehlakalo.
m5.inkulu esifundeni sase-eu-west-1 (Ireland). Intengo izinzile kakhulu izinyanga ezi-3, okwamanje yonga u-2.9x.
m5.enkulu esifundeni sase-us-east-1 (N. Virginia). Intengo ishintsha njalo ezinyangeni ezi-3, okwamanje yonga ukusuka ku-2.3x ukuya ku-2.8x kuye ngendawo yokutholakala.
t3.okuncane esifundeni sase-us-east-1 (N. Virginia). Intengo izinzile izinyanga ezi-3, okwamanje yonga u-3.4x.
Isevisi yezakhiwo
Isakhiwo esiyisisekelo senkonzo esizokhuluma ngayo kulesi sihloko siboniswa kumdwebo ongezansi.
Isilinganisi Somthwalo Wokulayishwa Kwesicelo → Iqembu Eliqondisiwe le-EC2 → Isevisi Yesiqukathi Esinwebekayo
I-Application Load Balancer (ALB) isetshenziswa njengebhalansi, ethumela izicelo ku-EC2 Target Group (TG). I-TG inesibopho sokuvula izimbobo ngezikhathi zama-ALB futhi iwaxhumanise neziqukathi ze-Elastic Container Service (ECS). I-ECS iyi-analogue ye-Kubernetes ku-AWS, elawula iziqukathi ze-Docker.
Isenzakalo esisodwa singaba neziqukathi ezimbalwa ezisebenzayo ezinezimbobo ezifanayo, ngakho-ke asikwazi ukuzibeka ngendlela eqondile. I-ECS itshela i-TG ukuthi yethula umsebenzi omusha (ngesitemu se-Kubernetes lokhu kubizwa ngokuthi i-pod), ihlola amachweba wamahhala esibonelweni bese yabela enye yazo emsebenzini owethuliwe. I-TG iphinde ihlole ukuthi ingabe isibonelo kanye ne-API kuyasebenza kukho kusetshenziswa ukuhlolwa kwezempilo, futhi uma ibona izinkinga, iyayeka ukuthumela izicelo lapho.
I-EC2 Auto Scalling Groups + ECS Capacity Providers
Umdwebo ongenhla awubonisi isevisi ye-EC2 Auto Scaling Groups (ASG). Kusukela egameni ungaqonda ukuthi inesibopho sokukala izimo. Kodwa-ke, kuze kube muva nje, i-AWS ibingenalo ikhono elakhelwe ngaphakathi lokuphatha inombolo yemishini esebenzayo evela ku-ECS. I-ECS yenze kwaba nokwenzeka ukukala inani lemisebenzi, isibonelo, ngokusetshenziswa kwe-CPU, i-RAM noma inombolo yezicelo. Kodwa uma imisebenzi ithatha zonke izimo zamahhala, imishini emisha ayizange idalwe ngokuzenzakalelayo.
Lokhu kushintshile ngokufika kwe-ECS Capacity Providers (ECS CP). Manje isevisi ngayinye ku-ECS ingahlotshaniswa ne-ASG, futhi uma imisebenzi ingahambisani nezimo ezisebenzayo, khona-ke ezintsha zizophakanyiswa (kodwa ngaphakathi kwemikhawulo ye-ASG emisiwe). Lokhu futhi kusebenza ngakolunye uhlangothi, uma i-ECS CP ibona izimo ezingenzi lutho ngaphandle kwemisebenzi, izonikeza umyalo we-ASG wokuzivala. I-ECS CP inamandla okucacisa iphesenti eliqondiwe lomthwalo wesibonelo, ukuze inombolo ethile yemishini ihlale imahhala ukuze yenze imisebenzi yokukala ngokushesha; ngizokhuluma ngalokhu ngokuhamba kwesikhathi.
I-EC2 Yethula Izifanekiso
Isevisi yokugcina engizokhuluma ngayo ngaphambi kokuba ngichaze kabanzi mayelana nokudala le ngqalasizinda Izifanekiso Zokuqalisa i-EC2. Ikuvumela ukuthi udale isifanekiso ngokusho ukuthi yonke imishini izoqala kanjani, ukuze ungaphindi lokhu kusukela ekuqaleni njalo. Lapha ungakhetha uhlobo lomshini ozoqala ngalo, iqembu lezokuphepha, isithombe sediski kanye neminye imingcele eminingi. Ungaphinda ucacise idatha yomsebenzisi ezolayishwa kuzo zonke izimo eziqalisiwe. Ungasebenzisa imibhalo kudatha yomsebenzisi, isibonelo, ungahlela okuqukethwe kwefayela
Enye yemingcele ebaluleke kakhulu yokumisa yalesi sihloko
Mayelana nediski - AWS muva nje
Ukudala isevisi
Masiqhubekele phambili ekudaleni isevisi echazwe. Kulolu hlelo, ngizophinde ngichaze amaphuzu amaningana awusizo angashiwongo ngenhla. Ngokuvamile, lokhu kuyisinyathelo ngesinyathelo, kodwa ngeke ngicabangele ezinye eziyisisekelo kakhulu noma, ngokuphambene nalokho, izimo eziqondile kakhulu. Zonke izenzo zenziwa kukhonsoli ebonakalayo ye-AWS, kodwa zingenziwa kabusha ngokohlelo kusetshenziswa i-CloudFormation noma i-Terraform. E-Adapty sisebenzisa i-Terraform.
I-EC2 Yethula Isifanekiso
Le sevisi idala ukucushwa kwemishini ezosetshenziswa. Izifanekiso ziphethwe ku-EC2 -> Izimo -> Isigaba sezifanekiso zokuvula.
Isithombe somshini we-Amazon (AMI) - cacisa isithombe sediski lapho zonke izimo zizokwethulwa khona. Ku-ECS, ezimweni eziningi kufanelekile ukusebenzisa isithombe esilungiselelwe esivela e-Amazon. Ibuyekezwa njalo futhi iqukethe yonke into edingekayo ukuze i-ECS isebenze. Ukuze uthole i-ID yesithombe samanje, hamba ekhasini
Uhlobo lwesibonelo — khombisa uhlobo lwesibonelo. Khetha leyo ewufanela kangcono umsebenzi wakho.
Ipheya yokhiye (ngena ngemvume) - cacisa isitifiketi ongaxhuma ngaso kusibonelo nge-SSH, uma kunesidingo.
Izilungiselelo zenethiwekhi — cacisa imingcele yenethiwekhi. Inkundla yenethiwekhi esikhathini esiningi kufanele kube ne-Virtual Private Cloud (VPC). Amaqembu ezokuphepha - amaqembu okuvikela ezimeni zakho. Njengoba sizosebenzisa ibhalansi ngaphambi kwezimo, ngincoma ukucacisa iqembu lapha elivumela ukuxhumeka okungenayo kuphela kusuka kusilinganisi. Okusho ukuthi, uzoba namaqembu okuphepha angu-2, elilodwa le-balancer, elivumela ukuxhumeka kwangaphakathi kusuka noma yikuphi kumachweba angu-80 (http) no-443 (https), kanti okwesibili kwemishini, okuvumela ukuxhumeka okungenayo kunoma yiziphi izimbobo ezivela eqenjini le-balancer. . Uxhumano oluphumayo kuwo womabili amaqembu kufanele luvulwe kusetshenziswa iphrothokholi ye-TCP kuwo wonke amachweba kuwo wonke amakheli. Ungakwazi ukukhawulela izimbobo namakheli ekuxhumekeni okuphumayo, kodwa-ke udinga ukugada njalo ukuthi awuzami ukufinyelela okuthile embotsheni evaliwe.
Isitoreji (amavolumu) - cacisa imingcele yediski yemishini. Usayizi wediski awukwazi ukuba ngaphansi kwalowo oshiwo ku-AMI; ku-ECS Optimized kungu-30 GiB.
Imininingwane ethuthukisiwe — cacisa imingcele eyengeziwe.
Inketho yokuthenga - noma ngabe sifuna ukuthenga izimo ezikhona. Siyafuna, kodwa ngeke siqoke leli bhokisi lapha; sizolilungiselela Eqenjini Lokulinganisa Okuzenzakalelayo, kukhona ezinye izinketho lapho.
Iphrofayili yesibonelo ye-IAM — khombisa indima okuzoqalwa ngayo izimo. Ukuze izimo zisebenze ku-ECS, zidinga izimvume, ezivame ukutholakala endimeni ecsInstanceRole. Kwezinye izimo kungadalwa, uma kungenjalo, khona-ke lapha
Okulandelayo kunamapharamitha amaningi, ngokuyisisekelo ungashiya amanani azenzakalelayo yonke indawo, kepha ngalinye linencazelo ecacile. Ngihlala ngivumela isibonelo se-EBS-optimized kanye nezinketho ze-T2/T3 Unlimited uma zisetshenziswa
Idatha yomsebenzisi — khombisa idatha yomsebenzisi. Sizohlela ifayela /etc/ecs/ecs.config
, equkethe ukucushwa komenzeli we-ECS.
Isibonelo sokuthi idatha yomsebenzisi ingase ibukeke kanjani:
#!/bin/bash
echo ECS_CLUSTER=DemoApiClusterProd >> /etc/ecs/ecs.config
echo ECS_ENABLE_SPOT_INSTANCE_DRAINING=true >> /etc/ecs/ecs.config
echo ECS_CONTAINER_STOP_TIMEOUT=1m >> /etc/ecs/ecs.config
echo ECS_ENGINE_AUTH_TYPE=docker >> /etc/ecs/ecs.config
echo "ECS_ENGINE_AUTH_DATA={"registry.gitlab.com":{"username":"username","password":"password"}}" >> /etc/ecs/ecs.config
ECS_CLUSTER=DemoApiClusterProd
— ipharamitha ikhombisa ukuthi isibonelo singeseqoqo elinegama elinikeziwe, okungukuthi, leli qoqo lizokwazi ukubeka imisebenzi yalo kule seva. Asikadali iqoqo okwamanje, kodwa sizosebenzisa leli gama uma silidala.
ECS_ENABLE_SPOT_INSTANCE_DRAINING=true
— ipharamitha icacisa ukuthi uma isignali yamukelwe ukuze kucishwe isenzakalo sendawo, yonke imisebenzi ekuyo kufanele idluliselwe kusimo se-Draining.
ECS_CONTAINER_STOP_TIMEOUT=1m
- ipharamitha icacisa ukuthi ngemva kokuthola isignali ye-SIGINT, yonke imisebenzi inomzuzu ongu-1 ngaphambi kokubulawa.
ECS_ENGINE_AUTH_TYPE=docker
- ipharamitha ikhombisa ukuthi uhlelo lwe-Docker lusetshenziswa njengendlela yokugunyaza
ECS_ENGINE_AUTH_DATA=...
- amapharamitha wokuxhuma kusibhalisi sesitsha esiyimfihlo, lapho kugcinwa khona izithombe zakho ze-Docker. Uma kusesidlangalaleni, awudingi ukucacisa noma yini.
Ngezinjongo zalesi sihloko, ngizosebenzisa isithombe esisesidlangalaleni esivela ku-Docker Hub, ngakho-ke cacisa amapharamitha ECS_ENGINE_AUTH_TYPE
и ECS_ENGINE_AUTH_DATA
akudingekile.
Kuhle ukwazi: Kunconywa ukuthi ubuyekeze i-AMI njalo, ngoba izinguqulo ezintsha zibuyekeza izinguqulo ze-Docker, i-Linux, i-ejenti ye-ECS, njll. Ukuze ungakhohlwa ngalokhu, ungakwazi
Iqembu le-EC2 Auto Scalling
I-Auto Scaling Group inesibopho sokwethula kanye nokukala izimo. Amaqembu aphethwe ku-EC2 -> Ukukala Okuzenzakalelayo -> Amaqembu Okukala Ngokuzenzakalelayo.
Yethula isifanekiso — khetha isifanekiso esidalwe esinyathelweni sangaphambilini. Sishiya inguqulo ezenzakalelayo.
Izinketho zokuthenga nezinhlobo zezibonelo - cacisa izinhlobo zezimo zeqoqo. Ukunamathela ekuqaliseni isifanekiso kusebenzisa uhlobo lwesibonelo olusuka Kusifanekiso Sokuqalisa. Hlanganisa izinketho zokuthenga nezinhlobo zezibonelo zikuvumela ukuthi ulungiselele kalula izinhlobo zezibonelo. Sizoyisebenzisa.
Isisekelo Esidingekayo Esidingekayo - inani lezehlakalo ezivamile, ezingezona ndawo ezizohlala zisebenza.
Amaphesenti afunwayo ngaphezu kwesisekelo - isilinganiso sephesenti lezehlakalo ezivamile nezimabala, ama-50-50 azosatshalaliswa ngokulinganayo, ama-20-80 esimweni ngasinye okujwayelekile kuzokhushulwa izindawo ezine. Ngenhloso yalesi sibonelo, ngizobonisa 4-50, kodwa empeleni sivame ukwenza 50-20, kwezinye izimo 80-0.
Izinhlobo zezibonelo — lapha ungacacisa izinhlobo ezengeziwe zezimo ezizosetshenziswa kuqoqo. Asikaze siyisebenzise ngoba angiyiqondi kahle incazelo yendaba. Mhlawumbe lokhu kungenxa yemikhawulo ezinhlotsheni ezithile zezimo, kodwa zingandiswa kalula ngokusekelwa. Uma usazi isicelo, ngizojabula ukusifunda kumazwana)
Network — izilungiselelo zenethiwekhi, khetha i-VPC nama-subnet emishini, ezimweni eziningi kufanele ukhethe wonke amanethi atholakalayo.
Ukulayisha ngokulinganisa - izilungiselelo ze-balancer, kodwa sizokwenza lokhu ngokwehlukana, ngeke sithinte lutho lapha. Ukuhlolwa kwezempilo izophinde ilungiswe ngokuhamba kwesikhathi.
Usayizi weqembu — sibonisa imikhawulo enanini lemishini kuqoqo kanye nenani elifunekayo lemishini ekuqaleni. Inombolo yemishini kuqoqo ngeke ibe ngaphansi kobuncane obucacisiwe futhi ibe ngaphezu komkhawulo, ngisho noma ukukala kufanele kwenzeke ngokuya ngamamethrikhi.
Izinqubomgomo zokukala - amapharamitha wokukala, kepha sizokala ngokususelwa emisebenzini esebenzayo ye-ECS, ngakho-ke sizomisa ukukala ngokuhamba kwesikhathi.
Ukuvikelwa kwesikali-ngaphakathi - ukuvikelwa kwezimo ekususweni lapho wehliswa. Siyenza isebenze ukuze i-ASG ingawususi umshini onemisebenzi esebenzayo. I-ECS Capacity Provider izokhubaza ukuvikela ezimweni ezingenayo imisebenzi.
Faka amathegi — ungacacisa omaki bezimo (kulokhu, ibhokisi likamaka lezimo ezintsha kufanele lihlolwe). Ngincoma ukucacisa ithegi Yegama, khona-ke zonke izimo ezethulwa eqenjini zizoba negama elifanayo, futhi kulula ukuzibuka kukhonsoli.
Ngemva kokudala iqembu, livule bese uye esigabeni sokucushwa Okuthuthukile.Kungani zonke izinketho zingabonakali kukhonsoli esigabeni sokudala.
Izinqubomgomo zokunqanyulwa - imithetho ecatshangelwayo lapho kususwa izimo. Zisetshenziswa ngokulandelana kwazo. Sivamise ukusebenzisa lezi ezisesithombeni esingezansi. Okokuqala, izenzakalo ezinesifanekiso sokuqalisa esidala kunazo zonke ziyasuswa (isibonelo, uma sibuyekeze i-AMI, sidale inguqulo entsha, kodwa zonke izimo sikwazile ukushintshela kuyo). Bese kukhethwa izimo eziseduze nehora elilandelayo lokukhokha. Bese kukhethwa ezindala kakhulu ngokusekelwe osukwini lokuqalisa.
Kuhle ukwazi: ukuvuselela yonke imishini ku-cluster, elula ukuyisebenzisa
I-Application Load Balancer kanye ne-EC2 Target Group
Isilinganisi sidalwe esigabeni EC2 → Ukulinganisa Ukulayisha → Izikali Zokulayisha. Sizosebenzisa I-Application Load Balancer; ukuqhathanisa izinhlobo ezahlukene zamabhalansi kungafundwa kokuthi
Abalaleli - kunengqondo ukwenza izimbobo 80 kanye ne-443 futhi uqondise kabusha kusuka ku-80 kuya ku-443 usebenzisa imithetho ye-balancer kamuva.
Izindawo Ezitholakalayo — ezikhathini eziningi, sikhetha izindawo zokufinyeleleka zawo wonke umuntu.
Lungiselela Izilungiselelo Zokuvikela - Isitifiketi se-SSL somlinganisi sikhonjisiwe lapha, inketho elula kakhulu ELBSecurityPolicy-2016-08
. Ngemva kokudala i-balancer, uzoyibona Igama le-DNS, oyidingayo ukuze ulungiselele i-CNAME yesizinda sakho. Isibonelo, le yindlela ebukeka ngayo ku-Cloudflare.
Iqembu Lezokuphepha — dala noma khetha iqembu lezokuphepha lebhalansi, ngibhale okwengeziwe mayelana nalokhu ngenhla ku-EC2 Sokuqalisa Isifanekiso → Izilungiselelo zenethiwekhi.
Iqembu elihlosiwe - sakha iqembu elinomthwalo wemfanelo wokudlulisa izicelo ezisuka kobhalansi ziye emshinini futhi sihlole ukutholakala kwazo ukuze sizishintshe uma kwenzeka kuba nezinkinga. Uhlobo lwethagethi kufanele kube yisibonelo, uHlelo Lokudlulisa и Port noma yikuphi, uma usebenzisa i-HTTPS ukuxhumana phakathi kwebhalansi nezimo, kuzomele ulayishe isitifiketi kubo. Ngezinhloso zalesi sibonelo, ngeke sikwenze lokhu, sizovele sishiye i-port 80.
Ukuhlolwa kwezempilo — amapharamitha okuhlola ukusebenza kwesevisi. Kusevisi yangempela, lesi kufanele kube isicelo esihlukile esisebenzisa izingxenye ezibalulekile zomqondo webhizinisi; ngezinjongo zalesi sibonelo, ngizoshiya izilungiselelo ezizenzakalelayo. Okulandelayo, ungakhetha isikhawu sesicelo, isikhathi sokuvala, amakhodi empumelelo, njll. Esibonelweni sethu, sizobonisa amakhodi empumelelo 200-399, ngoba isithombe se-Docker esizosetshenziswa sibuyisela ikhodi ye-304.
Bhalisa Okuhlosiwe - lapha izimoto zeqembu zikhethiwe, kodwa kithi lokhu kuzokwenziwa yi-ECS, ngakho-ke sivele seqe lesi sinyathelo.
Kuhle ukwazi: ezingeni lebhalansi ungavumela izingodo ezizogcinwa ku-S3 ngendlela ethile
Incazelo Yomsebenzi we-ECS
Ezinyathelweni ezedlule, sidale yonke into ehlobene nengqalasizinda yesevisi; manje siqhubekela phambili ekuchazeni iziqukathi esizozethula. Lokhu kwenziwa esigabeni se-ECS → Izincazelo Zomsebenzi.
Qalisa ukuhambisana kohlobo - khetha i-EC2.
Indima ye-IAM yokwenziwa komsebenzi - khetha ecsTaskExecutionRole
. Ukuyisebenzisa, izingodo zibhaliwe, ukufinyelela okuguquguqukayo okuyimfihlo kunikezwa, njll.
Esigabeni Sezincazelo Zesitsha, chofoza okuthi Engeza Isitsha.
isithombe - xhuma esithombeni ngekhodi yephrojekthi; kulesi sibonelo ngizosebenzisa isithombe esisesidlangalaleni esivela ku-Docker Hub
Imikhawulo Yenkumbulo — imikhawulo yenkumbulo yesiqukathi. Umkhawulo Oqinile - umkhawulo onzima, uma isitsha sidlula inani elishiwo, umyalo wokubulala i-docker uzokwenziwa, isitsha sizofa ngokushesha. Umkhawulo othambile - umkhawulo othambile, isiqukathi singadlula inani elishiwo, kodwa le pharamitha izocatshangelwa lapho kufakwa imisebenzi emishinini. Isibonelo, uma umshini une-4 GiB ye-RAM, futhi umkhawulo othambile wesiqukathi ungu-2048 MiB, khona-ke lo mshini ungaba nobukhulu obungu-2 bemisebenzi esebenzayo ngalesi sitsha. Eqinisweni, i-4 GiB ye-RAM ingaphansi kancane kune-4096 MiB, lokhu kungabukwa kuthebhu ye-ECS Instances ku-cluster. Umkhawulo othambile awukwazi ukuba mkhulu kunomkhawulo oqinile. Kubalulekile ukuqonda ukuthi uma kuneziqukathi eziningana emsebenzini owodwa, khona-ke imikhawulo yazo ifinyezwa.
Amamephu echweba - v Imbobo yokusingatha Sikhomba u-0, lokhu kusho ukuthi ichweba lizonikezwa amandla futhi lizogadwa yiQembu Eliqondiwe. Imbobo yesitsha - ichweba lapho uhlelo lwakho lokusebenza lusebenza khona livame ukucaciswa emyalweni wokwenza, noma linikezwe ikhodi yakho yesicelo, i-Dockerfile, njll. Isibonelo sethu sizosebenzisa i-3000 ngoba ifakwe kuhlu
Ukuhlolwa kwezempilo - imingcele yokuhlolwa kwempilo yesiqukathi, akufanele kudidaniswe naleyo emisiwe kuQembu Eliqondiwe.
Environment — izilungiselelo zendawo. CPU amayunithi - okufana nemikhawulo yeMemori, mayelana neprosesa kuphela. I-processor core ngayinye ingamayunithi angu-1024, ngakho-ke uma iseva ine-dual-core processor futhi isiqukathi sisethelwe ku-512, khona-ke imisebenzi emi-4 enalesi sitsha ingasethulwa kuseva eyodwa. Amayunithi e-CPU ahlala ehambelana nenani lama-cores; angeke kube khona okuncane kuwo, njengoba kwenzeka ngenkumbulo.
Umyalo — umyalo wokuqala insizakalo ngaphakathi kwesitsha, yonke imingcele icaciswa ihlukaniswe ngokhefana. Lokhu kungaba i-guncorn, npm, njll. Uma kungashiwongo, inani lomyalelo we-CMD elivela ku-Dockerfile lizosetshenziswa. Sikhombisa npm,start
.
Okuguquguqukayo kwemvelo - okuguquguqukayo kwemvelo yesitsha. Lokhu kungaba idatha yombhalo elula noma okuhlukile okuyimfihlo okuvela kuyo
Isitoreji Nokugawula - lapha sizosetha ukungena ngemvume ku-CloudWatch Logs (isevisi yamalogi avela kwa-AWS). Ukuze wenze lokhu, vele unike amandla ibhokisi lokuhlola le-CloudWatch Logs. Ngemva kokudala i-Task Definition, iqembu lamalogi lizokwakhiwa ngokuzenzakalelayo ku-CloudWatch. Ngokuzenzakalela, amalogi agcinwa kuyo unomphela; ngincoma ukuthi uguqule isikhathi sokugcinwa sisuke ku-Never Expire siye esikhathini esidingekayo. Lokhu kwenziwa kumaqembu e-CloudWatch Log, udinga ukuchofoza isikhathi samanje bese ukhetha esisha.
I-ECS Cluster kanye ne-ECS Capacity Provider
Iya esigabeni se-ECS → Cluster ukuze udale iqoqo. Sikhetha i-EC2 Linux + Networking njengesifanekiso.
Igama le-Cluster - okubaluleke kakhulu, senza lapha igama elifanayo njengoba lishiwo kupharamitha Yesifanekiso Sokuqalisa ECS_CLUSTER
, kithi - DemoApiClusterProd
. Hlola ibhokisi elithi Dala iqoqo elingenalutho. Ongakukhetha, ungavumela i-Container Insights ukuze ubuke amamethrikhi wezinsizakalo ku-CloudWatch. Uma wenze konke ngendlela efanele, khona-ke esigabeni se-ECS Instances uzobona imishini eyakhiwe eqenjini le-Auto Scaling.
Iya kuthebhu Abahlinzeki Bamandla bese udala entsha. Ake ngikukhumbuze ukuthi kuyadingeka ukulawula ukudalwa nokuvalwa kwemishini ngokuya ngenani lemisebenzi ye-ECS esebenzayo. Kubalulekile ukuqaphela ukuthi umhlinzeki angabelwa iqembu elilodwa kuphela.
Iqembu lokukala okuzenzakalelayo — khetha iqembu elakhiwe ngaphambilini.
Ukukala okuphethwe — yivule ukuze umhlinzeki akwazi ukukala isevisi.
Umthamo oqondiwe % - mangakanani amaphesenti emishini alayishwe imisebenzi esiyidingayo. Uma ucacise u-100%, khona-ke yonke imishini izohlala imatasa ngemisebenzi esebenzayo. Uma ucacisa u-50%, ingxenye yezimoto izohlale ikhululekile. Kulokhu, uma kukhona ukweqa okubukhali emthwalweni, amatekisi amasha azofika ngokushesha ezimotweni zamahhala, ngaphandle kokulinda ukuthi kusetshenziswe izimo.
Ukuvikelwa kokunqanyulwa okuphethwe - vumela, le parameter ivumela umhlinzeki ukuthi asuse ukuvikelwa kwezimo ekususweni. Lokhu kwenzeka uma ingekho imisebenzi esebenzayo emshinini futhi kuvumela umthamo wethagethi%.
Isevisi ye-ECS nokusethwa kokukala
Isinyathelo sokugcina :) Ukuze udale isevisi, udinga ukuya kuqoqo elidalwe ngaphambilini kuthebhu ethi Amasevisi.
Qalisa uhlobo - udinga ukuchofoza okuthi Shintshela kuhlelo lomhlinzeki bese ukhetha abahlinzeki abadalwe ngaphambilini.
Incazelo Yomsebenzi — khetha iTask Definition edalwe ngaphambilini kanye nokubuyekezwa kwayo.
Igama lesevisi — ukugwema ukudideka, sibonisa njalo okufanayo ne-Task Definition.
Uhlobo lwesevisi - Njalo Replica.
Inani lemisebenzi — inombolo oyifunayo yemisebenzi esebenzayo kusevisi. Le parameter ilawulwa ukukala, kodwa kusamelwe icaciswe.
Iphesenti elincane elinempilo и Amaphesenti aphezulu - nquma ukuziphatha kwemisebenzi ngesikhathi sokuthunyelwa. Amanani azenzakalelayo angu-100 no-200, okubonisa ukuthi ngesikhathi sokuthunyelwa inani lemisebenzi lizokhula izikhathi eziningana, bese libuyela kunani elifiswayo. Uma unomsebenzi ongu-1 osebenzayo, min=0, kanye no-max=100, khona-ke phakathi nokuthunyelwa kuzobulawa, futhi ngemva kwalokho kuzophakanyiswa omusha, okungukuthi, kuyoba isikhathi sokuphumula. Uma umsebenzi ongu-1 uyasebenza, min=50, max=150, khona-ke ukuthunyelwa ngeke kwenzeke nhlobo, ngoba umsebenzi ongu-1 awukwazi ukuhlukaniswa ngesigamu noma ukhuliswe isikhathi esisodwa nengxenye.
Uhlobo lokuphakelwa - shiya isibuyekezo se-Rolling.
Izifanekiso Zokubeka - Imithetho yokubeka imisebenzi emishinini. Okuzenzakalelayo yi-AZ Balanced Spread - lokhu kusho ukuthi umsebenzi omusha ngamunye uzobekwa endaweni entsha kuze kube yilapho imishini ekuzo zonke izindawo ezitholakalayo iphakama. Ngokuvamile senza i-BinPack - CPU kanye ne-Spread - AZ; ngale nqubomgomo, imisebenzi ibekwa ngokuminyene ngangokunokwenzeka emshinini owodwa nge-CPU ngayinye. Uma kudingekile ukudala umshini omusha, udalwa endaweni entsha yokutholakala.
Layisha uhlobo lwesilinganisi — khetha Isilinganisi Sokulayishwa Kwesicelo.
Indima yesevisi ye-IAM - khetha ecsServiceRole
.
Layisha igama lebhalansi — khetha isilinganisi esidalwe ngaphambilini.
Isikhathi somusa sokuhlola impilo — ima kancane ngaphambi kokuhlola impilo ngemva kokwethula umsebenzi omusha, ngokuvamile siwubeka kumasekhondi angu-60.
Isitsha sokulayisha ibhalansi — entweni yegama leqembu eliqondiwe, khetha iqembu elakhiwe ngaphambilini, futhi yonke into izogcwaliswa ngokuzenzakalelayo.
Service Auto Scaling - amapharamitha wokukala wesevisi. Khetha okuthi Lungiselela Ukukala Okuzenzakalelayo Kwesevisi ukuze ulungise isibalo esifiswa yisevisi yakho. Sibeka inani elincane kanye nenani eliphezulu lemisebenzi lapho sikala.
Indima ye-IAM Yesevisi Yokukala Ngokuzenzakalelayo - khetha AWSServiceRoleForApplicationAutoScaling_ECSService
.
Izinqubomgomo zokukala umsebenzi ezizenzakalelayo - imithetho yokukala. Kunezinhlobo ezi-2:
- Ukulandelela okuhlosiwe - amamethrikhi okuhloswe ngawo ukulandelela (ukusetshenziswa kwe-CPU/RAM noma inombolo yezicelo zomsebenzi ngamunye). Isibonelo, sifuna isilinganiso sokulayishwa kwephrosesa sibe ngu-85%, uma siba phezulu, imisebenzi emisha izokwengezwa size sifinyelele inani eliqondiwe. Uma umthwalo uphansi, khona-ke imisebenzi izosuswa, ngokuphambene nalokho, ngaphandle uma ukuvikelwa ekunciphiseni kunikwe amandla (Khubaza ukungena ngaphakathi).
- Isinyathelo sokukala - ukusabela esigamekweni esingenasizathu. Lapha ungakwazi ukulungisa ukusabela kunoma yimuphi umcimbi (i-CloudWatch Alarm), uma kwenzeka, ungakwazi ukwengeza noma ukususa inombolo ecacisiwe yemisebenzi, noma ucacise inani eliqondile lemisebenzi.
Isevisi ingaba nemithetho eminingana yokukala, lokhu kungaba usizo, into esemqoka ukuqinisekisa ukuthi azingqubuzani.
isiphetho
Uma ulandele imiyalelo futhi usebenzise isithombe se-Docker esifanayo, isevisi yakho kufanele ibuyisele ikhasi elifana naleli.
- Senze isifanekiso ngokusho ukuthi yonke imishini ekusevisi yethulwa ngayo. Siphinde safunda ukuthi ungayibuyekeza kanjani imishini uma isifanekiso sishintsha.
- Silungiselele ukucutshungulwa kwesignali yokumisa isenzakalo, ngakho-ke phakathi neminithi ngemva kokuyithola, yonke imisebenzi esebenzayo iyasuswa emshinini, ngakho-ke akukho lutho olulahlekile noma oluphazamisekayo.
- Siphakamise isilinganisi ukuze sisabalalise umthwalo ngokulinganayo kuyo yonke imishini.
- Sidale isevisi esebenza endaweni eyodwa, eyehlisa izindleko zomshini izikhathi ezingaba ngu-3.
- Silungiselele ukukala okuzenzakalelayo kuzo zombili izinkomba ukuze sisingathe imisebenzi eyengeziwe ngaphandle kokuhlangabezana nezindleko zesikhathi sokuphumula.
- Sisebenzisa i-Capacity Provider ukuze uhlelo lokusebenza luphathe ingqalasizinda (imishini) hhayi ngenye indlela.
- Sibahle.
Uma unokunyuka okubikezelwayo komthwalo, isibonelo ukhangisa kumkhankaso omkhulu we-imeyili, ungasetha ukukala ngokuthi
Ungakwazi futhi ukukala ngokusekelwe kudatha evela ezingxenyeni ezahlukene zesistimu yakho. Isibonelo, sinokusebenza
Ngizojabula uma ungitshela kumazwana amacala athakazelisayo okusebenzisa izimo ze-spot kanye ne-ECS noma okuthile mayelana nokukala.
Maduze kuzoba nama-athikili amayelana nendlela esicubungula ngayo izinkulungwane zezehlakalo zokuhlaziya ngomzuzwana esitakini esingenaseva kakhulu (ngemali) nokuthi ukuthunyelwa kwezinsizakalo kusebenza kanjani kusetshenziswa i-GitLab CI ne-Terraform Cloud.
Bhalisa kithi, kuzoba mnandi!
Abasebenzisi ababhalisiwe kuphela abangabamba iqhaza kuhlolovo.
Ingabe usebenzisa izehlakalo zendawo ekukhiqizeni?
-
22,2%Yebo6
-
66,7%No18
-
11,1%Ngafunda ngazo esihlokweni futhi ngihlela ukuzisebenzisa3
Bangu-27 abasebenzisi abavotile. Abasebenzisi abangu-5 bagobile.
Source: www.habr.com