초보자도 이해할 수 있는 VPC

2021.07.09

소개

안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 VPC의 대한 설명을 할려고 합니다. VPC는 AWS의 네트워크 서비스 입니다. 네트워크 이야기가 나와서 어려운 부분있을거라 생각합니다만, 조금이나마 도움이 되었으면 좋겠습니다. 그럼 시작 하겠습니다.

VPC란?

사용자가 정의하는 IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워킹 환경을 VPC라고 합니다.

위 의 말처럼 Amazon VPC는 인터넷에 액세스할 수 있는 웹 서버를 위해 퍼블릭 서브넷, 인터넷 액세스가 없는 프라이빗 서브넷에 데이터베이스나 애플리케이션 서버 같은 백엔드 시스템을 배치하고, 보안 그룹 및 네트워크 액세스 제어 목록을 포함한 다중 보안 계층을 사용하여 각 서브넷에서 Amazon EC2 인스턴스의 액세스를 제어할 수 있습니다.

요금에 대해서

일단 VPC 자체를 생성 및 사용하는 데에는 별도의 비용이 없습니다.

Amazon EC2와 같은 다른 Amazon Web Services 사용 요금의 경우, 데이터 전송 요금을 비롯하여 해당 리소스에 대해 명시된 요금이 적용됩니다.

다만 선택 사항인 하드웨어 VPN 연결을 사용하거나, 기타 몇 가지 작업에는 추가요금이 발생합니다.

1) AWS Site-to-Site VPN 연결 요금

  • Amazon VPC에 대한 AWS Site-to-Site VPN 연결을 생성하는 경우 VPN 연결을 프로비저닝하고 사용할 수 있는 VPN 연결 시간당 요금이 청구됩니다.

2) Amazon VPC Reachability Analyzer 요금

  • Amazon VPC Reachability Analyzer는 지정된 원본과 대상 간의 연결을 분석할 때마다 요금이 부과됩니다.

3) AWS PrivateLink 요금

  • AWS PrivateLink 엔드포인트를 생성하여 AWS에서 소유하거나 AWS 고객 또는 파트너가 사용한 서비스에 비공개 연결을 지원할 수 있습니다.

4) Amazon VPC 트래픽 미러링 요금

  • Amazon EC2 인스턴스의 탄력적 네트워크 인터페이스(ENI)에서 트래픽 미러링을 통해 활성화된 각각의 ENI에 대해 시간별로 요금이 부과됩니다.

요금에 대한 자세한 내용은 공식홈페이지의 요금정보 에서 확인 해주세요

VPC에 필요한 사전 지식

Region

  • AWS의 물리적서버가 위치하고 있는 국가단위의 위치입니다.

    예)서울리전, 도쿄리전 등등

Availability Zone

  • Region내의 물리적 서버를 지역 단위의 위치입니다.

    예)서울, 부산 등등

Subnet

  • PublicSubnet
    • 외부가 개방되어있어 인터넷 연결이가능한 서브넷
  • PrivateSubnet
    • 내부가 차단되어있어 직접적으로 인터넷에 연결하지않은 서브넷

CIDR

  • 클래스 없는 도메인 간 라우팅 기법으로 1993년 도입되기 시작한 최신의 IP주소 할당 방법입니다.

  • IP Adress의 그룹을 괸리하며 기존의 IP Adress Class보다 유연하게 동작할 수 있습니다.

CIDR에 대한 자세한 정보는 CIDR의 대한 구체적인 정보 에서 확인해 주세요

VPC기능

1) Reachability Analyzer

도달가능성 분석기는 VPC 내 두 개의 리소스 간 네트워크 도달가능성을 분석 및 디버깅할 수 있는 정적 구성 분석 도구입니다.

2) VPC 플로 로그

S3 또는 CloudWatch로 전달되는 VPC 플로 로그를 모니터링하여 네트워크 의존성 및 트래픽 패턴에 대한 운영 가시성을 얻고, 추적하며 데이터 유출을 예방하고, 네트워크 연결성 및 구성 문제를 해결할 수 있습니다.

3) VPC 트래픽 미러링

VPC 트래픽 미러링은 EC2 인스턴스의 탄력적 네트워크 인터페이스에서 네트워크 트래픽을 복사하고 그 다음 트래픽을 심도있는 패킷 조사를 위해 대역 외 보안 및 모니터링 장치로 전송할 수 있게 허용합니다

4) 인그레스 라우팅

인터넷 게이트웨이(IGW) 또는 가상 프라이빗 게이트웨이(VGW)로, 그리고 여기에서 지정 EC2 인스턴스의 탄력적 네트워크 인터페이스로 모든 인바운드 및 아웃바운드 트래픽의 흐름을 라우팅할 수 있습니다.

5) 보안 그룹 규칙

연결된 Amazon EC2 인스턴스에 대한 방화벽 역할을 하며 인스턴스 수준에서 인바운드 및 아웃바운드 트래픽을 모두 제어합니다. 인스턴스를 출시할 때 생성한 한 개 이상의 보안 그룹과 연관시킬 수 있습니다

6) Network Access Control List

네트워크 Access Control List (ACL)은 VPC용 선택적 보안 레이어로 하나 이상의 서브넷으로 출입하는 트래픽을 제어하는 방화벽 역할을 수행합니다.

Routing Table

서브넷 또는 게이트웨이의 네트워크 트래픽이 전송되는 위치를 결정하는 데 사용되는 라우팅이라는 규칙 집합으로 구성된 것이 라우팅 테이블 입니다

VPC는 생산량이 제한된 라우팅 테이블을 사용하여 네트워크 트래픽이 전달되는 위치를 제어합니다. VPC의 각 서브넷을 라우팅 테이블에 연결해서 서브넷에 대한 라우팅을 제어합니다. 서브넷을 특정 라우팅 테이블과 명시적으로 연결할 수 있으며 여러 서브넷을 동일한 라우팅 테이블에 연결할 수 있습니다. (* 하지만 서브넷은 한 번에 하나의 라우팅 테이블에만 연결할 수 있습니다.) 또한 라우팅 테이블을 (인터넷 게이트웨이 / 가상 프라이빗 게이트웨이)와 연결하여 VPC로 들어오는 인바운드 트래픽에 대한 라우팅 규칙을 정할 수 있습니다.

VPC피어링

물리적으로 의존하지 않는 비공개적으로 두 VPC 간에 트래픽을 라우팅할 수 있도록 하기 위한 두 VPC 사이의 네트워킹 연결입니다.
동일한 계정, 동일한 네트워크, 다른 Region의 VPC간의 연결을 할 수 있습니다.

NAT Gateway

외부접속이 안되는 프라이빗 서브넷의 인스턴스가 외부의 서비스에 연결할 수 있도록 도와주는 서비스 입니다.

프라이빗 서브넷의 인스턴스를 인터넷 또는 기타 AWS 서비스에 연결하여 통신을 할 수 있습니다. 예를 들어 프라이빗 서브넷의 인스턴스가 외부 결제 시스템을 사용하는 경우, 다른 AWS서비스에 데이터를 전달해야 하는경우 NAT Gateway를 퍼블릭 서브넷에 두어 통신을 할 수 있습니다.

VPN

VPN 연결 옵션을 사용하여 Amazon VPC를 원격 네트워크 및 사용자에 연결할 수 있습니다.

1) AWS Site-to-Site VPN

  • AWS 측 Site-to-Site VPN 연결에서 가상 프라이빗 게이트웨이, 전송 게이트웨이는 자동 장애 조치를 위한 2개의 VPN 엔드포인트(터널)을 제공합니다.

2) AWS Client VPN

  • AWS 리소스와 온프레미스 네트워크에 안전하게 액세스할 수 있게 해주는 관리형 클라이언트 기반 VPN 서비스입니다.
  • 클라이언트가 OpenVPN 기반 VPN 클라이언트를 사용하여 어느 위치에서든 온프레미스 또는 AWS의 리소스에 액세스할 수 있습니다.

3) AWS VPN CloudHub

  • 두 개 이상의 원격 네트워크를 가상 프라이빗 게이트웨이를 통해 여러 AWS Site-to-Site VPN 연결을 생성하여 네트워크 사이의 통신을 활성화할 수 있습니다.

4) 타사 소프트웨어 VPN 어플라이언스

  • 타사 소프트웨어 VPN 어플라이언스를 실행 중인 VPC에서 Amazon EC2 인스턴스를 사용하여 원격 네트워크에 대한 VPN 연결을 생성할 수 있습니다.

AWS PrivateLink

  • 데이터를 인터넷에 노출하지 않고 VPC(Virtual Private Cloud)와 AWS 또는 온프레미스에서 호스팅되는 서비스 간에 프라이빗 연결을 설정합니다.
  • VPC 엔드포인트를 사용하면 인터넷 게이트웨이, NAT 디바이스, VPN 연결, AWS Direct Connect 연결하지 않고 VPC를 비공개적으로 연결할 수 있습니다.

4) VPC 흐름 로그

  • VPC 흐름 로그는 VPC의 네트워크 인터페이스에서 전송되고 수신되는 IP 트래픽에 대한 정보를 수집할 수 있는 기능입니다 (*Amazon CloudWatch Logs 또는 Amazon S3에 게시될 수 있습니다. )

보안

다양한 보안 옵션과 기능이 존재합니다.

1) VPC 로깅 및 모니터링

  • 흐름 로그: 흐름 로그는 VPC의 네트워크 인터페이스에서 양방향으로 이동하는 IP 트래픽에 대한 정보를 캡처하여 과도하게 제한하거나 과도하게 허용하는 보안 그룹과 네트워크 ACL 규칙을 진단하는데에 도움을 줍니다.
  • NAT 게이트웨이 모니터링: CloudWatch를 이용하여 NAT 게이트웨이를 모니터링하여 NAT 게이트웨이에 대한 정보를 수집하고 읽기 가능한 실시간에 가까운 지표를 만들 수 있습니다.

2) 복원성

  • 가용 영역을 사용하면 중단 없이 영역 간에 자동으로 장애 조치가 이루어지는 애플리케이션 및 데이터베이스를 설계하고 운영할 수 있습니다.

3) 규정 준수 확인

  • 서드 파티 감사자는 SOC, PCI, FedRAMP, HIPAA 등 여러 AWS 규정 준수 프로그램의 일환으로 AWS 서비스의 보안 및 규정 준수를 평가합니다.

4) 보안그룹

  • 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 합니다. VPC에서 인스턴스를 시작할 때 최대 5개의 보안 그룹에 인스턴스를 할당할 수 있습니다.

5) 네트워크ACL

  • 1개 이상의 서브넷 내부와 외부의 트래픽을 제어하기 위한 방화벽으로 보안 그룹과 비슷한 규칙으로 네트워크 ACL을 설정하여 VPC에 보안 계층을 더 추가할 수 있습니다.

마무리

이번 블로그에서는 VPC에 대해서 개념, 보안, 요금, 기능, 보안 등 다양한 이야기를 했습니다.
VPC는 AWS의 네트워크로써 접근제한 다른 네트워크와의 연결, 통신 그리고 보안등을 담당해주며, 다양한 설정을 할 수 있습니다. 전번 내용이였던 EC2에도 기본적으로 VPC가 사용되므로 AWS로 서버를 구축하실때 꼭 필요한 내용이라고 생각합니다.
VPC에 대한 자세한 내용은 공식홈페이지의 VPCFAQ 에서 확인 해주세요.

참고한 내용

AWS VPC 공식사이트

Amazon Virtual Private Cloud 설명서

AWS 다시 시작 2018 Amazon VPC (Virtual Private Cloud) 편