Ku Dhisida API La-milicsan karo ee AWS Spot Instances

Salaamu caleykum Magacaygu waa Kirill, waxaan ahay CTO oo jooga Adapty. Inta badan qaab dhismeedkayaga wuxuu ku yaalaa AWS, maantana waxaan ka hadli doonaa sida aan hoos ugu dhignay kharashaadka server-ka 3 jeer anagoo adeegsanayna tusaaleyaal goobeed deegaan wax soo saar, iyo sidoo kale sida loo dejiyo auto-scaling. Marka hore waxaa jiri doona dulmar ku saabsan sida ay u shaqeyso, ka dibna tilmaamo faahfaahsan oo ku saabsan sida loo bilaabo.

Waa maxay Tusaalooyinka Spot?

Baro Tusaalooyinka waa adeegayaasha kale ee isticmaala AWS ee hadda aan shaqayn, waxayna ku iibiyaan qiimo dhimis weyn (Amazon waxay qortaa ilaa 90%, waayo-aragnimadeena ~ 3x, waxay ku xiran tahay gobolka, AZ iyo nooca tusaale ahaan). Farqigooda ugu weyn ee kuwa caadiga ah waa in ay dami karaan wakhti kasta. Sidaa darteed, muddo dheer waxaan rumaysnahay in ay caadi tahay in loo isticmaalo meelaha bikrada ah, ama hawlaha xisaabinta shay, oo leh natiijooyin dhexdhexaad ah oo lagu badbaadiyay S3 ama kaydka xogta, laakiin maaha iibka. Waxaa jira xalal saddexaad oo kuu ogolaanaya inaad isticmaasho dhibco wax soo saarka, laakiin waxaa jira meelo badan oo kiiskeena ah, sidaas darteed ma aanan fulin. Habka lagu sharraxay maqaalku wuxuu si buuxda u shaqeeyaa habka caadiga ah ee AWS, iyada oo aan lahayn qoraallo dheeraad ah, taaj, iwm.

Hoos waxaa ah dhawr sawir oo muujinaya taariikhda qiimaha ee tusaalooyinka dhibcaha.

m5. weyn ee gobolka eu-galbeed-1 (Ireland). qiimuhu inta badan waxa uu ahaa mid xasiloon muddo 3 bilood ah, isaga oo hadda badbaadinaya 2.9x.

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

m5. weyn ee gobolka us-bari-1 (N. Virginia). Qiimaha ayaa si joogto ah isu beddelaya 3 bilood, hadda wuxuu ka badbaadinayaa 2.3x ilaa 2.8x iyadoo ku xidhan aagga la heli karo.

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

t3.small ee gobolka us-bari-1 (N. Virginia). Qiimuhu wuxuu ahaa mid deggan muddo 3 bilood ah, isagoo hadda badbaadinaya 3.4x.

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

Dhismaha adeegga

Qaab dhismeedka aasaasiga ah ee adeegga ee aan kaga hadli doono maqaalkan ayaa lagu muujiyey jaantuska hoose.

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

Isku-dheelitirnaanta Codsiga β†’ Kooxda Bartilmaameedka EC2 β†’ Adeegga Konteenarka Laastikada ah

Balancer Load Application (ALB) waxa loo isticmaalaa dheellitir ahaan, kaas oo u soo dira codsiyada Kooxda Bartilmaameedka EC2 (TG). TG ayaa mas'uul ka ah furitaanka dekedaha tusaale ahaan ALB-yada iyo ku xidhidhtooda dekedaha weelasha Elastic Container Service (ECS). ECS waa analooga Kubernetes ee AWS, kaas oo maamusha weelasha Docker.

Mid ka mid ah tusaale ahaan wuxuu yeelan karaa dhowr weel oo socda oo leh dekedo isku mid ah, markaa si go'an uma dejin karno. ECS waxay u sheegaysaa TG inay bilaabayso hawl cusub (ee Kubernetes erey bixinta tan waxaa loo yaqaan pod), waxay hubisaa dekedo bilaash ah tusaale ahaan waxayna u xilsaartaa mid iyaga ka mid ah hawsha la bilaabay. TG waxa kale oo ay si joogto ah u hubisaa in tusaale ahaan iyo API-ku ay ka shaqaynayaan iyaga oo isticmaalaya hubinta caafimaadka, iyo haddii ay aragto wax dhibaato ah, waxay joojisaa codsiyada ay u diraan halkaas.

EC2 Kooxaha Is-badhista Atoota ah + Bixiyeyaasha Awoodda ECS

Jaantuska sare ma tuso adeega EC2 Auto Scaling Groups (ASG). Magaca waxaad ka fahmi kartaa inay mas'uul ka tahay miisaan-qaadista. Si kastaba ha ahaatee, ilaa dhawaan, AWS ma lahayn karti ku dhisan oo ay ku maamusho tirada mishiinnada socda ee ECS. ECS waxay suurtagelisay in la cabbiro tirada hawlaha, tusaale ahaan, isticmaalka CPU, RAM ama tirada codsiyada. Laakiin haddii hawluhu ay qabsadeen dhammaan dhacdooyinka bilaashka ah, markaa mashiinnada cusub si toos ah looma abuurin.

Tani way isbedeshay ka dib imaanshaha ECS Capacity Bixiyeyaasha (ECS CP). Hadda adeeg kasta oo ECS ah wuxuu la xiriiri karaa ASG, iyo haddii hawluhu aysan ku habboonayn xaaladaha socda, markaa kuwa cusub ayaa la kicin doonaa (laakiin gudaha xadka ASG ee la aasaasay). Tani waxay sidoo kale ka shaqeysaa jihada ka soo horjeeda, haddii ECS CP ay aragto tusaaleyaal aan shaqo lahayn oo aan hawl lahayn, markaa waxay siin doontaa amarka ASG si loo xiro. ECS CP waxay awood u leedahay inay qeexdo boqolkiiba bartilmaameedka culeyska tusaale ahaan, sidaa darteed tiro mashiinno ah ayaa had iyo jeer xor u ah inay si dhakhso ah u miisaamaan hawlaha; Waxaan ka hadli doonaa tan wax yar ka dib.

EC2 Bilaabida Qaababka

Adeegga ugu dambeeya ee aan ka hadli doono ka hor intaanan tafaasiil ka bixin samaynta kaabayaashan waa EC2 Launch Templates. Waxay kuu ogolaaneysaa inaad abuurto template sida waafaqsan mashiinnada oo dhan ay bilaabi doonaan, si aan tan ugu soo celin xoqin mar kasta. Halkan waxaad ka dooran kartaa nooca mashiinka si aad u bilowdo, kooxda amniga, sawirka diskka iyo meelo kale oo badan. Waxa kale oo aad cayimi kartaa xogta isticmaalaha oo lagu shubi doono dhammaan xaaladaha la bilaabay. Waxaad ku socodsiin kartaa qoraallada xogta isticmaalaha, tusaale ahaan, waxaad wax ka beddeli kartaa waxa ku jira faylka Habaynta wakiilka ECS.

Mid ka mid ah halbeegyada qaabeynta ugu muhiimsan ee qodobkan waa ECS_ENABLE_SPOT_INSTANCE_DRAINING= run. Haddii halbeeggani la furo, isla marka ECS ay hesho calaamad muujinaysa in tusaale meel la qaadayo, waxay u wareejinaysaa dhammaan hawlaha ka shaqeeya heerka Biyo-mareenka. Ma jiro hawlo cusub oo loo xilsaari doono tusaale ahaan, haddii ay jiraan hawlo la rabo in hadda lagu wareejiyo, waa la tirtiri doonaa. Codsiyada ka imanaya miisaan-hayaha sidoo kale joojin imaatinka. Ogeysiinta tusaale ahaan tirtirista waxay timaadaa 2 daqiiqo kahor dhacdada dhabta ah. Sidaa darteed, haddii adeeggaagu aanu qabanin hawlo ka badan 2 daqiiqo oo aanu waxba ku kaydin diskka, markaa waxaad isticmaali kartaa tusaaleyaal dhibco ah adigoon lumin xogta.

Ku saabsan diskka - AWS dhawaan sameeyey Waa suurtagal in la isticmaalo Nidaamka Faylka Elastic (EFS) oo ay weheliso ECS; nidaamkan, xitaa diskku maaha caqabad, laakiin ma aanan isku dayin tan, sababtoo ah mabda'a uma baahnid diskka si loo kaydiyo gobolka. Sida caadiga ah, ka dib marka la helo SIGINT (la diro marka hawsha loo wareejiyo heerka daadinta), dhammaan hawlaha socda waa la joojin doonaa 30 ilbiriqsi ka dib, xitaa haddii aysan weli dhamaystirin; waxaad bedeli kartaa wakhtigan adigoo isticmaalaya cabbirka ECS_CONTAINER_STOP_TIMEOUT. Waxa ugu weyni maaha inaad dejiso wax ka badan 2 daqiiqo mashiinnada booska.

Abuuritaanka adeeg

Aan u gudubno abuurista adeegga la tilmaamay. Geedi socodka, waxaan sidoo kale ku tilmaami doonaa dhowr qodob oo faa'iido leh oo aan kor lagu xusin. Guud ahaan, tani waa tilmaamo tallaabo-tallaabo ah, laakiin ma tixgelin doono qaar aad u aasaasi ah ama, liddi ku ah, kiisas gaar ah. Dhammaan ficillada waxaa lagu sameeyaa console-ka muuqaalka ah ee AWS, laakiin waxaa loo soo saari karaa barnaamij ahaan iyadoo la isticmaalayo CloudFormation ama Terraform. Marka la joogo Adapty waxaan isticmaalnaa Terraform.

EC2 Launch Template

Adeegani waxa uu abuuraa qaabaynta mishiinada la isticmaali doono. Qaababka waxaa lagu maamulaa EC2 -> Tusaalooyinka -> Qaybta qaab-dhismeedka.

Sawirka mashiinka Amazon (AMI) - Sheeg sawirka diskka kaas oo dhammaan xaaladaha lagu bilaabi doono. ECS, inta badan kiisaska waxaa habboon in la isticmaalo sawirka la hagaajiyay ee Amazon. Si joogto ah ayaa loo cusboonaysiiyaa waxayna ka kooban tahay wax kasta oo lagama maarmaanka u ah ECS inay shaqeyso. Si aad u ogaato sawirka hadda jira, tag bogga Amazon ECS-ku-habboon AMISOM, dooro gobolka aad isticmaalayso oo koobi ka samee aqoonsiga AMI. Tusaale ahaan, gobolka us-bari-1, aqoonsiga hadda ee wakhtiga qoraalka waa ami-00c7c1cf5bdc913ed. Aqoonsigan waa in la geliyo shay cayiman oo qiimo leh.

Nooca tusaale - tilmaan nooca tusaale ahaan. Dooro midka ugu habboon hawshaada.

Lammaanaha furaha ah (soo gal) - Sheeg shahaado aad kula xidhiidhi karto tusaale ahaan SSH, haddii loo baahdo.

Goobaha shabakada - qeex xuduudaha shabakada. Mareegta isku xidhka Inta badan kiisaska waa in uu jiraa Cloud Private Cloud (VPC). Kooxaha amniga - kooxaha ammaanka ee kiisaskaaga. Maaddaama aan isticmaali doono dheelli-tire hore ee tusaalooyinka, waxaan ku talinayaa in aan qeexno koox halkan u oggolaanaysa isku-xirnaanta soo socota oo kaliya oo ka imanaya miisaan-hayaha. Taasi waa, waxaad yeelan doontaa 2 kooxood oo amniga ah, mid ka mid ah dheelitirka, kaas oo u oggolaanaya isku xirka gudaha meel kasta oo ka mid ah dekedaha 80 (http) iyo 443 (https), iyo tan labaad ee mashiinnada, taas oo u oggolaanaysa xidhiidhada soo galaya dekedo kasta oo ka socda kooxda dheelitirka. . Xidhiidhada dibadda ee labada kooxood waa in la furaa iyadoo la isticmaalayo borotokoolka TCP ee dhammaan dekedaha ciwaannada oo dhan. Waxaad xaddidi kartaa dekedaha iyo ciwaannada xidhiidhada baxaya, laakiin markaa waxaad u baahan tahay inaad si joogto ah ula socoto inaadan isku dayeynin inaad wax ka gasho deked xiran.

Kaydinta (cadadka) - Sheeg cabbirada saxanka ee mishiinnada. Cabbirka saxanku kama yaraan karo ta lagu sheegay AMI; ee ECS Optimized waa 30 GiB.

Faahfaahin sare - qeex xuduudo dheeraad ah.

Ikhtiyaarka wax iibsiga - haddii aan rabno inaan iibsanno tusaaleyaal dhibco ah. Waxaan rabnaa inaan, laakiin kuma calaamadeyn doono sanduuqan halkan; waxaan ku habeyn doonaa Kooxda Is-baabinta Auto, waxaa jira xulashooyin badan.

IAM tusaale ahaan profile - Tilmaan doorka dhacdooyinka la bilaabi doono. Si tusaalooyinku ugu socdaan ECS, waxay u baahan yihiin ogolaansho, kuwaas oo inta badan laga helo doorka ecsInstanceRole. Xaaladaha qaarkood waa la abuuri karaa, haddii kale, markaa halkan buug sida tan loo sameeyo. Abuuritaanka ka dib, waxaan ku muujineynaa qaabka.
Marka xigta waxaa jira xuduudo badan, asal ahaan waxaad ka tagi kartaa qiyamka caadiga ah meel kasta, laakiin mid kasta oo iyaga ka mid ah wuxuu leeyahay sharraxaad cad. Waxaan had iyo jeer awood EBS-optimized tusaale ahaan iyo T2/T3 Unlimited fursadaha haddii la isticmaalo qarxin kara tusaaleyaal

Xogta isticmaalaha - tilmaan xogta isticmaalaha. Waanu tafatirin doonaa faylka /etc/ecs/ecs.config, kaas oo ka kooban qaabeynta wakiilka ECS.
Tusaalaha xogta isticmaaluhu waxay u ekaan kartaa:

#!/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 - Halbeeggu wuxuu tilmaamayaa in tusaale ahaan ay iska leeyihiin koox magac leh, taas oo ah, kooxdani waxay awood u yeelan doontaa inay hawlaheeda dul dhigto server-kan. Weli maanu abuurin koox, laakiin waxaan isticmaali doonaa magacan marka la abuurayo.

ECS_ENABLE_SPOT_INSTANCE_DRAINING=true - Halbeeggu wuxuu qeexayaa in marka la helo calaamad si loo damiyo tusaale dhibic, dhammaan hawlaha ku yaal waa in loo wareejiyaa heerka qulqulka.

ECS_CONTAINER_STOP_TIMEOUT=1m - Halbeeggu wuxuu qeexayaa in ka dib markii la helo calaamadda SIGINT, dhammaan hawluhu waxay leeyihiin 1 daqiiqo ka hor inta aan la dilin.

ECS_ENGINE_AUTH_TYPE=docker - Halbeegga ayaa tilmaamaya in nidaamka Docker loo isticmaalo habka oggolaanshaha

ECS_ENGINE_AUTH_DATA=... - cabbirrada isku xirka diiwaanka weelka gaarka ah, halkaasoo sawirada Docker lagu keydiyo. Haddii ay tahay mid guud, markaa uma baahnid inaad wax sheegto.

Ujeedooyinka maqaalkan, waxaan isticmaali doonaa sawirka guud ee Docker Hub, markaa cadee xuduudaha ECS_ENGINE_AUTH_TYPE ΠΈ ECS_ENGINE_AUTH_DATA looma baahna.

Way fiican tahay in la ogaado: Waxaa lagu talinayaa in si joogto ah loo cusbooneysiiyo AMI, sababtoo ah noocyo cusub ayaa cusbooneysiiya noocyada Docker, Linux, ECS wakiilka, iwm. samee ogeysiisyo oo ku saabsan sii deynta noocyo cusub. Waxaad ku heli kartaa ogeysiisyada iimaylka oo aad gacanta ku cusboonaysiin kartaa, ama waxaad qori kartaa shaqada Lambda oo si toos ah u abuuri doonta nooc cusub oo Launch Template oo leh AMI la cusboonaysiiyay.

Kooxda EC2 Auto Isscaling

Auto Scaling Group ayaa mas'uul ka ah bilaabista iyo xisaabinta dhacdooyinka. Kooxaha waxaa lagu maamulaa EC2 -> Is-beeridda otomaatiga ah -> Qaybta Kooxaha Is-beeridda otomaatiga ah.

Soo bandhig qaab-dhismeedka - dooro qaab-dhismeedka lagu sameeyay tallaabadii hore. Waxaan ka tagnaa nooca caadiga ah.

Ikhtiyaarada wax iibsiga iyo noocyada tusaale ahaan - Sheeg noocyada tusaalooyinka kooxda. U hoggaansamo qaab-dhismeedka bilawga ah waxay isticmaashaa nooca tusaalaha ah ee Template-ka. Isku-dar xulashooyinka wax iibsiga iyo noocyada tusaale ahaan waxay kuu oggolaanaysaa inaad si dabacsanaan leh u habayso noocyada tusaale ahaan. Waan isticmaali doonaa.

Saldhig Dalbashada ee Ikhtiyaarka ah - tirada xaaladaha caadiga ah, aan meelna ahayn ee had iyo jeer shaqayn doona.

Baahida boqolleyda ka sarreysa saldhigga - saamiga boqolkiiba ee xaaladaha caadiga ah iyo dhibcaha, 50-50 ayaa loo qaybin doonaa si isku mid ah, 20-80 tusaale kasta oo caadi ah 4 dhibcood ayaa la kordhin doonaa. Ujeedooyinka tusaalahan, waxaan tilmaami doonaa 50-50, laakiin dhab ahaantii waxaan inta badan sameynaa 20-80, xaaladaha qaarkood 0-100.

Noocyada tusaalaha - Halkan waxaad ku qeexi kartaa noocyo dheeraad ah oo tusaale ah oo loo isticmaali doono kooxda. Marna ma aan isticmaalin sababtoo ah ma fahmin macnaha sheekada. Waxaa laga yaabaa in tani ay sabab u tahay xaddidaadda noocyada xaaladaha gaarka ah, laakiin si fudud ayaa loo kordhin karaa taageero. Haddii aad taqaan codsiga, waan ku farxi doonaa inaan ku akhriyo faallooyinka)

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

Network - goobaha shabakada, dooro VPC iyo subnets ee mishiinada, inta badan waa inaad doorataa dhammaan shabakadaha hoose ee la heli karo.

Isu dheellitirka xamuulka - dejinta dheelitirka, laakiin tan si gooni ah ayaan u samayn doonaa, waxba halkan kuma taaban doono. Baaritaannada caafimaadka sidoo kale dib ayaa loo habeyn doonaa.

Cabbirka kooxda - Waxaan ku tusin xadka tirada mishiinada kutlada iyo tirada la doonayo ee mashiinada bilowga ah. Tirada mashiinada kutlada ku jira waligeed kama yaraan doonto inta ugu yar ee la cayimay iyo in ka badan inta ugu badan, xitaa haddii miisaanku u dhaco si waafaqsan cabbirka.

Siyaasadaha miisaanaynta - cabbirrada cabbirka, laakiin waxaan cabbiri doonnaa iyadoo lagu saleynayo hawlaha ECS ee socda, markaa waxaan habeyn doonnaa cabbirka dambe.

Ilaalinta miisaanka-tusaale - ilaalinta xaaladaha tirtirka marka la dhimayo. Waxaan awood u siinnaa si ASG aysan u tirtirin mishiinka hawluhu socdo. Bixiyaha Awooda ECS wuxuu curyaami doonaa ilaalinta xaaladaha aan lahayn hawlo.

Kudar sumadaha - waxaad u cayimi kartaa summada tusaale ahaan (tan, sanduuqa calaamadaynta kiisaska cusub waa in la calaamadiyaa). Waxaan ku talinayaa in la qeexo Magaca sumadda, markaa dhammaan xaaladaha laga dhex bilaabay kooxda waxay yeelan doonaan magac isku mid ah, wayna ku habboon tahay in lagu arko console-ka.

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

Kadib abuurista kooxda, fur oo tag qaybta qaabaynta Advanced.Waa maxay sababta dhammaan xulashooyinka aysan uga muuqan console-ka heerka abuurista.

Siyaasadaha joojinta - xeerarka la tixgeliyo marka la tirtirayo xaaladaha. Si isku xiga ayaa loo codsadaa. Inta badan waxaan isticmaalnaa kuwa sawirka hoose ku yaal. Marka hore, tusaalooyinka leh Template-ka ugu da'da weyn waa la tirtiraa (tusaale, haddii aan cusbooneysiinay AMI, waxaan abuurnay nooc cusub, laakiin dhammaan xaaladaha waa lagu guuleystey in loo beddelo). Dabadeed xaaladaha ugu dhow saacadda biilasha ee soo socda ayaa la doortaa. Kadibna kuwa ugu da'da weyn ayaa lagu doortaa iyadoo lagu salaynayo taariikhda la bilaabay.

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

Way fiican tahay in la ogaado: si aad u cusboonaysiiso dhammaan mishiinnada kutlada, ku habboon in la isticmaalo Tusaalaha Cusbooneysii. Haddii aad tan ku darto shaqada Lambda ee tallaabadii hore, waxaad yeelan doontaa nidaam cusboonaysiin toos ah oo toos ah. Kahor intaadan cusboonaysiin dhammaan mishiinnada, waa inaad joojisaa ilaalinta miisaanka tusaale ahaan dhammaan xaaladaha kooxda. Ma aha qaabeynta kooxda, laakiin ka ilaalinta mashiinnada laftooda, tan waxaa lagu sameeyaa tab maaraynta tusaalaha.

Isku-dheelitirnaanta Codsiga iyo EC2 Bartilmaameedka

Isku-dheellitirka waxaa lagu sameeyay qaybta EC2 β†’ Isku-dheellitirka Xamuulka β†’ Isku-dheellitirka Load. Waxaan isticmaali doonaa Application Load Balancer; isbarbardhigga noocyada kala duwan ee xisaabiyeyaasha ayaa laga akhriyi karaa bogga adeegga.

Dhegaystayaasha Waxay macno samaynaysaa in la sameeyo dekedo 80 iyo 443 oo laga soo wareejiyo 80 ilaa 443 iyadoo la adeegsanayo xeerarka dheelitirka dambe.

Aagagga Helitaanka - inta badan, waxaanu qof walba u dooranaa aagagga la geli karo.

Habbee Settings Security - Shahaadada SSL ee dheelitiriyaha ayaa lagu muujiyay halkan, ikhtiyaarka ugu habboon waa shahaado samee ee ACM. Ku saabsan kala duwanaanshaha Siyaasadda Ammaanka waa lagu akhriyi karaa dukumentiyo, waxaad kaga tagi kartaa adigoo si toos ah u doortay ELBSecurityPolicy-2016-08. Kadib abuurista dheelitirka, waxaad arki doontaa Magaca DNS, kaas oo aad u baahan tahay si aad u habayso CNAME ee boggaaga. Tusaale ahaan, tani waa sida ay ugu muuqato Cloudflare.

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

Kooxda Amniga - U samee ama dooro koox badbaado dheelitiriyaha, wax badan oo arrintan ku saabsan ayaan kor ku qoray EC2 Launch Template β†’ Qaybta dejinta shabakadda.

Kooxda bartilmaameedka ah - Waxaan abuurnaa koox ka mas'uul ah wareejinta codsiyada ka imanaya dheelitiriyaha ilaa mishiinnada iyo hubinta helitaankooda si loogu beddelo haddii ay dhibaato dhacdo. Nooca bartilmaameedka waa inay noqotaa tusaale, Protocol ΠΈ Port mid kasta, haddii aad u isticmaasho HTTPS xidhiidhka ka dhexeeya dheelitiriyaha iyo tusaalooyinka, markaa waxaad u baahan tahay inaad geliyaan shahaado iyaga. Ujeedooyinka tusaalahan, tan yeeli mayno, waxaan si fudud uga tagi doonnaa dekedda 80.

Baaritaannada caafimaadka - xuduudaha lagu hubinayo shaqeynta adeegga. Adeegga dhabta ah, tani waa inay noqotaa codsi gooni ah oo fulinaya qaybo muhiim ah oo ka mid ah macquulnimada ganacsiga; Ujeeddooyinka tusaalahan, waxaan ka tagi doonaa goobaha caadiga ah. Marka xigta, waxaad dooran kartaa muddada udhaxaysa codsiga, wakhtiga ka baxay, koodhka guusha, iwm. Tusaalahayaga, waxaanu ku tusi doonaa koodka Guusha 200-399, sababtoo ah sawirka Docker ee la isticmaali doono wuxuu soo celinayaa 304 code.

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

Diiwangelinta Bartilmaameedyada - halkan baabuurta kooxda ayaa la doortay, laakiin kiiskeena tan waxaa samayn doona ECS, markaa waxaanu ka boodnaa tallaabadan.

Way fiican tahay in la ogaado: heerka dheelitirka waxaad awood u siin kartaa logs in lagu keydin doono S3 si gaar ah qaab. Halkaa waxaa laga dhoofin karaa adeegyada dhinac saddexaad si loo falanqeeyo, ama waxaad si toos ah u samayn kartaa su'aalaha SQL xogta ku jirta S3 iyadoo la isticmaalayo Athena. Way ku habboon tahay oo way shaqeysaa iyada oo aan lahayn kood dheeraad ah. Waxa kale oo aan ku talinayaa in la dejiyo ka saarista logyada baaldiga S3 ka dib wakhti cayiman.

Qeexida Hawsha ECS

Tallaabooyinka hore, waxaan ku abuurnay wax kasta oo la xiriira kaabayaasha adeegga, hadda waxaan u gudubnay sharraxaadda weelasha aan furi doono. Tan waxaa lagu sameeyaa ECS β†’ Qaybta Qeexitaannada Hawsha.

Bilaw waafaqid nooca - dooro EC2.

Fulinta hawsha doorka IAM - dooro ecsTaskExecutionRole. Isticmaalka, logu waa la qoraa, helitaanka doorsoomayaasha sirta ah ayaa la bixiyaa, iwm.

Qaybta Qeexitaannada Kontaynarrada, dhagsii Ku dar Koonteenarka.

Image - ku xidhida sawirka leh koodka mashruuca; tusaale ahaan waxaan isticmaali doonaa sawirka dadwaynaha ee Docker Hub bitnami/node-tusaale:0.0.1.

Xadka Xasuusta - xaddidaadda xusuusta weelka. Xaddid adag - xadka adag, haddii weelku dhaafo qiimaha la cayimay, amarka dilaaga docker waa la fulin doonaa, weelku isla markiiba wuu dhiman doonaa. Xaddid jilicsan - xadka jilicsan, weelku wuu dhaafi karaa qiimaha la cayimay, laakiin qiyaastan ayaa la tixgelin doonaa marka la saarayo hawlaha mishiinnada. Tusaale ahaan, haddii mishiinku leeyahay 4 GiB RAM ah, iyo xadka jilicsan ee weelku yahay 2048 MiB, markaa mashiinkani wuxuu yeelan karaa ugu badnaan 2 hawlood oo socodsiiya weelkan. Xaqiiqda, 4 GiB ee RAM wax yar ayuu ka yar yahay 4096 MiB, tan waxaa laga eegi karaa tabka ECS ee kutlada. Xadka jilicsan kama badnaan karo xadka adag. Waxaa muhiim ah in la fahmo in haddii ay jiraan dhowr weel oo hal hawl ah, markaa xadkooda ayaa la soo koobay.

Khariidadaha dekedda - gudaha Dekada martida loo yahay Waxaan tilmaamaynaa 0, tani waxay ka dhigan tahay in dekedda loo qoondeyn doono si firfircoon, waxaana kormeeri doona Kooxda Target. Dekadda Konteenarada - dekedda uu codsigaagu ku shaqeeyo waxaa inta badan lagu qeexaa amarka fulinta, ama lagu meeleeyay koodka codsigaga, Dockerfile, iwm. Tusaalahayaga waxaan isticmaali doonaa 3000 sababtoo ah waxay ku qoran tahay Dockerfile sawirka la isticmaalayo.

Hubinta caafimaadka - cabbirrada hubinta caafimaadka weelka, yaan lagu khaldin midka lagu habeeyey Kooxda Bartilmaameedka.

Deegaanka - goobaha deegaanka. Unugyada CPU - oo la mid ah xadka xusuusta, kaliya oo ku saabsan processor-ka. Xudunta Processor kastaa waa 1024 unug, haddaba haddii Server-ku leeyahay processor-ka dual-core oo konteenarka laga dhigo 512, markaa 4 hawlood oo weelkan wata waxa lagu bilaabi karaa hal server. Unugyada CPU had iyo jeer waxay u dhigmaan tirada koodhka; ma jiri karaan wax yar oo iyaga ka mid ah, sida kiiska xusuusta.

Command - Amarka lagu bilaabayo adeegga gudaha weelka, dhammaan cabbiraadaha waxaa lagu kala saaray hakadyo. Tani waxay noqon kartaa gunicorn, npm, iwm. Haddii aan la cayimin, qiimaha dardaaranka CMD ee Dockerfile waa la isticmaali doonaa. Waxaan tilmaamaynaa npm,start.

Doorsoomayaasha deegaanka - doorsoomayaasha deegaanka weel. Tani waxay noqon kartaa xogta qoraalka fudud ama doorsoomayaal sir ah oo laga keenay Maareeyaha Sirta ama Dukaanka Parameter.

Kaydinta iyo Gelida - halkan waxaan ku dejin doonaa gelitaanka CloudWatch Logs (adeegga diiwaannada AWS). Si tan loo sameeyo, kaliya awood u samee sanduuqa hubinta ee CloudWatch Logs. Kadib abuurista Qeexida Hawsha, koox diiwaan gashan ayaa si toos ah loogu abuuri doonaa CloudWatch. Sida caadiga ah, logu wuxuu ku kaydsan yahay si aan xad lahayn; Waxaan ku talinayaa in laga beddelo muddada Haynta oo aan weligeed dhicin loona beddelo muddada loo baahan yahay. Tan waxaa lagu sameeyaa kooxaha Log CloudWatch, waxaad u baahan tahay inaad gujiso muddada hadda oo dooro mid cusub.

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

Kooxda ECS iyo Bixiyaha Awooda ECS

Tag qaybta ECS β†’ Kooxaha si aad u abuurto koox. Waxaan u dooranaa EC2 Linux + Networking sidii template.

Magaca kooxda - aad muhiim u ah, waxaan halkan ka dhigi magaca la mid ah sida ku qeexan halbeegga Launch Template ECS_CLUSTER, xaaladdeenna - DemoApiClusterProd. Hubi sanduuqa hubinta kutlada madhan. Ikhtiyaar ahaan, waxaad awood u siin kartaa Insights Kontayarka si ay u aragto cabbirada adeegyada CloudWatch. Haddii aad wax walba si sax ah u samaysay, markaa qaybta ECS-yada waxaad ku arki doontaa mashiinnada lagu sameeyay kooxda Bacriminta Automatic.

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

Tag tab Bixiyeyaasha Awoodda mid cusubna samee. Aan ku xasuusiyo in loo baahan yahay in la xakameeyo abuurista iyo xidhitaanka mishiinnada iyadoo ku xidhan tirada hawlaha ECS ee socda. Waxaa muhiim ah in la ogaado in bixiye lagu meelayn karo hal koox oo kaliya.

Kooxda Cabbiraadda Auto - dooro kooxdii hore loo abuuray.

Is-qarinta la maareeyay - awood si bixiyaha uu u cabbiro adeegga.

Awoodda bartilmaameedka % - waa imisa boqolkiiba mashiinnada ku raran hawlaha aan u baahanahay. Haddii aad sheegto 100%, markaa dhammaan mishiinnada waxay had iyo jeer ku mashquuli doonaan hawlaha socodsiinta. Haddii aad sheegto 50%, markaa kala badh baabuurta ayaa had iyo jeer noqon doona bilaash. Xaaladdan oo kale, haddii ay jirto boodi fiiqan oo culeys ah, tagsiyada cusub ayaa isla markiiba heli doona baabuurta bilaashka ah, iyada oo aan la sugin inta lagu jiro kiisaska la geeyo.

Ilaalinta joojinta la maareeyay - karti, cabbirkaani wuxuu u oggolaanayaa bixiyaha inuu ka saaro ilaalinta xaaladaha tirtirka. Tani waxay dhacdaa marka aysan jirin hawlo firfircoon oo mashiinka ah oo u oggolaanaya awoodda Bartilmaameedka.

Adeegga ECS iyo dejinta cabbirka

Talaabada u danbeysa :) Si aad u abuurto adeeg, waxaad u baahan tahay inaad aado kooxda hore loo abuuray ee tabka Adeegyada.

Nooca bilawga - waxaad u baahan tahay inaad gujiso U beddelka istaraatiijiyada bixiyaha awoodda oo dooro bixiyeyaasha hore loo abuuray.

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

Qeexida Hawsha β€” dooro qeexidda Hawsha hore loo abuuray iyo dib u eegisteeda.

Magaca adeegga - si looga fogaado jahawareer, waxaan had iyo jeer tilmaamnaa la mid ah Qeexida Hawsha.

Nooca adeegga - had iyo jeer nuqul.

Tirada hawlaha - tirada la rabo ee hawlaha firfircoon ee adeegga. Halbeeggaan waxaa lagu xakameynayaa is-miidaamin, laakiin wali waa in la cayimaa.

Caafimaadka ugu yar ΠΈ Boqolkiiba ugu badnaan - go'aamiso hab-dhaqanka hawlaha marka la dirayo. Qiimaha caadiga ah waa 100 iyo 200, taas oo muujinaysa in wakhtiga la dirayo tirada hawluhu ay kordhin doonaan dhowr jeer, ka dibna ku noqdaan qiimaha la rabo. Haddii aad haysatid 1 hawlood oo ordaya min=0 iyo max=100 markaas waa la dili doonaa, ka dibna mid cusub ayaa la soo kicin doonaa, yacni waxay noqon doontaa waqti dhimis. Haddii 1 hawl socoto, min = 50, max=150, markaa hawlgelintu ma dhacayso gabi ahaanba, sababtoo ah 1 hawl lama qaybin karo ama lama kordhin karo hal jeer iyo badh.

Nooca geynta - ka tag cusbooneysiinta Rolling.

Hababka Meelaynta - Xeerarka ku meelaynta hawlaha mishiinada. Asal ahaan waa Faafinta AZ Balanced - tani waxay la macno tahay in hawl kasta oo cusub lagu meelayn doono tusaale cusub ilaa mishiinnada dhammaan aagagga la heli karo ay kor u kacayaan. Caadi ahaan waxaan sameynaa BinPack - CPU iyo Faafin - AZ; siyaasadan, hawlaha waxaa lagu meeleeyaa sida ugu cufan ee suurtogalka ah hal mashiin CPU kasta. Haddii ay lagama maarmaan noqoto in la abuuro mishiin cusub, waxaa lagu abuuray aag cusub oo la heli karo.

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

Nooca dheelitiriyaha xamuulka - dooro Hadhaaga Load Application.

Doorka adeegga IAM - dooro ecsServiceRole.

Load magaca dheelitiriyaha - dooro miisaan-hayaha hore loo abuuray.

Muddada nimcada hubinta caafimaadka - hakad ka hor inta aanad samaynin hubinta caafimaadka ka dib markaad hawl cusub samayso, waxaanu inta badan dhignaa 60 ilbiriqsi.

Weel lagu shubo dheelitirka - Shayga magaca kooxda Target, dooro kooxdii hore loo abuuray, wax walbana si toos ah ayaa loo buuxin doonaa.

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

Adeegga Is-beeridda otomaatiga ah - cabbirrada cabbirka adeegga. Dooro Habee Adeegga Is-babaraynta Tooska ah si aad u hagaajisid tirinta adeeggaaga. Waxaan dejineynaa tirada ugu yar iyo ugu badan ee hawlaha marka la cabbirayo.

Doorka IAM ee Cabbirka Gawaarida Adeegga - dooro AWSServiceRoleForApplicationAutoScaling_ECSService.

Nidaamyada miisaan shaqada ee tooska ah - xeerarka miisaanka. Waxaa jira 2 nooc:

  1. Dabagalka bartilmaameedka - raadraaca cabbirrada bartilmaameedka (isticmaalka CPU/RAM ama tirada codsiyada hawl kasta). Tusaale ahaan, waxaan rabnaa in celceliska culeyska processor-ku uu noqdo 85%, marka uu sare u kaco, waxaa lagu soo kordhin doonaa hawlo cusub ilaa uu ka gaaro qiimaha la beegsanayo. Haddii rarka uu hooseeyo, markaa hawlaha waa laga saari doonaa, liddi ku ah, haddii aan ka hortagga miisaanka hoos loo dhigin (Dami miisaanka gelida).
  2. Ismiidaamin tillaabo - falcelinta dhacdo sabab la'aan ah. Halkan waxa aad ku habayn kartaa falcelinta dhacdo kasta (CloudWatch Alarm), marka ay dhacdo, waxaad ku dari kartaa ama ka saari kartaa tirada la cayimay ee hawlaha, ama caddee tirada saxda ah ee hawlaha.

Adeeggu wuxuu yeelan karaa xeerar is-milliyeed dhowr ah, tani waxay noqon kartaa mid faa'iido leh, waxa ugu weyn waa in la hubiyo in aysan isku dhaceynin midba midka kale.

gunaanad

Haddii aad raacdo tilmaamaha oo aad isticmaashid isla sawirka Docker, adeeggaagu waa inuu soo celiyaa bog sidan oo kale ah.

Ku Dhisida API La-milicsan karo ee AWS Spot Instances

  1. Waxaanu samaynay qaab-dhismeed sida waafaqsan dhammaan mishiinnada adeegga la bilaabay. Waxaan sidoo kale baranay sida loo cusboonaysiiyo mishiinada marka qaabku is beddelo.
  2. Waxaanu habaynay habaynta calaamada joogsiga goobta, marka hal daqiiqo gudaheed ka dib markii aan helno, dhammaan hawlaha socda ayaa laga saarayaa mishiinka, si aanay waxba u lumin ama u joojin.
  3. Waxaan kor u qaadnay dheellitirka si aan culeyska si siman ugu qaybinno mashiinnada.
  4. Waxaan abuurnay adeeg ku shaqeeya xaaladaha goobta, kaas oo dhimaya kharashka mishiinka ilaa 3 jeer.
  5. Waxaan u habeynay autoscaling labada jiho si aan u maareyno culeyska shaqada ee kordhay iyada oo aan la gelin kharashyada dhimista.
  6. Waxaan isticmaalnaa Bixiyaha Awoodda si codsigu u maareeyo kaabayaasha (mashiinnada) ee ma aha si kale.
  7. Waynu fiicanahay

Haddii aad leedahay xayaysiisyo la saadaalin karo oo culeys ah, tusaale ahaan waxaad ku xayaysiinaysaa olole weyn oo iimaylo ah, waxaad samayn kartaa miisaan adigoo isticmaalaya jadwalka.

Waxaad sidoo kale cabbiri kartaa iyadoo ku saleysan xogta qaybaha kala duwan ee nidaamkaaga. Tusaale ahaan, waxaan leenahay shaqeynta diraya dalabyo xayeysiis shaqsiyeed isticmaalayaasha moobilka. Mararka qaarkood olole ayaa loo diraa 1M+ qof. Qaybinta noocan oo kale ah ka dib, waxaa had iyo jeer kor u kaca codsiyada API-ga, maadaama isticmaaleyaal badan ay galaan codsiga isku mar. Markaa haddii aan aragno inay jiraan tilmaamayaal heersare ah oo aad u badan oo safka ugu jira dirida ogeysiisyada riixitaanka, waxaan isla markiiba bilaabi karnaa dhowr mashiinno iyo hawlo dheeraad ah si aan ugu diyaargaroobo culeyska.

Waan ku farxi doonaa haddii aad iigu sheegto faallooyinka kiisas xiiso leh oo la isticmaalo tusaaleyaal boos ah iyo ECS ama wax ku saabsan miisaan.

Dhowaan waxaa jiri doona maqaallo ku saabsan sida aan uga baaraandegi karno kumanaan dhacdooyin falanqeyn ah ilbiriqsi kasta oo ku saabsan xirmo badan oo aan server lahayn (lacag leh) iyo sida geynta adeegyadu u shaqeyso iyadoo la adeegsanayo GitLab CI iyo Terraform Cloud.

Noo rumee, waxay noqon doontaa mid xiiso leh!

Isticmaalayaasha diiwaangashan oo keliya ayaa ka qaybqaadan kara sahanka. Soo gal, soo dhawoow.

Ma isticmaashaa tusaaleyaal meel wax soo saar ah?

  • 22,2%Haa6

  • 66,7%No18

  • 11,1%Waxaan iyaga ka bartay maqaal waxaanan qorsheynayaa inaan isticmaalo3

27 isticmaale ayaa u codeeyay. 5 isticmaale ayaa ka aamusay.

Source: www.habr.com

Add a comment