{"id":52367,"date":"2019-11-07T00:00:00","date_gmt":"2019-11-06T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/pereshel-s-terraform-na-cloudformation-i-pozhalel"},"modified":"2020-02-18T14:00:04","modified_gmt":"2020-02-18T11:00:04","slug":"pereshel-s-terraform-na-cloudformation-i-pozhalel","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/pereshel-s-terraform-na-cloudformation-i-pozhalel","title":{"rendered":"Kalova nga Terraform n\u00eb CloudFormation \u2014 dhe e pash\u00eb se b\u00ebra gabim","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>T\u00eb paraqes\u00ebsh infrastruktur\u00ebn si kod n\u00eb nj\u00eb format tekstual t\u00eb rip\u00ebrs\u00ebritsh\u00ebm \u00ebsht\u00eb nj\u00eb praktik\u00eb e thjesht\u00eb dhe m\u00eb e mir\u00eb p\u00ebr sistemet, me t\u00eb cil\u00ebn nuk duhet t\u00eb merresh. Kjo praktik\u00eb ka marr\u00eb emrin \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Infrastructure_as_code\">Infrastruktur\u00eb si Kod<\/a><\/noindex>, dhe deri m\u00eb tani, p\u00ebr ta realizuar at\u00eb, ve\u00e7an\u00ebrisht n\u00eb AWS, ekzistojn\u00eb dy mjete popullore: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/\">Terraform<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/cloudformation\/\">CloudFormation<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kalova nga Terraform n\u00eb CloudFormation \u2014 dhe e pash\u00eb se b\u00ebra gabim\" src=\"\/wp-content\/uploads\/2019\/11\/e33084fb81ca06107b341eef01e69adc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Po krahason p\u00ebrvoj\u00ebn time me Terraform dhe CloudFormation<\/em><\/p>\n<p><\/p>\n<p>Para se t\u00eb vija n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.twitch.tv\/\">Twitch<\/a><\/noindex> (po ashtu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.businessinsider.com\/amazon-buys-twitch-2014-8\">Amazon Jr.<\/a><\/noindex>) kam punuar <noindex><a rel=\"nofollow\" href=\"https:\/\/www.signalfx.com\/\">n\u00eb nj\u00eb startup<\/a><\/noindex> dhe p\u00ebr rreth tre vjet kam p\u00ebrdorur Terraform. N\u00eb vendin e ri, un\u00eb gjithashtu kam p\u00ebrdorur shum\u00eb Terraform, dhe m\u00eb pas kompania kaloi n\u00eb t\u00eb gjith\u00eb sistemin e Amazon, duke p\u00ebrfshir\u00eb CloudFormation. Un\u00eb punova me p\u00ebrkushtim p\u00ebr t\u00eb zhvilluar praktikat m\u00eb t\u00eb mira p\u00ebr t\u00eb dy ato, dhe p\u00ebrdorja t\u00eb dyja mjetet n\u00eb procese t\u00eb pun\u00ebs shum\u00eb t\u00eb komplikuara n\u00eb nivel organizate. M\u00eb von\u00eb, pas nj\u00eb vler\u00ebsimi t\u00eb kujdessh\u00ebm t\u00eb pasojave t\u00eb kalimit nga Terraform n\u00eb CloudFormation, arrita n\u00eb p\u00ebrfundimin se Terraform, ndoshta, \u00ebsht\u00eb zgjedhja m\u00eb e mir\u00eb p\u00ebr organizat\u00ebn.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"terraform-uzhasnyy\">Terraform \u00ebsht\u00eb i tmerrsh\u00ebm<\/h2>\n<p><\/p>\n<h3 id=\"beta-versiya-po\">Beta-version e softuerit<\/h3>\n<p><\/p>\n<p>Terraform ende nuk ka l\u00ebshuar as versionin 1.0, dhe kjo \u00ebsht\u00eb nj\u00eb arsye e fort\u00eb p\u00ebr ta mos p\u00ebrdorur. Q\u00eb nga hera e par\u00eb q\u00eb e provova, ka ndryshuar shum\u00eb, por at\u00ebher\u00eb <code>terraform apply<\/code> shpesh prishtypte pas disa p\u00ebrdit\u00ebsimeve ose thjesht pas disa vjet\u00ebsh p\u00ebrdorimi. do t\u00eb thosha se \"tani gjith\u00e7ka \u00ebsht\u00eb ndryshe\", por... k\u00ebshtu duket se thon\u00eb t\u00eb gjith\u00eb, apo jo? Ka ndryshime, t\u00eb papajtueshme me versionet e m\u00ebparshme, megjith\u00ebse ato jan\u00eb t\u00eb arsyeshme, dhe madje ndjehet se sintaksa dhe abstraksionet e depozitave t\u00eb burimeve tani jan\u00eb aty ku duhet. Instrumenti duket se \u00ebsht\u00eb v\u00ebrtet b\u00ebr\u00eb m\u00eb i mir\u00eb, por... :-0<\/p>\n<p><\/p>\n<p>Nga ana tjet\u00ebr, AWS ka b\u00ebr\u00eb nj\u00eb pun\u00eb t\u00eb mir\u00eb duke mb\u00ebshtetur pajtueshm\u00ebrin\u00eb me versionet e m\u00ebparshme. T\u00eb gjith\u00eb ndoshta p\u00ebr shkak se sh\u00ebrbimet e tyre shpesh testohen mir\u00eb brenda organizat\u00ebs dhe m\u00eb pas, pas rinaming, publikohen. Pra \"kan\u00eb b\u00ebr\u00eb mir\u00eb\" \u00ebsht\u00eb ende e paqart\u00eb p\u00ebr t\u00eb th\u00ebn\u00eb. T\u00eb mbash pajtueshm\u00ebrin\u00eb me versionet e m\u00ebparshme t\u00eb API-s\u00eb p\u00ebr nj\u00eb sistem kaq t\u00eb shum\u00ebllojsh\u00ebm dhe kompleks si AWS \u00ebsht\u00eb jasht\u00ebzakonisht e v\u00ebshtir\u00eb. \u00c7dokush q\u00eb ka pasur p\u00ebrvoj\u00eb n\u00eb mbajtjen e API-ve publike, t\u00eb p\u00ebrdorura gjithashtu kaq gjer\u00ebsisht, duhet t\u00eb kuptoj\u00eb se sa e v\u00ebshtir\u00eb \u00ebsht\u00eb t\u00eb b\u00ebsh k\u00ebt\u00eb p\u00ebr kaq shum\u00eb vite. E megjithat\u00eb, sjellja e CloudFormation nuk ka ndryshuar asnj\u00ebher\u00eb p\u00ebr aq sa e mbaj mend.<\/p>\n<p><\/p>\n<h3 id=\"znakomsya-noga-eto-pulya\">Njoftohu, k\u00ebmb\u00eb... kjo \u00ebsht\u00eb nj\u00eb plumb<\/h3>\n<p><\/p>\n<p>Sa di un\u00eb, p\u00ebr t\u00eb fshir\u00eb nj\u00eb burim <strong>t\u00eb jashtme<\/strong> Nj\u00eb stek CloudFormation nuk mund t\u00eb importohet nga steku im CF. Situata \u00ebsht\u00eb e ngjashme me Terraform. Ai lejon importimin e burimeve ekzistuese n\u00eb stekun tuaj. Funksioni, mund t\u00eb thuhet, \u00ebsht\u00eb mahnit\u00ebs, por me nj\u00eb forc\u00eb t\u00eb madhe vjen edhe nj\u00eb p\u00ebrgjegj\u00ebsi e madhe. Sapo t\u00eb shtosh nj\u00eb burim n\u00eb stek, gjat\u00eb koh\u00ebs q\u00eb punon me stekun t\u00ebnd, nuk mund ta fshish ose ndryshosh at\u00eb burim. Nj\u00eb her\u00eb kjo kishte pasoja. Disa her\u00eb n\u00eb faqen e Twitch, dikush, pa ndonj\u00eb q\u00ebllim t\u00eb keq, rast\u00ebsisht importoi nj\u00eb grup sigurie AWS n\u00eb stekun e tij Terraform. E futi disa komanda dhe... grupi i siguris\u00eb (bashk\u00eb me trafikun e ardhsh\u00ebm) zhduku.<\/p>\n<p><\/p>\n<h2 id=\"terraform-velikiy\">Terraform i Madh<\/h2>\n<p><\/p>\n<h3 id=\"vosstanovlenie-iz-nepolnyh-sostoyaniy\">Rikuperimi nga gjendje t\u00eb paplota<\/h3>\n<p><\/p>\n<p>Ndonj\u00ebher\u00eb CloudFormation nuk mund t\u00eb kaloj\u00eb plot\u00ebsisht nga nj\u00eb gjendje n\u00eb tjet\u00ebr. P\u00ebrs\u00ebri do t\u00eb p\u00ebrpiqet t\u00eb kthehet n\u00eb gjendjen e m\u00ebparshme. Fatkeq\u00ebsisht, kjo nuk \u00ebsht\u00eb gjithmon\u00eb e mundur. T\u00eb rikuperosh at\u00eb q\u00eb \u00ebsht\u00eb shkat\u00ebrruar mund t\u00eb jet\u00eb frik\u00ebsuese \u2014 kurr\u00eb nuk e di n\u00ebse CloudFormation do t\u00eb g\u00ebzohet q\u00eb e thyejn\u00eb at\u00eb \u2014 edhe n\u00ebse \u00ebsht\u00eb p\u00ebr ta riparuar. Ai nuk di t\u00eb p\u00ebrcaktoj\u00eb n\u00ebse do t\u00eb kthehet apo jo n\u00eb gjendjen e m\u00ebparshme dhe si rregull ngec p\u00ebr or\u00eb, duke pritur nj\u00eb mrekulli.<\/p>\n<p><\/p>\n<p>Terraform, nga ana tjet\u00ebr, ka prirjen t\u00eb rikuperohet pas kalimeve t\u00eb d\u00ebshtuara n\u00eb nj\u00eb m\u00ebnyr\u00eb m\u00eb t\u00eb eleganteshme dhe ofron nj\u00eb set t\u00eb zgjeruar alat\u00ebsh p\u00ebr debug.<\/p>\n<p><\/p>\n<h3 id=\"bolee-yasnye-izmeneniya-v-sostoyaniya-dokumenta\">Ndryshime m\u00eb t\u00eb qarta n\u00eb gjendjet e dokumentit<\/h3>\n<p><\/p>\n<blockquote><p>\"B mir\u00eb, balancuesi i ngarkes\u00ebs, po ndryshon. Por si?\"<\/p>\n<p>\u2014inxhinier i shqet\u00ebsuar, i gatsh\u00ebm p\u00ebr t\u00eb shtypur butonin \"prano\".<\/p><\/blockquote>\n<p>Ndonj\u00ebher\u00eb m\u00eb nevojitet t\u00eb b\u00ebj disa manovra me balancuesin e ngarkes\u00ebs n\u00eb stekun CloudFormation \u2014 p\u00ebr shembull, t\u00eb shtoj numrin e portit ose t\u00eb ndryshoj grupin e siguris\u00eb. Ndryshimet ClouFormation i tregon dob\u00ebt. Un\u00eb, si n\u00eb gjilp\u00ebra, kontrolloj dhjet\u00eb her\u00eb skedarin yaml, p\u00ebr t'u siguruar q\u00eb nuk kam fshier asgj\u00eb t\u00eb nevojshme dhe as nuk kam shtuar di\u00e7ka t\u00eb tep\u00ebrt.<\/p>\n<p><\/p>\n<p>Terraform n\u00eb k\u00ebt\u00eb drejtim \u00ebsht\u00eb shum\u00eb m\u00eb transparent. Ndonj\u00ebher\u00eb ai madje \u00ebsht\u00eb tep\u00ebr transparent (lexo: bezdissh\u00ebm). Fatmir\u00ebsisht, n\u00eb versionin e fundit u p\u00ebrfshi nj\u00eb p\u00ebrmir\u00ebsim n\u00eb paraqitjen e ndryshimeve - tani \u00ebsht\u00eb e qart\u00eb se \u00e7far\u00eb ndryshon.<\/p>\n<p><\/p>\n<h3 id=\"gibkost\">Fleksibiliteti<\/h3>\n<p><\/p>\n<blockquote><p>Shkruani softuerin nga prapavija.<\/p><\/blockquote>\n<p>Duke folur ndersh\u00ebm, dallimi m\u00eb i r\u00ebnd\u00ebsish\u00ebm i softuerit q\u00eb q\u00ebndron p\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb \u00ebsht\u00eb aft\u00ebsia p\u00ebr t'u p\u00ebrshtatur me ndryshimet. \u00c7do softuer shkruani nga e kund\u00ebrta. M\u00eb shpesh kam gabuar n\u00eb at\u00eb q\u00eb kam marr\u00eb nj\u00eb sh\u00ebrbim \"t\u00eb thjesht\u00eb\" dhe pastaj filloja t\u00eb futja gjith\u00e7ka n\u00eb nj\u00eb stek t\u00eb vet\u00ebm CloudFormation ose Terraform. Dhe nj\u00eblloj, pas disa muajsh doli n\u00eb pah se un\u00eb e kuptova t\u00eb gjith\u00eb ndryshe, dhe sh\u00ebrbimi n\u00eb fakt nuk ishte i thjesht\u00eb! Dhe tani duhet t\u00eb ndara ndonj\u00eb m\u00ebnyr\u00eb stekun e madh n\u00eb pjes\u00ebt e vogla. Kur punoni me CloudFormation, kjo \u00ebsht\u00eb e mundur vet\u00ebm pasi t\u00eb riprodhoni stekun ekzistues, dhe un\u00eb, me bazat e t\u00eb dh\u00ebnave t\u00eb mia, nuk b\u00ebj k\u00ebt\u00eb. Terraformi lejonte ndarjen e stekut dhe p\u00ebrb\u00ebrjen e tij n\u00eb pjes\u00eb m\u00eb t\u00eb vogla dhe m\u00eb t\u00eb kuptueshme.<\/p>\n<p><\/p>\n<h3 id=\"moduli-v-git\">Modulet n\u00eb git<\/h3>\n<p><\/p>\n<p>T\u00eb ndash kodin Terraform nd\u00ebrmjet shum\u00eb stivave \u00ebsht\u00eb shum\u00eb m\u00eb e leht\u00eb sesa me kodin CloudFormation. Me Terraform mund t\u00eb vendosni kodin n\u00eb nj\u00eb depo git dhe ta referoni at\u00eb duke p\u00ebrdorur kontrollin semantik t\u00eb versioneve. Cilido q\u00eb ka akses n\u00eb k\u00ebt\u00eb depo mund ta p\u00ebrdor\u00eb s\u00ebrish kodin e p\u00ebrbashk\u00ebt. Ekuivalenti n\u00eb CloudFormation \u00ebsht\u00eb S3, por ai nuk ka t\u00eb nj\u00ebjtat avantazhe dhe nuk ka asnj\u00eb arsye p\u00ebr t\u00eb cil\u00ebn do t\u00eb duhej t\u00eb heqim dor\u00eb nga git n\u00eb favor t\u00eb S3.<\/p>\n<p><\/p>\n<p>Organizata po rritej dhe aft\u00ebsia p\u00ebr t\u00eb ndar\u00eb stivat e p\u00ebrbashk\u00ebta arriti nivelin kritik. Me Terraform, kjo ndodh leht\u00ebsisht dhe natyrsh\u00ebm, nd\u00ebrsa CloudFormation do t'ju detyroj\u00eb t\u00eb kaloni disa ringa p\u00ebrpara se t\u00eb arrini di\u00e7ka t\u00eb ngjashme.<\/p>\n<p><\/p>\n<h3 id=\"operations-as-code\">Operacione si kod<\/h3>\n<p><\/p>\n<blockquote><p>\"T\u00eb scriptuara dhe mjaft\".<\/p>\n<p>\u2014inzhinieri 3 vjet para se t\u00eb shpik\u00eb bi\u00e7iklet\u00ebn Terraform.<\/p><\/blockquote>\n<p>Kur b\u00ebhet fjal\u00eb p\u00ebr zhvillimin e softuerit, Go ose nj\u00eb program n\u00eb Java nuk \u00ebsht\u00eb vet\u00ebm kod.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kalova nga Terraform n\u00eb CloudFormation \u2014 dhe e pash\u00eb se b\u00ebra gabim\" src=\"\/wp-content\/uploads\/2019\/11\/a5c61fd318b9b5aa62ebb69e38ca1b0e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Kod si Kod<\/em><\/p>\n<p><\/p>\n<p>Sepse ka edhe infrastruktur\u00ebn n\u00eb t\u00eb cil\u00ebn ajo punon.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kalova nga Terraform n\u00eb CloudFormation \u2014 dhe e pash\u00eb se b\u00ebra gabim\" src=\"\/wp-content\/uploads\/2019\/11\/301c0323baa18563f05503e701af069b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Infrastruktur\u00eb si Kod<\/em><\/p>\n<p><\/p>\n<p>Por nga vjen ajo aty? Si e monitoroni? Ku \u00ebsht\u00eb kodi juaj? A kan\u00eb nevoj\u00eb zhvilluesit p\u00ebr leje p\u00ebr akses?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kalova nga Terraform n\u00eb CloudFormation \u2014 dhe e pash\u00eb se b\u00ebra gabim\" src=\"\/wp-content\/uploads\/2019\/11\/5cb0b6f720682b7bb6d5f485287b618b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Operacione si Kod<\/em><\/p>\n<p><\/p>\n<blockquote><p>T\u00eb jesh zhvillues i softuerit nuk \u00ebsht\u00eb vet\u00ebm t\u00eb shkruash kod.<\/p><\/blockquote>\n<p>Jo vet\u00ebm AWS: sigurisht q\u00eb po p\u00ebrdorni sh\u00ebrbime nga ofrues t\u00eb tjer\u00eb. SignalFx, PagerDuty ose Github. Ndoshta keni nj\u00eb server t\u00eb brendsh\u00ebm Jenkins p\u00ebr CI\/CD ose nj\u00eb panel t\u00eb brendsh\u00ebm Grafana p\u00ebr monitorim. Infrastruktur\u00eb si Kod zgjidhet p\u00ebr arsye t\u00eb ndryshme, dhe \u00e7do arsyetim \u00ebsht\u00eb po aq i r\u00ebnd\u00ebsish\u00ebm p\u00ebr \u00e7do gj\u00eb q\u00eb lidhet me softuerin.<\/p>\n<p><\/p>\n<p>Kur punoja n\u00eb Twitch, ne shpejtonim sh\u00ebrbimet brenda sistemeve t\u00eb p\u00ebrziera t\u00eb integruara dhe sistemeve t\u00eb AWS Amazon. Ne marksim dhe mb\u00ebshtesim shum\u00eb mikrosisteme, duke rritur shpenzimet operuese. Diskutimet ndodhnin rreth k\u00ebsaj tema:<\/p>\n<p><\/p>\n<ul>\n<li><strong>Un\u00eb<\/strong>: Pff, shum\u00eb l\u00ebvizje p\u00ebr t\u00eb nxitur nj\u00eb mikros\u00ebrvish. K\u00ebt\u00eb gj\u00eb do t\u00eb duhet ta p\u00ebrdor p\u00ebr t\u00eb krijuar nj\u00eb llogari AWS (ne shkonim drejt 2 llogarive p\u00ebr <strong>mikros\u00ebrvish<\/strong>), m\u00eb pas k\u00ebt\u00eb \u2014 p\u00ebr konfigurimin e njoftimeve, k\u00ebt\u00eb \u2014 p\u00ebr depozitarin e kodit, dhe k\u00ebt\u00eb \u2014 p\u00ebr list\u00ebn e adresave t\u00eb post\u00ebs elektronike, dhe k\u00ebt\u00eb...<\/li>\n<li><strong>T\u00eb dh\u00ebnat<\/strong>: Do ta scriptim dhe k\u00ebshtu.<\/li>\n<li><strong>Un\u00eb<\/strong>: Mir\u00eb, por skripti vet\u00eb do t\u00eb ndryshoj\u00eb. Do t\u00eb duhej nj\u00eb m\u00ebnyr\u00eb p\u00ebr t\u00eb verifikuar q\u00eb t\u00eb gjitha k\u00ebto gj\u00ebra t\u00eb integruara t\u00eb Amazon-it kan\u00eb nj\u00eb gjendje aktuale.<\/li>\n<li><strong>T\u00eb dh\u00ebnat<\/strong>: D\u00ebgjohet mir\u00eb. Dhe p\u00ebr k\u00ebt\u00eb do t\u00eb shkruajm\u00eb nj\u00eb skript.<\/li>\n<li><strong>Un\u00eb<\/strong>: Shk\u00eblqyer! Dhe skripti me siguri do t\u2019i nevojitet disa parametra. A mund t\u2019i pranoj\u00eb ata?<\/li>\n<li><strong>T\u00eb dh\u00ebnat<\/strong>: Po, do t\u2019i pranoj\u00eb, ku ta \u00e7osh!<\/li>\n<li><strong>Un\u00eb<\/strong>: Procesi mund t\u00eb ndryshoj\u00eb, do t\u00eb humbas\u00eb p\u00ebrputhshm\u00ebrin\u00eb prapa. Do t\u00eb nevojitet nj\u00eb lloj kontrolli semantik t\u00eb versioneve.<\/li>\n<li><strong>T\u00eb dh\u00ebnat<\/strong>: Ide e shk\u00eblqyer!<\/li>\n<li><strong>Un\u00eb<\/strong>: Mjetet mund t\u00eb ndryshojn\u00eb manualisht, brenda nd\u00ebrfaqes s\u00eb p\u00ebrdoruesit. Na nevojitet nj\u00eb m\u00ebnyr\u00eb p\u00ebr ta verifikuar dhe rregulluar k\u00ebt\u00eb.<\/li>\n<\/ul>\n<p><\/p>\n<p><em>\u20263 vjet m\u00eb von\u00eb:<\/em><\/p>\n<p><\/p>\n<ul>\n<li><strong>T\u00eb dh\u00ebnat<\/strong>: Dhe k\u00ebshtu na doli terraform.<\/li>\n<\/ul>\n<p><\/p>\n<p>Mori e basht se: pavar\u00ebsisht se je <strong>n\u00eb thell\u00ebsi me t\u00eb gjitha gj\u00ebrat e Amazon-it<\/strong>, ti prap\u00eb p\u00ebrdor di\u00e7ka q\u00eb nuk \u00ebsht\u00eb nga AWS, dhe k\u00ebto sh\u00ebrbime kan\u00eb nj\u00eb gjendje q\u00eb p\u00ebrdor nj\u00eb gjuh\u00eb p\u00ebr konfigurimin p\u00ebr ta sinkronizuar at\u00eb gjendje.<\/p>\n<p><\/p>\n<h3 id=\"cloudformation-lambda-vs-git-moduli-terraform\">CloudFormation lambda vs modulat git t\u00eb terraform<\/h3>\n<p><\/p>\n<p>lambda \u00ebsht\u00eb zgjidhja e CloudFormation p\u00ebr \u00e7\u00ebshtjen e logjik\u00ebs s\u00eb p\u00ebrdoruesit. Me lambda mund t\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AWSCloudFormation\/latest\/UserGuide\/macros-example.html\">krijosh makros<\/a><\/noindex> ose <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AWSCloudFormation\/latest\/UserGuide\/walkthrough-custom-resources-lambda-lookup-amiids.html\">burim t\u00eb p\u00ebrdoruesit<\/a><\/noindex>. Ky qasje paraqet v\u00ebshtir\u00ebsi shtes\u00eb q\u00eb nuk ekzistojn\u00eb n\u00eb kontrollin semantik t\u00eb versioneve t\u00eb moduleve git n\u00eb Terraform. Problemi m\u00eb i madh p\u00ebr mua ishte menaxhimi i lejeve p\u00ebr t\u00eb gjitha k\u00ebto lambda p\u00ebrdoruesish (dhe kjo \u00ebsht\u00eb dhjet\u00ebra llogari AWS). Nj\u00eb tjet\u00ebr problem i r\u00ebnd\u00ebsish\u00ebm ishte ai i tipit \u00ab\u00e7far\u00eb erdhi par\u00eb \u2013 pula apo vez\u00eb?\u00bb: kjo ishte e lidhur me kodin lambda. Kjo funksion vet\u00eb \u00ebsht\u00eb infrastruktura dhe kodi, dhe ajo vet\u00eb ka nevoj\u00eb p\u00ebr monitorim dhe p\u00ebrdit\u00ebsime. Guri i fundit ishte v\u00ebshtir\u00ebsia n\u00eb p\u00ebrdit\u00ebsimin semantik t\u00eb ndryshimeve t\u00eb kodit lambda; duhej b\u00ebr\u00eb q\u00eb veprimet e grumbullit t\u00eb mos ndryshonin midis ekzekutimeve pa nj\u00eb urdh\u00ebr t\u00eb drejtp\u00ebrdrejt\u00eb.<\/p>\n<p><\/p>\n<p>I remember wanting to create a canary deployment for the Elastic Beanstalk environment with a classic load balancer. The easiest way would have been to make a second deployment for EB alongside the production environment, taking one more step: merging the auto-scaling group of the canary deployment with the LB deployment in the production environment. And since Terraform uses <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/docs\/providers\/aws\/r\/elastic_beanstalk_environment.html#autoscaling_groups\">ASG beantalk as output<\/a><\/noindex>, this would require 4 extra lines of code in Terraform. When I asked if there was a comparable solution in CloudFormation, I was pointed to a whole repository on Git with a deployment pipeline and more: all this just to achieve those unfortunate 4 lines of Terraform code.<\/p>\n<p><\/p>\n<h3 id=\"on-luchshe-obnaruzhivaet-dreyf\">It detects drift better<\/h3>\n<p><\/p>\n<blockquote><p>Ensure that reality matches expectations.<\/p><\/blockquote>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/blogs\/aws\/new-cloudformation-drift-detection\/\">Drift detection<\/a><\/noindex> \u2014 is a very powerful operations as code feature, as it helps ensure that reality matches expectations. It is available with both CloudFormation and Terraform. However, as the stack grows, drift detection in CloudFormation yielded more false positives.<\/p>\n<p><\/p>\n<p>With Terraform, you have much more advanced lifecycle hooks for drift detection. For example, you can enter the command <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/docs\/configuration\/resources.html#ignore_changes\">ignore_changes<\/a><\/noindex> directly in the ECS task definition if you want to ignore changes to a specific task definition without ignoring changes to the entire ECS deployment.<\/p>\n<p><\/p>\n<h2 id=\"cdk-i-buduschee-cloudformation\">CDK and the future of CloudFormation<\/h2>\n<p><\/p>\n<p>CloudFormation is difficult to manage at large, cross-infrastructure scales. Many of these challenges have been acknowledged, and the tool needs things like <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/en_pv\/cdk\/latest\/guide\/home.html\">aws-cdk<\/a><\/noindex>, a framework for defining cloud infrastructure as code and passing it through AWS CloudFormation. It will be interesting to see what awaits aws-cdk in the future, but it will struggle to compete with Terraform's other advantages; major changes will be needed to bring CloudFormation up to speed.<\/p>\n<p><\/p>\n<h3 id=\"chtoby-terraform-ne-razocharoval\">To avoid disappointing Terraform<\/h3>\n<p><\/p>\n<blockquote><p>Ky \u00ebsht\u00eb \u00abinfrastruktura si KOD\u00bb, jo \u00absi tekst\u00bb.<\/p><\/blockquote>\n<p>My first impression of Terraform was quite negative. I think I just didn't understand the approach. Almost all engineers initially perceive it involuntarily as a text format that needs to be converted into the desired infrastructure. THIS IS NOT NECESSARY.<\/p>\n<p><\/p>\n<h3 id=\"propisnye-istiny-horoshey-razrabotki-po-otnosyatsya-i-k-terraform\">The basics of good software development apply to Terraform as well.<\/h3>\n<p><\/p>\n<p>Kam pash\u00eb se shum\u00eb praktika, t\u00eb pranuara p\u00ebr krijimin e kodit t\u00eb mir\u00eb, injorohen n\u00eb Terraform. Keni m\u00ebsuar p\u00ebr vite me radh\u00eb p\u00ebr t\u00eb b\u00ebr\u00eb nj\u00eb programues t\u00eb mir\u00eb. Mos e flakni k\u00ebt\u00eb p\u00ebrvoj\u00eb vet\u00ebm sepse po punoni me Terraform. Aforizmat e mira t\u00eb zhvillimit t\u00eb softuerit vlejn\u00eb edhe p\u00ebr Terraform.<\/p>\n<p><\/p>\n<h3 id=\"kak-uzh-kod-i-ne-zadokumentirovat\">Si mund t\u00eb kodosh dhe t\u00eb mos e dokumentosh at\u00eb?<\/h3>\n<p><\/p>\n<p>Kam hasur steke t\u00eb m\u00ebdha Terraform n\u00eb m\u00ebnyr\u00eb t\u00eb plot\u00eb pa dokumentacion. Si mund t\u00eb shkruash kod p\u00ebr faqe pa dokumentacion fare? Shto dokumentacion q\u00eb shpjegon tuajin <strong>kod<\/strong> Terraform (theksi k\u00ebtu n\u00eb fjal\u00ebn \u00abkod\u00bb), pse ky seksion \u00ebsht\u00eb kaq i r\u00ebnd\u00ebsish\u00ebm dhe \u00e7far\u00eb b\u00ebni.<\/p>\n<p><\/p>\n<h3 id=\"kak-mozhno-razvorachivat-servisy-kotorye-nekogda-byli-odnoy-bolshoy-funkciey-main\">Si mund t\u00eb shpalosni sh\u00ebrbime, t\u00eb cilat dikur ishin nj\u00eb funksion i madh main()?<\/h3>\n<p><\/p>\n<p>Kam takuar steke shum\u00eb komplekse Terraform, t\u00eb paraqitura si nj\u00eb moduli i vet\u00ebm. Pse nuk e shpalosim softuerin k\u00ebshtu? Pse i ndajm\u00eb funksionet e m\u00ebdha n\u00eb m\u00eb t\u00eb vogla? T\u00eb nj\u00ebjtat p\u00ebrgjigje vlejn\u00eb edhe p\u00ebr Terraform. N\u00ebse moduli juaj \u00ebsht\u00eb shum\u00eb i madh \u2014 duhet ta ndani n\u00eb module m\u00eb t\u00eb vogla.<\/p>\n<p><\/p>\n<h3 id=\"razve-vasha-kompaniya-ne-polzuetsya-bibliotekami\">A nuk p\u00ebrdor kompania juaj biblioteka?<\/h3>\n<p><\/p>\n<p>Kam par\u00eb inxhinier\u00eb q\u00eb, me nisjen e nj\u00eb projekti t\u00eb ri p\u00ebrmes Terraform, thjesht kopjonin dhe ngjisnin copa t\u00eb m\u00ebdha nga projekte t\u00eb tjera n\u00eb t\u00eb vetat, dhe pastaj i rregullonin derisa t\u00eb fillonin t\u00eb funksiononin. A do t\u00eb punonit ju k\u00ebshtu me \u00abkodin prodhues\u00bb n\u00eb kompanin\u00eb tuaj? Ne nuk i p\u00ebrdorim bibliotekat pa q\u00ebllim. Po, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=PAAkCSZUG1c&amp;t=9m28s\">jo gjith\u00e7ka duhet t\u00eb jet\u00eb nj\u00eb bibliotek\u00eb,<\/a><\/noindex> por ku do t\u00eb ishim pa biblioteka t\u00eb p\u00ebrbashk\u00ebta n\u00eb parim?!<\/p>\n<p><\/p>\n<h3 id=\"razve-vy-ne-polzuetes-pep8-ili-gofmt\">A nuk p\u00ebrdorni PEP8 ose gofmt?<\/h3>\n<p><\/p>\n<p>N\u00eb shumic\u00ebn e gjuh\u00ebve ka nj\u00eb skem\u00eb standarde formatimi. N\u00eb Python \u00ebsht\u00eb PEP8. N\u00eb Go \u2014 gofmt. Terraform ka t\u00eb vetin: <code>terraform fmt<\/code>. P\u00ebrdorini me sh\u00ebndet! <\/p>\n<p><\/p>\n<h3 id=\"vy-stanete-polzovatsya-react-ne-znaya-javascript\">A do t\u00eb p\u00ebrdorni React, pa e ditur JavaScript-in?<\/h3>\n<p><\/p>\n<p>Modulet Terraform mund t\u00eb thjeshtojn\u00eb nj\u00eb pjes\u00eb t\u00eb infrastruktur\u00ebs komplekse q\u00eb po krijoni, por kjo nuk do t\u00eb thot\u00eb se mund t\u00eb punoni p\u00ebrs\u00ebri pa e kuptuar at\u00eb. Doni ta p\u00ebrdorni Terraform si duhet pa njohjen e burimeve? Jeni t\u00eb d\u00ebnuar: koha do t\u00eb kaloj\u00eb e ju nuk do ta zot\u00ebroni Terraform.<\/p>\n<p><\/p>\n<h3 id=\"vy-kodite-singltonami-ili-vnedryaya-zavisimosti\">A kodoni me singleton, ose duke inkuadruar var\u00ebsi?<\/h3>\n<p><\/p>\n<p>Injekti i var\u00ebsive \u00ebsht\u00eb nj\u00eb praktik\u00eb e pranuar m\u00eb e mir\u00eb p\u00ebr zhvillimin e softuerit, e preferuar nga singleton-at. Si mund t\u00eb jet\u00eb e dobishme kjo n\u00eb Terraform? Kam hasur n\u00eb modula Terraform q\u00eb varen nga stadi i larg\u00ebt. N\u00eb vend q\u00eb t\u00eb shkruani modula q\u00eb nxjerrin nga stadi i larg\u00ebt, shkruani nj\u00eb modul q\u00eb pranon paramet\u00ebr. Pastaj kaloni k\u00ebto parametra n\u00eb modul.<\/p>\n<p><\/p>\n<h3 id=\"vashi-biblioteki-delayut-desyat-veschey-horosho-ili-odnu---otlichno\">Bibliotekat tuaja b\u00ebn\u00eb dhjet\u00eb gj\u00ebra mir\u00eb apo nj\u00eb \u2014 shk\u00eblqyesh\u00ebm?<\/h3>\n<p><\/p>\n<p>Bibliotekat m\u00eb s\u00eb miri funksionojn\u00eb kur p\u00ebrqendrohen n\u00eb nj\u00eb detyr\u00eb, t\u00eb cil\u00ebn e p\u00ebrfundojn\u00eb me mjesht\u00ebri. N\u00eb vend q\u00eb t\u00eb shkruani modula t\u00eb m\u00ebdhenj Terraform q\u00eb p\u00ebrpiqen t\u00eb b\u00ebjn\u00eb gjith\u00e7ka, ndani ato n\u00eb pjes\u00eb q\u00eb b\u00ebjn\u00eb nj\u00eb gj\u00eb mir\u00eb. Mandej, kombinoni ato ashtu si\u00e7 \u00ebsht\u00eb e nevojshme.<\/p>\n<p><\/p>\n<h3 id=\"kak-vy-proizvodite-izmeneniya-v-bibliotekah-bez-obratnoy-sovmestimosti\">Si prodhoni ndryshime n\u00eb biblioteka pa p\u00ebrputhshm\u00ebri me versionet e m\u00ebparshme?<\/h3>\n<p><\/p>\n<p>Nj\u00eb modul i p\u00ebrgjithsh\u00ebm Terraform, si \u00e7do bibliotek\u00eb tjet\u00ebr, duhet t\u00eb ndihmoj\u00eb p\u00ebrdoruesit p\u00ebr t\u00eb kuptuar ndryshimet pa p\u00ebrputhshm\u00ebri me versionet e m\u00ebparshme. Kur ndodhin k\u00ebto ndryshime n\u00eb biblioteka, t\u00eb gjith\u00eb shqet\u00ebsohen, dhe po ashtu \u00ebsht\u00eb shqet\u00ebsuese kur ndodhin ndryshime pa p\u00ebrputhshm\u00ebri n\u00eb modulat Terraform. Rekomandohet t\u00eb p\u00ebrdorni git tags dhe semver kur p\u00ebrdorni modula Terraform.<\/p>\n<p><\/p>\n<h3 id=\"proizvodstvennyy-servis-zapuschen-u-vas-na-noutbuke-ili-v-datacentre\">A ka sh\u00ebrbimi juaj ndonj\u00ebher\u00eb n\u00eb laptopin tuaj apo n\u00eb nj\u00eb qend\u00ebr t\u00eb t\u00eb dh\u00ebnave?<\/h3>\n<p><\/p>\n<p>Hashicorp ka mjete si <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/docs\/cloud\/index.html\">terraform cloud<\/a><\/noindex> p\u00ebr t\u00eb ekzekutuar terraform-in tuaj. K\u00ebto sh\u00ebrbime t\u00eb centralizuara leht\u00ebsojn\u00eb menaxhimin, auditimin dhe miratimin e ndryshimeve n\u00eb terraform.<\/p>\n<p><\/p>\n<h3 id=\"razve-vy-ne-pishete-testy\">A nuk shkruani teste?<\/h3>\n<p><\/p>\n<p>Inxhinier\u00ebt pranojn\u00eb se kodi duhet testuar, por shpesh e injorojn\u00eb k\u00ebt\u00eb kur punojn\u00eb me Terraform. P\u00ebr infrastruktur\u00ebn, kjo sjell momente t\u00eb rrezikshme. Un\u00eb rekomandoj t\u00eb \u00abtestoni\u00bb ose t\u00eb \u00abkrijoni shembuj\u00bb t\u00eb grumbujve duke p\u00ebrdorur module q\u00eb mund t\u00eb vendosen n\u00eb m\u00ebnyr\u00eb korrekte p\u00ebr t'u testuar gjat\u00eb CI\/CD.<\/p>\n<p><\/p>\n<h3 id=\"terraform-i-mikroservisy\">Terraform dhe mikros\u00ebrvicat<\/h3>\n<p><\/p>\n<blockquote><p>Jeta dhe vdekja e kompanive t\u00eb mikros\u00ebrvicave varen nga shpejt\u00ebsia, azhurnimi dhe shkat\u00ebrrimi i stek\u00ebve t\u00eb rinj t\u00eb pun\u00ebs mikros\u00ebrvicave.<\/p><\/blockquote>\n<p>Problemi m\u00eb i zakonsh\u00ebm negativ q\u00eb nd\u00ebrlidhet me arkitektur\u00ebn e mikros\u00ebrvicave dhe nga i cili nuk ka shp\u00ebtim, \u00ebsht\u00eb ajo q\u00eb ka t\u00eb b\u00ebj\u00eb me pun\u00ebn dhe jo me kodin. N\u00ebse e perceptoni Terraform-in vet\u00ebm si nj\u00eb mjet p\u00ebr t\u00eb automatizuar an\u00ebn infrastrukturore t\u00eb arkitektur\u00ebs s\u00eb mikros\u00ebrvicave, at\u00ebher\u00eb po e humbni p\u00ebrpar\u00ebsin\u00eb e v\u00ebrtet\u00eb t\u00eb k\u00ebtij sistemi. Tani \u00ebsht\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=HcmPi7-IVQo\">\u00e7do gj\u00eb \u2014 si kod<\/a><\/noindex>.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/474546\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u0434\u0430 \u0432 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u2014 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043b\u0443\u0447\u0448\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043c\u044b\u0448\u0435\u0432\u043e\u0437\u0438\u0442\u044c. \u0417\u0430 \u044d\u0442\u043e\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439 \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u043b\u043e\u0441\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u2014 Infrastructure as Code, \u0438 \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u0434\u043b\u044f \u0435\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u0435\u043d\u0438\u044f, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 AWS, \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430: Terraform \u0438 CloudFormation. \u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Terraform \u0438 CloudFormation \u0414\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0430 \u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-52367","post","type-post","status-publish","format-standard","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=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u0434\u0430 \u0432 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u2014 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043b\u0443\u0447\u0448\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043c\u044b\u0448\u0435\u0432\u043e\u0437\u0438\u0442\u044c.\" \/>\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\/pereshel-s-terraform-na-cloudformation-i-pozhalel\" \/>\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\u041f\u0435\u0440\u0435\u0448\u0435\u043b \u0441 Terraform \u043d\u0430 CloudFormation \u2014 \u0438 \u043f\u043e\u0436\u0430\u043b\u0435\u043b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u0434\u0430 \u0432 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u2014 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043b\u0443\u0447\u0448\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043c\u044b\u0448\u0435\u0432\u043e\u0437\u0438\u0442\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/pereshel-s-terraform-na-cloudformation-i-pozhalel\" \/>\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=\"2019-11-06T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:04+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\udd47Kalova nga Terraform n\u00eb CloudFormation \u2014 dhe pendohesha | ProHoster","description":"Prezentimi i infrastruktur\u00ebs si kod n\u00eb nj\u00eb format tekstual t\u00eb rip\u00ebrs\u00ebritsh\u00ebm \u00ebsht\u00eb nj\u00eb praktik\u00eb e thjesht\u00eb m\u00eb e mir\u00eb p\u00ebr sistemet, nga e cila nuk duhet t\u00eb merret me t\u00eb.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/pereshel-s-terraform-na-cloudformation-i-pozhalel","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\u041f\u0435\u0440\u0435\u0448\u0435\u043b \u0441 Terraform \u043d\u0430 CloudFormation \u2014 \u0438 \u043f\u043e\u0436\u0430\u043b\u0435\u043b | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u0434\u0430 \u0432 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u2014 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043b\u0443\u0447\u0448\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043c\u044b\u0448\u0435\u0432\u043e\u0437\u0438\u0442\u044c.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/pereshel-s-terraform-na-cloudformation-i-pozhalel","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":"2019-11-06T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:04+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52367","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":"2026-01-24 03:23:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:44:44","updated":"2026-01-24 03:23:19","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\/52367","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=52367"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/52367\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=52367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=52367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=52367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}