[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"
          }
        ]
      }
    },





댓글

이 블로그의 인기 게시물

AWS SA 자격증 시험 합격 후기

[AWS] Lightsail vs EC2 (서울리전 2018.5 기준)

[AWS] EC2 SMTP 트래픽 제한 해제 하기 - 대량 이메일 발송서버 구성을 위해