지난 번 글에서 인스턴스를 생성하고 올려서 접속까지 해보았다.
단순히 인스턴스를 관리하는 것은 정말 쉬웠다. 하지만 인스턴스 갯수가 늘어나게 되면, 인스턴스끼리의 연결은 항상 인터넷을 통해야한다.
그렇게 되면 인스턴스 간의 연결이 굉장히 비효율적이게 된다.
그래서 AWS에도 개인별로 가상으로 네트워크를 만들어서 작업할 수 있는데, 이게 바로 오늘의 주제, AWS의 가상네트워크, VPC이다.
VPC는 Virtual Private Cloud로 직역하면 가상 사설 클라우드인데, 사용자가 직접 구성할 수 있는 가상의 네트워크 환경이다.
AWS의 리소스들이 존재할 네트워크 망으로 서브넷, 라우팅테이블, 인터넷 게이트웨이 등의 개념이 있다.
이러한 가상의 네트워크 공간이 존재하게 되면 물리적으로는 다른 위치에 존재하지만 같은 사설망 IP 대역에 위치한 인스턴스 간의 통신이 항상 인터넷을 거칠 필요가 없이 직접적으로 가능해진다.
VPC의 구성요소
VPC에는 다양한 네트워크 개념이 존재하는데, 이 중 알고 넘어가야 할 것만 먼저 알아보자
+) VPC는 네트워크를 만지는 작업이기 때문에 CIDR 개념은 미리 알고 있어야 이해하기가 쉽다.
1. VPC
AWS 네트워크를 구성하기 위한 가장 큰 단위로, AWS 계정 생성 시 기본으로 default VPC가 존재하고 사용자가 따로 VPC 작업을 하지 않을 경우 EC2 인스턴스 들은 모두 default VPC에 올라간다.
2. 서브넷 (Subnet)
VPC의 하위 단위로, VPC에서 CIDR 블럭지정을 통해 주소공간 중 일부를 지정받은 분할된 네트워크 공간이다.
이 서브넷은 인터넷 접근 가능 여부에 따라 Public Subnet과 Private Subnet으로 나뉜다.
서브넷 | 설명 |
Public Subnet | 외부에서 접근이 가능한 네트워크 영역, 이 서브넷 내의 인스턴스는 Public IP를 가질 수 있다 |
Private Subnet | 외부와 차단된 네트워크 영역, 이 서브넷 내의 인스턴스는 Private IP만 가질 수 있다 (따라서 인터넷 in/out bound가 불가능하다) |
AWS의 Subnet에서는 서브넷의 앞 4개, 뒤 1개의 IP는 관리 용도로 사용 중이기 때문에 사용자가 사용이 불가능하다.
3. 라우팅 테이블
각 서브넷의 Public/Private IP에 라우팅 경로를 지정해주는 요소, 서브넷으로 들어오는 트래픽의 목적지를 지정해주는 이정표 정도로 생각하면 좋다.
4. 인터넷 게이트웨이
VPC의 인스턴스에서 인터넷이 가능하도록 하는 구성요소, 인터넷 게이트웨이를 생성하고 라우팅 테이블에 등록해주어야 사용 가능하다.
간단하게 4가지 VPC 구성요소를 알아봤다.
바로 이어서 간단한 네트워크를 구성해보자