{"id":87393,"date":"2020-07-08T01:42:02","date_gmt":"2020-07-07T23:42:02","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/sozdanie-masshtabiruemogo-api-na-spotovyh-instansah-aws"},"modified":"2020-07-08T01:42:02","modified_gmt":"2020-07-07T23:42:02","slug":"sozdanie-masshtabiruemogo-api-na-spotovyh-instansah-aws","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/sozdanie-masshtabiruemogo-api-na-spotovyh-instansah-aws","title":{"rendered":"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve! Un\u00eb quhem Kirill, jam CTO n\u00eb Adapty. Pjesa m\u00eb e madhe e arkitektur\u00ebs son\u00eb ndodhet n\u00eb AWS, dhe sot do t\u00eb flas p\u00ebr se si e kemi zvog\u00ebluar shpenzimin p\u00ebr servera me 3 her\u00eb duke p\u00ebrdorur instancat spot n\u00eb mjedisin e prodhimit, si dhe p\u00ebr m\u00ebnyr\u00ebn se si t'i konfiguroni ato p\u00ebr automatikisht t\u00eb shkall\u00ebzohen. N\u00eb fillim do t\u00eb ket\u00eb nj\u00eb p\u00ebrmbledhje se si funksionon kjo, pastaj nj\u00eb udh\u00ebzues i detajuar p\u00ebr fillimin.<\/p>\n<p><\/p>\n<h2 id=\"chto-takoe-spotovye-instansy\">\u00c7far\u00eb jan\u00eb instancat spot?<\/h2>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/ec2\/spot\/\">Instancat<\/a><\/noindex> spot jan\u00eb servera t\u00eb p\u00ebrdoruesve t\u00eb tjer\u00eb t\u00eb AWS q\u00eb aktualisht jan\u00eb t\u00eb pap\u00ebrdorur, dhe ata i shesin ato me nj\u00eb zbritje t\u00eb madhe (Amazon shkruan deri n\u00eb 90%, sipas p\u00ebrvoj\u00ebs son\u00eb ~3x, variabla n\u00eb var\u00ebsi t\u00eb rajonit, AZ dhe tipit t\u00eb instanc\u00ebs). Ndryshimi i tyre kryesor nga t\u00eb zakonshmit \u00ebsht\u00eb se ato mund t\u00eb fik\u00ebn n\u00eb \u00e7do moment. Prandaj, p\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb e kemi konsideruar se ishte mir\u00eb t'i p\u00ebrdornim ato p\u00ebr mjedise zhvillimi, ose p\u00ebr detyra p\u00ebr llogaritje di\u00e7kaje, duke ruajtur rezultatet nd\u00ebrmjet n\u00eb S3 ose n\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash, por jo p\u00ebr prodhim. Ekzistojn\u00eb zgjidhje t\u00eb tjera q\u00eb lejojn\u00eb p\u00ebrdorimin e instancave spot n\u00eb prodhim, por p\u00ebr rastin ton\u00eb atje kishte shum\u00eb pengesa, prandaj nuk i implementuam ato. Qasja e p\u00ebrshkruar n\u00eb artikull funksionon plot\u00ebsisht brenda funksionalitetit standard t\u00eb AWS, pa skripte shtes\u00eb, cron-e etj.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>M\u00eb posht\u00eb do t\u00eb sjell disa screenshot q\u00eb tregojn\u00eb historin\u00eb e \u00e7mimeve p\u00ebr instancat spot.<\/p>\n<p><\/p>\n<p>m5.large n\u00eb rajonin eu-west-1 (Irland\u00eb). \u00c7mimi ka qen\u00eb kryesisht i stabilizuar p\u00ebr 3 muaj, aktualisht kursimi \u00ebsht\u00eb 2.9x.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/901a259955c386493557280489f582fe.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>m5.large n\u00eb rajonin us-east-1 (Virginia e Veriut). \u00c7mimi ndryshon vazhdimisht p\u00ebr 3 muaj, aktualisht kursimi \u00ebsht\u00eb nga 2.3x deri n\u00eb 2.8x n\u00eb var\u00ebsi t\u00eb zon\u00ebs s\u00eb disponueshm\u00ebris\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/49c89430f03b2c7025355562d2873b6b.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>t3.small n\u00eb rajonin us-east-1 (Virginia e Veriut). \u00c7mimi \u00ebsht\u00eb stabil n\u00eb p\u00ebrpjekje p\u00ebr 3 muaj, aktualisht kursimi \u00ebsht\u00eb 3.4x.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/2e139dcc6d44bd37caf9d75eb6ec4835.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h2 id=\"arhitektura-servisa\">Arkitektura e sh\u00ebrbimit<\/h2>\n<p><\/p>\n<p>Arkitektura baz\u00eb e sh\u00ebrbimit, p\u00ebr t\u00eb cilin do t\u00eb flasim n\u00eb kuad\u00ebr t\u00eb k\u00ebtij artikulli, shfaqet n\u00eb diagramin m\u00eb posht\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/d89bd595675400861360670adaacaf03.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"application-load-balancer--ec2-target-group--elastic-container-service\">Application Load Balancer \u2192 EC2 Target Group \u2192 Elastic Container Service<\/h3>\n<p><\/p>\n<p>Si balancues p\u00ebrdoret Application Load Balancer (ALB), i cili d\u00ebrgon k\u00ebrkesat n\u00eb grupin e objektivave EC2 (TG). TG \u00ebsht\u00eb p\u00ebrgjegj\u00ebs p\u00ebr hapjen e porteve n\u00eb instancat p\u00ebr ALB dhe lidhjen e tyre me portet e kontejner\u00ebve t\u00eb Elastic Container Service (ECS). ECS \u00ebsht\u00eb ekuivalenti i Kubernetes n\u00eb AWS, q\u00eb merret me menaxhimin e kontejner\u00ebve Docker.<\/p>\n<p><\/p>\n<p>N\u00eb nj\u00eb instanc\u00eb mund t\u00eb ket\u00eb disa kontejner\u00eb funksional\u00eb me portet e nj\u00ebjta, prandaj nuk mund t'i caktojm\u00eb ato n\u00eb m\u00ebnyr\u00eb fikse. ECS i raporton TG-s\u00eb se po nis nj\u00eb detyr\u00eb t\u00eb re (n\u00eb terminologjin\u00eb e Kubernetes quhet pod), ajo b\u00ebn nj\u00eb kontroll t\u00eb porteve t\u00eb lira n\u00eb instanc\u00eb dhe caktuar nj\u00eb nga ato p\u00ebr detyr\u00ebn e nisur. Gjithashtu, TG kontrollon rregullisht n\u00ebse instanca dhe API-ja e saj funksionojn\u00eb p\u00ebrmes kontrollit t\u00eb sh\u00ebndetit, dhe n\u00ebse sheh ndonj\u00eb problem, ndalon d\u00ebrgimin e k\u00ebrkesave atje.<\/p>\n<p><\/p>\n<h3 id=\"ec2-auto-scaling-groups--ecs-capacity-providers\">Grupet e Shkall\u00ebzimit Auto EC2 + Furnizuesit e Kapacitetit ECS<\/h3>\n<p><\/p>\n<p>N\u00eb diagramin e m\u00ebsip\u00ebrm nuk tregohet sh\u00ebrbimi i Grupit t\u00eb Shkall\u00ebzimit Auto EC2 (ASG). Nga emri mund t\u00eb kuptojm\u00eb se ai merret me shkall\u00ebzimin e instancave. Megjithat\u00eb, deri para pak koh\u00ebsh, n\u00eb AWS nuk kishte mund\u00ebsi t\u00eb integruar p\u00ebr t\u00eb menaxhuar numrin e makinave t\u00eb nisura nga ECS. ECS lejonte t\u00eb shkall\u00ebzohej numri i detyrave, p\u00ebr shembull, n\u00eb var\u00ebsi t\u00eb p\u00ebrdorimit t\u00eb CPU, RAM ose numrit t\u00eb k\u00ebrkesave. Por n\u00ebse detyrat zaptonin t\u00eb gjitha instancat e lira, makinat e reja nuk ngriheshin automatikisht.<\/p>\n<p><\/p>\n<p>Kjo ndryshoi me shfaqjen e Furnizuesve t\u00eb Kapacitetit ECS (ECS CP). Tani \u00e7do sh\u00ebrbim n\u00eb ECS mund t\u00eb lidhet me ASG, dhe n\u00ebse detyrat nuk p\u00ebrputhen me instancat funksionale, do t\u00eb ngrihen t\u00eb reja (por brenda kufijve t\u00eb vendosur nga ASG). Kjo funksionon edhe n\u00eb an\u00ebn e kund\u00ebrt, n\u00ebse ECS CP sheh instancat e pap\u00ebrdorura pa detyra, ajo do t'i jap\u00eb urdh\u00ebr ASG q\u00eb t'i ndal\u00eb ato. ECS CP ka mund\u00ebsi t\u00eb p\u00ebrcaktoj\u00eb p\u00ebrqindjen e synuar t\u00eb ngarkes\u00ebs s\u00eb instancave, n\u00eb m\u00ebnyr\u00eb q\u00eb disa makinat t\u00eb jen\u00eb gjithmon\u00eb t\u00eb lira p\u00ebr shkall\u00ebzim t\u00eb shpejt\u00eb t\u00eb detyrave, do t\u00eb flas p\u00ebr k\u00ebt\u00eb pak m\u00eb von\u00eb.<\/p>\n<p><\/p>\n<h3 id=\"ec2-launch-templates\">Shabllonet e Nisjes EC2<\/h3>\n<p><\/p>\n<p>Sh\u00ebrbimi i fundit p\u00ebr t\u00eb cilin do t\u00eb flas para se t\u00eb kaloj n\u00eb p\u00ebrshkrimin e detajuar t\u00eb krijimit t\u00eb k\u00ebsaj infrastrukture \u00ebsht\u00eb Shabllon\u00ebt e Nisjes EC2. Ai lejon krijimin e nj\u00eb shablloni n\u00eb baz\u00eb t\u00eb t\u00eb cilit do t\u00eb nisen t\u00eb gjitha makinat, p\u00ebr t\u00eb mos e p\u00ebrs\u00ebritur k\u00ebt\u00eb \u00e7do her\u00eb nga e para. K\u00ebtu mund t\u00eb zgjidhni llojin e makin\u00ebs q\u00eb do t\u00eb nisni, grupin e siguris\u00eb, imazhin e diskut dhe shum\u00eb parametra t\u00eb tjer\u00eb. Gjithashtu, mund t\u00eb shtoni t\u00eb dh\u00ebna t\u00eb p\u00ebrdoruesve, t\u00eb cilat do t\u00eb ngarkohen n\u00eb t\u00eb gjitha instancat e nisin. <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AmazonECS\/latest\/developerguide\/ecs-agent-config.html\">konfigurimi i agjentit ECS<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Nj\u00eb nga parametrat m\u00eb t\u00eb r\u00ebnd\u00ebsish\u00ebm n\u00eb kuad\u00ebr t\u00eb k\u00ebtij artikulli \u00ebsht\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AmazonECS\/latest\/developerguide\/container-instance-spot.html\">ECS_ENABLE_SPOT_INSTANCE_DRAINING<\/a><\/noindex>=true. N\u00ebse ky paramet\u00ebr \u00ebsht\u00eb aktiv, sapo ECS merr sinjalin se instanca e spots po merr fund, ai e kthen t\u00eb gjitha detyrat q\u00eb po punojn\u00eb mbi t\u00eb n\u00eb statusin Draining. Asnj\u00eb detyr\u00eb e re nuk do t\u00eb caktohet n\u00eb k\u00ebt\u00eb instanc\u00eb; n\u00ebse ka detyra q\u00eb aktualisht d\u00ebshirojn\u00eb t\u00eb kalojn\u00eb n\u00eb t\u00eb, ato anullohen. K\u00ebrkesat nga balancuesi gjithashtu nuk do t\u00eb vijojn\u00eb. Njoftimi p\u00ebr fshirjen e instanc\u00ebs vjen 2 minuta para ngjarjes reale. Prandaj, n\u00ebse sh\u00ebrbimi juaj nuk kryen detyra m\u00eb gjat\u00eb se 2 minuta dhe nuk ruan asgj\u00eb n\u00eb disk, at\u00ebher\u00eb mund t\u00eb p\u00ebrdorni instanca t\u00eb spots pa humbje t\u00eb dh\u00ebnash.<\/p>\n<p><\/p>\n<p>P\u00ebrsa i p\u00ebrket diskut \u2014 AWS s\u00eb fundmi <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/about-aws\/whats-new\/2020\/04\/amazon-ecs-aws-fargate-support-amazon-efs-filesystems-generally-available\/#:~:text=To%20use%20EFS%20with%20ECS,or%20TLS%20encryption%20in%20transit.\">ka b\u00ebr\u00eb<\/a><\/noindex> t\u00eb mundur p\u00ebrdorimin e Elastic File System (EFS) s\u00eb bashku me ECS; me k\u00ebt\u00eb skem\u00eb as disku nuk \u00ebsht\u00eb nj\u00eb penges\u00eb, por ne nuk e kemi provuar, pasi n\u00eb parim nuk na nevojitet disku p\u00ebr ruajtjen e gjendjes. Nga default, pas marrjes s\u00eb SIGINT (e cila d\u00ebrgohet n\u00eb momentin e kalimit t\u00eb detyr\u00ebs n\u00eb statusin Draining), t\u00eb gjitha detyrat aktive do t\u00eb ndalohen brenda 30 sekondave, edhe n\u00ebse ata nuk kan\u00eb arritur ta p\u00ebrfundojn\u00eb; ky koh\u00eb mund t\u00eb ndryshohet me an\u00eb t\u00eb parametrit <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AmazonECS\/latest\/developerguide\/ecs-agent-config.html\">ECS_CONTAINER_STOP_TIMEOUT<\/a><\/noindex>. E r\u00ebnd\u00ebsishme \u00ebsht\u00eb q\u00eb t\u00eb mos e vendosni m\u00eb shum\u00eb se 2 minuta p\u00ebr makinat e spots.<\/p>\n<p><\/p>\n<h2 id=\"sozdanie-servisa\">Krijimi i sh\u00ebrbimit<\/h2>\n<p><\/p>\n<p>Tani kalojm\u00eb n\u00eb krijimin e sh\u00ebrbimit t\u00eb p\u00ebrshkruar. Gjat\u00eb procesit do t\u00eb p\u00ebrshkruaj disa momente t\u00eb dobishme q\u00eb nuk u p\u00ebrmend\u00ebn m\u00eb lart. N\u00eb p\u00ebrgjith\u00ebsi, kjo \u00ebsht\u00eb nj\u00eb udh\u00ebzim hap pas hapi, por disa raste shum\u00eb bazike ose p\u00ebrkundrazi shum\u00eb specifike nuk do t\u2019i shqyrtoj. T\u00eb gjitha veprimet realizohen n\u00eb konsol\u00ebn vizuale t\u00eb AWS, por ato gjithashtu mund t\u00eb riprodhohen programatikisht me an\u00eb t\u00eb CloudFormation ose Terraform. Ne n\u00eb Adapty p\u00ebrdorim Terraform.<\/p>\n<p><\/p>\n<h3 id=\"ec2-launch-template\"><strong>EC2 Launch Template<\/strong><\/h3>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb sh\u00ebrbim krijohet nj\u00eb konfigurim i makinave q\u00eb do t\u00eb p\u00ebrdoren. Menaxhimi i shablloneve ndodh n\u00eb seksionin EC2 -&gt; Instances -&gt; Launch templates.<\/p>\n<p><\/p>\n<p><strong>Imazhi i makin\u00ebs Amazon (AMI)<\/strong> \u2014 tregojm\u00eb imazhin e diskut me t\u00eb cilin do t\u00eb lancohen t\u00eb gjitha instancat. P\u00ebr ECS, n\u00eb shumic\u00ebn e rasteve, \u00ebsht\u00eb e rekomandueshme t\u00eb p\u00ebrdorim imazhin e optimizuar nga Amazon. Ai p\u00ebrdit\u00ebsohet rregullisht dhe p\u00ebrmban gjith\u00e7ka t\u00eb nevojshme p\u00ebr funksionimin e ECS. P\u00ebr t\u00eb m\u00ebsuar ID-n\u00eb e imazhit aktual, hyni n\u00eb faqen <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AmazonECS\/latest\/developerguide\/ecs-optimized_AMI.html\">Imazhet AMI t\u00eb optimizuara p\u00ebr Amazon ECS<\/a><\/noindex>, zgjidhni rajonin e p\u00ebrdorur dhe kopjoni ID-n\u00eb AMI p\u00ebr t\u00eb. P\u00ebr shembull, p\u00ebr rajonin us-east-1, ID aktual n\u00eb momentin e shkruarjes s\u00eb artikullit \u00ebsht\u00eb <em>ami-00c7c1cf5bdc913ed<\/em>. Ky ID duhet t\u00eb shtohet n\u00eb pik\u00ebn Specify a custom value.<\/p>\n<p><\/p>\n<p><strong>Lloji i instanc\u00ebs<\/strong> \u2014 specifikoni llojin e instanc\u00ebs. Zgjidhni at\u00eb q\u00eb i p\u00ebrshtatet m\u00eb mir\u00eb nevojave tuaja.<\/p>\n<p><\/p>\n<p><strong>\u00c7ift \u00e7el\u00ebsash (login)<\/strong> \u2014 specifikoni certifikat\u00ebn q\u00eb do t\u00eb p\u00ebrdoret p\u00ebr t'u lidhur me instanc\u00ebn p\u00ebrmes SSH, n\u00ebse \u00ebsht\u00eb e nevojshme.<\/p>\n<p><\/p>\n<p><strong>Cil\u00ebsimet e rrjetit<\/strong> \u2014 specifikoni parametrat e rrjetit. <strong>Platforma e rrjetit<\/strong> n\u00eb shumic\u00ebn e rasteve duhet t\u00eb jet\u00eb Virtual Private Cloud (VPC). <strong>Grupet e siguris\u00eb<\/strong> \u2014 grupe sigurie p\u00ebr instancat tuaja. Duke qen\u00eb se do t\u00eb p\u00ebrdorim nj\u00eb balancer para instancave, rekomandoj t\u00eb specifikoni k\u00ebtu nj\u00eb grup q\u00eb lejon lidhjet hyr\u00ebse vet\u00ebm nga balanceri. K\u00ebshtu do t\u00eb keni 2 grupe sigurie, nj\u00eb p\u00ebr balancerin q\u00eb lejon lidhjet hyr\u00ebse (inbound) nga kudo p\u00ebr portet 80 (http) dhe 443 (https), dhe e dyta p\u00ebr makinat, q\u00eb lejon lidhjet hyr\u00ebse p\u00ebr \u00e7do port nga grupi i balancerit. Lidhjet dal\u00ebse (outbound) n\u00eb t\u00eb dy grupet duhet t\u00eb hapen p\u00ebr protokollin TCP p\u00ebr t\u00eb gjitha portet e t\u00eb gjitha adresave. Mund t\u00eb kufizoni portet dhe adresat p\u00ebr lidhjet dal\u00ebse, por at\u00ebher\u00eb duhet vazhdimisht t\u00eb monitoroni q\u00eb t\u00eb mos p\u00ebrpiqeni t\u00eb lidheni diku p\u00ebrmes nj\u00eb porti t\u00eb mbyllur.<\/p>\n<p><\/p>\n<p><strong>Ruajtja (v\u00ebllimet)<\/strong> \u2014 specifikoni parametrat e disqeve p\u00ebr makinat. Kapaciteti i diskut nuk mund t\u00eb jet\u00eb m\u00eb i vog\u00ebl se ai q\u00eb \u00ebsht\u00eb p\u00ebrcaktuar n\u00eb AMI, p\u00ebr ECS Optimized \u2014 30 GiB.<\/p>\n<p><\/p>\n<p><strong>Detajet e avancuara<\/strong> \u2014 specifikoni parametra shtes\u00eb.<\/p>\n<p><\/p>\n<p><strong>Opsioni i blerjes<\/strong> \u2014 a duam t\u00eb blejm\u00eb instanca spote. Ne duam, por k\u00ebtu nuk do ta sh\u00ebnojm\u00eb k\u00ebt\u00eb, do ta konfirmojm\u00eb n\u00eb Grupin e Shkall\u00ebzimit Automatik, aty ka m\u00eb shum\u00eb mund\u00ebsi.<\/p>\n<p><\/p>\n<p><strong>Profili i instanc\u00ebs IAM<\/strong> \u2014 specifikoni rolin me t\u00eb cilin do t\u00eb ndizni instancat. P\u00ebr t\u00eb siguruar q\u00eb instancat t\u00eb funksionojn\u00eb n\u00eb ECS, ata kan\u00eb nevoj\u00eb p\u00ebr t\u00eb drejta q\u00eb zakonisht jan\u00eb n\u00eb rolin <em>ecsInstanceRole<\/em>. N\u00eb disa raste ajo mund t\u00eb krijohet, n\u00ebse jo, at\u00ebher\u00eb k\u00ebtu <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AmazonECS\/latest\/developerguide\/instance_IAM_role.html\">instruksion<\/a><\/noindex> p\u00ebr at\u00eb se si mund ta b\u00ebni k\u00ebt\u00eb. Pasi t\u00eb krijohet, e specifikoni at\u00eb n\u00eb shabllon.<br \/>\nM\u00eb pas ka shum\u00eb parametra, n\u00eb shumic\u00ebn e rasteve mund t\u00eb lini vlerat e paracaktuara, por \u00e7do nj\u00ebri prej tyre ka nj\u00eb p\u00ebrshkrim t\u00eb qart\u00eb. Un\u00eb gjithmon\u00eb p\u00ebrfshij parametrat e instanc\u00ebs EBS-optimized dhe T2\/T3 Unlimited, n\u00ebse p\u00ebrdoren <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/burstable-performance-instances.html\">instanca burstable.<\/a><\/noindex> T\u00eb dh\u00ebnat e p\u00ebrdoruesit<\/p>\n<p><\/p>\n<p><strong>\u2014 specifikoni t\u00eb dh\u00ebnat e p\u00ebrdoruesit. Ne do t\u00eb redaktojm\u00eb skedarin<\/strong> , n\u00eb t\u00eb cilin ndodhet konfigurimi i agjentit ECS. <code>\/etc\/ecs\/ecs.config<\/code>Shembulli i asaj se si mund t\u00eb duket t\u00eb dh\u00ebnat e p\u00ebrdoruesit:<br \/>\nECS_CLUSTER=DemoApiClusterProd<\/p>\n<p><\/p>\n<pre><code class=\"bash\">#!\/bin\/bash\necho ECS_CLUSTER=DemoApiClusterProd &gt;&gt; \/etc\/ecs\/ecs.config\necho ECS_ENABLE_SPOT_INSTANCE_DRAINING=true &gt;&gt; \/etc\/ecs\/ecs.config\necho ECS_CONTAINER_STOP_TIMEOUT=1m &gt;&gt; \/etc\/ecs\/ecs.config\necho ECS_ENGINE_AUTH_TYPE=docker &gt;&gt; \/etc\/ecs\/ecs.config\necho &quot;ECS_ENGINE_AUTH_DATA={&quot;registry.gitlab.com&quot;:{&quot;username&quot;:&quot;username&quot;,&quot;password&quot;:&quot;password&quot;}}&quot; &gt;&gt; \/etc\/ecs\/ecs.config<\/code><\/pre>\n<p><\/p>\n<p><code>ECS_CLUSTER=DemoApiClusterProd<\/code> \u2014 parametri tregon se instanca i p\u00ebrket nj\u00eb klasteri me emrin e caktuar, do thot\u00eb se ky klaster mund t\u00eb vendos\u00eb detyrat e tij n\u00eb k\u00ebt\u00eb server. Ne ende nuk e kemi krijuar klasterin, por kur ta krijojm\u00eb, do ta p\u00ebrdorim k\u00ebt\u00eb em\u00ebr.<\/p>\n<p><\/p>\n<p><code>ECS_ENABLE_SPOT_INSTANCE_DRAINING=true<\/code> \u2014 parametri tregon se kur t\u00eb merrni nj\u00eb sinjal p\u00ebr t\u00eb fikur instanc\u00ebn e spots, t\u00eb gjitha detyrat n\u00eb t\u00eb duhet t\u00eb kalojn\u00eb n\u00eb statusin Draining.<\/p>\n<p><\/p>\n<p><code>ECS_CONTAINER_STOP_TIMEOUT=1m<\/code> \u2014 parametri tregon se pas marrjes s\u00eb sinjalit SIGINT, t\u00eb gjitha detyrat kan\u00eb 1 minuta p\u00ebrpara se t\u00eb vriten.<\/p>\n<p><\/p>\n<p><code>ECS_ENGINE_AUTH_TYPE=docker<\/code> \u2014 parametri tregon se si mekaniz\u00ebm autorizimi p\u00ebrdoret skema docker.<\/p>\n<p><\/p>\n<p><code>ECS_ENGINE_AUTH_DATA=...<\/code> \u2014 parametrat e lidhjes me regjistrin privat t\u00eb kontejner\u00ebve, ku ruajn\u00eb imazhet tuaja Docker. N\u00ebse \u00ebsht\u00eb publik, nuk duhet t\u00eb tregoni asgj\u00eb.<\/p>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb artikull do t\u00eb p\u00ebrdor nj\u00eb imazh publik nga Docker Hub, prandaj nuk do t\u00eb tregoj parametra. <code>ECS_ENGINE_AUTH_TYPE<\/code> dhe <code>ECS_ENGINE_AUTH_DATA<\/code> nuk \u00ebsht\u00eb e nevojshme.<\/p>\n<p><\/p>\n<p><strong>Eshte e dobishme t\u00eb dihet<\/strong>: rekomandohet t\u00eb p\u00ebrdit\u00ebsoni rregullisht AMI-n\u00eb, sepse n\u00eb versionet e reja p\u00ebrdit\u00ebsohen versionet e Docker, Linux, ECS agentit dhe t\u00eb tjera. P\u00ebr t\u00eb mos e harruar k\u00ebt\u00eb, mund t\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AmazonECS\/latest\/developerguide\/ECS-AMI-SubscribeTopic.html\">konfiguroni njoftime<\/a><\/noindex> p\u00ebr daljen e versioneve t\u00eb reja. Mund t\u00eb merrni njoftime n\u00eb email dhe t\u2019i p\u00ebrdit\u00ebsoni manualisht, ose mund t\u00eb shkruani nj\u00eb funksion Lambda q\u00eb do t\u00eb krijoj\u00eb automatikisht nj\u00eb version t\u00eb ri t\u00eb Template t\u00eb L\u00ebshimit me AMI-n\u00eb e p\u00ebrdit\u00ebsuar.<\/p>\n<p><\/p>\n<h3 id=\"ec2-auto-scaling-group\"><strong>EC2 Auto Scaling Group<\/strong><\/h3>\n<p><\/p>\n<p>Grupi i Auto Scaling \u00ebsht\u00eb p\u00ebrgjegj\u00ebs p\u00ebr nisjen dhe shkall\u00ebzimin e instancave. Menaxhimi i grupeve ndodh n\u00eb seksionin EC2 -&gt; Auto Scaling -&gt; Auto Scaling Groups.<\/p>\n<p><\/p>\n<p><strong>Template i nisjes<\/strong> \u2014 zgjidhni modelin e krijuar n\u00eb hapin e m\u00ebparsh\u00ebm. Lini versionin n\u00eb t\u00eb parin.<\/p>\n<p><\/p>\n<p><strong>Mund\u00ebsit\u00eb e blerjes dhe llojet e instanc\u00ebs<\/strong> \u2014 p\u00ebrcaktoni llojet e instancave p\u00ebr klasterin. Adhere to launch template p\u00ebrdor llojin e instanc\u00ebs nga Template i L\u00ebshimit. Combine purchase options and instance types lejon t\u00eb konfigurojm\u00eb fleksib\u00ebl llojet e instancave. Do ta p\u00ebrdorim at\u00eb.<\/p>\n<p><\/p>\n<p><strong>Baz\u00eb opsionale On-Demand<\/strong> \u2014 numri i instancave normale, jo-spots, q\u00eb do t\u00eb punojn\u00eb gjithmon\u00eb.<\/p>\n<p><\/p>\n<p><strong>P\u00ebrqindja On-Demand mbi baz\u00ebn<\/strong> \u2014 raporti n\u00eb mes instancave normale dhe t\u00eb spots, 50-50 do t\u00eb shp\u00ebrndaj\u00eb barabar, 20-80 p\u00ebr \u00e7do instanc\u00eb normale do t\u00eb ngrihen 4 spots. N\u00eb k\u00ebt\u00eb shembull do t\u00eb tregoj 50-50, por n\u00eb t\u00eb v\u00ebrtet\u00eb shpesh b\u00ebjm\u00eb 20-80, n\u00eb disa raste 0-100.<\/p>\n<p><\/p>\n<p><strong>Llojet e instancave<\/strong> \u2014 k\u00ebtu mund t\u00eb specifikoni lloje t\u00eb tjera instancash, t\u00eb cilat do t\u00eb p\u00ebrdoren n\u00eb kluster. Kurr\u00eb nuk i kemi p\u00ebrdorur, sepse nuk e kuptoj shum\u00eb kuptimin e k\u00ebsaj historie. Ndoshta \u00ebsht\u00eb \u00e7\u00ebshtje e limitimeve p\u00ebr lloje specifike instancash, por ato rriten leht\u00ebsisht p\u00ebrmes mb\u00ebshtetjes. N\u00ebse e dini nj\u00eb p\u00ebrdorim, do t\u00eb isha i lumtur t\u00eb lexoj n\u00eb komentet)<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/c1ee742d2059674f39a53cac6b9f2347.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>Network\nglobal\n   log \/dev\/log local0\n   log \/dev\/log local1 notice\n   chroot \/var\/lib\/haproxy\n   stats timeout 30s\n   user haproxy\n   group haproxy\n   daemon\n\ndefaults\n   log global\n   mode http\n   option httplog\n   option dontlognull\n   timeout connect 5000\n   timeout client 50000\n   timeout server 50000\n\nfrontend http_front\n   bind *:80\n   stats uri \/haproxy?stats\n   default_backend http_back\n\nbackend http_back\n   balance roundrobin\n   server server_name1 private_ip1:80 check\n   server server_name2 private_ip2:80 check<\/strong> \u2014 cil\u00ebsimet e rrjetit, zgjidhni VPC dhe n\u00ebnrrjetat p\u00ebr makinat, n\u00eb shumic\u00ebn e rasteve \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb zgjidhni t\u00eb gjitha n\u00ebnrrjetat e disponueshme.<\/p>\n<p><\/p>\n<p><strong>Balancimi i ngarkes\u00ebs<\/strong> \u2014 cil\u00ebsimet e balancuesit, por ne do ta b\u00ebjm\u00eb k\u00ebt\u00eb ve\u00e7mas, k\u00ebtu nuk prekim asgj\u00eb. <strong>Kontrolli i sh\u00ebndetit<\/strong> do t\u00eb konfigurohet m\u00eb von\u00eb.<\/p>\n<p><\/p>\n<p><strong>Madh\u00ebsia e grupit<\/strong> \u2014 specifikoni kufijt\u00eb p\u00ebr numrin e makinave n\u00eb kluster dhe numrin e d\u00ebshiruar t\u00eb makinave n\u00eb fillim. Numri i makinave n\u00eb kluster nuk do t\u00eb b\u00ebhet kurr\u00eb m\u00eb i vog\u00ebl se sa ai i specifikuar minimalisht dhe as m\u00eb i madh se maksimalja, madje edhe n\u00ebse sipas metrave duhet t\u00eb ndodhi nj\u00eb skalim.<\/p>\n<p><\/p>\n<p><strong>Politikat e skalimit<\/strong> \u2014 parametrat e skalimit, por ne do t\u00eb b\u00ebjm\u00eb skalimin duke u nisur nga detyrat e ECS t\u00eb ekzekutuara, prandaj do ta konfigurojm\u00eb skalimin m\u00eb von\u00eb.<\/p>\n<p><\/p>\n<p><strong>Mbrojtja e shkall\u00ebs s\u00eb instancave<\/strong> \u2014 mbrojtja e instancave nga fshirja gjat\u00eb skalimit posht\u00eb. E aktivizojm\u00eb, n\u00eb m\u00ebnyr\u00eb q\u00eb ASG t\u00eb mos fshij\u00eb makin\u00ebn ku ka detyra t\u00eb ekzekutuara. Nd\u00ebrsa do t\u00eb \u00e7aktivizojm\u00eb mbrojtjen p\u00ebr instancat q\u00eb nuk kan\u00eb detyra, do t\u00eb jet\u00eb ECS Capacity Provider.<\/p>\n<p><\/p>\n<p><strong>Shto etiketa<\/strong> \u2014 mund t\u00eb specifikoni etiketa p\u00ebr instancat (p\u00ebr k\u00ebt\u00eb duhet t\u00eb jet\u00eb e kontrolluar kutia Tag new instances). Rekomandoj t\u00eb specifikoni etiket\u00ebn Emri, k\u00ebshtu q\u00eb t\u00eb gjitha instancat q\u00eb inizohen brenda grupit do t\u00eb ken\u00eb t\u00eb nj\u00ebjtin em\u00ebr, \u00ebsht\u00eb e leht\u00eb p\u00ebr t\u00eb par\u00eb n\u00eb konsol\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/61fa0ccb38c11f61431db0938140efb7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pas krijimit t\u00eb grupit, hapeni at\u00eb dhe shkoni n\u00eb seksionin Konfigurime t\u00eb avancuara, pse n\u00eb faz\u00ebn e krijimit n\u00eb konsol\u00eb nuk jan\u00eb t\u00eb dukshme t\u00eb gjitha opsionet.<\/p>\n<p><\/p>\n<p><strong>Politikat e p\u00ebrfundimit<\/strong> \u2014 rregullat q\u00eb merret parasysh gjat\u00eb fshirjes s\u00eb instancave. Ato aplikohen n\u00eb rend. Ne zakonisht p\u00ebrdorim ato, si\u00e7 \u00ebsht\u00eb n\u00eb figur\u00ebn m\u00eb posht\u00eb. S\u00eb pari fshihen instancat me Modelin m\u00eb t\u00eb vjet\u00ebr t\u00eb Kryerjes (p\u00ebr shembull, n\u00ebse kemi p\u00ebrmir\u00ebsuar AMI-n\u00eb, na \u00ebsht\u00eb krijuar nj\u00eb version i ri, por t\u00eb gjitha instancat kan\u00eb arritur ta kalojn\u00eb at\u00eb). Pastaj zgjidhen instancat q\u00eb jan\u00eb m\u00eb af\u00ebr or\u00ebs s\u00eb ardhshme mat\u00ebse p\u00ebr faturimin. Dhe m\u00eb pas zgjidhen ato m\u00eb t\u00eb vjetrat sipas dat\u00ebs s\u00eb fillimit.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/8236624fe08a03f36aedc7665e18b060.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>Eshte e dobishme t\u00eb dihet<\/strong>: p\u00ebr t\u00eb p\u00ebrdit\u00ebsuar t\u00eb gjitha makinat n\u00eb kluster, \u00ebsht\u00eb e leht\u00eb t\u00eb p\u00ebrdorim <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/autoscaling\/ec2\/userguide\/asg-instance-refresh.html\">R\u5237\u65b0\u6781\u9650\u9884\u7f16\u8bd1<\/a><\/noindex>. N\u00ebse e kombinoni k\u00ebt\u00eb me funksionin Lambda nga hapi i m\u00ebparsh\u00ebm, at\u00ebher\u00eb do t\u00eb keni nj\u00eb sistem p\u00ebrdit\u00ebsimi t\u00eb instancave t\u00eb automatizuar plot\u00ebsisht. Para p\u00ebrdit\u00ebsimit t\u00eb t\u00eb gjitha makinave, \u00ebsht\u00eb e nevojshme t\u00eb \u00e7aktivizoni mbrojtjen nga shkall\u00ebzimi p\u00ebr t\u00eb gjitha instancat n\u00eb grup. Jo konfigurimin n\u00eb grup, por pik\u00ebrisht mbrojtjen e vet instancave, kjo b\u00ebhet n\u00eb seksionin Menaxhimi i Instancave.<\/p>\n<p><\/p>\n<h3 id=\"application-load-balancer-i-ec2-target-group\">Application Load Balancer dhe EC2 Target Group<\/h3>\n<p><\/p>\n<p>Balancuesi krijohet n\u00eb seksionin EC2 \u2192 Balancimi i Ngarkes\u00ebs \u2192 Balancuesit. Ne do t\u00eb p\u00ebrdorim Application Load Balancer, krahasimi i llojeve t\u00eb ndryshme t\u00eb balancuesve mund t\u00eb lexoni n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/elasticloadbalancing\/features\/#compare\">faqen e sh\u00ebrbimit<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>Listeners<\/strong> \u2014 ka kuptim t\u00eb krijoni portat 80 dhe 443 dhe t\u00eb b\u00ebni redirekt nga 80 n\u00eb 443 me ndihm\u00ebn e rregullave t\u00eb balancuesit.<\/p>\n<p><\/p>\n<p><strong>Zones of Availability<\/strong> \u2014 n\u00eb shumic\u00ebn e rasteve zgjedhim t\u00eb gjitha zonat e disponueshm\u00ebris\u00eb.<\/p>\n<p><\/p>\n<p><strong>Konfiguro Settings e Siguris\u00eb<\/strong> \u2014 k\u00ebtu sh\u00ebnohet certifikata SSL p\u00ebr balancuesin, opsioni m\u00eb i p\u00ebrshtatsh\u00ebm \u00ebsht\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/acm\/latest\/userguide\/gs-acm-request-public.html\">t\u00eb krijoni certifikat\u00ebn<\/a><\/noindex> n\u00eb ACM. Rreth diferencave <strong>Politika e Siguris\u00eb<\/strong> mund t\u00eb lexoni n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/elasticloadbalancing\/latest\/classic\/elb-security-policy-table.html\">dokumentacionin<\/a><\/noindex>, mund t\u00eb lini at\u00eb t\u00eb zgjedhur si\u00e7 \u00ebsht\u00eb nga fillimi <code>ELBSecurityPolicy-2016-08<\/code>. Pas krijimit t\u00eb balancuesit, do t\u00eb shihni emrin <strong>DNS<\/strong>, t\u00eb cilin duhet ta konfiguroni si CNAME p\u00ebr domainin tuaj. Ja si duket n\u00eb Cloudflare.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/899ff0f30df4117fc0ccd91af135def3.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>Grupi i Siguris\u00eb<\/strong> \u2014 krijojm\u00eb ose zgjedhim nj\u00eb grup sigurie p\u00ebr balancuesin, m\u00eb shum\u00eb mbi k\u00ebt\u00eb kam shkruar m\u00eb sip\u00ebr n\u00eb seksionin EC2 Launch Template \u2192 Cil\u00ebsimet e Rrjetit.<\/p>\n<p><\/p>\n<p><strong>Grupi i target\u00ebve<\/strong> \u2014 krijojm\u00eb nj\u00eb grup, i cili \u00ebsht\u00eb p\u00ebrgjegj\u00ebs p\u00ebr ruterimin e k\u00ebrkesave nga balancuesi n\u00eb makina dhe kontrollon disponueshm\u00ebrin\u00eb e tyre, p\u00ebr t\u2019i z\u00ebvend\u00ebsuar n\u00eb rast probleme. <strong>Lloji i targetit<\/strong> duhet t\u00eb jet\u00eb Instance, <strong>Protokolli<\/strong> dhe <strong>Port<\/strong> \u00e7do lloj, n\u00ebse p\u00ebrdorni HTTPS p\u00ebr komunikimin midis balancuesit dhe instancave, at\u00ebher\u00eb ata duhet t\u00eb ngarkojn\u00eb certifikat\u00ebn. N\u00eb k\u00ebt\u00eb shembull ne nuk do ta b\u00ebjm\u00eb k\u00ebt\u00eb, thjesht do t\u00eb l\u00ebm\u00eb portin 80.<\/p>\n<p><\/p>\n<p><strong>Kontrolli i sh\u00ebndetit<\/strong> \u2014 parametrat e verifikimit t\u00eb funksionalitetit t\u00eb sh\u00ebrbimit. N\u00eb sh\u00ebrbimin aktual, kjo duhet t\u00eb jet\u00eb nj\u00eb k\u00ebrkes\u00eb e ve\u00e7ant\u00eb, e cila realizon pjes\u00eb t\u00eb r\u00ebnd\u00ebsishme t\u00eb logjik\u00ebs biznesore, n\u00eb k\u00ebt\u00eb shembull do ta l\u00eb cil\u00ebsimin sipas parazgjedhjeve. M\u00eb pas mund t\u00eb zgjidhni intervalin e k\u00ebrkesave, koh\u00ebn e skadimit, kodet e p\u00ebrgjigjeve t\u00eb suksesshme etj. N\u00eb shembullin ton\u00eb do t\u00eb sh\u00ebnojm\u00eb kodet e suksesit 200-399, sepse imazhi Docker, i cili do t\u00eb p\u00ebrdoret, ktheu kodin 304.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/e295ab1c3bf1dfe13c76b4942a31c7ee.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>Regjistro Target\u00ebt<\/strong> \u2014 k\u00ebtu zgjidhen makinat p\u00ebr grupin, por n\u00eb rastin ton\u00eb, kjo do t\u00eb merret me ECS, prandaj thjesht e kalojm\u00eb k\u00ebt\u00eb hap.<\/p>\n<p><\/p>\n<p><strong>Eshte e dobishme t\u00eb dihet<\/strong>: n\u00eb nivelin e balancuesit mund t\u00eb aktivizoni regjistrimet, t\u00eb cilat do t\u00eb ruhen n\u00eb S3 n\u00eb nj\u00eb vend t\u00eb caktuar <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/elasticloadbalancing\/latest\/application\/load-balancer-access-logs.html\">n\u00eb formatin<\/a><\/noindex>. Atyre mund t\u00eb eksportohen n\u00eb sh\u00ebrbime t\u00eb jashtme p\u00ebr analiz\u00eb, ose mund t\u00eb b\u00ebni k\u00ebrkesa SQL drejtp\u00ebrdrejt mbi t\u00eb dh\u00ebnat n\u00eb S3 me <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/athena\/latest\/ug\/application-load-balancer-logs.html\">ndihm\u00ebn e Athena<\/a><\/noindex>. Kjo \u00ebsht\u00eb e p\u00ebrshtatshme dhe funksionon pa ndonj\u00eb kod shtes\u00eb. Gjithashtu, rekomandoj t\u00eb konfigurohet fshirja e t\u00eb dh\u00ebnave nga bucket S3 pas nj\u00eb periudhe t\u00eb caktuar kohe.<\/p>\n<p><\/p>\n<h3 id=\"ecs-task-definition\">P\u00ebrkufizimi i Detyr\u00ebs ECS<\/h3>\n<p><\/p>\n<p>N\u00eb hapat e m\u00ebparsh\u00ebm krijuam gjith\u00e7ka q\u00eb lidhet me infrastruktur\u00ebn e sh\u00ebrbimit, tani kalojm\u00eb n\u00eb p\u00ebrshkrimin e konteiner\u00ebve q\u00eb do t\u00eb startojm\u00eb. Kjo b\u00ebhet n\u00eb seksionin ECS \u2192 Task Definitions.<\/p>\n<p><\/p>\n<p><strong>Kompatibiliteti i llojit t\u00eb lan\u00e7imit<\/strong> \u2014 zgjidhni EC2.<\/p>\n<p><\/p>\n<p><strong>Roli IAM p\u00ebr ekzekutimin e Detyr\u00ebs<\/strong> \u2014 zgjidhni <code>ecsTaskExecutionRole<\/code>. Me ndihm\u00ebn e k\u00ebtij roli shkruhen log-et, jepet qasje n\u00eb variablat sekrete etj.<\/p>\n<p><\/p>\n<p>N\u00eb seksionin Container Definitions klikoni Shto Konteiner.<\/p>\n<p><\/p>\n<p><strong>ProHoster r\u0259yl\u0259ri<\/strong> \u2014 lidhja me imazhin me kodin e projektit, p\u00ebr shembullin e k\u00ebtij projekti do t\u00eb p\u00ebrdor nj\u00eb imazh publik nga Docker Hub <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.docker.com\/r\/bitnami\/node-example\">bitnami\/node-example:0.0.1<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>Kufijt\u00eb e Memoris\u00eb<\/strong> \u2014 kufijt\u00eb p\u00ebr memorin\u00eb e konteinerit. <strong>Kufiri i Fort\u00eb<\/strong> \u2014 kufiri i fort\u00eb, n\u00ebse konteineri kalon vler\u00ebn e caktuar, do t\u00eb ekzekutohet komanda docker kill, konteineri do t\u00eb vdes\u00eb menj\u00ebher\u00eb. <strong>Kufiri i But\u00eb<\/strong> \u2014 kufiri i but\u00eb, konteineri mund t\u00eb kaloj\u00eb vler\u00ebn e caktuar, por n\u00eb k\u00ebt\u00eb rast, gjat\u00eb vendosjes s\u00eb detyrave n\u00eb makinat do t\u00eb merret parasysh ky parametr. P\u00ebr shembull, n\u00ebse n\u00eb makin\u00ebn ka 4 GiB RAM dhe kufiri i but\u00eb i konteinerit \u00ebsht\u00eb 2048 MiB, at\u00ebher\u00eb n\u00eb k\u00ebt\u00eb makin\u00eb mund t\u00eb ket\u00eb maksimumi 2 detyra t\u00eb aktivizuara me k\u00ebt\u00eb konteiner. N\u00eb realitet, 4 GiB RAM \u00ebsht\u00eb pak m\u00eb pak se 4096 MiB, mund ta shikoni n\u00eb sked\u00ebn ECS Instances n\u00eb klaster. Kufiri i but\u00eb nuk mund t\u00eb jet\u00eb m\u00eb i madh se kufiri i fort\u00eb. \u00cbsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb kuptohet se n\u00ebse n\u00eb nj\u00eb detyr\u00eb ka disa konteiner\u00eb, at\u00ebher\u00eb kufijt\u00eb e tyre do t\u00eb shuma.<\/p>\n<p><\/p>\n<p><strong>Hartimet e Porteve<\/strong> \u2014 n\u00eb <strong>P\u00ebrsi e pritjes<\/strong> vendosim 0, do t\u00eb thot\u00eb q\u00eb porta do t\u00eb caktohet n\u00eb m\u00ebnyr\u00eb dinamike, do t\u00eb monitorohet nga Grupi i Objektivave. <strong>Porti i Konteinerit<\/strong> \u2014 porta n\u00eb t\u00eb cil\u00ebn punon aplikacioni juaj, shpesh caktuar n\u00eb komand\u00ebn p\u00ebr ekzekutimin ose em\u00ebrohet n\u00eb kodin e aplikacionit tuaj, Dockerfile etj. P\u00ebr shembullin ton\u00eb p\u00ebrdorim 3000, sepse \u00ebsht\u00eb caktuar n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bitnami\/bitnami-docker-node\/blob\/master\/example\/Dockerfile\">Dockerfile<\/a><\/noindex> imazhin e p\u00ebrdorur.<\/p>\n<p><\/p>\n<p><strong>Kontrolli i Sh\u00ebndetit<\/strong> \u2014 parametrat e kontrollit t\u00eb funksionimit t\u00eb konteinerit, nuk duhet ngat\u00ebrruar me at\u00eb q\u00eb \u00ebsht\u00eb caktuar n\u00eb Grupi i Objektivave.<\/p>\n<p><\/p>\n<p><strong>Mjedisi<\/strong> \u2014 konfigurimet e mjedisit. <strong>Nj\u00ebsit\u00eb CPU<\/strong> \u2014 ngjan si kufijt\u00eb e Memorjes, vet\u00ebm p\u00ebr procesorin. \u00c7do b\u00ebrtham\u00eb e procesorit \u00ebsht\u00eb 1024 nj\u00ebsive, k\u00ebshtu q\u00eb n\u00ebse serveri ka nj\u00eb procesor me dy b\u00ebrthama dhe vlera e kontejnerit \u00ebsht\u00eb 512, at\u00ebher\u00eb n\u00eb nj\u00eb server mund t\u00eb ekzekutohen 4 task-e me k\u00ebt\u00eb kontejner. Nj\u00ebsit\u00eb e CPU gjithmon\u00eb p\u00ebrputhen me numrin e b\u00ebrthamave, nuk mund t\u00eb jen\u00eb pak m\u00eb t\u00eb vogla si\u00e7 ndodh me memorien.<\/p>\n<p><\/p>\n<p><strong>Komand\u00eb<\/strong> \u2014 komand\u00eb p\u00ebr t\u00eb nisur sh\u00ebrbimin brenda kontejnerit, t\u00eb gjitha parametrat jepen me presje. Mund t\u00eb jet\u00eb gunicorn, npm etj. N\u00ebse nuk caktohet, do t\u00eb p\u00ebrdoret vlera e drejtoris\u00eb CMD nga Dockerfile. Caktoni <code>npm,start<\/code>.<\/p>\n<p><\/p>\n<p><strong>Variablat e mjedisit<\/strong> \u2014 variablat e mjedisit t\u00eb kontejnerit. K\u00ebto mund t\u00eb jen\u00eb si t\u00eb dh\u00ebna tekstuale, ashtu edhe variabla sekrete nga <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AmazonECS\/latest\/developerguide\/specifying-sensitive-data-secrets.html\">Menaxheri i Sekreteve<\/a><\/noindex> ose <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AmazonECS\/latest\/developerguide\/specifying-sensitive-data-parameters.html\">Depoja e Parametrave<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>Ruajtja dhe Regjistrimi<\/strong> \u2014 k\u00ebtu do t\u00eb konfigurojm\u00eb regjistrimin n\u00eb CloudWatch Logs (sh\u00ebrbimi p\u00ebr regjistrimin nga AWS). P\u00ebr k\u00ebt\u00eb, mjafton t\u00eb aktivizoni opsionin Auto-configure CloudWatch Logs. Pas krijimit t\u00eb Task Definition, do t\u00eb krijohet automatikisht nj\u00eb grup regjistrimesh n\u00eb CloudWatch. Sipas parazgjedhjes, regjistrimet n\u00eb t\u00eb ruhet pafund\u00ebsisht, rekomandoj t\u00eb ndryshoni periudh\u00ebn e Ruajtjes nga Never Expire n\u00eb periudh\u00ebn e k\u00ebrkuar. Kjo b\u00ebhet n\u00eb CloudWatch Log groups, duhet t\u00eb klikoni mbi periudh\u00ebn aktuale dhe t\u00eb zgjidhni t\u00eb re.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/c9ad7ca39dfde9343be89eb9ab1aef10.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"ecs-cluster-i-ecs-capacity-provider\">Klastri ECS dhe Ofruesi i Kapacitetit ECS<\/h3>\n<p><\/p>\n<p>Shkoni te seksioni ECS \u2192 Clusters p\u00ebr t\u00eb krijuar nj\u00eb klas\u00ebr. Si model zgjidhni EC2 Linux + Networking.<\/p>\n<p><\/p>\n<p><strong>Emri i klasrit<\/strong> \u2014 shum\u00eb e r\u00ebnd\u00ebsishme, b\u00ebni k\u00ebtu t\u00eb nj\u00ebjtin em\u00ebr si\u00e7 \u00ebsht\u00eb caktuar n\u00eb Template-in e Lanshimit n\u00eb parametrin <code>ECS_CLUSTER<\/code>, n\u00eb rastin ton\u00eb \u2014 <code>DemoApiClusterProd<\/code>. Sh\u00ebnoni kutin\u00eb Create an empty cluster. Opcionalisht, mund t\u00eb aktivizoni Container Insights p\u00ebr t\u00eb par\u00eb metrikat p\u00ebr sh\u00ebrbimet n\u00eb CloudWatch. N\u00ebse keni b\u00ebr\u00eb gjith\u00e7ka si\u00e7 duhet, at\u00ebher\u00eb n\u00eb seksionin ECS Instances do t\u00eb shihni makinat q\u00eb u krijuan n\u00eb grupin e Auto Scaling.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/cd70062c9783ae359a2b27cbfc66cbe3.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Shkoni te tab-i <strong>Ofruesit e Kapacitetit<\/strong> dhe krijoni nj\u00eb t\u00eb ri. Me kujdes, ai \u00ebsht\u00eb i nevojsh\u00ebm p\u00ebr t\u00eb menaxhuar krijimin dhe fikjen e makinave n\u00eb var\u00ebsi t\u00eb numrit t\u00eb task-eve ECS q\u00eb punojn\u00eb. \u00cbsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb theksohet se ofruesi mund t\u00eb lidhet vet\u00ebm me nj\u00eb grup.<\/p>\n<p><\/p>\n<p><strong>Grupi Auto Scaling<\/strong> \u2014 zgjidhni grupin q\u00eb u krijua m\u00eb par\u00eb.<\/p>\n<p><\/p>\n<p><strong>Skalimi i menaxhuar<\/strong> \u2014 aktivizoni, n\u00eb m\u00ebnyr\u00eb q\u00eb ofruesi t\u00eb jet\u00eb n\u00eb gjendje t\u00eb shkall\u00ebzoj\u00eb sh\u00ebrbimin.<\/p>\n<p><\/p>\n<p><strong>Kapaciteti i Synuar %<\/strong> \u2014 cila p\u00ebrqindje e ngarkes\u00ebs s\u00eb makinave me detyra na nevojitet. N\u00ebse jepni 100%, t\u00eb gjitha makinat gjithnj\u00eb do t\u00eb jen\u00eb t\u00eb angazhuara me detyra n\u00eb pun\u00eb. N\u00ebse jepni 50%, gjysma e makinave gjithnj\u00eb do t\u00eb jen\u00eb t\u00eb lira. N\u00eb k\u00ebt\u00eb rast, n\u00ebse ndodh nj\u00eb rritje e papritur e ngarkes\u00ebs, taksit\u00eb e reja do t\u00eb kalojn\u00eb menj\u00ebher\u00eb n\u00eb makinat e lira, pa nevoj\u00ebn p\u00ebr t\u00eb pritur implementimin e instancave.<\/p>\n<p><\/p>\n<p><strong>Mbrojtje e menaxhuar e nd\u00ebrprerjes<\/strong> \u2014 e aktivizojm\u00eb, ky parametr lejon ofruesin t\u00eb heq\u00eb mbrojtjen e instancave nga fshirja. Kjo ndodh kur n\u00eb makin\u00eb nuk ka detyra aktive dhe lejon Target capacity %.<\/p>\n<p><\/p>\n<h3 id=\"ecs-service-i-nastroyka-masshtabirovaniya\">ECS Sh\u00ebrbimi dhe konfigurimi i shkall\u00ebzimit<\/h3>\n<p><\/p>\n<p>Hapi i fundit :) P\u00ebr t\u00eb krijuar nj\u00eb sh\u00ebrbim, duhet t\u00eb hyj n\u00eb klasterin e krijuar m\u00eb par\u00eb n\u00eb kartel\u00ebn Sh\u00ebrbimet.<\/p>\n<p><\/p>\n<p><strong>Lloji i lansimit<\/strong> \u2014 duhet t\u00eb klikoni n\u00eb Switch to capacity provider strategy dhe t\u00eb zgjidhni ofruesin e krijuar m\u00eb par\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/9d9dfdd8e333cce24bfb048ac84097e4.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>P\u00ebrkufizimi i Detyr\u00ebs<\/strong> \u2014 zgjedhim P\u00ebrkufizimin e Detyr\u00ebs t\u00eb krijuar m\u00eb par\u00eb dhe avokatin e tij.<\/p>\n<p><\/p>\n<p><strong>Emri i sh\u00ebrbimit<\/strong> \u2014 p\u00ebr t\u00eb mos u ngat\u00ebrruar, gjithmon\u00eb e p\u00ebrmendim t\u00eb nj\u00ebjtin, si P\u00ebrkufizimi i Detyr\u00ebs.<\/p>\n<p><\/p>\n<p><strong>Lloji i sh\u00ebrbimit<\/strong> \u2014 gjithmon\u00eb Replica.<\/p>\n<p><\/p>\n<p><strong>Numri i detyrave<\/strong> \u2014 numri i d\u00ebshiruar i detyrave aktive n\u00eb sh\u00ebrbim. Ky parametr menaxhohet nga shkall\u00ebzimi, por gjithsesi duhet t\u00eb caktohet.<\/p>\n<p><\/p>\n<p><strong>P\u00ebrqindja minimale e sh\u00ebndetshme<\/strong> dhe <strong>P\u00ebrqindja maksimale<\/strong> \u2014 p\u00ebrcaktojn\u00eb sjelljen e detyrave gjat\u00eb deploy-it. Vlerat e paracaktuara 100 dhe 200 tregojn\u00eb se n\u00eb momentin e deploy-it numri i detyrave do t\u00eb rritet dyfish, dhe m\u00eb pas do t\u00eb kthehet n\u00eb numrin e d\u00ebshiruar. N\u00ebse keni 1 detyr\u00eb duke punuar, min=0 dhe max=100, at\u00ebher\u00eb gjat\u00eb deploy-it ajo do t\u00eb fshihet dhe m\u00eb pas do t\u00eb ngrihet nj\u00eb e re, q\u00eb do t\u00eb thot\u00eb se do t\u00eb ket\u00eb pritje. N\u00ebse punon 1 detyr\u00eb, min=50, max=150, at\u00ebher\u00eb deploy-i nuk do t\u00eb ndodh\u00eb fare, sepse 1 detyr\u00eb nuk mund t\u00eb ndahet n\u00eb gjysm\u00eb ose t\u00eb rritet n\u00eb 1.5 her\u00eb.<\/p>\n<p><\/p>\n<p><strong>Lloji i deploy-it<\/strong> \u2014 e l\u00ebm\u00eb Rolling update.<\/p>\n<p><\/p>\n<p><strong>Shabllonat e vendosjes<\/strong> \u2014 rregullat e vendosjes s\u00eb detyrave n\u00eb makina. Si paracaktohet \u00ebsht\u00eb AZ Balanced Spread \u2014 kjo do t\u00eb thot\u00eb se \u00e7do detyr\u00eb e re do t\u00eb vendoset n\u00eb nj\u00eb instanc\u00eb t\u00eb re deri sa t\u00eb ngrihen makinat n\u00eb t\u00eb gjitha zonat e disponueshm\u00ebris\u00eb. Ne zakonisht b\u00ebjm\u00eb BinPack \u2014 CPU dhe Spread \u2014 AZ, sipas k\u00ebsaj politike detyrat vendosen sa m\u00eb af\u00ebr nj\u00ebra-tjetr\u00ebs n\u00eb nj\u00eb makin\u00eb sipas CPU. N\u00eb rastin e nevoj\u00ebs p\u00ebr t\u00eb krijuar nj\u00eb makin\u00eb t\u00eb re, ajo krijohet n\u00eb nj\u00eb zon\u00eb t\u00eb re t\u00eb disponueshm\u00ebris\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/6430bdf046fc5b970e0afbbf0d9ef65e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>Lloji i balancuesit t\u00eb ngarkes\u00ebs<\/strong> \u2014 zgjedhim Application Load Balancer.<\/p>\n<p><\/p>\n<p><strong>Roli IAM i sh\u00ebrbimit<\/strong> \u2014 zgjedhim <code>ecsServiceRole<\/code>.<\/p>\n<p><\/p>\n<p><strong>Emri i balancuesit t\u00eb ngarkes\u00ebs<\/strong> \u2014 zgjedhim balancuesin e krijuar m\u00eb par\u00eb.<\/p>\n<p><\/p>\n<p><strong>Periudha e faljes p\u00ebr kontrollin e sh\u00ebndetit<\/strong> \u2014 pauza p\u00ebrpara kryerjes s\u00eb kontrollove t\u00eb funksionimit pas publikimit t\u00eb detyr\u00ebs s\u00eb re, ne zakonisht vendosim 60 sekonda.<\/p>\n<p><\/p>\n<p><strong>Container p\u00ebr t\u00eb balancuar ngarkes\u00ebn<\/strong> \u2014 n\u00eb pik\u00ebn Emri i grupit t\u00eb destinacionit zgjedhim grupin e krijuar m\u00eb par\u00eb, dhe gjith\u00e7ka do t\u00eb plot\u00ebsohet automatikisht.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/c067868ff73c25c3d9b65e02be64f5c9.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>Sh\u00ebrbimi i Auto Skalimit<\/strong> \u2014 parametrat e skalimit t\u00eb sh\u00ebrbimit. Zgjidhni Konfiguro Sh\u00ebrbimin e Auto Skalimit p\u00ebr t\u00eb rregulluar numrin e d\u00ebshiruar t\u00eb sh\u00ebrbimit tuaj. Caktoni numrin minimal dhe maksimal t\u00eb detyrave gjat\u00eb skalimit.<\/p>\n<p><\/p>\n<p><strong>Roli IAM p\u00ebr Sh\u00ebrbimin e Auto Skalimit<\/strong> \u2014 zgjedhim <code>AWSServiceRoleForApplicationAutoScaling_ECSService<\/code>.<\/p>\n<p><\/p>\n<p><strong>Politikat automatike t\u00eb skalimit t\u00eb detyrave<\/strong> \u2014 rregullat p\u00ebr skalimin. Jan\u00eb 2 lloje:<\/p>\n<p><\/p>\n<ol>\n<li><strong>Ndjekja e targetit<\/strong> \u2014 ndjekja e metrik\u00ebs s\u00eb synuar (p\u00ebrdorimi i CPU\/RAM ose numri i k\u00ebrkesave p\u00ebr secil\u00ebn detyr\u00eb). P\u00ebr shembull, ne duam q\u00eb ngarkesa mesatare e procesorit t\u00eb jet\u00eb 85%, kur ajo t\u00eb rritet m\u00eb shum\u00eb, detyrat e reja do t\u00eb shtohen deri sa t\u00eb arrij\u00eb vler\u00ebn e synuar. N\u00ebse ngarkesa \u00ebsht\u00eb m\u00eb e vog\u00ebl, detyrat do t\u00eb hiqen, p\u00ebrve\u00e7 n\u00ebse mbrojtja nga ulja e skalimit nuk \u00ebsht\u00eb e aktivizuar (<strong>\u00c7aktivizo uljen e skalimit<\/strong>).<\/li>\n<li><strong>Skalimi n\u00eb hapa<\/strong> \u2014 reagimi ndaj ngjarjeve t\u00eb rast\u00ebsishme. K\u00ebtu mund t\u00eb konfiguroni reagimin ndaj ndonj\u00eb ngjarjeje (Alarm CloudWatch), kur kjo ndodh, mund t\u00eb shtoni ose hiqni nj\u00eb num\u00ebr t\u00eb caktuar detyrash, ose t\u00eb caktoni nj\u00eb num\u00ebr t\u00eb sakt\u00eb detyrash.<\/li>\n<\/ol>\n<p><\/p>\n<p>Sh\u00ebrbimi mund t\u00eb ket\u00eb disa rregulla skalimi, kjo mund t\u00eb jet\u00eb e dobishme, por \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb siguroheni q\u00eb ato t\u00eb mos bien n\u00eb konflikt me nj\u00ebra-tjetr\u00ebn.<\/p>\n<p><\/p>\n<h2 id=\"zaklyuchenie\">P\u00ebrfundim<\/h2>\n<p><\/p>\n<p>N\u00ebse keni ndjekur udh\u00ebzimet dhe keni p\u00ebrdorur t\u00eb nj\u00ebjtin imazh Docker, sh\u00ebrbimi juaj duhet t\u00eb kthej\u00eb nj\u00eb faqe t\u00eb till\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot t\u00eb AWS\" src=\"\/wp-content\/uploads\/2020\/07\/ac592e3194480ac8b347a3a1faf0cee0.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<ol>\n<li>Ne kemi krijuar nj\u00eb shabllon, sipas t\u00eb cilit fillojn\u00eb t\u00eb gjitha makinat n\u00eb sh\u00ebrbim. Po ashtu kemi m\u00ebsuar si t\u00eb p\u00ebrdit\u00ebsojm\u00eb makinat kur shablloni ndryshon.<\/li>\n<li>Ne kemi konfiguruar trajtimin e sinjalit t\u00eb ndalimit t\u00eb instanc\u00ebs s\u00eb pikave, k\u00ebshtu q\u00eb brenda nj\u00eb minute pas marrjes, t\u00eb gjitha detyrat aktive hiqen nga makina, duke siguruar k\u00ebshtu q\u00eb asgj\u00eb t\u00eb mos humbet apo t\u00eb nd\u00ebrpritet.<\/li>\n<li>Ne kemi ngritur nj\u00eb balancues, p\u00ebr t\u00eb shp\u00ebrndar\u00eb ngarkes\u00ebn n\u00eb m\u00ebnyr\u00eb uniforme mes makinave.<\/li>\n<li>Ne kemi krijuar nj\u00eb sh\u00ebrbim q\u00eb funksionon n\u00eb instanca pikash, duke reduktuar k\u00ebshtu shpenzimet p\u00ebr makinat rreth 3 her\u00eb.<\/li>\n<li>Ne kemi konfiguruar auto skalimin n\u00eb t\u00eb dy drejtimet, p\u00ebr t\u00eb p\u00ebrballuar rritjen e ngarkesave, nd\u00ebrkoh\u00eb q\u00eb nuk paguajm\u00eb p\u00ebr papun\u00ebsi.<\/li>\n<li>Ne p\u00ebrdorim Ofruesin e Kapacitetit, n\u00eb m\u00ebnyr\u00eb q\u00eb aplikacioni t\u00eb menaxhoj\u00eb infrastruktur\u00ebn (makinat), dhe jo e kund\u00ebrta.<\/li>\n<li>Ne jemi t\u00eb shk\u00eblqyer.<\/li>\n<\/ol>\n<p><\/p>\n<p>N\u00ebse keni shp\u00ebrthime t\u00eb parashikueshme t\u00eb ngarkes\u00ebs, p\u00ebr shembull, n\u00ebse b\u00ebni promovime n\u00eb nj\u00eb email t\u00eb madh, mund t\u00eb konfiguroni skalimin sipas <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/autoscaling\/application\/userguide\/application-auto-scaling-scheduled-scaling.html\">orarit<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Nj\u00eb tjet\u00ebr mund\u00ebsi \u00ebsht\u00eb shkall\u00ebzimi n\u00eb baz\u00eb t\u00eb t\u00eb dh\u00ebnave nga pjes\u00eb t\u00eb ndryshme t\u00eb sistemit tuaj. P\u00ebr shembull, ne kemi funksionalitetin <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.adapty.io\/promo-campaigns\">e d\u00ebrgimit t\u00eb ofertave promovuese individuale<\/a><\/noindex> p\u00ebrdoruesve t\u00eb aplikacionit mobil. Ndonj\u00ebher\u00eb, fushata d\u00ebrgohet tek 1M+ njer\u00ebz. Pas k\u00ebsaj, gjithmon\u00eb v\u00ebrehet nj\u00eb rritje e madhe n\u00eb k\u00ebrkesat p\u00ebr API, sepse shum\u00eb p\u00ebrdorues hyjn\u00eb n\u00eb aplikacion nj\u00ebkoh\u00ebsisht. Prandaj, n\u00ebse ne shohim se numri i njoftimeve p\u00ebr d\u00ebrgimin e promos \u00ebsht\u00eb rritur ndjesh\u00ebm m\u00eb shum\u00eb se treguesit standard\u00eb, mund t\u00eb aktivizojm\u00eb menj\u00ebher\u00eb disa makina dhe detyra shtes\u00eb p\u00ebr t'u p\u00ebrgatitur p\u00ebr ngarkes\u00ebn.<\/p>\n<p><\/p>\n<p>Do t\u00eb isha i lumtur n\u00ebse n\u00eb komentet do t\u00eb ndani raste interesante t\u00eb p\u00ebrdorimit t\u00eb instancave spot dhe ECS apo di\u00e7ka mbi shkall\u00ebzimin.<\/p>\n<p><\/p>\n<p>S\u00eb shpejti do t\u00eb publikojm\u00eb artikuj mbi m\u00ebnyr\u00ebn se si ne p\u00ebrpunojm\u00eb mij\u00ebra ngjarje analitike n\u00eb sekond\u00eb n\u00eb nj\u00eb arkitektur\u00eb kryesisht pa server (me fonde) dhe si \u00ebsht\u00eb e organizuar deploy-i i sh\u00ebrbimeve duke p\u00ebrdorur GitLab CI dhe Terraform Cloud.<\/p>\n<p><\/p>\n<p>Na ndiqni, do t\u00eb jet\u00eb interesante!<\/p>\n<p class=\"for_users_only_msg\">Vet\u00ebm p\u00ebrdoruesit e regjistruar mund t\u00eb marrin pjes\u00eb n\u00eb anket\u00eb. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Hyni<\/a><\/noindex>, ju lutem.<\/p>\n<h2 class=\"default-block__polling-title\">A p\u00ebrdorni instanca spot n\u00eb prodhim?<\/h2>\n<ul class=\"poll-result\">\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">22,2%<\/strong>Po6<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent  poll-result__data-percent_winner\">66,7%<\/strong>Jo18<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">11,1%<\/strong>M\u00ebsoj p\u00ebr to nga nj\u00eb artikull, planifikoj t\u2019i p\u00ebrdor3<\/p>\n<\/li>\n<\/ul>\n<p>    27 p\u00ebrdorues votuan. 5 p\u00ebrdorues abstenuan.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/509790\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041a\u0438\u0440\u0438\u043b\u043b, \u044f CTO \u0432 Adapty. \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043d\u0430\u0448\u0435\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 AWS, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u0438 \u0440\u0430\u0441\u0445\u043e\u0434\u044b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 3 \u0440\u0430\u0437\u0430 \u0437\u0430 \u0441\u0447\u0451\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043f\u043e\u0442\u043e\u0432\u044b\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432 \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0430\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0437\u043e\u0440 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":87394,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-87393","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041a\u0438\u0440\u0438\u043b\u043b, \u044f CTO \u0432 Adapty.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/sozdanie-masshtabiruemogo-api-na-spotovyh-instansah-aws\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e API \u043d\u0430 \u0441\u043f\u043e\u0442\u043e\u0432\u044b\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430\u0445 AWS | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041a\u0438\u0440\u0438\u043b\u043b, \u044f CTO \u0432 Adapty.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/sozdanie-masshtabiruemogo-api-na-spotovyh-instansah-aws\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-07T23:42:02+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-07T23:42:02+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Krijimi i nj\u00eb API t\u00eb shkall\u00ebzuesh\u00ebm n\u00eb instancat spot AWS | ProHoster","description":"P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve! M\u00eb quajm\u00eb Kirill, jam CTO n\u00eb Adapty.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/sozdanie-masshtabiruemogo-api-na-spotovyh-instansah-aws","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e API \u043d\u0430 \u0441\u043f\u043e\u0442\u043e\u0432\u044b\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430\u0445 AWS | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041a\u0438\u0440\u0438\u043b\u043b, \u044f CTO \u0432 Adapty.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/sozdanie-masshtabiruemogo-api-na-spotovyh-instansah-aws","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-07T23:42:02+00:00","article:modified_time":"2020-07-07T23:42:02+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87393","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:44:41","updated":"2022-09-28 14:12:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/87393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=87393"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/87393\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/87394"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=87393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=87393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=87393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}