본문으로 건너뛰기

Transit Gateway를 이용한 다중 VPC 연결

카카오클라우드는 Transit Gateway를 이용하여 중앙 집중식 형태로 VPC 간 트래픽을 쉽게 관리할 수 있습니다.

안내
  • 예상 소요 시간: 60분
  • 권장 운영 체제: macOS, Ubuntu
  • Region: kr-central-2
  • 사전 준비 사항

구성도

해당 시나리오에서는 2개의 VPC를 생성하고, Transit Gateway를 통해 연결하는 예제를 다룹니다. 자세한 내용은 다음과 같습니다.

  1. 연결할 VPC 2개를 생성합니다. 시나리오에서 각 VPC는 1개의 AZ을 사용하며, 기본 생성되는 Public Subnet을 이용합니다.
  2. Transit Gateway를 생성합니다. 그 다음 Transit Gateway에 VPC 2개를 Attachment로 추가합니다.
  3. Transit Gateway에 Static Route를 설정합니다. 특정 VPC의 CIDR를 목적지로 하는 패킷을 해당 VPC로 라우팅하는 정책을 추가합니다.
  4. Subnet의 Route 정책을 설정합니다. 이 시나리오에서는 기본 생성된 Public Subnet을 사용합니다. 해당 Subnet에서 다른 VPC를 목적지로 하는 패킷을 Transit Gateway로 라우팅하는 정책을 추가합니다. 이로써 Transit Gateway를 통해 목적지 VPC와 연결할 수 있습니다.
  5. 각 Subnet에 VM 인스턴스를 생성합니다. ping 명령어를 사용하여 패킷이 다른 VPC의 인스턴스로 제대로 전달되는지 확인합니다.

시나리오의 구성도는 다음과 같습니다.

이미지

Step 1. VPC 및 네트워크 생성

VPC는 논리적으로 격리된 가상 네트워크 공간을 제공합니다. 이 가상 네트워크 환경을 통해 카카오클라우드의 리소스를 유연하게 운영할 수 있습니다. 자세한 내용은 VPC 문서를 통해 확인하세요.

  1. 카카오클라우드 콘솔 > VPC에 접속한 뒤 [VPC 생성] 버튼을 이용하여 새로운 VPC를 생성합니다.

  2. 다음을 참조하여 연결을 진행할 vpc-a 를 생성합니다. VPC IP CIDR의 값은 사용 중인 환경에 따라 수정이 필요할 수 있습니다. 수정한 경우, 시나리오 진행에서 사용하는 모든 해당 값에 대해서도 변경이 필요합니다.

    이미지

    항목세부 항목
    VPC 정보VPC 이름handson-vpc-a
    VPC IP CIDR 블록10.1.0.0/16
    Availability ZoneAZ 개수1
    첫 번째 AZkr-central-2-a
    서브넷 설정AZ당 Public Subnet 개수1
    AZ당 Private Subnet 개수0
  3. 다음을 참조하여 연결을 진행할 vpc-b 를 생성합니다.

    주의

    VPC를 생성할 때 각 VPC의 CIDR(Classless Inter-Domain Routing) 범위가 서로 중복되지 않도록 설정해야 합니다. CIDR은 VPC의 네트워크 주소 범위를 정의하며, 중복된 CIDR을 가진 VPC가 있다면 충돌이 발생하고 서로 통신할 수 없게 됩니다. 따라서 각 VPC의 CIDR은 고유하게 설정해야 합니다.
    예를 들어, VPC A의 CIDR이 10.1.0.0/16이라면, VPC B의 CIDR은 10.2.0.0/16과 같이 서로 다른 범위로 설정해야 합니다.

    이미지

    항목세부 항목
    VPC 정보VPC 이름handson-vpc-b
    VPC IP CIDR 블록10.2.0.0/16
    Availability ZoneAZ 개수1
    첫 번째 AZkr-central-2-b
    서브넷 설정AZ당 Public Subnet 개수1
    AZ당 Private Subnet 개수0
  4. 카카오클라우드 콘솔 > VPC > Subnet 탭에 접속합니다. 그 다음 생성된 Subnet, Route Table 등 네트워크 리소스를 확인합니다.

    이미지

Step 2. Transit Gateway 생성 및 설정

Transit Gateway는 VPC 수가 많아질수록 복잡해지는 VPC Peering 구성의 한계를 넘어서 중앙 집중식 형태로 VPC 간 또는 VPC-온프레미스간 트래픽들을 보다 쉽게 관리할 수 있습니다. 자세한 내용은 Transit Gateway를 통해 확인하세요.

1. Transit Gateway 생성

  1. 카카오클라우드 콘솔 > Transit Gateway에 접속 후, [Transit Gateway 만들기] 버튼을 이용하여 새로운 Transit Gateway를 생성할 수 있습니다.

  2. 예제는 아래 표 및 이미지를 확인하여 생성할 Transit Gateway의 정보를 입력합니다.

    이미지

    항목설명
    Transit Gateway 이름handson-transit-gateway
    기본 연결 (Association)연결
  3. 리소스가 정상적으로 생성되었는지 확인합니다.

    이미지

2. Attachment 생성

  1. 생성된 Transit Gateway의 상세 설정을 통해 Attachment 생성 작업을 진행합니다.

    이미지

  2. 생성한 예제 handson-vpc-a 를 Transit Gateway의 Attachment로 추가합니다.

    이미지

  3. 생성한 VPC handson-vpc-b 를 Transit Gateway의 Attachment로 추가합니다.

    이미지

  4. Attachment가 추가되었는지 확인합니다.

    이미지

3. Transit Gateway 라우트 설정

  1. Transit Gateway의 라우트 설정을 위해 Transit Gateway 에 연결된 Route Table의 상세 페이지에 접속합니다.

    카카오클라우드 콘솔 > Transit Gateway > Transit Gateway 목록 테이블을 통해 접속 또는 카카오클라우드 콘솔 > Transit Gateway > Route Table 탭을 통해 접속합니다.

    이미지

  2. Route 탭에서 Static Route를 확인할 수 있습니다. [Static Route 추가] 버튼을 클릭하여 Static Route를 추가합니다.

    이미지

  3. 다음을 참고하여 Static Route를 추가합니다. 해당 설정을 통해 Transit Gateway로 들어오는 목적지 10.1.0.0/16인 트래픽을 handson-vpc-a로 라우트하는 규칙을 추가합니다.

    이미지

    항목
    목적지10.1.0.0/16
    Targethandson-vpc-a
  4. 다음을 참고하여 Static Route를 추가합니다. 해당 설정을 통해 Transit Gateway로 들어오는 목적지 10.2.0.0/16인 트래픽을 handson-vpc-b로 라우트하는 규칙을 추가합니다.

    이미지

    항목
    목적지10.2.0.0/16
    Targethandson-vpc-b
  5. 설정이 계획대로 추가되었는지 확인합니다.

    이미지

Step 3. Subnet 라우트 정책 설정

  1. 카카오클라우드 콘솔 > VPC > Route Table 탭에 접속하여 Route Table 목록을 확인합니다. handson-vpc-amain Subnet, handson-vpc-bmain Subnet에 연결된 각각의 Route Table 상세 페이지에 접속하여 Route 정보를 수정합니다.

    이미지

  2. handson-vpc-amain Subnet에 연결된 Route Table 상세 페이지에 접속합니다. 그 다음 [Route 추가] 버튼을 클릭하여 새로운 Route를 추가합니다.

    이미지

  3. handson-vpc-bCIDR가 목적지인 경우, handson-transit-gateway를 타겟으로 설정하는 Route를 추가합니다.

  4. 생성된 Route 정보를 확인합니다.

    이미지

  5. handson-vpc-bmain Subnet에 연결된 Route Table 상세 페이지에 접속합니다. 그 다음 [Route 추가] 버튼을 클릭하여 새로운 Route를 추가합니다.

    이미지

  6. handson-vpc-aCIDR가 목적지인 경우, handson-transit-gateway를 타겟으로 설정하는 Route를 추가합니다.

    이미지

  7. 생성된 Route 정보를 확인합니다.

    이미지

Step 4. 인스턴스 생성 및 연결 확인

  1. 카카오클라우드 콘솔 > Virtual Machine > 인스턴스 메뉴에서 [인스턴스 추가] 버튼을 클릭하여 Instance를 생성합니다. 아래 표를 확인하여 생성한 VPC에 Instance를 1개씩 생성합니다.

    항목세부 항목Instance 1Instance 2
    기본 정보이름handson-instance-ahandson-instance-b
    개수11
    ImageUbuntu 20.04Ubuntu 20.04
    Instance 타입m2a.largem2a.large
    VolumeRoot Volume, 20GB, SSDRoot Volume, 20GB, SSD
    Key Pair{사용자 키 페어}{사용자 키 페어}
    NetworkVPChandson-vpc-ahandson-vpc-b
    Subnetmainhandson-vpc-b
    Security Group{아래 참고}{아래 참고}
  2. 통신을 확인하기 위해서는 사용할 포트에 대한 보안 정책을 확인해야합니다. 아래를 확인하여 해당 시나리오를 위한 보안 정책을 추가합니다.

    정책인바운드인바운드아웃바운드
    프로토콜ICMPTCPALL
    패킷 출발지 (Source)10.0.0.0/8{사용자 공인 IP}/320.0.0.0/0
    포트 번호-22-
    정책 설명pingsshall
    안내

    온라인 서비스나 웹사이트를 통해 공인 IP 주소를 확인할 수 있습니다. 예를 들어, WhatIsMyIP.com을 방문하여 공인 IP 주소를 확인할 수 있습니다.

  3. 인스턴스에 공인 IP를 할당하고 ssh 접속을 진행합니다.

    ssh ubuntu@{INSTANCE_PUBLIC_IP} -i {KEY_PAIR}
  4. 접속한 후, 다른 VPC에 생성한 Instanceping 명령어를 통해 통신을 확인합니다. 아래 이미지는 vpc-a에 위치한 instance-a에서 vpc-b에 위치한 instance-bping 명령어를 사용한 결과입니다.

    ping {INSTANCE_PRIVATE_IP}

    이미지

    아래 이미지는 vpc-b에 위치한 instance-b에서 vpc-a에 위치한 instance-aping 명령어를 사용한 결과입니다.

    이미지