VPC 정의 및 특징 그리고 구성요소
2024. 4. 10. 21:45ㆍAWS Cloud Base
목차
- VPC 정의 및 특징
- 사용 사례
- VPC 구성요소
- 서브넷
- 인터넷 게이트웨이
- 보안그룹
- NACL
- 라우트 테이블
- NAT Instance / NAT Gateway
- Bation Host
- VPC Endpoint
정의 및 특징
- 다른 가상 네트워크와 논리적으로 분리되어있는 AWS 계정 전용 가상 네트워크이다. 즉, 프로그램으로 분리 해놓은 가상 데이터 센터(네트워크 단위)라고 보면 된다. 그래서 외부에 격리된 네트워크 망을 구성할 수 있는 것이다. 이는 외부에서 접근이 불가능하므로 인터넷 게이트웨이를 통해 접근이 가능하다.
- 이를 더 구체적으로 설명하면, 외부와 격리된 EC2 인스턴스가 인터넷 게이트웨이로 나갔다가 퍼블릭 클라우드를 통해서 다시 들어가는 원리이다. 이러한 사설망은 원하는 대로 구축가능하며, 부여된 IP 대역을 이용해 분할하여 사용 가능하다. 리전당 여러 개의 VPC를 구성할 수 있다. 그래서 무조건 리전안에 구축되어있어야한다.
사용 사례
- EC2, RDS, Lambda등의 AWS의 컴퓨팅 서비스 실행
- 다양한 서브넷 구성
- 보안 설정(IP Block, 인터넷에 노출되지 않는 EC2 등 구성)
구성 요소
서브넷
- VPC 하위 단위이며, 하나의 서브넷은 하나의 가용영역에 안에 위치한다. 그리고 그 범위는 CIDR Block Range로 IP 주소 범위를 지정할 수 있다. 이때, 5개 제외하고 호스트 사용이 가능하다. 이에 대한 이유를 구체적인 예시를 들어 설명하면, 10.0.0.0/24 이라면
- 10.0.0.0: 네트워크 주소
- 10.0.0.1: VPC 라우터 주소
- 10.0.0.2: DNS 서버 주소
- 10.0.0.3: 미래에 사용을 위해 남겨놓음
- 10.0.0.255(마지막 IP 주소): 네트워크 브로드캐스트를 위해 남겨 놓은 주소(단, AWS에서는 브로드캐스트를 지원하지 않음)
- 즉 총 가용가능한 IP주소 개수 = 2^8 - 5 = 256 - 5 =251 개이다.
- 종류로는 퍼블릭 서브넷과 프라이빗 서브넷이 있다. 퍼블릭 서브넷은 말 그대로 외부에 공개된 서브넷이다. 인터넷 게이트웨이(IGW)를 통해 외부의 인터넷과 연결될 수 있으며, 안에 위치한 인스턴스에게 퍼블릭 IP 부여 가능하다. 웹 서버, 어플리케이션 서버 등 유저에게 노출되어야하는 서버장비 등이 이에 해당된다.
- 프라이빗 서브넷은 외부 인터넷과의 경로가 없는 인트라넷이라 보면 된다. 퍼블릭 IP 부여가 불가능하다. 데이터 베이스 및 로직 서버 등 외부에 노출될 필요가 없는 서버들이 이에 해당된다.
인터넷 게이트웨이
- VPC가 외부 인터넷과 통신할 수 있게 경로를 만들어주는 문이라고 보면 되며, 기본적으로 확장성과 고가용성을 확보하고 있다. 그래야 해당 장비를 통해 송수신하는 대용량 외부 트래픽들을 안전하고 확실하게 처리해야 사용자에게 서비스를 제공해줄 수 있기때문이다.
- IPv4, IPv6를 지원하며, IPv4인 경우 NAT 역할을 한다. Route Table에서 경로 설정 후에 접근 가능하며, 무료 서비스이다.
보안 그룹
- 인스턴세에 대한 인/아웃 바운드 트래픽을 제어해주는 서비스(AWS 제공 방화벽)이다. NACL와 함께 방화벽 역할을 해주는 가상 서비스이다. 기본적으로 모든 포트는 비활성화되며, 트래픽이 지나갈 수 있는 포트 및 소스를 선택적으로 개방할 수 있다. Deny는 따로 불가능하다.
- (NACL에서는 가능하다) 인스턴스 단위이며, 하나의 인스턴스에 하나 이상의 보안그룹을 설정할 수 있다.(NACL의 경우 서브넷 단위) 설정된 인스턴스는 설정한 모든 보안그룹의 룰 설정에 영향을 받고,기본 5개, 최대 16개까지 적용 가능하다.
- 보안 그룹은 Stateful이다. 이는 트래픽에 대한 정보를 저장하고 있다는 의미이다. 그래서 자신이 허용한 인바운드 트래픽을 인지하고 있기에 별도로 나가는 것에 대해 제지가 없다.
NACL
- 보안 그룹처럼 방화벽 역할을 담당해주는 AWS 서비스 라고 보면 된다. 기본적으로 서브넷 단위이며, 포트 및 아이피에 대해 직접 Deny 가능하다. 외부 공격을 받는 상황(DDoS)등 특정 아이피를 블록하고 싶을 때 사용하는 것이 적절하다.
- NACL의 풀네임은 Network Access Control List이다. 이는 즉, 리스트를 통해서 트래픽을 제어한다는 것이다. 이때, 리스트를 '룰'이라고 하며, 각 룰에는 번호가 메겨져 있다. 이는 룰에 부여되는 고유 숫자이며, 룰이 적용되는 순서는 낮은 번호대로 규칙을 평가한다. AWS에서는 룰 번호 증가를 100 단위 증가(규칙이 새로 계속 생길 수 있기에)로 추천한다. 룰의 형태는 대략적으로 아래와 같다.
- 규칙 번호
- 유형: 프로토콜 이름
- 프로토콜: 통신 프로토콜(예: tcp, udp, smp 등...)
- 포트 범위: 허용 또는 거부할 포트 범위
- 소스: IP 주소의 CIDR 블록
- 허용/거부: 허용 및 거부 여부
- 나아가 NACL은 기본적으로 Stateless이다. 트래픽에 대한 정보를 저장하지 않는다는 것이다. 그래서 이전에 허용한 인바운드 트래픽이라고 해도 별도의 OutBound 설정이 있어야 해당 트래픽을 내보낼 수 있다는 것이다.
- 그래서 허용할 아이피의 출발지 포트 번호가 거의 랜덤 포트로 지정되어있을 텐데 이때, OS 별도에 맞는 Port range를 설정하여 랜덤포드가 지정된 출발지 트래픽을 내보낼 수 있도록 한다.
라우트 테이블
- 트래픽을 어디로 보낼지에 대한 이정표이며, VPC 생성시 기본적으로 하나가 생성된다.
NAT Instance, NAT Gateway
- Private Instance가 외부와 통신할 수 있는 유일한 수단이다. NAT Instance: 단일 EC2 인스턴스 / NAT Gateway: 여러 AWS 서비스에게 제공해주는 것으로 보면된다. 둘 다 모두 서브넷 단위이며, Public Subnet에 있어야 한다.
Bastion Host
- 외부에 존재하는 호스트가 Private Subnet에 위치한 EC2 인스턴스에 접근하기 위한 것이다. Public Subnet에 위치해야한다. 실제로 해당 EC2에 접근할 때는 저렇게 직접적으로 접근하는 것이 아닌, Private Subnet 라우터를 통해서 대개 접근을 한다.
VPC Endpoint
- Endpoint는 요청을 보낼 때 필요한 목적지라고 할 수 있다. 예를 들어 인터넷을 통해 어떠한 서비스나 리소스로 접근할 수 있는 특정 URL이나 네트워크 주소가 될 수 있습니다.
- VPC Endpoint는 Endpoint 유형 중 하나로, VPC Endpoint를 사용하면 VPC 내부 또는 외부에 있는 AWS 서비스들과 통신할 때 인터넷 통신이 되지 않더라도 Private한 통신 환경을 통해 서비스에 접근할 수 있도록 할 수 있습니다.
- 종류
- Gateway Endpoint는 NAT 디바이스가 없어도 VPC에 연결된 라우팅 테이블을 참조하여 Amazon S3 또는 DynamoDB로 전달되는 트래픽에 사용됩니다. AWS PrivateLink를 활성화하지 않습니다.
'AWS Cloud Base' 카테고리의 다른 글
S3 Class (0) | 2024.04.20 |
---|---|
S3 개요 (0) | 2024.04.13 |
EFS(Elastic File System) (0) | 2024.04.08 |
Elastic Load Balancer (0) | 2024.03.30 |
EC2: Auto Scaling (0) | 2024.03.26 |