VPC(Virtual Private Cloud)란 무엇인가?
쉽게 말해 컴퓨터를 놓기 위한 네트워크를 구성하는 서비스라 할 수 있다.(Subnet, IP주소 부여, 같은 모든 망 구성 총괄, 나만의 데이터 센터를 만듦)
아마존에서 말하는 VPC
Amazon VPC를 사용하면 AWS 클라우드에서 논리적으로 격리된 공간을 프로비저닝(사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다.)하여 고객이 정의하는 가상 네트워크에서 AWS 리소스를 시작할 수 있다. IP 주소 범위 선택, Subnet 생성, 라우팅 테이블 및 Network Gateway 구성 등 가상 네트워킹 환경을 완벽하게 제어할 수 있다. Amazon VPC에서 IPv4와 IPv6를 모두 사용하여 리소스와 애플리케이션에 안전하고 쉽게 액세스 할 수 있다.
VPC 종류
- Default VPC
- 계정 생성시 자동으로 셋업되어 있음(모든 Region)
- 모든 Subnet의 인터넷 접근이 가능하다.
- EC2가 Public IP와 Private IP 모두 가지고 있다.
- 삭제시 복구 불가
- Custom VPC
- 새로 만들어야 함
- Default VPC의 특징을 가지지 않음(Default VPC와 반대)
VPC를 사용해 할 수 있는 일들
- EC2 실행 가능
- Subnet 구성 가능
- 보안설정 가능(IP block, 인터넷에 노출되지 않는 EC2 구성 등)
VPC Peering(VPC간 연결)
- Transitive peering 불가능: 한 다리 건너 연결되어 있다고 해서 Peering이 된 것이 아님(A와 B가 연결되어 있고 B와 C가 연결되어 있다 하더라도 A와 C가 연결된 것이 아니므로 그 둘을 연결하려면 선을 뚫어야 한다)
VPC Flow Log
- VPC 로그를 Cloud Watch에 저장 가능
IP 대역 지정 가능
Region에 하나: 다른 Region으로 확장 불가능
VPC 구성요소
- Availability Zone(AZ)
- Subnet
- InternetGateway(IGW)
- Network Access Control List(NACL) / Security Group(SG)
- Route Table
- Network Address Translation Instance(NAT Instance) / NAT Gateway
- Bastion Host
- VPC Endpoint
Availability Zone
- 물리적으로 분리되어 있는 인프라가 모여있는 데이터 센터(자연재해, 인공재해 등으로 인해 데이터가 소실되는걸 막기 위해 물리적으로 분리)
- 고가용성을 위해 항상 일정 거리 이상 떨어져 있음
- 하나의 Region은 2개 이상의 AZ로 이루어져 있음
- 각 계정의 AZ는 다른 계정의 AZ와 다른 아이디를 부여 받음
- 계정 1의 AZ-A는 계정 2의 AZ-A와 다른 곳에 있음
Subnet
- VPC 하위 단위
- 하나의 AZ에만 생성 가능: 다른 AZ로 확장 불가
- Private Subnet(보안을 위해): 인터넷 접근이 불가능한 Subnet
- Public Subnet: 인터넷 접근 가능한 Subnet
- CIDR Block Range 설정 가능(IP주소를 분배하는 방법)
Internet Gateway(IGW)
- 인터넷으로 나가는 통로
- 고가용성이 확보되어 있음
- IGW로 연결되지 않은 서브넷 = Private Subnet
- Route Table에 연결해줘야 한다.
NACL/Security Group
- 검문소
- NACL -> Stateless, SG -> Stateful
- 기본적으로 VPC 생성 시 만들어줌
- Deny는 NACL에서만 가능
Route Table
- 트래픽이 어디로 가야 할지 알려주는 이정표
- 기본적으로 VPC 생성시 만들어줌(자동생성)
NAT Instance/ NAT Gateway
- Private Instance가 외부의 인터넷과 통신하기 위한 통로
- NAT Instance는 단일 Instance = EC2(EC2가 꺼지면 끝, Instance 크기마다 트래픽 처리량이 다름, SG 영향을 받음 / NAT Gateway = 하나의 서비스 즉 AWS에서 제공하는 서비스(고가용성 보장, 트래픽의 수요에 따라 자동으로 나뉨, SG 영향을 받지 않음)
- NAT Instance를 사용할 때 Source/Destination Check을 해제해야 한다.
- NAT Instance는 Public Subnet에 있어야 한다.
Bastion Host
- (우리가) Private Instance에 접근하기 위한 Instance
- Public Subnet에 위치해야 한다.
VPC Endpoint