Amazon Virtual Private Cloud
사용자 정의 가상 네트워크로, VPC 내부에서 AWS 리소스를 사용할 수 있다.
VPC는 AWS 클라우드에서 다른 가상 네트워크들과 논리적으로 분리되어 있다. VPC의 IP 주소를 지정하고 서브넷과 게이트웨이를 추가하고 보안 그룹을 연결하여 사용한다.
기존 네트워크와 매우 유사한 가상 네트워크. VPC를 생성한 후 서브넷을 추가할 수 있다.
네트워크 영역을 부분적으로 나눈 망
EC2 인스턴스와 같은 AWS 리소스를 서브넷으로 실행할 수 있다. 서브넷을 인터넷이나 다른 VPC에 연결하고 라우팅 테이블을 이용하여 서브넷으로, 또는 서브넷에서 트래픽을 라우팅 할 수 있다.
서브넷 추가 후 VPC에 AWS 리소스를 배포할 수 있다.
서브넷의 IP 대역은 VPC의 IP 대역에 속해 있어야 하며, 서브넷은 1개의 가용 영역에 종속되어야 한다.
VPC와 서브넷에 IPv4 주소 또는 IPv6 주소를 할당할 수 있다.
IP 주소가 있으면 VPC 내의 리소스들이 서로 통신하고, 인터넷을 통해 다른 리소스들과 통신이 가능하다.
VPC 생성 시 IP 주소 할당 방법
CIDR 표기법 : IP 주소 및 네트워크 마스크 나타내는 방법
128.100.0.64/24 이런거
VPC에 IP 주소를 할당해준 후 별도의 경로와 보안 그룹 규칙을 추가 해줘야 한다.
프라이빗 IPv4 주소와 퍼블릿 IPv4 주소
- 프라이빗 IP주소
- 인터넷 구간에서 통신하는 것이 아닌 내부적으로 통신하는 사설 네트워크
- VPC의 인스턴스 간의 통신에 사용
- 프라이빗 IP주소를 통해 외부 인터넷 구간과 통신이 불가능하다.
- 인터넷 게이트웨이, 가상 프라이빗 게이트웨이 등 게이트웨이를 통한 인터넷 액세스 설정이 필요하다.
- 퍼블릭 IPv4 주소
- 실제 인터넷 구간으로 통신하는 공공 네트워크
- NAT을 통해 주 프라이빗 IP 주소로 매핑된다.
라우팅 테이블을 이용하여 서브넷 또는 게이트웨이의 네트워크 트래픽이 전달되는 위치 결정
라우팅 테이블의 각 라우팅은 트래픽을 전달한 IP 대상 주소와 트래픽을 전송할 게이트웨이, 네트워크 인터페이스 또는 연결 대상을 지정한다.
게이트웨이는 VPC를 다른 네트워크에 연결한다.
예를 들어 인터넷 게이트웨이를 사용하면 VPC를 인터넷에 연결할 수 있다.
VPC에서 시작한 인스턴스가 VPC 외부의 리소스를 어떻게 액세스할지를 제어할 수 있다.
기본 VPC에는 인터넷 게이트웨이가 포함되며, 각각의 기본 서브넷은 퍼블릭 서브넷이다.
기본 서브넷에서 시작한 각 인스턴스에는 프라이빗 IPv4와 퍼블릿 IPv4가 있다. 이러한 인스턴스는 인터넷 게이트웨이를 통해 인터넷과 통신 가능하다.
디폴트가 아닌 서브넷에서 시작한 인스턴스에는 프라이빗 IPv4 주소가 할당되며, 생성시 설정하지 않는 한 퍼블릿 IPv4 주소는 할당되지 않는다. 이와 같은 인스턴스들은 서로 통신할 수는 있으나, 인터넷에는 액세스 할 수 없다.
이렇듯 디폴트가 아닌 서브넷에서 시작한 인스턴스가 인터넷에 액세스 할 수 있도록 하기 위해서는, 해당 VPC에 인터넷 게이트 웨이를 추가한 후, 인스턴스에 탄력적 IP주소를 연결하면 된다.
VPC → 인터넷으로의 연결은 허용하고, 인터넷 → VPC로의 연결은 차단하려면?
( = 아웃바운드 연결은 시작할 수 있으나, 인터넷으로부터 원치 않는 인바운드 연결을 차단하기 위해서는? )
💡 NAT(Network Address Transition, 네트워크 주소 변환 디바이스) 사용
NAT
생성된 VPC에서 AWS 퍼블릭 서비스와 통신을 하거나 다른 VPC로 통신이 필요할 경우, 일반적으로 외부 인터넷 구간인 퍼블릭 네트워크를 통한 통신이 이루어진다.
AWS에서 제공하는 대부분의 서비스에 접근하기 위해서는 퍼블릭 네트워크 통신이 필요하다. 그러나 만약 강한 보안이 필요해서 격리된 프라이빗 서브넷에 자원을 생성한 경우, 퍼블릭 네트워크를 통한 통신이 불가능하다.
VPC 엔드포인트는, 이와 같이 격리된 프라이빗 서브넷에서도 AWS 퍼블릭 서비스와 프라이빗 네트워크 통신으로 안전한 통신을 제공한다.
VPC 엔드포인트는 인터넷 구간을 통해 접근하지 않고, 직접적으로 접근한다.
예를 들어 VPC → S3로의 접근을 하려고 할 때, 인터넷 게이트웨이나 NAT 게이트웨이를 통한 외부 인터넷으로의 접근 방식이 아닌, 엔드포인트 기능을 통한 AWS 내부의 프라이빗 연결을 수행하는 것
엔드포인트는 연결 대상 서비스에 따라 엔드포인트와 엔드포인트 서비스로 구분된다.
이 중 엔드포인트는 연결 대상에 따라 게이트웨이 엔드포인트, 인터페이스 엔드포인트로 구분된다.
엔드포인트 : AWS 퍼블릭 서비스에 연결
엔드포인트 서비스 : 사용자가 직접 생성한 서비스에 연결