{"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\/hu\/blog\/administrirovanie\/pereshel-s-terraform-na-cloudformation-i-pozhalel","title":{"rendered":"\u00c1tt\u00e9rtem a Terraformr\u00f3l a CloudFormationra \u2014 \u00e9s megb\u00e1ntam.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Az infrastrukt\u00fara k\u00f3d form\u00e1j\u00e1ban, ism\u00e9telhet\u0151 sz\u00f6veges form\u00e1tumban val\u00f3 bemutat\u00e1sa \u2013 egyszer\u0171en a legjobb gyakorlat a rendszerek sz\u00e1m\u00e1ra, amivel nem kell sokat vesz\u0151dni. E gyakorlat elnevez\u00e9se \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Infrastructure_as_code\">Infrastructure as Code<\/a><\/noindex>, \u00e9s jelenleg a megval\u00f3s\u00edt\u00e1s\u00e1hoz, k\u00fcl\u00f6n\u00f6sen az AWS-n\u00e9l, k\u00e9t n\u00e9pszer\u0171 eszk\u00f6z \u00e1ll rendelkez\u00e9sre: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/\">Terraform<\/a><\/noindex> \u00e9s <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/cloudformation\/\">CloudFormation<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00c1tt\u00e9rtem a Terraformr\u00f3l a CloudFormationra \u2014 \u00e9s megb\u00e1ntam.\" src=\"\/wp-content\/uploads\/2019\/11\/e33084fb81ca06107b341eef01e69adc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>\u00d6sszehasonl\u00edtom a Terraform \u00e9s a CloudFormation haszn\u00e1lat\u00e1nak tapasztalataimat.<\/em><\/p>\n<p><\/p>\n<p>Miel\u0151tt a <noindex><a rel=\"nofollow\" href=\"https:\/\/www.twitch.tv\/\">Twitch<\/a><\/noindex> (m\u00e1s n\u00e9ven <noindex><a rel=\"nofollow\" href=\"https:\/\/www.businessinsider.com\/amazon-buys-twitch-2014-8\">Amazon Jr.<\/a><\/noindex>) helyre ker\u00fcltem, dolgoztam <noindex><a rel=\"nofollow\" href=\"https:\/\/www.signalfx.com\/\">egy startupn\u00e1l<\/a><\/noindex> \u00e9s k\u00f6r\u00fclbel\u00fcl h\u00e1rom \u00e9vig haszn\u00e1ltam a Terraformot. Az \u00faj helyemen is teljes m\u00e9rt\u00e9kben alkalmaztam a Terraformot, majd a c\u00e9g r\u00e1k\u00e9nyszer\u00edtette a teljes \u00e1tv\u00e1lt\u00e1st az Amazon form\u00e1j\u00e1ra, bele\u00e9rtve a CloudFormationt is. Szorgalmasan dolgoztam a legjobb gyakorlatok kidolgoz\u00e1s\u00e1n mindk\u00e9t esetben, \u00e9s mindk\u00e9t eszk\u00f6zt nagyon komplex munkafolyamatokban haszn\u00e1ltam a szervezet keretein bel\u00fcl. K\u00e9s\u0151bb, alaposan m\u00e9rlegelve a Terraformr\u00f3l a CloudFormationra val\u00f3 \u00e1tt\u00e9r\u00e9s k\u00f6vetkezm\u00e9nyeit, arra a k\u00f6vetkeztet\u00e9sre jutottam, hogy a Terraform val\u00f3sz\u00edn\u0171leg a legjobb v\u00e1laszt\u00e1s a szervezet sz\u00e1m\u00e1ra.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"terraform-uzhasnyy\">Terraform Borzalmas<\/h2>\n<p><\/p>\n<h3 id=\"beta-versiya-po\">B\u00e9ta verzi\u00f3j\u00fa szoftver<\/h3>\n<p><\/p>\n<p>A Terraformnak m\u00e9g a 1.0-\u00e1s verzi\u00f3ja sem jelent meg, \u00e9s ez \u2013 komoly ok arra, hogy ne haszn\u00e1ljuk. Ami\u00f3ta el\u0151sz\u00f6r kipr\u00f3b\u00e1ltam, \u00f3ri\u00e1si v\u00e1ltoz\u00e1sok t\u00f6rt\u00e9ntek, de abban az id\u0151ben m\u00e9g <code>terraform apply<\/code> Gyakran elromlott n\u00e9h\u00e1ny friss\u00edt\u00e9s ut\u00e1n, vagy csak p\u00e1r \u00e9v haszn\u00e1lat ut\u00e1n. Azt mondan\u00e1m, hogy \u201emost minden m\u00e1s\u201d, de\u2026 \u00fagy t\u0171nik, ezt mindenki azt mondja, nem? Vannak v\u00e1ltoz\u00e1sok, amelyek nem kompatibilisek a kor\u00e1bbi verzi\u00f3kkal, b\u00e1r hely\u00e9nval\u00f3ak, \u00e9s m\u00e9g \u00fagy t\u0171nik, hogy a szintaxis \u00e9s a forr\u00e1st\u00e1rak absztrakci\u00f3i most m\u00e1r rendben vannak. Az eszk\u00f6z mintha val\u00f3ban jobb lett volna, de\u2026 :-0<\/p>\n<p><\/p>\n<p>M\u00e1sr\u00e9szr\u0151l, az AWS j\u00f3l teljes\u00edtett, t\u00e1mogatta a kor\u00e1bbi verzi\u00f3kkal val\u00f3 kompatibilit\u00e1st. Val\u00f3sz\u00edn\u0171leg az\u00e9rt, mert a szolg\u00e1ltat\u00e1saikat gyakran j\u00f3l tesztelik a szervezeten bel\u00fcl, \u00e9s csak azt\u00e1n publik\u00e1lj\u00e1k, \u00e1tnevezve. Teh\u00e1t azt, hogy \u201ej\u00f3l dolgoztak\u201d, m\u00e9g enyhe kifejez\u00e9s. A kor\u00e1bbi verzi\u00f3kkal val\u00f3 API kompatibilit\u00e1s fenntart\u00e1sa egy olyan sokoldal\u00fa \u00e9s bonyolult rendszer sz\u00e1m\u00e1ra, mint az AWS, hihetetlen\u00fcl neh\u00e9z. B\u00e1rkinek, aki m\u00e1r t\u00e1mogatta a sz\u00e9les k\u00f6rben haszn\u00e1lt nyilv\u00e1nos API-kat, tudnia kell, hogy mennyire neh\u00e9z ezt \u00e9vekig megtenni. A CloudFormation viselked\u00e9se viszont az eml\u00e9keim szerint soha nem v\u00e1ltozott az \u00e9vek sor\u00e1n.<\/p>\n<p><\/p>\n<h3 id=\"znakomsya-noga-eto-pulya\">Ismerkedj meg, l\u00e1b\u2026 ez egy goly\u00f3<\/h3>\n<p><\/p>\n<p>Amennyire tudom, elt\u00e1vol\u00edtani egy er\u0151forr\u00e1st <strong>k\u00fcls\u0151<\/strong> A CloudFormation stack cannot import from its own CF stack. The situation is similar with Terraform. It allows you to import existing resources into your stack. This feature is quite amazing, but with great power comes great responsibility. Once a resource is added to the stack, you cannot delete or change it while working with your stack. Once, this came back to haunt us. For instance, on the Twitch website, someone, without any malicious intent, accidentally imported someone else's AWS security group into their own Terraform stack. They executed a few commands and\u2026 the security group (along with incoming traffic) disappeared.<\/p>\n<p><\/p>\n<h2 id=\"terraform-velikiy\">Terraform the Great<\/h2>\n<p><\/p>\n<h3 id=\"vosstanovlenie-iz-nepolnyh-sostoyaniy\">Recovery from incomplete states<\/h3>\n<p><\/p>\n<p>Sometimes CloudFormation cannot completely transition from one state to another. In this case, it tries to return to the previous state. Unfortunately, this is not always feasible. Debugging what has resulted can be a bit scary \u2014 you never know if CloudFormation will be pleased that it's being tampered with \u2014 even if it\u2019s for repairing. Whether it can return to the previous state is something it cannot determine clearly and by default, it hangs for hours waiting for a miracle.<\/p>\n<p><\/p>\n<p>On the other hand, Terraform is more graceful in recovering from unsuccessful transitions and offers advanced debugging tools.<\/p>\n<p><\/p>\n<h3 id=\"bolee-yasnye-izmeneniya-v-sostoyaniya-dokumenta\">Clearer changes in document states<\/h3>\n<p><\/p>\n<blockquote><p>\u201eRendben, a terhel\u00e9seloszt\u00f3, te v\u00e1ltozol. De hogyan?\u201d<\/p>\n<p>\u2014 agg\u00f3d\u00f3 m\u00e9rn\u00f6k, aki k\u00e9szen \u00e1ll a \u201emeger\u0151s\u00edt\u00e9s\u201d gombra.<\/p><\/blockquote>\n<p>Sometimes I need to make certain manipulations with the load balancer in the CloudFormation stack \u2014 for example, add a port number or modify the security group. CloudFormation shows changes poorly. I find myself on edge, checking the YAML file ten times to ensure I haven't deleted something important or added something unnecessary.<\/p>\n<p><\/p>\n<p>In this regard, Terraform is much more transparent. Sometimes it\u2019s even too transparent (read: annoying). Fortunately, the latest version included improved change visualization \u2014 now it\u2019s clear what changes are being made.<\/p>\n<p><\/p>\n<h3 id=\"gibkost\">Rugalmass\u00e1g<\/h3>\n<p><\/p>\n<blockquote><p>Write software backward.<\/p><\/blockquote>\n<p>Egyszer\u0171en fogalmazva, a hossz\u00fa \u00e9lettartam\u00fa szoftver legfontosabb megk\u00fcl\u00f6nb\u00f6ztet\u0151 jellemz\u0151je az alkalmazkod\u00e1s k\u00e9pess\u00e9ge a v\u00e1ltoz\u00e1sokhoz. B\u00e1rmilyen szoftvert ford\u00edtva \u00edrj. \u00c9n gyakran beleestem abba a hib\u00e1ba, hogy egy \u201eegyszer\u0171\u201d szolg\u00e1ltat\u00e1st fogtam, majd megpr\u00f3b\u00e1ltam mindent belet\u00f6mni egy CloudFormation vagy Terraform stackbe. \u00c9s persze h\u00f3napok m\u00falva kider\u00fclt, hogy mindent rosszul \u00e9rtettem, \u00e9s a szolg\u00e1ltat\u00e1s val\u00f3j\u00e1ban nem is olyan egyszer\u0171! \u00c9s most valahogy fel kellene darabnom a nagy stacket kisebb r\u00e9szekre. Amikor a CloudFormation-nal dolgozol, ezt csak \u00fagy lehet megtenni, hogy el\u0151sz\u00f6r \u00fajra l\u00e9trehozod a megl\u00e9v\u0151 stacket, amit \u00e9n az adatb\u00e1zisaimmal nem csin\u00e1lok. A Terraform azonban lehet\u0151v\u00e9 tette, hogy a stacket elemezd \u00e9s kisebb, \u00e9rthet\u0151bb r\u00e9szekre bonts.<\/p>\n<p><\/p>\n<h3 id=\"moduli-v-git\">Git modulok<\/h3>\n<p><\/p>\n<p>A Terraform k\u00f3d megoszt\u00e1sa a sz\u00e1mos stack k\u00f6z\u00f6tt sokkal egyszer\u0171bb, mint a CloudFormation k\u00f3d\u00e9. A Terraform lehet\u0151v\u00e9 teszi, hogy a k\u00f3dot egy git t\u00e1rol\u00f3ba helyezz\u00fck, \u00e9s verzi\u00f3kezel\u00e9sen kereszt\u00fcl hivatkozzunk r\u00e1. B\u00e1rki, akinek hozz\u00e1f\u00e9r\u00e9se van ehhez a t\u00e1rol\u00f3hoz, \u00fajra felhaszn\u00e1lhatja a k\u00f6z\u00f6s k\u00f3dot. A CloudFormation megfelel\u0151je az S3, de annak nincsenek meg ugyanazok az el\u0151nyei, \u00e9s nincs egyetlen ok sem, ami\u00e9rt le kellene mondanunk a git-r\u0151l az S3 jav\u00e1ra.<\/p>\n<p><\/p>\n<p>A szervezet n\u00f6vekedett, \u00e9s a k\u00f6z\u00f6s stackek megoszt\u00e1s\u00e1nak k\u00e9pess\u00e9ge kritikus szintet \u00e9rt el. A Terraformmal mindez k\u00f6nnyen \u00e9s term\u00e9szetesen val\u00f3sul meg, m\u00edg a CloudFormation arra k\u00e9nyszer\u00edt, hogy ugr\u00e1ljunk gy\u0171r\u0171k k\u00f6z\u00f6tt, miel\u0151tt valami hasonl\u00f3 m\u0171k\u00f6dni kezd.<\/p>\n<p><\/p>\n<h3 id=\"operations-as-code\">Operations as code<\/h3>\n<p><\/p>\n<blockquote><p>\u201eScriptelj\u00fcnk, \u00e9s rendben van.\u201d<\/p>\n<p>\u2014 m\u00e9rn\u00f6k h\u00e1rom \u00e9vvel azel\u0151tt, hogy feltal\u00e1lta a Terraformot.<\/p><\/blockquote>\n<p>Amikor szoftverfejleszt\u00e9sr\u0151l van sz\u00f3, a Go vagy a Java program nem csup\u00e1n k\u00f3d.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00c1tt\u00e9rtem a Terraformr\u00f3l a CloudFormationra \u2014 \u00e9s megb\u00e1ntam.\" src=\"\/wp-content\/uploads\/2019\/11\/a5c61fd318b9b5aa62ebb69e38ca1b0e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Code as Code<\/em><\/p>\n<p><\/p>\n<p>Ott van az infrastrukt\u00fara is, amelyen fut.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00c1tt\u00e9rtem a Terraformr\u00f3l a CloudFormationra \u2014 \u00e9s megb\u00e1ntam.\" src=\"\/wp-content\/uploads\/2019\/11\/301c0323baa18563f05503e701af069b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Infrastructure as Code<\/em><\/p>\n<p><\/p>\n<p>De honnan is j\u00f6n ez? Hogyan lehet monitorozni? Hol lakozik a k\u00f3dod? Sz\u00fcks\u00e9g\u00fck van a fejleszt\u0151knek enged\u00e9lyre a hozz\u00e1f\u00e9r\u00e9shez?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00c1tt\u00e9rtem a Terraformr\u00f3l a CloudFormationra \u2014 \u00e9s megb\u00e1ntam.\" src=\"\/wp-content\/uploads\/2019\/11\/5cb0b6f720682b7bb6d5f485287b618b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Operations as Code<\/em><\/p>\n<p><\/p>\n<blockquote><p>Szoftverfejleszt\u0151nek lenni nem puszt\u00e1n annyit jelent, hogy k\u00f3dot \u00edrsz.<\/p><\/blockquote>\n<p>Nem csak az AWS l\u00e9tezik: val\u00f3sz\u00edn\u0171leg haszn\u00e1l m\u00e1s szolg\u00e1ltat\u00f3k szolg\u00e1ltat\u00e1sait is. SignalFx, PagerDuty vagy Github. Lehet, hogy van egy bels\u0151 Jenkins szervered a CI\/CD-hez, vagy egy bels\u0151 Grafana vez\u00e9rl\u0151pultod a monitoroz\u00e1shoz. Az Infra as Code t\u00e9rnyer\u00e9s\u00e9nek k\u00fcl\u00f6nb\u00f6z\u0151 okai vannak, \u00e9s mindegyik ugyanolyan fontos minden szoftverrel kapcsolatos dologhoz.<\/p>\n<p><\/p>\n<p>Amikor a Twitch-n\u00e9l dolgoztam, felgyors\u00edtottuk a szolg\u00e1ltat\u00e1sokat vegyes be\u00e1gyazott rendszerekben \u00e9s az AWS Amazon rendszer\u00e9ben. Sok mikroszolg\u00e1ltat\u00e1st hoztunk l\u00e9tre \u00e9s t\u00e1mogattunk, n\u00f6velve a m\u0171k\u00f6d\u00e9si k\u00f6lts\u00e9geinket. A besz\u00e9lget\u00e9sek k\u00f6r\u00fclbel\u00fcl \u00edgy zajlottak:<\/p>\n<p><\/p>\n<ul>\n<li><strong>\u00c9n<\/strong>: J\u00e9, el\u00e9g sok mozg\u00e1s egy mikroszolg\u00e1ltat\u00e1s felp\u00f6rget\u00e9s\u00e9hez. Ezt a dolgot musz\u00e1j lesz haszn\u00e1lnom, hogy l\u00e9trehozzak egy AWS fi\u00f3kot (k\u00e9t fi\u00f3kra ment\u00fcnk a <strong>mikroszolg\u00e1ltat\u00e1s<\/strong>), azt\u00e1n ezt \u2014 az \u00e9rtes\u00edt\u00e9sek be\u00e1ll\u00edt\u00e1s\u00e1hoz, m\u00e9g ezt \u2014 a k\u00f3d repohoz, \u00e9s ezt \u2014 az e-mail c\u00edmek list\u00e1j\u00e1hoz, \u00e9s ezt...<\/li>\n<li><strong>Kapcsolat<\/strong>: Skriptezz\u00fcnk \u00e9s k\u00e9sz.<\/li>\n<li><strong>\u00c9n<\/strong>: Rendben, de a script maga meg fog v\u00e1ltozni. Sz\u00fcks\u00e9g lesz egy m\u00f3dra, hogy ellen\u0151rizd, hogy mindezek az Amazon be\u00e9p\u00edtett dolgai aktu\u00e1lis \u00e1llapotban vannak-e.<\/li>\n<li><strong>Kapcsolat<\/strong>: J\u00f3l hangzik. \u00c9s ez\u00e9rt \u00edrunk egy skriptet.<\/li>\n<li><strong>\u00c9n<\/strong>: Remek! A skripthez val\u00f3sz\u00edn\u0171leg m\u00e9g param\u00e9tereket is kell adni. Elfogadja azokat?<\/li>\n<li><strong>Kapcsolat<\/strong>: Persze, hogy elfogadja, hov\u00e1 m\u00e1shov\u00e1 mehetne!<\/li>\n<li><strong>\u00c9n<\/strong>: A folyamat v\u00e1ltozhat, elveszett a visszafel\u00e9 kompatibilit\u00e1s. Sz\u00fcks\u00e9ges lehet valamilyen szemantikai verzi\u00f3kontroll.<\/li>\n<li><strong>Kapcsolat<\/strong>: Nagyszer\u0171 \u00f6tlet!<\/li>\n<li><strong>\u00c9n<\/strong>: Az eszk\u00f6z\u00f6ket manu\u00e1lisan is meg lehet v\u00e1ltoztatni a felhaszn\u00e1l\u00f3i fel\u00fcleten bel\u00fcl. Sz\u00fcks\u00e9g\u00fcnk lesz arra, hogy ellen\u0151rizz\u00fck \u00e9s jav\u00edtsuk ezt.<\/li>\n<\/ul>\n<p><\/p>\n<p><em>...3 \u00e9vvel k\u00e9s\u0151bb:<\/em><\/p>\n<p><\/p>\n<ul>\n<li><strong>Kapcsolat<\/strong>: \u00cdgy lett terraformunk.<\/li>\n<\/ul>\n<p><\/p>\n<p>A tanuls\u00e1g az, hogy m\u00e9g akkor is, ha <strong>torkig minden Amazonossal<\/strong>akkor is haszn\u00e1lsz valamit, ami nem az AWS-t\u0151l van, \u00e9s ezeknek a szolg\u00e1ltat\u00e1soknak van \u00e1llapota, amelyet a konfigur\u00e1ci\u00f3s nyelv haszn\u00e1l a szinkroniz\u00e1l\u00e1s \u00e9rdek\u00e9ben.<\/p>\n<p><\/p>\n<h3 id=\"cloudformation-lambda-vs-git-moduli-terraform\">CloudFormation lambda vs git modulok terraform<\/h3>\n<p><\/p>\n<p>A lambda a CloudFormation megold\u00e1sa a felhaszn\u00e1l\u00f3i logika k\u00e9rd\u00e9s\u00e9re. A lambda seg\u00edts\u00e9g\u00e9vel <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AWSCloudFormation\/latest\/UserGuide\/macros-example.html\">makr\u00f3kat lehet l\u00e9trehozni<\/a><\/noindex> vagy <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AWSCloudFormation\/latest\/UserGuide\/walkthrough-custom-resources-lambda-lookup-amiids.html\">felhaszn\u00e1l\u00f3i er\u0151forr\u00e1s<\/a><\/noindex>. Ez a megk\u00f6zel\u00edt\u00e9s tov\u00e1bbi bonyodalmakat jelent, amelyek a Git modulok szemin\u00e1lis verzi\u00f3ellen\u0151rz\u00e9s\u00e9ben nem \u00e1llnak fenn a Terraform eset\u00e9ben. Sz\u00e1momra a legnagyobb probl\u00e9ma a jogosults\u00e1gok kezel\u00e9se volt, minden felhaszn\u00e1l\u00f3i lambda sz\u00e1m\u00e1ra (ez pedig tucatnyi AWS fi\u00f3kot jelent). A m\u00e1sodik legfontosabb probl\u00e9m\u00e1t a 'mi volt el\u0151bb \u2014 a toj\u00e1s vagy a csirke?' tette ki: ez a lambda k\u00f3dj\u00e1hoz kapcsol\u00f3dott. Mag\u00e1nak a funkci\u00f3nak \u2014 az infrastrukt\u00far\u00e1nak \u00e9s a k\u00f3dnak \u2014 monitoroz\u00e1sra \u00e9s friss\u00edt\u00e9sekre van sz\u00fcks\u00e9ge. Az utols\u00f3 sz\u00f6g a kopors\u00f3ba a lambda k\u00f3d m\u00f3dos\u00edt\u00e1sainak szemin\u00e1lis friss\u00edt\u00e9s\u00e9nek neh\u00e9zs\u00e9ge volt; sz\u00fcks\u00e9ges volt, hogy a verem m\u0171k\u00f6d\u00e9se ne v\u00e1ltozzon k\u00f6zvetlen parancs n\u00e9lk\u00fcl a futtat\u00e1sok k\u00f6z\u00f6tt.<\/p>\n<p><\/p>\n<p>Eml\u00e9kszem, egyszer kedvem t\u00e1madt, hogy k\u00e9sz\u00edtsek egy kan\u00e1ri telep\u00edt\u00e9st az Elastic Beanstalk k\u00f6rnyezethez egy klasszikus terhel\u00e9seloszt\u00f3val. A legegyszer\u0171bb az lett volna, ha k\u00e9sz\u00edtek egy m\u00e1sodik telep\u00edt\u00e9st az EB mellett a termel\u00e9si k\u00f6rnyezethez, m\u00e9g egy l\u00e9p\u00e9ssel tov\u00e1bb haladva: \u00f6sszekapcsolva az automatikusan sk\u00e1l\u00e1zhat\u00f3 kan\u00e1ri telep\u00edt\u00e9s csoportj\u00e1t a termel\u00e9si k\u00f6rnyezet terhel\u00e9seloszt\u00f3j\u00e1val. Mivel a Terraform haszn\u00e1lja <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/docs\/providers\/aws\/r\/elastic_beanstalk_environment.html#autoscaling_groups\">ASG beantalk kimenetk\u00e9nt<\/a><\/noindex>, ez 4 felesleges k\u00f3dsort ig\u00e9nyelne a Terraform-ban. Amikor megk\u00e9rdeztem, van-e \u00f6sszehasonl\u00edthat\u00f3 megold\u00e1s a CloudFormation-ben, egy eg\u00e9sz repositoriumra mutattak a git-ben, telep\u00edt\u00e9si csatorn\u00e1val \u00e9s egyebekkel: \u00e9s mindezt az\u00e9rt, amit csup\u00e1n 4 sor Terraform k\u00f3d is megoldhatott volna.<\/p>\n<p><\/p>\n<h3 id=\"on-luchshe-obnaruzhivaet-dreyf\">Jobban \u00e9szleli a driftet<\/h3>\n<p><\/p>\n<blockquote><p>Gy\u0151z\u0151dj\u00f6n meg r\u00f3la, hogy a val\u00f3s\u00e1g egyezik a v\u00e1rakoz\u00e1sokkal.<\/p><\/blockquote>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/blogs\/aws\/new-cloudformation-drift-detection\/\">Drift\u00e9szlel\u00e9s<\/a><\/noindex> \u2014 egy nagyon er\u0151teljes funkci\u00f3 az operations as code sz\u00e1m\u00e1ra, mert seg\u00edt biztos\u00edtani, hogy a val\u00f3s\u00e1g egyezzen a v\u00e1rakoz\u00e1sokkal. Ez el\u00e9rhet\u0151 a CloudFormation \u00e9s a Terraform eset\u00e9ben is. De ahogy a munkahely n\u0151, a drift keres\u00e9se a CloudFormation-ben egyre t\u00f6bb hamis \u00e9rtes\u00edt\u00e9st adott.<\/p>\n<p><\/p>\n<p>A Terraform eset\u00e9ben sokkal fejlettebb \u00e9letciklus-hook-okat van a drift \u00e9rz\u00e9kel\u00e9s\u00e9re. P\u00e9ld\u00e1ul megadja a parancsot <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/docs\/configuration\/resources.html#ignore_changes\">ignore_changes<\/a><\/noindex> k\u00f6zvetlen\u00fcl az ECS feladat defin\u00edci\u00f3j\u00e1ban, ha szeretn\u00e9 figyelmen k\u00edv\u00fcl hagyni a v\u00e1ltoz\u00e1sokat egy adott feladat defin\u00edci\u00f3j\u00e1ban, an\u00e9lk\u00fcl, hogy figyelmen k\u00edv\u00fcl hagyn\u00e1 a v\u00e1ltoz\u00e1sokat az eg\u00e9sz ECS telep\u00edt\u00e9sben.<\/p>\n<p><\/p>\n<h2 id=\"cdk-i-buduschee-cloudformation\">CDK \u00e9s a CloudFormation j\u00f6v\u0151je<\/h2>\n<p><\/p>\n<p>A CloudFormation kezel\u00e9se neh\u00e9z nagy, interinfrastrukt\u00far\u00e1lis m\u00e9rc\u00e9ken. Sok ilyen neh\u00e9zs\u00e9g elismert, \u00e9s az eszk\u00f6znek sz\u00fcks\u00e9ge van olyan dolgokra, mint p\u00e9ld\u00e1ul <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/en_pv\/cdk\/latest\/guide\/home.html\">aws-cdk<\/a><\/noindex>, egy strukt\u00fara a felh\u0151infrastrukt\u00fara k\u00f3dba t\u00f6rt\u00e9n\u0151 defin\u00edci\u00f3j\u00e1hoz \u00e9s annak AWS CloudFormation-en val\u00f3 v\u00e9grehajt\u00e1s\u00e1hoz. K\u00edv\u00e1ncsi leszek, mi v\u00e1r az aws-cdk-ra a j\u00f6v\u0151ben, de neh\u00e9zkes lesz, hogy versenyezzen a Terraform m\u00e1s el\u0151nyeivel; a CloudFormation felz\u00e1rk\u00f3ztat\u00e1s\u00e1hoz glob\u00e1lis v\u00e1ltoz\u00e1sok sz\u00fcks\u00e9gesek.<\/p>\n<p><\/p>\n<h3 id=\"chtoby-terraform-ne-razocharoval\">Hogy a Terraform ne csal\u00f3d\u00e1st okozzon<\/h3>\n<p><\/p>\n<blockquote><p>Ez az 'infrastrukt\u00fara mint K\u00d3D', nem pedig 'mint sz\u00f6veg'.<\/p><\/blockquote>\n<p>Els\u0151 benyom\u00e1som a Terraformr\u00f3l el\u00e9g rossz volt. Azt hiszem, egyszer\u0171en nem \u00e9rtettem meg a megk\u00f6zel\u00edt\u00e9st. Szinte minden m\u00e9rn\u00f6k els\u0151re akaratlanul is sz\u00f6veges form\u00e1tumnak tekinti, amit \u00e1t kell alak\u00edtani a k\u00edv\u00e1nt infrastrukt\u00far\u00e1v\u00e1. ERRE NINCS SZ\u00dcKS\u00c9G.<\/p>\n<p><\/p>\n<h3 id=\"propisnye-istiny-horoshey-razrabotki-po-otnosyatsya-i-k-terraform\">A szoftverfejleszt\u00e9s j\u00f3 alapigazs\u00e1gai a Terraform-ra is vonatkoznak.<\/h3>\n<p><\/p>\n<p>L\u00e1ttam, hogy sok olyan gyakorlat, amit a j\u00f3 k\u00f3d l\u00e9trehoz\u00e1s\u00e1ra fogadtak el, figyelmen k\u00edv\u00fcl marad a Terraform haszn\u00e1lata sor\u00e1n. \u00c9vek \u00f3ta tanult\u00e1l, hogy j\u00f3 programoz\u00f3 legy\u00e9l. Ne mondj le err\u0151l a tapasztalatr\u00f3l csak az\u00e9rt, mert Terraformot haszn\u00e1lsz. A szoftverfejleszt\u00e9s j\u00f3 alapelvei a Terraformra is vonatkoznak.<\/p>\n<p><\/p>\n<h3 id=\"kak-uzh-kod-i-ne-zadokumentirovat\">Hogyan lehetne a k\u00f3dot nem dokument\u00e1lni?<\/h3>\n<p><\/p>\n<p>Tal\u00e1lkoztam hatalmas Terraform veremmel, amely teljesen dokument\u00e1ci\u00f3 n\u00e9lk\u00fcl k\u00e9sz\u00fclt. Hogy lehet k\u00f3dot \u00edrni oldalakon kereszt\u00fcl - teljesen dokument\u00e1ci\u00f3 n\u00e9lk\u00fcl? Adj hozz\u00e1 dokument\u00e1ci\u00f3t, amelyben elmagyar\u00e1zod a <strong>a k\u00f3dot<\/strong> Terraform (itt a hangs\u00faly a 'k\u00f3d' sz\u00f3n van), mi\u00e9rt fontos ez a r\u00e9sz, \u00e9s mit csin\u00e1lsz.<\/p>\n<p><\/p>\n<h3 id=\"kak-mozhno-razvorachivat-servisy-kotorye-nekogda-byli-odnoy-bolshoy-funkciey-main\">Hogyan lehet szolg\u00e1ltat\u00e1sokat telep\u00edteni, amelyek egy nagy main() funkci\u00f3b\u00f3l sz\u00e1rmaztak?<\/h3>\n<p><\/p>\n<p>Nagyon \u00f6sszetett Terraform veremmel tal\u00e1lkoztam, amely egyetlen modulba volt belefoglalva. Mi\u00e9rt nem \u00edgy telep\u00edtj\u00fck a szoftvert? Mi\u00e9rt bontjuk le a nagy funkci\u00f3kat kisebb darabokra? Ugyanezek a v\u00e1laszok \u00e9rv\u00e9nyesek a Terraformra is. Ha a modul t\u00fal nagy sz\u00e1modra - fel kell osztani kisebb modulokra.<\/p>\n<p><\/p>\n<h3 id=\"razve-vasha-kompaniya-ne-polzuetsya-bibliotekami\">A c\u00e9ged nem haszn\u00e1l k\u00f6nyvt\u00e1rakat?<\/h3>\n<p><\/p>\n<p>L\u00e1ttam, amint m\u00e9rn\u00f6k\u00f6k \u00faj projektek ind\u00edt\u00e1sakor a Terraform seg\u00edts\u00e9g\u00e9vel but\u00e1n m\u00e1solt\u00e1k \u00e9s illesztett\u00e9k az \u00f3ri\u00e1si r\u00e9szeket m\u00e1s projektekb\u0151l a saj\u00e1tjaikba, majd addig babr\u00e1lt\u00e1k \u0151ket, m\u00edg m\u0171k\u00f6dni kezdtek. Te a c\u00e9gedn\u00e9l \u00edgy dolgozn\u00e1l a 'prod' k\u00f3ddal? Nem v\u00e9letlen\u00fcl haszn\u00e1ljuk a k\u00f6nyvt\u00e1rakat. Igen, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=PAAkCSZUG1c&amp;t=9m28s\">nem mindennek kell k\u00f6nyvt\u00e1rnak lennie,<\/a><\/noindex> de hov\u00e1 menn\u00e9nk k\u00f6z\u00f6s k\u00f6nyvt\u00e1rak n\u00e9lk\u00fcl egy\u00e1ltal\u00e1n?!<\/p>\n<p><\/p>\n<h3 id=\"razve-vy-ne-polzuetes-pep8-ili-gofmt\">Nem haszn\u00e1lod a PEP8-at vagy a gofmt-ot?<\/h3>\n<p><\/p>\n<p>A legt\u00f6bb nyelvben van egy standard elfogadott form\u00e1z\u00e1si s\u00e9ma. A Pythonban ez a PEP8. A Go-ban a gofmt. A Terraformnak is megvan a saj\u00e1tja: <code>terraform fmt<\/code>. Haszn\u00e1lj\u00e1tok eg\u00e9szs\u00e9ggel! <\/p>\n<p><\/p>\n<h3 id=\"vy-stanete-polzovatsya-react-ne-znaya-javascript\">Haszn\u00e1lni fogod a Reactot, an\u00e9lk\u00fcl, hogy tudn\u00e1d a JavaScriptet?<\/h3>\n<p><\/p>\n<p>A Terraform modulok egyszer\u0171s\u00edthetik a l\u00e9trehozott bonyolult infrastrukt\u00far\u00e1d egy r\u00e9sz\u00e9t, de ez m\u00e9g nem jelenti, hogy teljesen \u00e9rtened kellene ahhoz. Szeretn\u00e9d helyesen haszn\u00e1lni a Terrraformot an\u00e9lk\u00fcl, hogy \u00e9rten\u00e9d a forr\u00e1sokat? K\u00e1rhoztatt\u00e1l: az id\u0151 m\u00falik, de sosem fogod elsaj\u00e1t\u00edtani a Terraformot.<\/p>\n<p><\/p>\n<h3 id=\"vy-kodite-singltonami-ili-vnedryaya-zavisimosti\">Singletonokkal k\u00f3dolsz, vagy f\u00fcgg\u0151s\u00e9geket injekt\u00e1lsz?<\/h3>\n<p><\/p>\n<p>A f\u00fcgg\u0151s\u00e9gek inject\u00e1l\u00e1sa bevett legjobb gyakorlat a szoftverfejleszt\u00e9sben, amelyet a singletonok prefer\u00e1lnak. Hogyan seg\u00edthet ez a Terraformban? Tal\u00e1lkoztam Terraform modulokkal, amelyek k\u00fcls\u0151 \u00e1llapotokt\u00f3l f\u00fcggenek. Ahelyett, hogy modulokat \u00edrn\u00e1l, amelyek az k\u00fcls\u0151 \u00e1llapotokb\u00f3l dolgoznak, \u00edrj olyan modult, amely param\u00e9tereket fogad. Azut\u00e1n ezeket a param\u00e9tereket add \u00e1t a modulnak.<\/p>\n<p><\/p>\n<h3 id=\"vashi-biblioteki-delayut-desyat-veschey-horosho-ili-odnu---otlichno\">A k\u00f6nyvt\u00e1raid t\u00edz dolgot v\u00e9geznek j\u00f3l, vagy egyet \u2014 kiv\u00e1l\u00f3an?<\/h3>\n<p><\/p>\n<p>A legjobban azok a k\u00f6nyvt\u00e1rak m\u0171k\u00f6dnek, amelyek egy feladatra koncentr\u00e1lnak, amit kiv\u00e1l\u00f3an v\u00e9geznek. Ahelyett, hogy nagy Terraform modulokat \u00edrn\u00e1l, amelyek mindent egyszerre pr\u00f3b\u00e1lnak megval\u00f3s\u00edtani, alak\u00edtsd \u0151ket olyan r\u00e9szekk\u00e9, amelyek j\u00f3l v\u00e9geznek el egy-egy dolgot. Azut\u00e1n kombin\u00e1ld \u0151ket \u00fagy, ahogy sz\u00fcks\u00e9ges.<\/p>\n<p><\/p>\n<h3 id=\"kak-vy-proizvodite-izmeneniya-v-bibliotekah-bez-obratnoy-sovmestimosti\">Hogyan hajtasz v\u00e9gre v\u00e1ltoz\u00e1sokat a k\u00f6nyvt\u00e1rakban visszaford\u00edthat\u00f3s\u00e1g n\u00e9lk\u00fcl?<\/h3>\n<p><\/p>\n<p>A Terraform k\u00f6z\u00f6s modulj\u00e1nak, ak\u00e1rcsak a szok\u00e1sos k\u00f6nyvt\u00e1rnak, valahogy \u00e9rtes\u00edtenie kell a felhaszn\u00e1l\u00f3kat a visszaford\u00edthat\u00f3s\u00e1g n\u00e9lk\u00fcli v\u00e1ltoz\u00e1sokr\u00f3l. Amikor ilyen v\u00e1ltoz\u00e1sok t\u00f6rt\u00e9nnek a k\u00f6nyvt\u00e1rakban, az ideges\u00edt\u0151, \u00e9s pontosan ugyanannyira ideges\u00edt\u0151, amikor a Terraform modulokban tesznek visszaford\u00edthat\u00f3s\u00e1g n\u00e9lk\u00fcli m\u00f3dos\u00edt\u00e1sokat. Aj\u00e1nlott git c\u00edmk\u00e9ket \u00e9s semver-t haszn\u00e1lni a Terraform modulok alkalmaz\u00e1sakor.<\/p>\n<p><\/p>\n<h3 id=\"proizvodstvennyy-servis-zapuschen-u-vas-na-noutbuke-ili-v-datacentre\">A termel\u00e9si szolg\u00e1ltat\u00e1sod a laptopodon vagy adatk\u00f6zpontban fut?<\/h3>\n<p><\/p>\n<p>A Hashicorp-nak vannak olyan eszk\u00f6zei, mint <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/docs\/cloud\/index.html\">terraform cloud<\/a><\/noindex> a Terraformod futtat\u00e1s\u00e1hoz. Ezek a k\u00f6zpontos\u00edtott szolg\u00e1ltat\u00e1sok megk\u00f6nny\u00edtik a Terraform kezel\u00e9s\u00e9t, audit\u00e1l\u00e1s\u00e1t \u00e9s a v\u00e1ltoz\u00e1sok j\u00f3v\u00e1hagy\u00e1s\u00e1t.<\/p>\n<p><\/p>\n<h3 id=\"razve-vy-ne-pishete-testy\">Nem \u00edrsz teszteket?<\/h3>\n<p><\/p>\n<p>A m\u00e9rn\u00f6k\u00f6k elismerik, hogy a k\u00f3dot tesztelni kell, de gyakran figyelmen k\u00edv\u00fcl hagyj\u00e1k a tesztel\u00e9seket, mik\u00f6zben a Terraformmal dolgoznak. Az infrastrukt\u00far\u00e1ra n\u00e9zve ez rejtett bonyodalmakat okozhat. Javaslom, hogy 'teszteljetek' vagy 'p\u00e9ld\u00e1kat hozzatok l\u00e9tre' a verem modulok haszn\u00e1lat\u00e1val, amelyeket helyesen lehet telep\u00edteni a CI\/CD sor\u00e1n t\u00f6rt\u00e9n\u0151 ellen\u0151rz\u00e9shez.<\/p>\n<p><\/p>\n<h3 id=\"terraform-i-mikroservisy\">Terraform \u00e9s mikroszolg\u00e1ltat\u00e1sok<\/h3>\n<p><\/p>\n<blockquote><p>A mikroszolg\u00e1ltat\u00e1sokra \u00e9p\u00fcl\u0151 c\u00e9gek \u00e9lete \u00e9s hal\u00e1la a sebess\u00e9gt\u0151l, a friss\u00edt\u00e9sekt\u0151l \u00e9s az \u00faj mikroszolg\u00e1ltat\u00e1si munkafolyamatok megsemmis\u00edt\u00e9s\u00e9t\u0151l f\u00fcgg.<\/p><\/blockquote>\n<p>A leggyakoribb negat\u00edv szempont, amely a mikroszolg\u00e1ltat\u00e1s-architekt\u00far\u00e1kkal \u00f6sszef\u00fcgg, \u00e9s amelyt\u0151l nem lehet megszabadulni, a munk\u00e1val, nem pedig a k\u00f3ddal kapcsolatos. Ha a Terraformot csup\u00e1n \u00fagy \u00e9rtelmezed, mint az infrastrukt\u00fara automatiz\u00e1l\u00e1si m\u00f3dj\u00e1t a mikroszolg\u00e1ltat\u00e1s-architekt\u00far\u00e1ban, akkor megfosztod magadat ezen rendszer val\u00f3di el\u0151nyeit\u0151l. Most m\u00e1r <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=HcmPi7-IVQo\">minden \u2014 mint k\u00f3d<\/a><\/noindex>.<\/p>\n<p>Forr\u00e1s: <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.3 - 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\/hu\/blog\/administrirovanie\/pereshel-s-terraform-na-cloudformation-i-pozhalel\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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\/hu\/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\udd47\u00c1t\u00e1lltam a Terraformr\u00f3l a CloudFormationra \u2014 \u00e9s megb\u00e1ntam | ProHoster","description":"Infrastrukt\u00fara k\u00f3d form\u00e1j\u00e1ban, ism\u00e9telhet\u0151 sz\u00f6veges form\u00e1tumban val\u00f3 bemutat\u00e1sa a legjobb gyakorlat a rendszerek sz\u00e1m\u00e1ra, amit nem sz\u00fcks\u00e9ges eg\u00e9rrel kezelni.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/pereshel-s-terraform-na-cloudformation-i-pozhalel","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\/hu\/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\/hu\/wp-json\/wp\/v2\/posts\/52367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=52367"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/52367\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=52367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=52367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=52367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}