Hangaia he API Whakanuia i runga i nga AWS Spot Instances

Kia ora katoa! Ko Kirill toku ingoa, he CTO ahau i Adapty. Ko te nuinga o a maatau hoahoanga kei runga i te AWS, a i tenei ra ka korero ahau mo te whakaiti i nga utu o te kaitoro ma te 3 nga wa ma te whakamahi i nga waahi waahi i roto i te taiao whakangao, me pehea hoki te whakarite i a raatau tohu-aunoa. Tuatahi ka puta he tirohanga whanui mo te mahi, katahi ano nga tohutohu mo te tiimata.

He aha nga Tauira Spot?

Te waahi Ko nga tauira ko nga kaitoro o etahi atu kaiwhakamahi AWS kei te noho mangere i tenei wa, a ka hokona e ratou he utu nui (ka tuhi a Amazon ki te 90%, i roto i to maatau wheako ~ 3x, he rereke i runga i te rohe, AZ me te momo tauira). Ko te rereketanga nui mai i nga mea noa ka taea e ratou te whakaweto i nga wa katoa. Na reira, mo te wa roa i whakapono matou he mea noa ki te whakamahi mo nga waahi wahine, mo nga mahi o te tatau i tetahi mea, me nga hua takawaenga e tiakina ana i runga i te S3, i roto ranei i te paataka, engari kaore mo te hoko. He otinga tuatoru ka taea e koe te whakamahi i nga waahi ki te whakaputa, engari he maha nga tootoo mo ta maatau keehi, na reira kaore matou i whakatinana. Ko te huarahi e whakaahuahia ana i roto i te tuhinga ka mahi katoa i roto i te mahinga AWS paerewa, kaore he tuhinga taapiri, karauna, aha atu.

Kei raro nei etahi whakaahua e whakaatu ana i te hitori utu mo nga waahi waahi.

m5.nui i te rohe eu-hauauru-1 (Ireland). Ko te utu kua tino pumau mo nga marama 3, i tenei wa ka penapena 2.9x.

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

m5.nui kei roto i te rohe us-east-1 (N. Virginia). Kei te huri tonu te utu mo nga marama 3, kei te penapena mai i te 2.3x ki te 2.8x i runga i te waahi waatea.

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

t3.iti i te rohe us-east-1 (N. Virginia). Kua pumau te utu mo nga marama 3, kei te penapena 3.4x inaianei.

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

Te hoahoanga ratonga

Ko te hoahoanga taketake o te ratonga ka korerohia e maatau i tenei tuhinga ka whakaatuhia i te hoahoa i raro nei.

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

Taurite Uta Tono → Rōpū EC2 Target → Ratonga Ipu Elastic

Ko te Whakataunga Uta Tono (ALB) ka whakamahia hei taurite, ka tukuna nga tono ki te EC2 Target Group (TG). Ko TG te kawenga mo te whakatuwhera i nga tauranga mo nga ALB me te hono atu ki nga tauranga o nga ipu Elastic Container Service (ECS). Ko te ECS he tairitenga o Kubernetes i AWS, e whakahaere ana i nga ipu Docker.

Ka taea e tetahi tauira te maha o nga ipu rere me nga tauranga rite, na reira kaore e taea e taatau te whakanoho. E kii ana a ECS ki a TG kei te whakarewahia he mahi hou (i roto i nga kupu Kubernetes e kiia ana ko te pod), ka tirotirohia e ia nga tauranga kore utu i runga i te tauira ka tohua tetahi ki te mahi kua whakarewahia. Ka tirotirohia ano e TG mena kei te mahi te tauira me te API ki runga ma te whakamahi i te tirotiro hauora, a mena ka kitea he raru, ka mutu te tuku tono ki reira.

EC2 Roopu Tauine Aunoa + Kaiwhakarato Kaha ECS

Ko te hoahoa i runga ake nei kaore e whakaatu i te ratonga EC2 Auto Scaling Groups (ASG). Mai i te ingoa ka mohio koe kei a ia te kawenga mo te whakatikatika i nga tauira. Heoi, tae noa ki nga wa tata nei, kaore he kaha o te AWS ki te whakahaere i te maha o nga miihini rere mai i te ECS. I taea e ECS te tauine i te maha o nga mahi, hei tauira, ma te whakamahi CPU, te RAM me te maha o nga tono. Engari ki te noho noa nga mahi katoa, karekau nga miihini hou i hanga aunoa.

Kua rereke tenei i te taenga mai o nga Kaituku Kaituku ECS (ECS CP). Inaianei ka taea te hono atu ia ratonga i roto i te ECS ki tetahi ASG, a ki te kore nga mahi e uru ki nga waa whakahaere, katahi ka whakaarahia nga mea hou (engari i roto i nga rohe ASG kua whakaritea). Ka mahi ano tenei i te huarahi rereke, mena ka kite a ECS CP i nga wa karekau he mahi, katahi ka tukuna te whakahau ASG kia tutakina. Kei a ECS CP te kaha ki te tohu i te ōrau whainga o te kawenga tauira, kia kore noa etahi miihini mo nga mahi whakatikatika tere; Ka korero ahau mo tenei wa poto nei.

EC2 Whakarewa Tauira

Ko te ratonga whakamutunga ka korerohia e au i mua i nga korero mo te hanga i tenei hanganga ko EC2 Whakarewa Tauira. Ka taea e koe te hanga tauira e rite ana ki te tiimata o nga miihini katoa, kia kore ai e whakahoki ano i tenei mai i te wahanga i nga wa katoa. I konei ka taea e koe te kowhiri i te momo miihini hei tiimata, te roopu haumarutanga, te ahua kōpae me te maha atu o nga tawhā. Ka taea hoki e koe te tautuhi i nga raraunga kaiwhakamahi ka tukuna ki nga waahi katoa kua whakarewahia. Ka taea e koe te whakahaere tuhinga i roto i nga raraunga kaiwhakamahi, hei tauira, ka taea e koe te whakatika i nga ihirangi o te konae whirihoranga kaihoko ECS.

Ko tetahi o nga tawhā whirihoranga tino nui mo tenei tuhinga ko ECS_ENABLE_SPOT_INSTANCE_DRAINING= pono. Mena ka whakahohea tenei tawhā, katahi ka whiwhi tohu a ECS kei te tangohia he waahi, ka whakawhitia e ia nga mahi katoa e mahi ana ki runga ki te mana o te wai. Karekau he taumahi hou ka tautapa ki tenei tauira; mena he mahi e hiahia ana kia tukuna atu inaianei, ka whakakorea. Ka mutu hoki te haere mai o nga tono mai i te kaiwhakarite. Ko te whakamohiotanga mo te whakakorenga tauira ka tae mai 2 meneti i mua i te huihuinga. No reira, ki te kore e mahia e to ratonga nga mahi mo te roa atu i te 2 meneti ka kore e penapena tetahi mea ki te kōpae, katahi ka taea e koe te whakamahi i nga tauira waahi me te kore e ngaro raraunga.

Mo te kōpae - AWS tata nei i Ka taea te whakamahi i te Elastic File System (EFS) me te ECS; me tenei kaupapa, ahakoa ko te kōpae ehara i te aukati, engari kaore matou i whakamatau i tenei, na te mea kaore e hiahiatia e matou te kōpae hei penapena i te kawanatanga. Ma te taunoa, i muri i te whiwhinga SIGINT (ka tukuna ina whakawhitia he mahi ki te tuunga Whakawai), ka mutu nga mahi whakahaere katoa i muri i te 30 hēkona, ahakoa kaore ano kia oti; ka taea e koe te huri i tenei waa ma te whakamahi i te tawhā ECS_CONTAINER_STOP_TIMEOUT. Ko te mea nui kia kaua e whakanoho mo te neke atu i te 2 meneti mo nga miihini waahi.

Te hanga ratonga

Me neke tatou ki te hanga i te ratonga kua whakaahuatia. I roto i te tukanga, ka whakaahuahia e au etahi waahanga whai hua kaore i whakahuahia i runga ake nei. I te nuinga o te waa, he tohutohu taahiraa-i-taahiraa tenei, engari kaore au e whakaaro ki etahi mea tino maamaa, engari, he keehi tino motuhake. Ka mahia nga mahi katoa i roto i te papatohu ataata AWS, engari ka taea te whakaputa ma te whakamahi i te CloudFormation, Terraform ranei. I Adapty ka whakamahia e matou a Terraform.

EC2 Whakarewa Tauira

Ka hangaia e tenei ratonga he whirihoranga o nga miihini ka whakamahia. Ka whakahaerehia nga tauira i roto i te waahanga EC2 -> Tauira -> Whakarewa tauira.

Atahanga miihini Amazon (AMI) — whakapūtāhia te whakaahua kōpae ka whakarewahia ngā tauira katoa. Mo te ECS, i roto i te nuinga o nga wa he pai te whakamahi i te ahua pai mai i Amazon. He rite tonu te whakahou me nga mea katoa e tika ana kia mahi a ECS. Hei kimi i te ID whakaahua o naianei, haere ki te wharangi Amazon ECS-optimized AMIs, tohua te rohe e whakamahia ana e koe ka kape i te ID AMI mo taua mea. Hei tauira, mo te rohe us-rawhiti-1, ko te ID o naianei i te wa e tuhi ana ami-00c7c1cf5bdc913ed. Me whakauru tenei ID ki roto i te Tauwhāitihia he mea uara ritenga.

Momo tauira — tohuhia te momo tauira. Kōwhirihia te mea e pai ana ki to mahi.

Takirua matua (takiuru) — tohua he tiwhikete ka taea e koe te hono atu ki te tauira ma te SSH, mena e tika ana.

Tautuhinga whatunga — whakapūtāhia ngā tawhā whatunga. Tuāpapa whatunga i roto i te nuinga o nga keehi me noho he Kapua Motuhake Mariko (VPC). Nga roopu ahuru - nga roopu haumaru mo o waahi. I te mea ka whakamahia e matou he taurite i mua i nga ahuatanga, ka tūtohu ahau kia tohua he roopu i konei ka taea nga hononga taumai mai i te taurite anake. Arā, ka rua nga roopu haumarutanga, kotahi mo te taurite, ka taea nga hononga uru mai i nga waahi katoa i runga i nga tauranga 2 (http) me te 80 (https), me te tuarua mo nga miihini, e taea ai nga hononga taumai i runga i nga tauranga mai i te roopu taurite. . Me whakatuwheratia nga hononga ki waho o nga roopu e rua ma te whakamahi i te kawa TCP ki nga tauranga katoa ki nga wahitau katoa. Ka taea e koe te whakawhāiti i nga tauranga me nga wahitau mo nga hononga putaatu, engari me aro turuki tonu koe kaore koe e ngana ana ki te uru ki tetahi mea i runga i te tauranga kati.

Rokiroki (rōrahi) — whakapūtāhia ngā tawhā kōpae mō ngā mihini. Ko te rahi o te kōpae e kore e iti ake i tera kua tohua ki te AMI; mo te ECS Optimized he 30 GiB.

Nga korero matatau — whakapūtā atu tawhā.

Kōwhiringa hoko — ahakoa e hiahia ana matou ki te hoko i nga tauira waahi. Kei te pirangi matou, engari kaore matou e tirotiro i tenei pouaka i konei; ka whirihorahia e matou i roto i te Rōpū Tauine Aunoa, he maha atu nga whiringa kei reira.

Kōtaha tauira IAM — tohuhia te mahi ka whakarewahia nga tauira. Kia taea ai te whakahaere i nga tauira i roto i te ECS, me whai whakaaetanga, ka kitea i te nuinga o te waa ecsInstanceRole. I etahi wa ka taea te hanga, ki te kore, na konei pukapuka me pehea te mahi i tenei. I muri i te hanganga, ka tohuhia e matou i roto i te tauira.
I muri mai he maha nga tawhā, ko te tikanga ka taea e koe te waiho i nga uara taunoa ki nga waahi katoa, engari he whakamaarama marama o ia waahanga. I nga wa katoa ka taea e au te tauira EBS-optimized me nga whiringa T2/T3 Unlimited mena ka whakamahia pakaru wā.

Raraunga kaiwhakamahi — tohu raraunga kaiwhakamahi. Ka whakatikahia e matou te konae /etc/ecs/ecs.config, kei roto te whirihoranga kaihoko ECS.
He tauira o te ahua o nga raraunga kaiwhakamahi:

#!/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 — ko te tawhā e tohu ana ko te tauira no tetahi tautau me te ingoa kua hoatu, ara, ka taea e tenei roopu te whakanoho i ana mahi ki runga i tenei tūmau. Kare ano matou kia hanga he tautau, engari ka whakamahia e matou tenei ingoa ina hanga ana.

ECS_ENABLE_SPOT_INSTANCE_DRAINING=true — ka tohu te tawhā ka tae mai he tohu ki te whakaweto i tetahi tauira waahi, me whakawhiti nga mahi katoa ki runga ki te tuunga Whakawai.

ECS_CONTAINER_STOP_TIMEOUT=1m - ka tohu te tawhā i muri i te whiwhi tohu SIGINT, he 1 meneti i mua i te whakamatenga o nga mahi katoa.

ECS_ENGINE_AUTH_TYPE=docker — ko te tawhā e tohu ana ka whakamahia te kaupapa Docker hei tikanga whakamana

ECS_ENGINE_AUTH_DATA=... — nga tawhā hononga ki te rehita ipu motuhake, kei reira e penapena ai o whakaahua Docker. Mēnā he tūmatanui, kāre koe e hiahia ki te whakapūtā i tētahi mea.

Mo nga kaupapa o tenei tuhinga, ka whakamahia e ahau he ahua whanui mai i te Docker Hub, no reira tohua nga tawhā ECS_ENGINE_AUTH_TYPE и ECS_ENGINE_AUTH_DATA e kore hiahia.

He pai ki te mohio: E taunaki ana kia whakahouhia te AMI i nga wa katoa, na te mea ko nga putanga hou ka whakahou i nga putanga o Docker, Linux, kaihoko ECS, me etahi atu. Kia kore e wareware ki tenei, ka taea e koe whakarite whakamohiotanga mo te tukunga o nga putanga hou. Ka taea e koe te whiwhi whakamohiotanga ma te imeera me te whakahou a-ringa, ka taea ranei e koe te tuhi i tetahi mahi Lambda ka hanga aunoa i tetahi putanga hou o te Tauira Whakarewa me te AMI kua whakahoutia.

EC2 Rōpū Tauine Aunoa

Ko te Rōpū Tauine Aunoa te kawenga mo te whakarewatanga me te whakatikatika i nga tauira. Kei te whakahaerehia nga roopu i roto i te waahanga EC2 -> Tauine Aunoa -> Roopu Whakatau Aunoa.

Whakarewa tauira — tīpakohia te tauira i hangaia i te taahiraa o mua. Ka waiho e matou te putanga taunoa.

Nga whiringa hoko me nga momo tauira — whakapūtāhia ngā momo tauira mō te kāhui. Ko te piri ki te tauira whakarewa ka whakamahi i te momo tauira mai i te Tauira Whakarewa. Whakakotahitia nga whiringa hoko me nga momo tauira ka taea e koe te whirihora ngawari i nga momo tauira. Ka whakamahia e matou.

Ko te turanga i runga i te tono — te maha o nga wa e rite ana, kaore i te waahi ka mahi tonu.

Ko te ōrau i runga i te tono kei runga ake i te turanga — te ōrau ōwehenga o te wā me te waahi mokowhiti, 50-50 ka tohatoha rite, 20-80 mo ia tauira auau e 4 nga waahi ka piki ake. Mo nga kaupapa o tenei tauira, ka tohu ahau i te 50-50, engari i roto i te mooni ka mahi matou i te 20-80, i etahi wa 0-100.

Momo tauira — i konei ka taea e koe te tohu etahi atu momo tauira ka whakamahia i roto i te tautau. Kare rawa matou i whakamahi na te mea kaore au i te tino marama ki te tikanga o te korero. Ko tenei pea na te herenga o nga momo ahuatanga motuhake, engari ka ngawari te whakanui ake ma te tautoko. Mena ka mohio koe ki te tono, ka koa ahau ki te panui i roto i nga korero)

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

whatunga — nga tautuhinga whatunga, kowhiria te VPC me nga kupengaroto mo nga miihini, i te nuinga o te waa me tohu koe i nga kupengaroto katoa e waatea ana.

Te pauna toha - Tautuhinga taurite, engari ka mahi motuhake taatau, kaore matou e pa ki tetahi mea i konei. Nga arowhai hauora ka whirihora ano i muri mai.

Rahi o te roopu - ka tohuhia e matou nga rohe mo te maha o nga miihini i roto i te kohinga me te maha o nga miihini e hiahiatia ana i te timatanga. Ko te maha o nga mihini kei roto i te tautau kare rawa e iti iho i te iti kua tohua me te nui ake i te morahi, ahakoa ka puta te whakatauine i runga i nga ine.

Kaupapa here tauine - te tauine i nga tawhā, engari ka whakatauhia e matou i runga i nga mahi ECS e whakahaere ana, no reira ka whirihorahia e matou te tauine i muri mai.

Tauine-i roto i te parenga — te whakamarumaru o nga tauira mai i te whakakore i te wa e whakaheke ana. Ka taea e matou kia kore e whakakorehia e te ASG te miihini e mahi ana. Ka whakakorehia e te Kaiwhakarato Kaha ECS te whakamarumaru mo nga wa kaore he mahi.

Tāpirihia nga tūtohu — ka taea e koe te tohu tohu mo nga tauira (mo tenei, me takina te pouakataki Tautohu tauira hou). Ka tūtohu ahau kia tohua te tohu Ingoa, katahi ka rite nga ingoa katoa ka whakarewahia i roto i te roopu, a he pai ki te tiro i a raatau i roto i te papatohu.

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

I muri i te hanga i te roopu, whakatuwherahia ka haere ki te waahanga Whakaritenga Arā Atu Anō. He aha i kore ai e kitea nga whiringa katoa i roto i te papatohu i te wa hangahanga.

Kaupapa here whakamutu — nga ture ka whai whakaaro ina mukua nga tauira. Ka tono raupapa. Ko te tikanga ka whakamahia e matou nga mea kei te pikitia i raro nei. Tuatahi, ka mukua nga tauira me te Tauira Whakarewa tawhito (hei tauira, ki te whakahouhia e matou te AMI, ka hangaia e matou he putanga hou, engari ka taea e nga waa katoa te huri ki tera). Katahi ka kowhiria nga tauira e tata ana ki te haora nama e whai ake nei. Na ka tohua nga mea tawhito i runga i te ra whakarewatanga.

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

He pai ki te mohio: ki te whakahou i nga miihini katoa i roto i te kohinga, he pai ki te whakamahi Tauira Tāmata. Mena ka whakakotahi koe i tenei me te mahi Lambda mai i te taahiraa o mua, ka whiwhi koe i te punaha whakahou tauira aunoa. I mua i te whakahōu i ngā mihini katoa, me mono koe i te tauine-i roto i te parenga mo nga wa katoa o te roopu. Ehara i te whirihoranga i roto i te roopu, engari he whakamarumaru mai i nga miihini ake, ka mahia tenei i runga i te ripa whakahaere Instance.

Kaitaurite Uta Tono me te Rōpū Whakatau EC2

Ka hangaia te taurite i roto i te waahanga EC2 → Te Whakataunga Uta → Nga Kaitaurite Uta. Ka whakamahi matou i te Whakairite Uta Tono; ka taea te panui i te whakataurite o nga momo taurite rereke whārangi ratonga.

He hunga whakarongo - he mea tika ki te hanga i nga tauranga 80 me te 443 ka anga mai i te 80 ki te 443 ma te whakamahi i nga ture taurite i muri mai.

Rohe Wātea — i te nuinga o nga wa, ka tohua e matou nga rohe urunga mo te katoa.

Whakaritehia nga Tautuhinga Haumarutanga — Ko te tiwhikete SSL mo te taurite e tohuhia ana i konei, ko te waahanga tino watea hanga tiwhikete i roto i te ACM. Mo nga rereketanga Kaupapahere Haumarutanga ka taea te panui ki roto tuhinga, ka taea e koe te waiho kia tohua ma te taunoa ELBSecurityPolicy-2016-08. I muri i te hanga i te taurite, ka kite koe Ingoa DNS, e hiahia ana koe ki te whirihora i te CNAME mo to rohe. Hei tauira, koinei te ahua o Cloudflare.

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

Ropu Haumaru — Waihangahia, kowhiria ranei he roopu haumaru mo te taurite, i tuhia e au etahi atu korero mo tenei i runga ake nei i te waahanga EC2 Whakarewa Tauira → Tautuhinga Whatunga.

Te rōpū arotahi — ka hangahia e matou he roopu e kawe ana i nga tono ararere mai i te kaitaurite ki nga miihini me te tirotiro i o raatau waatea hei whakakapi mena he raru. Momo whainga me Tauira, Tuhinga и Port ahakoa, mena kei te whakamahi koe i te HTTPS mo te whakawhitiwhiti korero i waenga i te taurite me nga waahi, me tuku e koe he tiwhikete ki a raatau. Mo nga kaupapa o tenei tauira, kaore matou e mahi i tenei, ka waiho noa e matou te tauranga 80.

Nga arowhai hauora — tawhā mo te tirotiro i te mahi o te ratonga. I roto i te ratonga pono, he tono motuhake tenei e whakatinana ana i nga waahanga nui o te arorau pakihi; mo nga kaupapa o tenei tauira, ka waiho e ahau nga tautuhinga taunoa. I muri mai, ka taea e koe te whiriwhiri i te waahi tono, te waahi, nga tohu angitu, me etahi atu. I roto i ta maatau tauira, ka tohuhia e matou nga Waehere Angitu 200-399, na te mea ko te ahua Docker ka whakamahia ka hoki mai he waehere 304.

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

Rēhita Ngā Whāinga - i konei ka tohua nga motuka mo te roopu, engari i roto i to maatau ka mahia tenei e te ECS, na reira ka pekehia tenei taahiraa.

He pai ki te mohio: i te taumata taurite ka taea e koe te whakahohe i nga raarangi ka tiakina ki te S3 i roto i tetahi whakatakotoranga. Mai i reira ka taea te kaweake ki nga ratonga tuatoru mo nga tātaritanga, ka taea ranei e koe te hanga patai SQL tika ki nga raraunga i roto i te S3 me whakamahi Athena. He waatea me te mahi kaore he waehere taapiri. Ka tūtohu ano ahau ki te whakarite i te tango i nga raarangi mai i te peere S3 i muri i te waa kua tohua.

Whakamaramatanga Mahi ECS

I nga waahanga o mua, i hangaia e matou nga mea katoa e pa ana ki nga hanganga ratonga; inaianei ka neke taatau ki te whakaahua i nga ipu ka whakarewahia e matou. Ka mahia tenei i roto i te waahanga ECS → Taumahi Taumahi.

Whakarewa hototahi momo - tohua EC2.

Mahi mahi IAM tūranga - whiriwhiri ecsTaskExecutionRole. Ma te whakamahi, ka tuhia nga raarangi, ka tukuna te uru ki nga taurangi ngaro, etc.

In the Container Definitions section, click Add Container.

image — hono ki te ahua me te waehere kaupapa; mo tenei tauira ka whakamahi ahau i tetahi ahua whanui mai i Docker Hub bitnami/tauira-node:0.0.1.

Te Maharahara — tepe mahara mo te ipu. Tepe Paari — te rohe pakeke, ki te eke te ipu ki tua atu i te uara kua tohua, ka mahia te whakahau patu docker, ka mate tonu te ipu. Tepe ngohengohe — te rohe ngawari, ka taea e te ipu te haere ki tua atu i te uara kua tohua, engari ka whai whakaarotia tenei tawhā ina whakatakoto mahi ki runga miihini. Hei tauira, mena he 4 GiB te RAM o tetahi miihini, a ko te rohe ngawari o te ipu he 2048 MiB, ka taea e tenei miihini te 2 nga mahi whakahaere me tenei ipu. I roto i te mooni, 4 GiB o RAM he iti iho i te 4096 MiB, ka taea te tiro i tenei i runga i te ripa ECS Instance i roto i te tautau. Kaore e taea te nui ake i te tepe ngawari ki te tepe pakeke. He mea nui kia maarama mena he maha nga ipu kei roto i te mahi kotahi, katahi ka whakarapopotohia o raatau rohe.

Mahere tauranga - i roto i Tauranga manaaki Ka tohuhia e matou te 0, ko te tikanga ka tohua te tauranga i runga i te hihiri, ka aro turukihia e te Rōpū Whaiaro. Tauranga Ipu — Ko te tauranga e rere ai to tono ka tohua i roto i te whakahau whakahaere, kua tohua ranei ki to waehere tono, Dockerfile, aha atu. Mo ta maatau tauira ka whakamahia e matou te 3000 na te mea kua whakarārangihia ki roto Dockerfile te whakaahua e whakamahia ana.

Haki Hauora — nga tawhā tirotiro hauora ipu, kia kaua e pohehe ki te mea i whirihorahia i roto i te Rōpū Whakatau.

taiao - tautuhinga taiao. Waeine PTM - he rite ki nga rohe mahara, mo te tukatuka anake. He 1024 nga waeine o ia kaitukatuka, no reira mena he kaitukatuka rua-matua te tūmau, ka whakatauhia te ipu ki te 512, ka 4 nga mahi me tenei ipu ka taea te whakarewa i runga i te tūmau kotahi. Ko nga waeine PTM e rite ana ki te maha o nga matua, kaore e taea te iti ake o raatau, penei me te mahara.

Whakahaua — he whakahau ki te tiimata i te ratonga i roto i te ipu, ka tohua nga tawhā katoa ka wehea e nga piko. Ko tenei pea he gunicorn, npm, etc. Mena kaore i tohua, ka whakamahia te uara o te tohutohu CMD mai i te Dockerfile. Ka tohu matou npm,start.

Taurangi taiao — taurangi taiao ipu. Ka taea tenei he raraunga kuputuhi ngawari, he taurangi ngaro ranei mai i Kaiwhakahaere Mea ngaro ranei Toa Tawhā.

Rokiroki me te Takitaki — i konei ka whakaturia e matou te takiuru ki CloudWatch Logs (he ratonga mo nga raarangi mai i AWS). Ki te mahi i tenei, me whakahohe noa i te pouakataki Takitaki CloudWatch-aunoa. I muri i te hanga i te Whakamaramatanga Mahi, ka hangaia he roopu o nga raarangi ki CloudWatch. Ma te taunoa, ka penapena nga raarangi ki roto mo ake tonu atu; Ka tūtohu ahau ki te huri i te waa Pupuri mai i te Kaua e Pahu ki te waa e hiahiatia ana. Ka mahia tenei i roto i nga roopu CloudWatch Log, me panui koe i te waa o naianei ka kowhiri i tetahi mea hou.

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

ECS Cluster me te ECS Capacity Provider

Haere ki te waahanga ECS → Clusters ki te hanga i tetahi huinga. Ka tohua e matou te EC2 Linux + Whatunga hei tauira.

ingoa roopu - he mea nui, he rite tonu te ingoa kua tohua ki te tawhā Tauira Whakarewa ECS_CLUSTER, i roto i to maatau - DemoApiClusterProd. Tirohia te Waihangahia he pouakataki tautau putua. Ki te hiahia koe, ka taea e koe te whakaahei i te Insights Ipu ki te tiro i nga inenga mo nga ratonga i CloudWatch. Mena i tika te mahi i nga mea katoa, katahi ka kite koe i te waahanga ECS Instances i nga miihini i hangaia i roto i te roopu Tauine Aunoa.

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

Haere ki te ripa Kaiwhakarato Raukaha me te hanga i tetahi mea hou. Me whakamahara ahau ki a koe me whakahaere te hanga me te kati o nga miihini i runga i te maha o nga mahi ECS e whakahaere ana. He mea nui kia mohio ko te kaiwhakarato ka taea anake te tuku ki te roopu kotahi.

Rōpū Tauine Aunoa — tīpakohia te roopu i hangaia i mua.

Te whakatauine whakahaere — Whakahohehia kia taea e te kaiwhakarato te whakarahi i te ratonga.

Te kaha whainga % — he aha te paheketanga o nga miihini e utaina ana ki nga mahi e hiahiatia ana. Mena ka tohua e koe te 100%, ka noho puku katoa nga miihini ki nga mahi whakahaere. Mena ka tohua e koe te 50%, ka kore noa te haurua o nga motuka. I tenei keehi, ki te kaha te peke i roto i te uta, ka tae tonu atu nga taakete hou ki nga motuka kore utu, me te kore e tatari mo nga waahi ka tukuna.

Te tiaki whakamutu whakahaere — whakaahei, ka taea e tenei tawhā te kaiwhakarato ki te tango i te whakamarumaru o nga tauira mai i te mukunga. Ka puta tenei ina karekau he mahi kaha i runga i te miihini me te tuku i te kaha o te Target%.

Ratonga ECS me te tatūnga tauine

Te taahiraa whakamutunga :) Ki te hanga i tetahi ratonga, me haere koe ki te roopu i hangaia i mua i te ripa Ratonga.

Momo whakarewa — me paato koe i runga i te rautaki Whakawhiti ki te kaha kaiwhakarato ka kowhiri i nga kaiwhakarato i hanga i mua.

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

Whakamaramatanga Mahi — tīpakohia te Whakamāramatanga Tūmahi i hangaia i mua me tōna arotakenga.

Ingoa ratonga — hei karo i te rangirua, he rite tonu ta matou tohu ki te Taumahi Taumahi.

Momo ratonga - Tauira tonu.

Te maha o nga mahi — te maha o nga mahi kaha i roto i te ratonga. Ko tenei tawhā e whakahaeretia ana e te tauine, engari me tohu tonu.

He ōrau hauora iti rawa и Te ōrau mōrahi - te whakatau i te whanonga o nga mahi i te wa tuku. Ko nga uara taunoa ko te 100 me te 200, e tohu ana i te wa o te tukunga ka nui haere te maha o nga mahi, ka hoki ki te uara e hiahiatia ana. Mena he 1 nga mahi e whakahaere ana, min=0, me te max=100, katahi ka mate i te wa tukunga, a muri iho ka whakaarahia he mahi hou, ara, he wa heke. Mena 1 te mahi e whakahaere ana, min=50, max=150, karekau rawa te tukunga e puta, na te mea kaore e taea te wehea te mahi 1 ki te haurua, te whakanui ake ranei i te wa kotahi me te haurua.

Momo tukunga — waiho Rolling whakahou.

Tauira Whakanoho — ture mo te whakatakoto mahi ki runga miihini. Ko te taunoa ko te AZ Balanced Spread - ko te tikanga ka tuuhia ia mahi hou ki runga i tetahi tauira hou kia ara ake nga miihini o nga waahi waatea katoa. I te nuinga o te wa ka mahia e matou te BinPack - CPU me te Spread - AZ; me tenei kaupapa here, ka tukuna nga mahi ki runga i te miihini kotahi mo ia PTM. Mena he mea tika ki te hanga i tetahi miihini hou, ka hangaia i roto i te waahi waatea hou.

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

Momo taurite kawenga — tīpako Taupānga Utaina Taurite.

Ratonga IAM tūranga - whiriwhiri ecsServiceRole.

Uta ingoa taurite — tīpakohia te taurite i hangaia i mua.

Te wa aroha mo te tirotiro hauora — Tatari i mua i te mahi i nga arowhai hauora i muri i te hurihanga i tetahi mahi hou, ka whakatauhia kia 60 hēkona.

Ipu hei uta toenga — i roto i te ingoa ingoa roopu Target, tohua te roopu i hangaia i mua, ka whakakiia nga mea katoa.

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

Ratonga Tauine Aunoa — tawhā tauine ratonga. Tīpakohia te Whirihorahia te Tauine Aunoa Ratonga hei whakatika i te kaute e hiahiatia ana e to ratonga. Ka whakatauhia e matou te iti me te morahi o nga mahi i te tauine.

Ko te mahi a IAM mo te Tauine Aunoa Ratonga - whiriwhiri AWSServiceRoleForApplicationAutoScaling_ECSService.

Kaupapa here tauine mahi aunoa - nga ture mo te whakatauine. E rua nga momo:

  1. Whainga whainga — te whai i nga inenga whaainga (te whakamahi CPU/RAM me te maha o nga tono mo ia mahi). Hei tauira, e hiahia ana matou kia 85% te taumahatanga o te kaitukatuka toharite, ka piki ake, ka taapirihia nga mahi hou kia tae ra ano ki te uara kua whakaritea. Mena he iti ake te kawenga, ka tangohia nga mahi, engari ki te kore e taea te whakamarumaru ki te whakaheke (Monokia te tauine-mai).
  2. Whakanuia taahiraa - te tauhohenga ki tetahi huihuinga karekau. I konei ka taea e koe te whirihora i te tauhohenga ki tetahi huihuinga (CloudWatch Alarm), ka puta, ka taea e koe te taapiri, te tango ranei i te maha o nga mahi kua tohua, te tautuhi ranei i te maha o nga mahi.

He maha nga ture a te ratonga, ka whai hua tenei, ko te mea nui kia kaua e taupatupatu tetahi ki tetahi.

mutunga

Mena i whai koe i nga tohutohu me te whakamahi i te ahua Docker ano, me whakahoki mai to ratonga i tetahi wharangi penei.

Hangaia he API Whakanuia i runga i nga AWS Spot Instances

  1. Kua hangaia e matou he tauira e ai ki nga miihini katoa o te ratonga ka whakarewahia. I ako ano matou me pehea te whakahou i nga miihini ina huri te tauira.
  2. Kua whirihorahia e matou te tukatuka o te tohu tohu waahi, no reira i roto i te meneti i muri i te whiwhinga, ka tangohia nga mahi whakahaere katoa mai i te miihini, no reira kaore he mea e ngaro, e haukotia ranei.
  3. I whakaarahia e matou te taurite ki te tohatoha i te kawenga puta noa i nga miihini.
  4. Kua hanga e matou he ratonga e rere ana i runga i nga waahi, e whakaiti ana i nga utu miihini ma te 3 wa.
  5. Kua whirihorahia e matou te whakamaarama i nga huarahi e rua ki te hapai i nga taumahatanga nui ake me te kore e pau nga utu mo te wa heke.
  6. Ka whakamahia e matou te Kaiwhakarato Whakaaetanga kia taea ai e te tono te whakahaere i nga hanganga (miihini) kaore he huarahi ke atu.
  7. He rawe matou.

Mēnā kei a koe te pikinga o te uta, hei tauira kei te panui koe i roto i tetahi kaupapa imeera nui, ka taea e koe te whakarite i te tauine ma te wātaka.

Ka taea hoki te tauine i runga i nga raraunga mai i nga waahanga rereke o to punaha. Hei tauira, kei a maatau te mahi te tuku tuku whakatairanga takitahi nga kaiwhakamahi o te tono pūkoro. I etahi wa ka tukuna he kaupapa whakahau ki te 1M+ tangata. I muri i taua tohatoha, he nui tonu te pikinga o nga tono ki te API, na te mea he maha nga kaiwhakamahi ka uru ki te tono i te wa ano. Na, ki te kite tatou he nui ake nga tohu paerewa kei roto i te rarangi mo te tuku whakamohiotanga pana whakatairanga, ka taea tonu e tatou te whakarewa i etahi atu miihini me nga mahi kia rite mo te utaina.

Ka koa ahau ki te korero mai koe ki ahau i roto i nga korero mo nga keehi pai mo te whakamahi i nga waahi waahi me te ECS tetahi mea ranei mo te tauine.

Kare e roa ka puta mai he tuhinga mo te whakahaere i nga mano tini o nga huihuinga tātari mo ia hekona i runga i te puranga kore-tumau (me te moni) me te pehea o te tuku ratonga ma te whakamahi i te GitLab CI me Terraform Cloud.

Ohauru ki a matou, ka pai!

Ko nga kaiwhakamahi kua rehita anake ka uru ki te rangahau. Waitohu maitēnā.

Kei te whakamahi koe i nga waahi waahi ki te whakaputa?

  • 22,2 orauAe6

  • 66,7 orauNo18

  • 11,1 orauI akohia e au mai i tetahi tuhinga ka whakaaro ahau ki te whakamahi3

27 nga kaiwhakamahi i pooti. 5 nga kaiwhakamahi i aukati.

Source: will.com

Tāpiri i te kōrero