
AWS에서는 인프라를 코드로 관리할 수 있는 서비스인 CloudFormation을 제공한다. 이걸 사용하면 수많은 리소스를 클릭해서 만들 필요 없이, 하나의 템플릿 파일만으로도 여러 개의 리소스를 한 번에 생성할 수 있다.
이번 실습에서는 VPC와 인터넷 게이트웨이(IGW), 그리고 그 둘을 연결하는 구성까지 CloudFormation으로 만들고, 스택을 삭제하면 해당 리소스들도 자동으로 삭제되는지 확인해봤다.
먼저 아래와 같은 CloudFormation 템플릿을 작성했다. 이 템플릿은 VPC 하나, 인터넷 게이트웨이 하나, 그리고 그 둘을 연결하는 VPCGatewayAttachment 리소스를 생성한다.
Parameters:
KeyName:
Description: EC2 KeyPair
Type: AWS::EC2::KeyPair::KeyName
LatestAmiId:
Description: EC2 AMI
Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>'
Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2'
AllowedValues:
- '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2'
Resources:
MyVPC04:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
EnableDnsSupport: true
EnableDnsHostnames: true
Tags:
- Key: Name
Value: MyVPC04
MyIGW:
Type: AWS::EC2::InternetGateway
Properties:
Tags:
- Key: Name
Value: MyIGW
MylGWattachment:
Type: AWS::EC2::VPCGatewayAttachment
Properties:
InternetGatewayId: !Ref MyIGW
VpcId: !Ref MyVPC04
이 과정을 통해 단 한 번의 스택 생성만으로 여러 리소스를 자동으로 만들 수 있다.



즉, CloudFormation을 통해 만든 리소스는 스택 삭제만으로도 자동으로 정리된다.
CloudFormation을 사용하면 복잡한 리소스 구성도 템플릿으로 관리할 수 있다. 클릭 몇 번 대신, YAML이나 JSON으로 정의한 템플릿 하나로 여러 리소스를 동시에 생성할 수 있다.
무엇보다 좋은 건 정리할 때다. 리소스를 일일이 찾아서 삭제하지 않아도 된다. 스택을 삭제하면 해당 스택이 만든 리소스들은 전부 자동으로 삭제된다. 테스트 환경을 만들었다가 정리할 때 매우 유용하다.