시나리오 2. Public과 Private Subnet

Prev Next

VPC 환경에서 이용 가능합니다.

아키텍쳐

Virtual Private Cloud(VPC)에 Public Subnet과 Private Subnet이 구성됩니다. 이 시나리오는 Private 서버(예: DB)에 대한 공개적인 접근을 차단하며 Public Web Application을 실행하려는 경우에 권장됩니다.

  • 웹 서버가 데이터베이스 서버와 통신할 수 있도록 보안 및 라우팅을 제공합니다.

Network-VPC_Senario_03_vpc_en

1. VPC

  • IPv4 CIDR 블록의 크기가 /16(예: 10.0.0.0/16)으로 제공되며 65,536개의 주소 공간을 제공합니다.

2. Public Subnet

  • Subnet 크기가 최대 /24(예: 10.0.0.0/24)으로 제공되며 256개의 주소 공간을 제공합니다.

    • Public Subnet내의 서버는 인터넷과 연결이 필요한 서버입니다. (예 : 웹서버)
    • 각각의 서버는 공인 IP를 하나씩 보유합니다. (1 : 1 NAT)

3. Private Subnet

  • Subnet 크기가 최대 /24(예: 10.0.0.0/24)으로 제공되며 256개의 주소 공간을 제공합니다.
  • Private Subnet내의 서버는 인터넷에서 수신되는 트래픽을 수락할 필요가 없는 서버입니다.(예 : DB)

4. Internet Gateway

  • VPC를 인터넷 및 다른 Ncloud 서비스에 연결합니다.

5. NAT Gateway

  • Private Subnet 내의 서버가 인터넷 연결 시에 사용하는 게이트웨이 입니다.

6. 라우팅 테이블

  • Public Subnet : 서버가 VPC 내의 다른 인스턴스와 통신할 수 있게 하는 항목(local)과 인터넷과 직접 통신할 수 있게 하는 항목(IGW)이 저장됩니다.

  • Private Subnet : 서버가 VPC 내의 다른 인스턴스와 통신할 수 있게 하는 항목(local)과 NAT Gateway를 통해 인터넷과 통신할 수 있게 하는 항목이 저장됩니다.

라우팅

라우팅 정보는 아래와 같습니다.

  • Public Subnet

vpc-10-2

  • Private Subnet

vpc-10-3

보안

보안을 위해 ACG와 Network ACL을 제공합니다. ACG는 서버의 Inbound/ Outbound 트래픽을 제어하고, Network ACL은 Subnet의 Inbound/Outbound 의 트레픽을 제어합니다. 본 시나리오에서 ACG와 Network ACL은 아래와 같이 구성하는 것을 권장합니다.

  • Public Subnet : Inbound
우선순위 프로토콜 접근 소스 포트 허용 여부 메모
1 TCP 0.0.0.0/0 80 허용 Inbound HTTP 트래픽 허용
2 TCP 0.0.0.0/0 443 허용 Inbound HTTPS 트래픽 허용
3 TCP 접속자 IP 22 허용 접속자 IP로부터 SSH 트래픽 허용(인터넷 게이트웨이를 통해)
4 TCP 접속자 IP 3389 허용 접속자 IP로부터 RDP 트래픽 허용(인터넷 게이트웨이를 통해)
5 TCP 0.0.0.0/0 32768-65535 허용 Subnet에서 발신되는 요청에 대한 Inbound 리턴 트래픽 허용(표시된 IP 및 포트는 예시이므로 구성에 맞는 설정을 진행하시기 바랍니다)
197 TCP 0.0.0.0/0 1-65535 거부 위 규칙 외의 나머지 규칙은 모두 트래픽이 거부됨
198 UDP 0.0.0.0/0 1-65535 거부 위 규칙 외의 나머지 규칙은 모두 트래픽이 거부됨
199 ICMP 0.0.0.0/0 - 거부 위 규칙 외의 나머지 규칙은 모두 트래픽이 거부됨
  • Public Subnet : Outbound
우선순위 프로토콜 접근 소스 포트 허용 여부 메모
1 TCP 0.0.0.0/0 80 허용 Outbound HTTP 트래픽 허용
2 TCP 0.0.0.0/0 443 허용 Outbound HTTPS 트래픽 허용
3 TCP 0.0.0.0/0 32768-65535 허용 인터넷에서 클라이언트에 대한 Outbound 응답을 허용(표시된 IP 및 포트는 예시이므로 구성에 맞는 설정을 진행하시기 바랍니다)
4 TCP Private 서버 Private IP Private 서버 포트(예: DB) 허용 Private 서버와 통신을 하기 위한 트래픽 허용
197 TCP 0.0.0.0/0 1-65535 거부 위 규칙 외의 나머지 규칙은 모두 트래픽이 거부됨
198 UDP 0.0.0.0/0 1-65535 거부 위 규칙 외의 나머지 규칙은 모두 트래픽이 거부됨
199 ICMP 0.0.0.0/0 - 거부 위 규칙 외의 나머지 규칙은 모두 트래픽이 거부됨
  • Private Subnet : Inbound
우선순위 프로토콜 접근 소스 포트 허용 여부 메모
1 TCP Public Subnet 서버의 비공인 IP Private 서버 포트(예: DB포트) 허용 Public 서버와 통신을 하기 위한 트래픽 허용
2 TCP 0.0.0.0/0 32768-65535 허용 인터넷으로 발신되는 요청에 대한 Inbound 리턴 트래픽 허용(표시된 IP 및 포트는 예시이므로 구성에 맞는 설정을 진행하시기 바랍니다)
197 TCP 0.0.0.0/0 1-65535 거부 위 규칙 외의 나머지 규칙은 모두 트래픽이 거부됨
198 UDP 0.0.0.0/0 1-65535 거부 위 규칙 외의 나머지 규칙은 모두 트래픽이 거부됨
199 ICMP 0.0.0.0/0 - 거부 위 규칙 외의 나머지 규칙은 모두 트래픽이 거부됨
  • Private Subnet : Outbound
우선순위 프로토콜 접근 소스 포트 허용 여부 메모
1 TCP Public Subnet 서버의 비공인 IP 32768-65535 허용 Public서버에서 Private 서버에 대한 Outbound 응답을 허용(표시된 IP 및 포트는 예시이므로 구성에 맞는 설정을 진행하시기 바랍니다)
197 TCP 0.0.0.0/0 1-65535 거부 위 규칙 외의 나머지 규칙은 모두 트래픽이 거부됨
198 UDP 0.0.0.0/0 1-65535 거부 위 규칙 외의 나머지 규칙은 모두 트래픽이 거부됨
199 ICMP 0.0.0.0/0 - 거부 위 규칙 외의 나머지 규칙은 모두 트래픽이 거부됨

시나리오 구현

Step 1. VPC 생성

VPC를 생성합니다.

(1) 콘솔 > VPC > VPC Management로 이동합니다.

(2) 화면 상단 [VPC 생성] 버튼을 누른 후, VPC 이름과 IP 주소 범위를 입력합니다.

  • IP 주소 범위는 추후 수정이 불가하므로 신중하게 지정 바랍니다.

Step 2. Subnet 생성

Subnet을 생성합니다.

(1) 콘솔 > VPC > Subnet Management로 이동합니다.

(2) 화면 상단 [Subnet 생성] 버튼을 누른 후, 정보를 입력합니다.

  • Subnet 이름 : 목적에 맞는 Subnet명을 입력합니다.

  • VPC : Subnet을 배치시킬 vpc를 선택합니다.

  • IP주소 범위 : VPC의 주소 범위 내에서 Subnet 주소 범위를 일부 할당합니다.

  • 가용Zone : Subnet이 배치될 물리적인 가용 Zone을 선택합니다.

    • 현재는 Single Zone으로 운영중입니다. 추가 Zone도 준비중이오니 양해바랍니다.
  • Network ACL : 기본적으로 Default ACL 룰을 제공합니다. 사전에 네트워크 구성 요건에 맞춰 Network ACL을 구성하시면 보안을 더욱 강화할 수 있습니다.

  • Internet Gateway 전용 여부 : 사용하고자 하는 Subnet 특성을 고려하여 Public Subnet을 사용할 경우는 Y를, Private Subnet을 사용할 경우는 N을 선택합니다.

    • Public Subnet 내에서 생성한 서버는 공인 IP를 할당할 수 있으며, 인터넷 통신이 가능합니다.

    • 이 시나리오를 구현하기 위해서는 Public, Private Subnet을 각각 생성해야 합니다.

Step 3. Network ACL 설정

Network ACL을 설정합니다.

(1) 콘솔 > VPC > Network ACL로 이동합니다.

(2) [Network ACL 생성] 버튼을 누른 후 정보를 입력합니다.

  • Network ACL 이름 : ACL의 목적을 고려하여 이름을 입력합니다.

  • VPC : 생성하고자 하는 Network ACL이 적용될 VPC를 선택합니다.

(3) Rule 설정을 통해 Network ACL의 Inbound와 Outbound 규칙을 수정할 수 있습니다. 본 시나리오의 보안에서 권장하는 룰을 입력하시면 됩니다.

Step 4. Route Table 설정

Route Table을 설정합니다.

(1) 콘솔 > VPC > Route Table로 이동합니다.

(2) [Route Table 생성] 버튼을 누른 후 정보를 입력합니다.

  • Route Table 이름 : 사용하길 원하는 Route Table의 이름을 입력합니다.

  • VPC : Route Table은 Subnet 단위로 적용됩니다. 적용하실 Subnet이 있는 VPC를 입력하면 됩니다.

  • Subnet 지원 유형 : Internet Gateway가 연결되는 Subnet에 적용되는 Route Table 이라면 공인을 선택하며 그렇지 않은 경우 사설을 선택하면 됩니다.

(3) 연관 Subnet 설정 을 통해 해당 Route Table이 적용될 Subnet을 선택할 수 있습니다.

(4) Route 설정을 통해 라우팅 테이블을 설정할 수 있습니다. 본 시나리오에서 위 설정이 자동으로 반영 됩니다.

Step 5. NAT Gateway 생성

NAT Gateway를 생성합니다.

(1) 콘솔 > VPC > NAT Gateway로 이동합니다

(2) [NAT Gateway 생성] 버튼을 누른 후 해당하는 정보를 입력합니다.

  • NAT Gateway 이름 : 목적에 맞는 NAT Gateway 이름을 입력합니다.

  • VPC : 생성하고자 하는 NAT Gateway가 적용될 VPC를 선택합니다.

  • ZONE : Subnet이 배치될 물리적인 가용 Zone을 선택합니다

    • 현재는 single zone으로 운영중입니다. 추가 Zone도 준비중이오니 양해 바랍니다.

Step 6. Route Table 설정

Route Table을 설정합니다.

(1) 콘솔 > VPC > Route Table로 이동합니다

(2) 앞서 생성한 사설 Subnet과 연관된 Route Table을 선택하고 [Route 설정] 버튼을 누른 후 해당하는 정보를 입력합니다.

  • Destination : 통신할 대상 네트워크의 주소형태를 CIDR 형태로 입력합니다.

    • 인터넷 전체에 대한 통신이 필요할 경우 “0.0.0.0/0” 이 됩니다.
  • Target Type : 트래픽이 전달될 대상을 선택합니다.

    • 이 시나리오에서는 “NATGW”가 됩니다.
  • Target Name : 생성한 NAT Gateway를 선택합니다.

(3) 연관 Subnet 설정을 통해 해당 Route Table이 적용될 Subnet을 추가할 수 있습니다.