0. 개요
VPC란 AWS 클라우드에서 논리적으로 격리된 공간을 프로비저닝하여 AWS 리소스를 활용하는 것
IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워킹 환경을 완벽하게 제어할 수 있다.
VPC에서 IPv4와 IPv6를 모두 사용하여 리소스와 애플리케이션에 안전하고 쉽게 액세스할 수 있다.
1. VPC의 구성
계정을 처음 만들었을 때 하나의 리전에서 만들어지는 리소스
- 1 VPC
- n 서브넷 (Subnet) (n은 사용할 수 있는 가용존의 개수)
- 1 라우트 테이블 (Route Table)
- 1 네트워크 ACL (Network ACL)
- 1 시큐리티 그룹 (Security Group)
- 1 인터넷 게이트웨이 (Internet Gateway)
- 1 DHCP 옵션셋 (DHCP options set)
*CIDR 블록
IP의 범위를 지정하는 방식
CIDR 블록은 IP 주소와 슬래시(/) 뒤에 따라오는 넷마스크 숫자로 구성되어 있다.
이 숫자는 IP 범위를 나타내며 범위는 지정된 IP부터 2^(32-n)개 된다.
예를 들어 슬래시(/) 뒤의 숫자가 24라면, 2^(32-24)=256개의 IP 주소를 의미. (192.168.0.0/24는 192.168.0.0에서 192.168.0.255까지의 IP를 의미)
2. 서브넷
서브넷은 실제로 리소스가 생성되는 물리적인 공간인 가용존(Available Zone)과 연결된다.
VPC가 논리적인 범위를 의미한다면, 서브넷은 VPC 안에서 실제로 리소스가 생성될 수 있는 네트워크라고 생각할 수 있다.
서브넷을 만들지 않을 수도 있지만, 이 경우 VPC로 아무것도 할 수 없다.
일반적으로 사용할 수 있는 가용존을 고려해서 적절한 크기의 서브넷들을 가용존 수만큼 생성해서 사용하면 된다.
N개의 서브넷을 만들어 리소스를 분산하면 재해 대응 측면에서도 유리.
서브넷의 넷마스크 범위는 16(65535개)에서 28(16개)을 사용할 수 있으며, VPC CIDR 블럭 범위에 속하는 CIDR 블럭을 지정할 수 있다.
하나의 서브넷은 하나의 가용존과 연결 되며, 리전에 따라서 사용가능한 가용존의 갯수는 다르다.
따라서 재해 대응을 위해 가용존만큼 서브넷을 나누는 경우 특정 리전에서 사용가능한 가용존의 갯수를 미리 확인할 필요가 있다.
모든 가용존을 사용하지 않더라도 2개 이상의 가용존을 사용하는 게 일반적이며 기본 VPC에서는 가용존 갯수만큼 넷마스크 20의 서브넷들을 자동적으로 생성한다.
3. 라우트 테이블
라우트 테이블은 서브넷과 연결되어있는 리소스이며 서브넷에서 네트워크를 이용할 때는 이 라우트 테이블을 사용해서 목적지를 찾게 된다.
하나의 라우트 테이블은 VPC에 속한 다수의 서브넷에서 사용할 수 있다.
자동 생성되는 라우트 테이블의 한 가지 룰은 VPC의 CIDR 블럭을 목적지로 하는 경우 타깃이 local이라는 점.
예를 들어 VPC의 CIDR 블럭이 172.31.0.0/16일 때 이 네트워크 안에서 목적지가 172.31.0.0/16 범위에 있는 리소스를 찾는다면 VPC 내부에서 찾게 되며 이 규칙은 삭제할 수 없다.
인터넷을 연결하거나 다른 VPC와 통신하기 위해서는 라우트 테이블에 라우트 규칙을 추가적으로 정의해야함
4. 인터넷 게이트웨이
VPC는 기본적으로 격리되 네트워크 환경이기에 VPC에서 생성된 리소스들은 기본적으로 인터넷을 사용할 수가 없다.
인터넷에 연결하기 위해서는 인터넷 게이트웨이가 필요하며 라우팅 테이블에 인터넷 게이트웨이를 향하는 적절한 규칙을 추가해주면 특정 서브넷이 인터넷과 연결된다.
하지만 서브넷과 인터넷 게이트웨이를 연결하는 것만으로는 인터넷을 사용할 수 없으며 인터넷을 사용하고자 하는 리소스는 퍼블릭 IP를 가지고 있어야 한다.
5. NACL(Network ACL)/보안 그룹
NACL은 주고(outbound) 받는(inbound) 트래픽을 제어하는 가상 방화벽
하나의 NACL은 다수의 서브넷에서 재사용할 수 있다.
시큐리티 그룹은 인스턴스의 앞단에서 트래픽을 제어하는 가상 방화벽인 반면, NACL은 서브넷 앞단에서 트래픽을 제어하는 역할.
따라서 네트워크 ACL의 규칙을 통과하더라도 시큐리티 그룹의 규칙을 통과하지 못 하면 인스턴스와는 통신하지 못 할 수 있으며 이 두 가지 리소스를 통해서 안전한 네트워크 환경을 구축할 수 있다.
'Infra' 카테고리의 다른 글
AMI 생성 간 컨테이너 상태에 관한 이슈 (0) | 2020.12.10 |
---|---|
aws ec2 인스턴스 사용자 데이터 (0) | 2020.12.09 |
Ha multiplexing (0) | 2020.12.09 |
HA of infra (0) | 2020.12.08 |
Auto scaling (0) | 2020.12.01 |