VPC 서비스는 2011년 8월에 처음 Release가 되었으며 현재 AWS에서 제공되는 대부분의 서비스가 VPC에 의존적이다. 그만큼 VPC는 AWS에서 가장 중요한 서비스중 하나이며 AWS 서비스를 한다면 반드시 짚고 넘거가야할 개념이다.
VPC 서비스가 탄생하게 된 이유를 알아보자.
과거 EC2-Classic 네트워크 환경은 다른 사람들과 함께 사용하는 공용 공간이였다.
AWS 클라우드를 사용하는 굉장히 많은 고객들의 인스턴스가 랜덤하게 위치되어 있다.
만약 여러 인스턴스들을 이용중에 있는 고객이면 System 복잡도는 더욱 올라가고 새로운 인스턴스를 추가를 할 때 모든 인스턴스에 대한 라우팅 정보를 변경을 해야 했었다.
AWS에서 VPC 서비스를 출시로 같은 네트워크 선상에서 독립적으로 네트워크를 구성할 수 있게 되었으며 이는 마치 가상의 데이터 센터를 사용할 수 있도록 하였다.
과거에 EC2 클래식과 EC2-VPC 네트워크 환경을 선택해서 사용할 수 있었으나, 2013.12.04 이후 생성된 AWS 계정에서는 EC2-Classic 네트워크 환경을 더 이상 이용할 수 없다.
Amazon Virtual Private Cloud(VPC)를 사용하면 AWS 클라우드에서 논리적으로 격리된 공간을
프로비저닝하여 고객이 정의하는 가상 네트워크에서 AWS 리소스를 시작할 수 있다.
[낭비되는 IP주소 자원을 최소화]
각 클래스로 나눠진 네트워크를 운영중인 서비스의 규모에 맞게 분할하여 사용하기 위한 기술이다. 따라서 이런 기술을 통해서 A Class 네트워크와 같은 매우 큰 네트워크를 작게 나눠서 사용하면서, 낭비되는 IP주소 자원을 최소화하려는 것이 주된 목적이다.
[동시다발적 데이터 전송용도]
다른 이유로는 브로드 캐스팅을 사용할 때이다. 이 기술은 특정 네트워크에 연결된 모든 기기에 하나의 메시지로 동시에 데이터를 보내는 것이다. 이를 사용할 때 연결된 호스트 디바이스가 많다면, 당연히 성능의 저하가 올 수 있다. 따라서 네트워크의 규모를 줄여서 브로드 캐스팅으로 인한 부하를 줄일 수 있는 것이다.
참조: https://brownbears.tistory.com/195
Gateway 역할
(1) 컴퓨터가 네트워크 상에서 서로 연겨뢰려면 동일한 통신 프로토콜을 사용해야 한다.
(2) 프로토콜이 다른 네트워크 상의 컴퓨터와 통신하려면 두 프로토콜을 적절히 변환해주는 변환기가 필요하다.
(3) Gateway 가 이러한 변환기 역할을 한다.
NAT는 Network Address Translation의 약자로, 외부 네트워크에 알려진 것과 다른 IP 주소를 사용하는 내부 네트워크에서, 내부 IP 주소를 외부 IP주소로 변환하는 작업을 수행하는 서비스이다.
IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다.
패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록해야 한다.
NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함입니다
[인터넷의 공인 IP 주소를 절약]
[고유한 사설망을 침입자들로부터 보호]
VPC는 프라이빗 클라우드를 만드는데 가장 기본이 되는 리소스이다. 논리적인 독립 네트워크를 구성하는 리소스와 IPv4 CIDR 블록을 필수적으로 가진다.
기존 네트워크와 마찬가지로 VPC는 하나 이상의 연속적 IP주소 범위로 구성되며, CIDR(Classless Inter Domain Routing) 블록으로 표시한다.
VPC 내 인스턴스를 비롯한 리소스에 할당되는 IP주소는 CIDR 블록으로 결정되며, 생성할 때 기본 CIDR 블록을 할당해야 한다. (IP 주소를 구성하는 32개 이진 비트 중 첫 비트부터의 개수를 말한다.)
CIDR 172.16.0.0/16 -> 172.16.0.0 ~ 172.16.255.255 까지 2 = 65,536 개
VPC를 만든 후에도 보조 CIDR 블록을 지정할 수 있다. 보조 CIDR 블록은 기본 CIDR 주소 범위나 퍼블릭에서 라우팅이 가능한 범위 내에서 생성돼야 하고, 기본 블록 또는 다른 보조 블록과 겹치지 않아야 한다.
EX) VPC 기본 CIDR이16.0.0/16 일 때 보조 CIDR을 172.17.0.0/16 으로 지정할 수 있지만, 192.168.0.0/16을 지정할 수는 없다.
→ 보조 VPC의 CIDR은 기본 VPC의 CIDR와 같은 클래스 내에 있어야 한다. 즉, B클래스 기본 CIDR 172.16.0.0/16에는 C클래스인 192.168.0.0/16을 보조 CIDR로 설정할 수 없다.
VPC 생성시 IPv4 CIDR/16 블록에 해당하는 VPC를 만들어진다.
사설 IP에서 인터넷 연결가능한 IP 대역으로 설정하여 문제가 생기는 일을 방지하기 위함이다.
RFC1918 규약에서의 사설망은 아래와 같은 대역을 사용한다.
참조: https://brownbears.tistory.com/195
VPC는 독립된 네트워크 환경으로 구성되기 때문에 CIDR이 같거나 겹치더라도 생성가능.
그러나 추후 다수 VPC를 함께 사용하는 경우 IP대역이 겹치면 문제가 발생할 수 있다.
※ VPC를 생성하기는 쉽지만, 한번 만들고 난 후 기존 CIDR을 변경하는 것은 불가능 ※
https://blog.naver.com/sehyunfa/221821380431
https://www.youtube.com/watch?v=R1UWYQYTPKo&t=204s&ab_channel=AmazonWebServicesKorea
https://www.44bits.io/ko/post/understanding_aws_vpc
https://pjh3749.tistory.com/283
https://hyoje420.tistory.com/32