[AWS] CloudFormation 활용 - VPC 서브넷과 보안그룹 복제하기
VPC/Subnet 복제시 수정사항
문제:
원본 시스템의 구성요소에 NATGateway가 있다면, CloudFormer로 수집이 안되므로, 생성된 템플릿으로 스택 실행 시 NatGateway가 관련된 라우팅 테이블 생성 단계에서 에러가 발생한다.
해결:
템플릿 내용 중, 에러가 발생한 라우팅넘버 항목에 가서 GatewayId를 InterGateway의 Id로 일단 지정해서 템플릿 에러를 해결한 후, 수동으로 NatGate 생성 및 연결을 해 준다.
Security Group 복제시 수정사항
여기서는 VPC/Subnet 생성을 위한 템플릿과 Security Group 생성을 위한 템플릿을 나누어서 생성한 경우에 해당하는 문제입니다.
Security Group은 특정 VPC에 종속적이므로 템플릿의 첫 부분에는 VPC 생성을 위한 항목이 존재하고, 이후 보안그룹 생성은 처음 정의된 VPC의 Id를 모두 참조하도록 되어 있어 실행 시 에러가 발생합니다.
해결:
보안그룹 생성 구문에서 참조할 VPC Id를 템플릿 실행 시 파라미터로 입력 받도록 템플릿을 수정합니다.
수정 전
{
"AWSTemplateFormatVersion": "2010-09-09",
"Resources": {
"vpc07134a125a927833a": {
"Type": "AWS::EC2::VPC",
"Properties": {
"CidrBlock": "10.1.0.0/16",
"InstanceTenancy": "default",
"EnableDnsSupport": "true",
"EnableDnsHostnames": "true",
"Tags": [
{
"Key": "Name",
"Value": "myservice_vpc"
},
{
"Key": "Service",
"Value": "myservice"
}
]
}
},
"sgmyservicedb01RMV29A7T2SO9": {
"Type": "AWS::EC2::SecurityGroup",
"Properties": {
"GroupDescription": "myservice_db_01",
"VpcId": {
"Ref": "vpc07134a125a927833a"
},
"Tags": [
{
"Key": "Service",
"Value": "myservice"
},
{
"Key": "Name",
"Value": "myservice_db_01"
}
]
}
},
수정 후
; 위의 회색 영역 삭제 후 아래의 형광영역 삽입
; 형광영역의 VPC Id는 앞서 생성된 VPC의 실제 Id를 입력
; VPC Id에 하이픈("-")이 들어감에 주의할 것
{
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters" : {
"vpc07134a521a927833a" : {
"Type" : "String",
"Default" : "vpc-0703796f666c6dec1",
"AllowedValues" : ["vpc-0703796f666c6dec1"],
"Description" : "Enter VPC id"
}
},
"Resources": {
"sgmyservicedb01RMV29A7T2SO9": {
"Type": "AWS::EC2::SecurityGroup",
"Properties": {
"GroupDescription": "myservice_db_01",
"VpcId": {
"Ref": "vpc07134a125a927833a"
},
"Tags": [
{
"Key": "Service",
"Value": "myservice"
},
{
"Key": "Name",
"Value": "myservice_db_01"
}
]
}
},
문제:
원본 시스템의 구성요소에 NATGateway가 있다면, CloudFormer로 수집이 안되므로, 생성된 템플릿으로 스택 실행 시 NatGateway가 관련된 라우팅 테이블 생성 단계에서 에러가 발생한다.
해결:
템플릿 내용 중, 에러가 발생한 라우팅넘버 항목에 가서 GatewayId를 InterGateway의 Id로 일단 지정해서 템플릿 에러를 해결한 후, 수동으로 NatGate 생성 및 연결을 해 준다.
Security Group 복제시 수정사항
여기서는 VPC/Subnet 생성을 위한 템플릿과 Security Group 생성을 위한 템플릿을 나누어서 생성한 경우에 해당하는 문제입니다.
Security Group은 특정 VPC에 종속적이므로 템플릿의 첫 부분에는 VPC 생성을 위한 항목이 존재하고, 이후 보안그룹 생성은 처음 정의된 VPC의 Id를 모두 참조하도록 되어 있어 실행 시 에러가 발생합니다.
해결:
보안그룹 생성 구문에서 참조할 VPC Id를 템플릿 실행 시 파라미터로 입력 받도록 템플릿을 수정합니다.
수정 전
{
"AWSTemplateFormatVersion": "2010-09-09",
"Resources": {
"vpc07134a125a927833a": {
"Type": "AWS::EC2::VPC",
"Properties": {
"CidrBlock": "10.1.0.0/16",
"InstanceTenancy": "default",
"EnableDnsSupport": "true",
"EnableDnsHostnames": "true",
"Tags": [
{
"Key": "Name",
"Value": "myservice_vpc"
},
{
"Key": "Service",
"Value": "myservice"
}
]
}
},
"sgmyservicedb01RMV29A7T2SO9": {
"Type": "AWS::EC2::SecurityGroup",
"Properties": {
"GroupDescription": "myservice_db_01",
"VpcId": {
"Ref": "vpc07134a125a927833a"
},
"Tags": [
{
"Key": "Service",
"Value": "myservice"
},
{
"Key": "Name",
"Value": "myservice_db_01"
}
]
}
},
수정 후
; 위의 회색 영역 삭제 후 아래의 형광영역 삽입
; 형광영역의 VPC Id는 앞서 생성된 VPC의 실제 Id를 입력
; VPC Id에 하이픈("-")이 들어감에 주의할 것
{
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters" : {
"vpc07134a521a927833a" : {
"Type" : "String",
"Default" : "vpc-0703796f666c6dec1",
"AllowedValues" : ["vpc-0703796f666c6dec1"],
"Description" : "Enter VPC id"
}
},
"Resources": {
"sgmyservicedb01RMV29A7T2SO9": {
"Type": "AWS::EC2::SecurityGroup",
"Properties": {
"GroupDescription": "myservice_db_01",
"VpcId": {
"Ref": "vpc07134a125a927833a"
},
"Tags": [
{
"Key": "Service",
"Value": "myservice"
},
{
"Key": "Name",
"Value": "myservice_db_01"
}
]
}
},
댓글
댓글 쓰기