AWS Cloud 내부에서 구성되는 사용자의 AWS 계정 전용 가상 네트워크로 이곳에서 AWS 리소스를 시작할 수 있다. AWS에서는 디폴트로 Amazon EC2-VPC를 제공하지만 Amazon VPC는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사하다.
이는 사용자가 Amazon VPC를 통해 만든 네트워크에서 자체 IP 주소, 퍼블릭 및 프라이빗 서브넷, 라우트 테이블, 네트워크 게이트웨이 등 모든 기능을 활용할 수 있는 것을 의미한다. 즉, Amazon VPC를 활용하면 온프레미스 데이터 센터에서 직접 네트워크 환경을 만드는 것과 같은 방식으로 클라우드 환경에서도 네트워크를 구축할 수 있다.
서브넷(Subnet)은 서브네트워크(Subnetwork)의 줄임말로 VPC의 IP 주소를 나눠 리소스가 배치되는 물리적인 주소 범위로 IP 네트워크 논리적인 영역을 쪼개서 만든 하위 네트워크망을 말한다. AWS의 VPC에서도 서브넷을 통해 네트워크를 분리할 수 있다. 또한 서브넷은 하나 AZ에만 존재한다.
VPC를 이용하면 Public subnet, Private subnet, VPN only subnet 등 필요에 따라 다양한 서브넷을 생성할 수 있다.
인터넷 게이트웨이(IGW)는 VPC와 Internet 간의 논리적인 연결이다. 간략하게 VPC에서 인터넷으로 나가는 통로라고 생각할 수 있다. 이러한 인터넷 게이트웨이는 VPC 당 1개만 연결 가능하다.
IGW를 통해 외부 인터넷으로 통신할 수 있는 대상은 퍼블릭 IP를 사용하는 퍼블릭 서브넷 내의 자원뿐이다. 이러한 퍼블릭 서브넷은 자신의 라우트 테이블에 외부 인터넷으로 나가는 Target을 인터넷 게이트웨이로 지정해주어야 한다.
각각의 Subnet은 서로 다른 네트워크 영역을 가지고 있다. 따라서, 한 Subnet이 다른 Subnet으로 가기 위해서는 'Routing'이 필요하게 된다. 라우팅 테이블은 VPC 안에서 발생한 네트워크 요청을 처리하기 위해 어디로 트래픽을 전송해야 하는지 알려주는 이정표역할을 수행한다.
네트워크 주소 변환(Network Address Translation, 줄여서 NAT)은 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다.
인터넷 접속이 가능한 Public Subnet에 NAT Gateway를 설정해두고, Private Subnet이 외부 인터넷이 필요할 때 NAT Gateway을 거치도록 라우팅을 추가해준다
즉 Private Subnet의 AWS 리소스 -> Public Subnet의 NAT
Gateway -> IGW -> 외부 연결 가능하지만 반대는 불가하다.
NAT Gateway는 서브넷에서 외부로 나갈수는 있어도, 거꾸로 외부에서 private 서브넷으로 접속은 못한다.
아예 외부에서 private 서브넷으로는 영영 접속을 못하는 것일까? 가능하게 해줄 수 있다. 바로 이러한 역할을 해주는게 Bastion Host이다
Bastion Host는 Public Subnet에 위치해 외부에서 Private Subnet으로의 통신을 도와주는 대리인으로 내부와 외부 네트워크 사이에서 일종의 게이트웨이 역할을 수행한다.
NACL은 subnet단위의 보안 규칙을 정의해 놓은 기능이다. 즉 ec2의 보안그룹같은 역할을 한다고 보면 된다.
원래 VPC들은 서로 독립적이라 별개로 존재하지만,서로 통신할 수 있도록 설정할 수도 있게 해주는 것이 VPC Peering이다.
VPC 피어링이란 Private IPv4 주소 혹은 IPv6 주소를 사용해 두 VPC 간 트래픽을 라우팅 할 수 있도록 해줘 두 VPC 간의 연결을 이루는 서비스이다
S3, CloudWatch, Cloudfront, DynamoDB, API Gateway 같은 AWS
서비스들은 VPC 내부에 위치한 서비스가 아니고 따로 Public IP를 가지고 외부에서 접근하는 서비스들이다.
VPC 엔드포인트를 VPC 내부에 설정하면 AWS 내에서 바로 연결이 가능하다.
즉, VPC 엔드포인트는 AWS 내부 네트워크를 이용해 안전하고 효율적이게 리소스 간
연결을 해보자는 취지이다.
Route53은 AWS의 DNS 서비스이다.