VPC란 Aws에서 제공하는 Virtual Private Cloud 즉, 가상으로 생성한 LAN이라고 보면 될 것이다.
이런 클라우드 서비스가 있기 전에는 라우터, 스위치, 방화벽 등등의 네트워크 하드웨어를 직접 구매하여 네트워크망을 구성해야 했다.
CISCO와 같은 비싼 장비를 구매해서, 케이블을 연결하는 일 없이 이제는 네트워크망을 클라우드를 통해서 간단하게 구성할 수 있는 것이다!
하지만 여전히 우리가 구성해야할 것들이 많이 남아있다. 한번 알아보도록 하자...
CIDR은 classless inter-domain routing의 약자로 IP 주소의 범위를 결정하는 방법이다.
VPC에서는 IPv4와 IPv6를 지원하는데, Pulic IP가 아닌 Private IP에 해당하는 사실상 로컬 네트워크를 구성하는 상황에 IPv6까지 사용할 필요는 없을 것이다.
따라서 IPv4 방법에 대해서만 서술하도록 하겠다.
IPv4는 1byte 값의 4개를 조합해서 표현하는 방법이다.
0.0.0.0 ~ 255.255.255.255 까지의 범위로 2^32 = 42억개의 IP 주소를 가질 수 있다.
VPC에서는 세 가지로 제공된다
최소 6만 5천개에서 2^24개의 IP 주소를 할당할 수 있는 것이다.
이 정도면 왠만한 서비스는 거뜬하지 않을까...
이를 CIDR 표현법으로 작성하게된다면 이렇게 된다.
서브넷이란 IP 주소 범위를 나누는 단위인데, 말 그대로 네트워크 내부의 서브 네트워크인 것이다.
이를 나누는 이유는 여러가지가 있을 수 있는데, 크게 가용성과 접근제어에 있다.
vpc에는 availability zone이라는 개념이 존재하는데, 이 zone은 정말 물리적으로 떨어져있다.
만약 하나의 zone에 모든 서브넷이 존재하게 된다면, 천재지변이 일어나 해당 zone이 있는 층의 전기가 끊기면, 나의 모든 서비스가 정지 될 것이다.
반면에 여러 zone에 서브넷이 나뉘어져 있다면, 이런 재앙이 일어나도 모든 서비스가 정지 되지는 않을 것이다.
접근 제어 같은 경우는 외부에서 접근할 때, 노출이 되어야할 서비스와, 노출이 되면 안되는 리소스 등이 있기 때문에 public 서브넷과 Private 서브넷으로 나누어 접근에 제한을 주어 보안 상 이점을 가져가기 위함이다.
서브넷 수는 VPC CIDR 블록과 서브넷의 CIDR 블록의 구성에 따라 다르게 나올 수 있다.
예를 들어 VPC의 CIDR는 /16, 서브넷의 CIDR는 /20이라면, 서브넷은 2^12개의 IP를 할당 할 수 있고, 남는 2^4 IP를 서브넷으로 지정할 수 있다.
우리의 아름다운 서비스를 세상에 공개하기 위해서는 인터넷에 접속할 수 있어야한다.
인터넷 게이트웨이는 vpc에 올라간 우리의 작고 소중한 서비스를 인터넷에 연결 시켜주는 아주 고마운 존재다.
NAT는 네트워크 주소 변환 시스템이다.
인터넷 게이트웨이를 통해, 우리의 소중이를 세상에 공개할 수 있었지만, 보여주지 말아야 할 것 마저 보여주게 된다.
그래서 우리는 NAT를 통해 보여주지 말아야 할 것을 숨겨야 한다.
인터넷 게이트웨이, NAT 게이트웨이를 준비하며 통신할 준비를 끝마쳤으나, 네트워크 망에 있는 친구들끼리 어디로 가야할지 모르고 있다.
이러한 경로를 알려주는 친구가 라우팅 테이블이다.
라우팅 테이블을 적절히 생성하여 게이트웨이 할당한다면, 이제 우리는 소중이들이 서로 통신을 할 수 있게 될 것이다.