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
- Template — napíšete šablónu v YAML/JSON popisujúcu zdroje
- Stack — vytvoríte stack z šablóny — CloudFormation vytvorí všetky zdroje
- Change Set — pri aktualizácii vidíte zmeny pred aplikáciou
- 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,!Joinpre 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.