테스트 환경을 구축하기 위해 Cloudformation을 공부해보자
실무에서도 빠르게 인프라를 구축하기 위해 많이 사용한다.
<1> 요청 사항 - Pub1 , Pri1 Subnet
<2> Cloudformation 코드에 들어가야 하는것
<3> Cloudformation 내용
<4> 다른 Cloudformation 파일 보기
<5> 다음은 가장 많이 사용하는 Public Subnet 2개 , Private subnet 2개
<1> 요청 사항 - Pub1 , Pri1 Subnet
VPC 1개
Public Subnet 1개
Private Sunet 1개 구성이다.
<2> Cloudformation 코드에 들어가야 하는것
pub관련 4개
PublicSubnet1
PublicRouteTable 테이블
PublicRoute 0.0.0.0
PublicSubnetRouteTableAssociation1
private 관련 3개
PrivateSubnet1:
PrivateRouteTable: 테이블
PrivateSubnetRouteTableAssociation1:
// private는 라우팅 테이블 없는것.
// 나중에 nat가 생기면 라우팅 테이블이 있음.
공통
VPC
InternetGateway
VPCGatewayAttachment
<3> Cloudformation 내용
AWSTemplateFormatVersion: 2010-09-09
Description: Deploy a VPC
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
EnableDnsHostnames: true
Tags:
- Key: Name
Value: Lab VPC
InternetGateway:
Type: AWS::EC2::InternetGateway
Properties:
Tags:
- Key: Name
Value: Lab Internet Gateway
AttachGateway:
Type: AWS::EC2::VPCGatewayAttachment
Properties:
VpcId: !Ref VPC
InternetGatewayId: !Ref InternetGateway
PublicSubnet1: 1111111111111111111111111111
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: 10.0.0.0/24
AvailabilityZone: !Select
- '0'
- !GetAZs ''
Tags:
- Key: Name
Value: Public Subnet 1
PrivateSubnet1: 111111111111111111111111111
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: 10.0.1.0/24
AvailabilityZone: !Select
- '0'
- !GetAZs ''
Tags:
- Key: Name
Value: Private Subnet 1
PublicRouteTable: 222222222222222222222
Type: AWS::EC2::RouteTable
Properties:
VpcId: !Ref VPC
Tags:
- Key: Name
Value: Public Route Table
PublicRoute: 333333333333333333
Type: AWS::EC2::Route
Properties:
RouteTableId: !Ref PublicRouteTable
DestinationCidrBlock: 0.0.0.0/0
GatewayId: !Ref InternetGateway
PublicSubnetRouteTableAssociation1: 44444444444444444
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref PublicSubnet1
RouteTableId: !Ref PublicRouteTable
PrivateRouteTable: 222222222222222222222
Type: AWS::EC2::RouteTable
Properties:
VpcId: !Ref VPC
Tags:
- Key: Name
Value: Private Route Table
PrivateSubnetRouteTableAssociation1: 3333333333333333333333
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref PrivateSubnet1
RouteTableId: !Ref PrivateRouteTable
Outputs:
VPC:
Description: VPC
Value: !Ref VPC
AZ1:
Description: Availability Zone 1
Value: !GetAtt
- PublicSubnet1
- AvailabilityZone
파일 첨부
<4> 다른 Cloudformation 파일 보기
https://brunch.co.kr/@topasvga/1781
<5> 다음은 가장 많이 사용하는 Public Subnet 2개 , Private subnet 2개
https://brunch.co.kr/@topasvga/1910
감사합니다.