🟡 Intermediate

CloudFormation — AWS natívny Infrastructure as Code

AWS CloudFormation je služba, ktorá umožňuje modelovať a spravovať AWS infraštruktúru pomocou šablón v JSON alebo YAML formáte. Ako natívny AWS nástroj ponúka hlbokú integráciu so všetkými AWS službami.


Čo je CloudFormation?

CloudFormation je deklaratívny IaC nástroj priamo od Amazonu. Definujete želaný stav infraštruktúry v šablóne a CloudFormation sa postará o vytvorenie, aktualizáciu a mazanie zdrojov v správnom poradí.

  • Natívna integrácia — podpora pre všetky AWS služby od prvého dňa
  • Žiadna inštalácia — beží priamo v AWS konzole a CLI
  • Rollback — automatický návrat pri chybe
  • Drift detection — detekcia manuálnych zmien mimo šablóny

Ako CloudFormation funguje

  1. Template — napíšete šablónu v YAML/JSON popisujúcu zdroje
  2. Stack — vytvoríte stack z šablóny — CloudFormation vytvorí všetky zdroje
  3. Change Set — pri aktualizácii vidíte zmeny pred aplikáciou
  4. Drift Detection — CloudFormation porovná skutočný stav s definovaným

CloudFormation rieši závislosti medzi zdrojmi automaticky a vytvára ich v správnom poradí.

Príklad šablóny

AWSTemplateFormatVersion: "2010-09-09"
Description: "Web server stack"

Parameters:
  Environment:
    Type: String
    Default: production
    AllowedValues: [production, staging, dev]

Resources:
  WebServer:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-0c55b159cbfafe1f0
      InstanceType: t3.micro
      Tags:
        - Key: Name
          Value: !Sub "web-${Environment}"

  WebBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Sub "assets-${Environment}"

Outputs:
  ServerIP:
    Value: !GetAtt WebServer.PublicIp

Kľúčové koncepty

  • Stack — kolekcia AWS zdrojov spravovaná ako jednotka
  • StackSet — nasadenie stackov naprieč viacerými účtami a regiónmi
  • Nested Stacks — rozdelenie veľkých šablón do modulov
  • Change Set — náhľad zmien pred aplikáciou
  • Intrinsic Functions!Ref, !Sub, !GetAtt, !Join pre dynamické hodnoty

Praktické použitie

  • Spravovanie kompletnej AWS infraštruktúry tímom
  • Multi-account a multi-region nasadenia cez StackSets
  • Compliance — vynútenie štandardov cez šablóny
  • Disaster recovery — rýchla rekonštrukcia infraštruktúry z šablón

Best Practices

  • Používajte YAML — čitateľnejší ako JSON
  • Rozdeľte veľké šablóny do nested stackov
  • Využívajte Parameters a Mappings pre flexibilitu
  • Zapnite drift detection pre kritické stacky
  • Nikdy nemodifikujte zdroje manuálne mimo CloudFormation
  • Ukladajte šablóny do Git repozitára

CloudFormation je najlepšia voľba pre tímy plne investované do AWS ekosystému, kde natívna integrácia prevažuje nad multi-cloud flexibilitou.