TheKoguryo's 기술 블로그

Version 2019.06.03

1.4 Virtual Cloud Network(VCN)

OCI를 사용하게 되면 처음 해야 할 작업 중의 하나가 다른 클라우드 자원을 위해 Virtual Cloud Network(VCN)를 만드는 작업입니다. Oracle 데이터 센터에 서버 자원들이 사용할 가상의 네트워크 환경을 구성하는 것으로 네트워크 주소 할당, 방화벽, 라우팅 규칙, 게이트웨이 등을 하는 작업입니다.

처음 VCN을 만들 때 자동 생성 방식으로 구성할 경우 생성되는 기본 구성은 다음과 같습니다.


Virtual Cloud Network(VCN)

OCI 상의 다른 클라우드 자원을 위한 가상 네트워크 환경입니다. 생성 시 VCN에서 사용할 IP 대역은 CIDR 형식으로 지정합니다. 예) 10.0.0.0/16
VCN과 함께 VCN에 속한 아래 컴포넌트를 구성하여 원하는 가상 네트워크 환경을 구성하게 됩니다. 아래 컴포넌트 이외에도 추가적인 컴포넌트들이 많이 있지만, 여기서는 가장 기본적인 컴포넌트에 대해서만 언급하도록 하겠습니다.

Internet Gateway

명칭 그대로 인터넷과 연결하려면 통해야 하는 관문입니다. 이름을 부여하고 생성하기만 하면 됩니다.

Subnet

VCN상에 생성되는 서브 그룹으로 하나의 Availability Domain 내에 존재합니다. 사용할 IP 대역은 VCN의 대역에서 일부를 나누어 가집니다. 사용할 IP 대역은 CIDR 형식으로 지정합니다. 예) 10.0.0.0/24

Public Subnet과 Private Subnet이 있으며, Private Subnet에 있는 인스턴스는 Public IP를 가지지 못합니다. 반면 Public Subnet에 있는 인스턴스는 Public IP를 할당받게 됩니다.

Private Subnet에 있는 인스턴스는 Public IP를 가지지 못하기 때문에 인터넷상의 외부 시스템에서 들어오지는 못합니다. 대신 추가로 Network Address Translate(NAT) GATEWAY를 설정하면 외부 인터넷으로 나가는 것은 가능합니다.

Route Table

VCN을 위한 가상의 라우트 테이블로써 Subnet에서 외부 목적지로 가는 규칙을 정하는 Route Table입니다. 자동으로 생성한 디폴트 라우트 테이블은 그림처럼 모든 목적지(0.0.0.0/0)를 Internet Gateway로 라우트 되어 인터넷에 연결되게 설정되었습니다. 커스텀 라우팅 테이블을 구성하여 원하는 규칙을 설정할 수 있습니다.

Security Lists

VCN을 위한 가상의 방화벽으로 Subnet에서 들어오고 나가는 트래픽에 각각에 대한 ingress 규칙 및 egress 규칙을 설정할 수 있습니다. 그림에는 편의상 ingress rule만 표현하였으며, SSH 통신을 위해 22번 포트로 들어오는 모든 요청을 열어두었습니다. 그리고 생략되었지만, egress rule로 모든 요청이 나갈 수 있도록 설정되어 있습니다.

Compute 인스턴스에 WebServer를 설치하거나 별도의 서비스를 위해 포트를 열어야 할 경우 이 Security Lists를 업데이트하면 됩니다. 물론 Security Lists는 VCN상에서 Subnet의 방화벽이며, Compute 인스턴스 자체에 있는 리눅스 방화벽 또는 윈도우 방화벽에 있을 경우에는 자체 방화벽에서 해당 포트도 당연히 열어 두어야 합니다.



** 이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다. **
Last updated on 30 Dec 2018