Terraform je multi-cloud. CloudFormation je AWS-only. Proč bychom chtěli vendor-specific nástroj? Protože CloudFormation je nativní — drift detection, stack events, rollback, integrace s každou AWS službou od prvního dne.
Stacks a šablony¶
AWSTemplateFormatVersion: '2010-09-09'
Description: Web application stack
Resources:
WebServer:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-0c55b159cbfafe1f0
InstanceType: t2.micro
SecurityGroupIds:
- !Ref WebSecurityGroup
Tags:
- Key: Name
Value: web-server
WebSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Web server security group
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 80
ToPort: 80
CidrIp: 0.0.0.0/0
Outputs:
PublicIP:
Value: !GetAtt WebServer.PublicIp
CloudFormation vs. Terraform¶
CF výhody: Nativní drift detection, automatický rollback při selhání, stack events pro auditování, no state file management. Terraform výhody: Multi-cloud, lepší HCL syntax, plan command, větší komunita modulů.
Naše strategie: Terraform pro multi-cloud a infrastrukturu, CloudFormation pro AWS-specifické služby (Lambda, API Gateway, CloudFront) kde CF má lepší podporu.
Oba nástroje mají místo¶
CloudFormation pro deep AWS integrace, Terraform pro flexibilitu. Důležité je mít infrastrukturu jako kód — konkrétní nástroj je sekundární.