VPC(Virtual Private Cloud)
VPC를 통해 사용자가 직접 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있다.
VPC를 이해하는데 필요한 핵심 개념은 다음과 같다.
- VPC
- Subnet
- Routing Table
- Internet Gateway
- NAT Gateway
- Security Group, Network ACL
AWS VPC & Subnets | Amazon Web Services BASICS
위 영상을 보면서 공부를 해보았다.
하나의 Region에는 여러 개의 Availability Zone이 있다. 각 AZ에는 EC2, RDS 등 내가 원하는 AWS 리소스들을 배치할 수 있다. 하나의 AZ가 장애가 발생하게 될 경우, 다른 AZ를 사용할 수도 있다.
VPC를 생성할 때 어떤 Region에 생성할지를 고민하게 되고, 이때 모든 AZ를 포함하게 된다. VPC를 생성함으로써 독립된 네트워크를 생성할 수 있다. VPC별로 네트워크를 구성할 수 있고, VPC별로 네트워크 설정을 달리할 수도 있다.
Subnet
VPC를 만들고나면 Subnet을 생성할 수 있다. Subnet은 VPC를 잘게 쪼개는 과정이다. 각 AZ안에 Subnet을 생성할 수 있다.
Internet Gateway(IGA)
Internet Gateway는 VPC의 인스턴스와 인터넷간에 통신을 할 수 있게 해 준다. 인터넷으로 데이터를 전송하기 위해서는 IGA로 트래픽을 전달해야 한다.
접근 권한 제어 방법
Security Group(SG)
Security Group은 방화벽과 같은 역할을 한다. SG는 Stateful 한 방식으로 동작한다. SG는 인스턴스 단위로 적용된다. 허용 규칙만 지원하며 인스턴스 시작 시 지정하거나 나중에 인스턴스와 연결을 해야 적용된다.
Network ACL(NACL)
NACL도 방화벽과 같은 역할을 한다. NACL은 Stateless 한 방식으로 동작한다. NACL은 서브넷 단위로 적용된다. 허용 규칙과 거부 규칙을 모두 지원하며 연결된 Subnet의 모든 인스턴스에 자동으로 적용된다.
만약 NACL과 SG가 충돌할 경우, SG이 더 높은 우선순위를 갖는다.
라우팅 관리 방법
Route Table
Route Table은 네트워크 트래픽이 전달되는 위치를 제어한다. VPC의 각 Subnet을 Route Table에 연결하고 Subnet에 대한 라우팅을 제어한다. 위 그림에서 볼 수 있듯이 위쪽 Subnet은 Public으로 인터넷과 통신을 할 수 있도록 설정할 수 있다. 아래쪽 Subnet은 Private으로 인터넷과 통신을 할 수 없다.
NAT Gateway(Network Address Translation Gateway)
만약, Private Subnet을 인터넷과 연결하려면 어떻게 해야 할까? 예를 들어, 소프트웨어 업데이트를 위해 인터넷 연결이 필요할 수도 있다. 하지만 인터넷에서 해당 Subnet으로는 접근을 못하게 하고 싶다면 어떻게 해야할까? 이때 NAT Gateway를 사용하면 된다. NAT Gateway는 Public Subnet에 속해야 한다. Private Subnet에서 외부로 요청하는 아웃바운드 트래픽을 받아서 IGA와 연결시켜주는 역할을 한다.
VPC 기본 개념을 다시 한 번 정리해보면 다음과 같다.
- VPC는 사용자가 직접 정의한 가상 네트워크이다.
- 하나의 리전에는 하나의 VPC, 여러 개의 서브넷이 있다. 서브넷은 VPC를 잘개 쪼개는 과정이다.
- 인터넷 게이트웨이를 통해 VPC 인스턴스와 인터넷을 연결할 수 있다.
- VPC 접근 권한을 제어하는 방법은 보안그룹과 NACL이 두 가지가 있다.
- 보안그룹은 허용 규칙만 지원(Stateful) / 인스턴스 레벨
- NACL은 허용/거부 규칙 모두 지원(Stateless) / 서브넷 레벨
- 보안그룹과 NACL이 충돌할 경우 보안그룹이 우선순위
- 라우팅 테이블은 네트워크 트래픽이 전달되는 위치를 제어한다.
- 퍼블릭 서브넷은 인터넷과 통신이 가능하지만 프라이빗 서브넷은 NAT Gateway를 통해서만 아웃바운드 트래픽이 허용된다. (인터넷에서 프라이빗 서브넷으로 접근 불가)
VPC Flow Logs
VPC의 네트워크 인터페이스에서 전송되고 수신되는 IP 트래픽에 대한 정보를 수집할 수 있는 기능이다. CloudWatch로 로그를 수집하며 다른 계정과 피어링중인 VPC는 활성화할 수 없다.
Direct Connect
온프레미스에서 AWS로 전용 네트워크 연결을 쉽게 설정할 수 있는 서비스이다. Direct Connect을 통해 온프레미스 네트워크에서 Amazon VPC로 프라이빗 가상 인터페이스를 설정함으로써 네트워크와 VPC 간에 고대역폭의 프라이빗 네트워크 연결을 제공할 수 있다.
VPC Peering
프라이빗 IP주소로 한 VPC를 다른 VPC에 연결하는 것이다. 다른 AWS 계정과도 피어링 할 수 있다.
위 그림에서 B와 C를 peering하려면 A를 통해서 하는 것이 아닌 B와 C 사이에 고유한 VPC 피어링 연결을 생성해야한다.
VPC Endpoint
VPC와 AWS서비스 및 Private Link로 지원하는 VPC 엔드포인트 서비스간에 비공개 연결을 할 수 있다. 인터넷 게이트웨이, NAT Device, VPN 연결, Direct Connect 연결이 필요없다. Public IP 주소도 필요 없다. Amazon Network를 벗어나지도 않는다.
Interface Endpoint, Gateway Endpoint 두 가지의 엔드포인트가 있다.
- Gateway Endpoint: S3, DynamoDB를 지원함 AWS 서비스에서만 이용 가능
- Interface Endpoint: PrivateLink에서 지원하는 서비스, 자체 서비스, SaaS 솔루션에 비공개로 연결할 수 있으며 Direct Connect을 통한 연결을 지원한다.
참고한 다른 블로그들
'Programming > AWS' 카테고리의 다른 글
AWS Solutions Architect Associate(SAA) C02 자격증 취득 후기 (10) | 2021.02.08 |
---|---|
AWS SAA 준비하면서 공부한 내용들 (0) | 2021.01.29 |
[AWS] SNS vs SQS 차이점 (1) | 2021.01.21 |
AWS EBS vs EFS vs S3, 어느 스토리지를 써야할까? (0) | 2020.12.20 |
AWS S3(Simple Storage Service)란? (0) | 2020.12.18 |