VPC 란


  • VPC (Virtual Private Cloud) = 논리적으로 격리된 사용자 정의 가상 네트워크
  • AWS Region 에 여러 VPC 생성 가능 (Region 당 최대 5개)
  • VPC 당 최대 CIDR 는 5개, 각 CIDR:
    • 최소 크기 = /28 (16개 IP 주소)
    • 최대 크기 = /16 (65536개 IP 주소)
  • VPC 는 프라이빗이므로 프라이빗 IPv4 범위만 허용:
    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16
  • VPC CIDR 는 다른 네트워크와 겹치지 않아야 함
  • VPC 에서 S3, DynamoDB 같은 서비스에 접근하려면 IGW 가 필요

Traffic Mirroring

  • VPC 에서 네트워크 트래픽을 캡처하고 검사 가능
  • 트래픽을 보안 어플라이언스로 라우팅
  • 트래픽 캡처:
    • ENI 에서
    • ENI 또는 NLB 로
  • 모든 패킷 캡처 또는 관심 있는 패킷만 캡처
  • 소스와 타겟은 동일한 VPC 또는 다른 VPC 에 있을 수 있음

Subnet


  • AWS 는 각 Subnet 에서 5개의 IP 주소 예약 (처음 4개 & 마지막 1개)
  • 이 5개 주소는 사용 불가하며 EC2 인스턴스에 할당할 수 없음
    • e.g. 10.0.0.0/24 의 경우:
      • 10.0.0.0 - 네트워크 주소
      • 10.0.0.1 - VPC 라우터용으로 AWS 가 예약
      • 10.0.0.2 - Amazon 제공 DNS 매핑용으로 AWS 가 예약
      • 10.0.0.3 - 향후 사용을 위해 AWS 가 예약
      • 10.0.0.255 - 네트워크 브로드캐스트 주소
  • Subnet 은 기본적으로 Private Subnet 이고 동일 VPC 내에 있는 Subnet 끼리는 local Route 를 통해 서로 통신이 가능하다. 때문에 동일 VPC 에 생성되는 리소스, 정확히는 ENI 는 어느 서브넷에 있든 리소스끼리 서로 문제없이 접근할 수 있다. 다만 VPC 는 모든 AZ 를 포함하기 때문에 서로 다른 AZ 에 위치한 Subnet 에 생성된 리소스 간의 통신에는 데이터센터 간 통신이 추가적으로 발생하기 때문에 지연, 비용 등 통신 비효율이 발생할 수 있다.

Internet Gateway


  • VPC 의 리소스가 인터넷에 연결할 수 있도록 함
  • 수평 확장이 가능하고 고가용성이며 중복됨
  • 하나의 VPC 는 하나의 IGW 에만 연결 가능하며 그 반대도 마찬가지, 즉, 1:1 관계
  • IGW 자체만으로는 인터넷 액세스를 허용하지 않음
  • 라우트 테이블을 편집해야 함

Egress-only Internet Gateway

  • IPv6용 NATGW
  • 라우트 테이블을 업데이트해야 함

Bastion Hosts


  • Bastion Host 를 사용하여 프라이빗 EC2 인스턴스에 SSH 접속 가능
  • Bastion 은 Public Subnet 에 있으며 다른 모든 프라이빗 Subnet 에 연결됨
  • Bastion Host SG 는 제한된 CIDR 에서 포트 22로의 인터넷 Inbound 를 허용해야 함
  • EC2 인스턴스의 SG 는 Bastion Host 의 SG 또는 Bastion 의 Private IP 를 허용해야 함

NAT Gateway


  • AWS 관리형 NAT, 높은 대역폭, 고가용성, 관리 불필요
  • 사용 시간 및 대역폭에 따라 시간당 요금 지불
  • NATGW 는 특정 AZ 에 생성되며 EIP 를 사용
  • 동일한 서브넷의 EC2 인스턴스에서는 사용할 수 없음 (다른 서브넷에서만 사용)
  • IGW 필요 (Private Subnet NATGW IGW)
  • 5Gbps 의 대역폭으로 최대 45Gbps 까지 자동 확장
  • 관리할 SG 없음/필요 없음

NACL & Security Groups


Network Access Control List

  • Subnet 에 대한 Inbound 및 Outbound 트래픽을 제어하는 Stateless 가상 방화벽
  • 트래픽 허용 여부를 결정할 때 가장 낮은 번호의 규칙부터 순서대로 처리
  • 기본 NACL은 모든 인바운드 및 아웃바운드 트래픽을 허용

Security Groups

  • EC2 에 대한 Inbound 및 Outbound 트래픽을 제어하는 Stateful 가상 방화벽
  • 기본적으로 모든 Inbound 트래픽을 거부하고 모든 Outbound 트래픽을 허용

VPC Peering


  • AWS 네트워크를 사용하여 2개의 VPC를 프라이빗하게 연결
  • 동일한 네트워크에 있는 것처럼 동작하게 함
  • CIDR 가 겹치지 않아야 함
  • VPC Peering 연결은 전이적이지 않음 (서로 통신해야 하는 각 VPC에 대해 설정해야 함, 때문에 2개 이상의 VPC 를 연결해야 할 경우 TGW 고려)
  • 각 VPC 의 서브넷에서 라우트 테이블을 업데이트하여 EC2 인스턴스가 서로 통신할 수 있도록 해야 함

VPC Endpoints


  • Gateway VPC 엔드포인트는 VPC 에 인터넷 게이트웨이나 NAT 디바이스 없이 Amazon S3DynamoDB 에 안정적인 연결을 제공
  • ENI(프라이빗 IP 주소)를 진입점으로 프로비저닝 (SG 연결 필수)
  • 대부분의 AWS 서비스 지원
  • 시간당 + 처리된 데이터 GB당 비용 청구
  • 온프레미스(S2S VPN 또는 Direct Connect), 다른 VPC 또는 다른 Region 에서 필요한 경우 선호

Gateway Endpoints

  • 게이트웨이를 프로비저닝하고 라우트 테이블에서 대상으로 사용해야 함 (SG 사용 안 함)
  • S3 및 DDB 모두 지원
  • 무료

VPC Flow Logs


  • 인터페이스로 들어가는 IP 트래픽에 대한 정보 캡처:
    • VPC Flow Logs
    • Subnet Flow Logs
    • ENI Flow Logs
  • 연결 문제 모니터링 및 해결에 도움
  • Flow logs 데이터는 S3, CloudWatch Logs, Kinesis Data Firehose 로 전송 가능
  • AWS 관리형 인터페이스의 네트워크 정보도 캡처: ELB, RDS, ElastiCache, Redshift, WorkSpaces, NATGW, Transit GW, …

AWS Site-to-Site VPN


  • 온프레미스 네트워크와 AWS 클라우드 네트워크 간에 암호화된 네트워크 경로 생성
  • 연결은 인터넷을 사용하므로 일관성을 기대할 수 없음
  • 트래픽이 암호화되어 있어도 인터넷은 공유 리소스이므로 연결이 프라이빗하지 않음

Virtual Private Gateway (VGW)

  • VPN 연결의 AWS 측 VPN 집중 장치
  • VGW를 생성하고 VPC에 연결
  • ASN(Autonomous System Number)을 사용자 지정할 수 있음
  • 서브넷과 연결된 라우트 테이블에서 VPG에 대한 Route Propagation을 활성화

Customer Gateway (CGW)

  • VPN 연결의 고객 측에 있는 소프트웨어 앱 또는 물리적 디바이스
  • CGW 디바이스에 Public 인터넷 라우팅 가능 IP 주소 사용
    • NAT 디바이스 뒤에 있는 경우 NAT 디바이스의 Public IP 주소 사용

Direct Connect


  • 원격 네트워크에서 VPC 로의 전용 프라이빗 연결 제공
  • DX 와 AWS Direct Connect Location 간에 전용 연결을 설정해야 함
  • VPC 에 VPG 를 설정해야 함
  • 동일한 연결에서 퍼블릭 리소스 및 프라이빗 리소스에 액세스

Direct Connect Gateway

  • 여러 다른 Region(동일 계정)의 하나 이상의 VPC 에 Direct Connect 를 설정하기 위해 사용

Transit Gateway


  • 전 세계 여러 AWS Region 의 여러 VPC 간 네트워크 연결을 중앙에서 연결하고 관리
  • Regional Resource (교차 Region 작동 가능)
  • Resource Access Manager(RAM) 를 사용하여 계정 간 공유
  • Region 간 TGW 피어링 가능
  • 라우트 테이블: 어떤 VPC 가 다른 VPC 와 통신할 수 있는지 제한
  • Direct Connect GW, VPN 연결과 함께 작동
  • IP Multicast 지원 (다른 AWS 서비스에서는 지원되지 않음)

Network Firewall


  • L3 에서 L7 까지 전체 VPC 보호
    • e.g. 직원들이 Amazon Workspaces 가상 데스크톱을 사용하여 악성으로 알려진 특정 웹사이트를 방문하는 것을 방지

AWS Client VPN


  • 관리형 클라이언트 기반 VPN 서비스
  • AWS 리소스 및 온프레미스 네트워크의 리소스에 안전하게 액세스
  • OpenVPN 기반 VPN 클라이언트를 통해 어느 위치에서나 리소스에 액세스 가능
  • 전체 데이터 센터가 아닌 개별 랩톱을 AWS에 연결

References