Search
Duplicate

NCP 네트워크 구성

NCP (Naver Cloud Platform) VPC 기준. 웹서비스 구축에 필요한 이해를 높이기 위하여, NCP 제공 가이드를 토대로 간단히 정리

전체 구성

적용 순서 : Network ACL → ACG
NCP의 경우, OS 방화벽을 사용하지 않는다. (iptables, firewalld )
본 문서에서 서버는 VM을 의미한다.

VPC (Virtual Private Cloud)

“퍼블릭 클라우드 상에서 제공되는 고객 전용 사설 네트워크를 의미”
Tip. NCP의 VPC에는 포트포워딩 개념이 없고, 공인 IP로만 서버에 접근 가능하다.
고객의 계정마다 최대 3개의 VPC를 생성할 수 있다.
VPC는 최대 넷마스크 0.0.255.255/16 (IP 65,536개) 크기의 네트워크 주소 공간을 제공
VPC는 다른 VPC 네트워크와 논리적으로 완벽하게 분리되어 있다.
VPC 별로 독립적인 IP 대역을 제공하기 때문에, 서버 생성 시 원하는 사설 IP로 설정이 가능

Network ACL (Access Control List)

서브넷 범위의 방화벽 정책 그룹”

Example

이름 : NACL Rule #1
인바운드
우선순위
프로토콜
접근 소스
포트
허용여부
1
TCP
0.0.0.0/0 (전체)
80
허용
2
TCP
* AdminGroup#1
22
허용
아웃바운드
우선순위
프로토콜
접근 소스
포트
허용여부
1
TCP
0.0.0.0/0 (전체)
80
허용
2
TCP
0.0.0.0/0 (전체)
443
허용
Deny-Allow Group = 특정 IP의 그룹
이름 : AdminGroup#1
IP
10.10.10.5
10.10.10.6
10.10.10.7
Tip. Load Balancer 서비스의 접근 제어 정책은 ACG가 아닌 ACL로 관리. * Load Balancer 서비스 추가 과정 VPC 선택 → 기존 서브넷 선택 or 신규 서브넷 추가 → 타겟 그룹 설정 및 타겟 설정 (서버)

ACG (Access Control Group)

“서버 간 네트워크 접근 제어 및 관리를 할 수 있는 IP/Port 기반 필터링 방화벽 서비스”

Example

이름 : Server#1’s Rule
인바운드
프로토콜
접근 소스
포트
허용여부
TCP
192.168.1.10
3306
허용
TCP
* Server#2’s Rule
22
허용
아웃바운드
프로토콜
접근 소스
포트
허용여부
TCP
0.0.0.0/0 (전체)
25
허용
TCP
0.0.0.0/0 (전체)
465
허용
* ACG의 접근 소스 등록 할 때 기존 생성된 ACG의 이름을 등록 하면,
해당 ACG 그룹에 속한 개체 전체를 접근 소스로 지정이 된다.
* ACG는 ACL과 다르게 우선순위가 존재하지 않는다.

ACG와 ACL의 차이

ACG
ACL
서버 단위로 적용
Subnet 단위로 적용
Allow 규칙에 한하여 지원
Allow, Deny 규칙 모두 지원
Stateful :Response 트래픽이 자동으로 허용
Stateless :Response 트래픽에 대한 Allow 규칙이 추가적으로 필요
모든 규칙을 확인하여 판단
우선순위에 따라 규칙을 반영

인터넷 통신 방식에 따른 서브넷 구분

NCP의 VPC는 Public SubnetPrivate Subnet으로 구성된다.
VPC에서 서브넷을 추가하는 과정에서 Internet Gateway사용 여부를 선택하는데,
해당 설정에 따라 Public SubnetPrivate Subnet이 결정된다.

Public Subnet

외부 네트워크와 통신이 필요한 서버를 해당 서브넷에 구성. Ex : 웹 서버
Public Subnet에서 서버를 생성한 후 공인 IP를 할당을 한다.
할당한 공인 IP를 통하여 외부 네트워크와 인바운드, 아웃바운드 통신을 하게 된다.

Private Subnet

외부 네트워크와 통신이 필요 없는 서버를 해당 서브넷에 구성. Ex : DB 서버
Private Subnet에서 생성한 서버는 공인 IP를 할당 할 수 없다.
이에 따라 외부 네트워크에서의 들어오는 트래픽을 받을 수 없다.
다만, NAT Gateway를 설정을하게 될 경우, 외부 네트워크로 나가는 통신은 가능하다.
NAT Gateway는 사설 IP를 공인 IP로 변환을하여 인터넷 Outbound 통신을 지원. 단, 내부 자원과 공인IP가 1:1 구조로 매핑되는 구조가 아니므로 외부에서 내부 자원으로의 직접적인 연결은 불가

NAT?

Network Address Translation.
NAT를 쉽게 설명하면 사설 IP를 공인 IP으로 변환하는 것을 의미한다. 인터넷 통신을 하기위해서는 공인 IP가 필요한데, 공인 IP의 부족으로 인한 IP 절약의 목적외부 네트워크와의 직접적인 연결을 방지하기 위한 보안적인 이유로 NAT를 구성한다.
Tip. NAT와 항상 연관되는 개념으로 포트 포워딩이 있다. NAT의 경우 내부 서비스의 포트를 하나 하나 매핑한 것이 아니기 때문에, 외부에서 내부서버의 서비스에 연결을 할 수 없는 부분이 있다. 외부 포트와 내부 포트를 매핑하여 포트 기준으로 외부에서 사설 IP를 가진 서버에 연결을 할 수 있도록 하는 것을 포트 포워딩이라고 한다. NAT 및 포트 포워딩은 NAT 라우터 장비가 수행한다.

궁금할 만한 부분

1. Private Subnet에 위치한 서버에서 외부 서버의 API를 호출 해야합니다.
Private SubnetACL과 해당 서버의 ACG아웃바운드 설정에서 특정서버의 IP와 Port를 추가합니다.
2. Private Subnet에 위치한 서버에서 NCP 오브젝트 스토리지 API를 호출해야 합니다.
VPC에서 Object Storage로 접속 시 다음과 같은 방법으로 연결할 수 있습니다. Public Subnet 내 서버 공인 도메인을 이용하여 인터넷을 기반으로 통신할 수 있습니다. 수도권 리전: kr.object.gov-ncloudstorage.com 남부권 리전: krs.object.gov-ncloudstorage.com * 사설 도메인을 이용하여 사설 통신을 할 수 있습니다. 수도권 리전: kr.object.private.gov-ncloudstorage.com 남부권 리전: krs.object.private.gov-ncloudstorage.com Private Subnet 내 서버 기본적으로 사설 도메인을 이용하여 통신할 수 있습니다. 수도권 리전: kr.object.private.gov-ncloudstorage.com 남부권 리전: krs.object.private.gov-ncloudstorage.com * NAT Gateway를 이용하시면 공인 도메인을 이용해 통신할 수 있습니다.