- 인쇄
- PDF
시나리오 2. Public과 Private Subnet
- 인쇄
- PDF
VPC 환경에서 이용 가능합니다.
아키텍쳐
Virtual Private Cloud(VPC)에 Public Subnet과 Private Subnet이 구성됩니다. 이 시나리오는 Private 서버(예: DB)에 대한 공개적인 접근을 차단하며 Public Web Application을 실행하려는 경우에 권장됩니다.
- 웹 서버가 데이터베이스 서버와 통신할 수 있도록 보안 및 라우팅을 제공합니다.
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
- Private Subnet
보안
보안을 위해 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을 추가할 수 있습니다.