본문 바로가기

Information/[AWS]

[AWS] Network - VPC 정리

A. VPC 개요

1. VPC란?

Virtual Private Cloud의 약자로 AWS 클라우드 내 논리적으로 독립된 섹션을 제공합니다. 사용자가 정의한 가상 네트워크상에서 다양한 AWS  리소스를 실행할 수 있게 지원합니다. 

2. VPC 종류

AWS에서 VPC는 크게 2가지로 나뉘며 이는 기본 VPC(Default VPC)와 사용자 VPC(Custom VPB)로 불립니다. 기본 VPC는 리전별로 1개씩 기본으로 생성이 되어 있으며 기본 VPC 내엣 AWS 리소스가 미리 정해져 있습니다. 반면에 사용자 VPC는 사용자 정의에 의해 수동으로 AWS 리소스를 생성하고 제어할 수 있습니다. 

기본 VPC 사용자 VPC
AWS가 생성함 사용자가 생성함
정해진 리소스 미리 생성 사용자가 원하는 리소스 수동으로 생성
리전당 1개 리전당 최대 5개(기본값, 설정시 늘리기 가능)

 

3. VPC 특징

확장성

클라우드 기반에 손쉽게 VPC 자원을 생성하고 삭제가 가능하며, 설정 및 관리에 편의성을 제공합니다. 

보안

인스턴스 레벨과 서브넷 레벨에서 인바운드 및 아웃바운드 필터링을 수행할 수 있도록 보안 그룹과 네트워크 ACL을 제공하여 보안을 강화할 수 있습니다. 

사용자 중심

VPC 내 리소스에 대해 사용자가 원하는 대로 손쉽게 제어가 가능합니다.

제약 사항

전통적인 네트워크 환경에서 사용가능 했던 기능이 제한되어 있거나 일부분만 사용가능합니다. 

 

B. VPC 리소스

1. 서브넷(subnet)

AWS의 VPC에서도 서브넷을 통해 네트워크를 분리하여 나눌 수 있습니다. 

단, 주의사항이 몇가지 있는데 하기와 같습니다. 

  • VPC의 IP 대역에 속해 있어야 합니다. 
  • 서브넷은 1개의 가용영역에 종속되어야 합니다. 
  • 예약된 주소*들은 AWS 자원에게 할당할 수 없습니다.

 

참고

* 예약된 주소

예) 서브넷 할당할 IP 대역이 100.0.0.0/24 

첫번째 주소 100.0.0.0 네트워크 주소
두번째 주소 100.0.0.1 AWS VPC 가상 라우터 주소
세번째 주소 100.0.0.2 AWS DNS 서버 주소**
네번째 주소 100.0.0.3 향후 새로운 기능에 활용할 주소
마지막 주소 100.0.0.255 브로드캐스트 주소

** VPC 내 여러 서브넷이 존재할 경우 첫번째 서브넷의 세번째 주소를 DNS 서버 주소로 사용합니다.

끝으로, 서브넷은 크게 퍼블릭 서브넷과 프라이빗 서브넷으로 나눌 수 있습니다. 

 

퍼블릭 서브넷

  • 공인 네트워크 개념으로 외부 인터넷 구간과 직접적으로 통신을 할 수 있는 공공 네트워크.
  • 퍼블릭 IP를 가지고 인터넷 게이트웨이를 통해 외부 인터넷 구간의 사용자와 통신 가능. 

프라이빗 서브넷

  • 사설 네트워크 개념으로 외부 인터넷 구간과 직접적인 통신을 할 수 없는 폐쇄적인 네트워크.
  • 프라이빗 IP를 퍼블릭 IP로 변환해 주는 NAT 게이트웨이가 있어야 통신 가능. 

 

2. 가상 라우터와 라우팅 테이블

 

VPC를 생성하면 가상 라우터가 자동 생성됩니다. 가상 라우터는 최초에 기본 라우팅 테이블을 보유하고 있으며 로컬 네트워크에 대한 라우팅 경로만 잡혀있습니다.  

가상 라우터에서는 서브넷별로 라우팅 테이블을 매핑을 시켜 줄 수 있습니다. 새로운 라우팅 테이블을 생성하고 매핑하여 서브넷 당 개별적인 라우팅 테이블을 가질 수 있습니다. 

 

3. 인터넷 게이트웨이

VPC와 인터넷 간의 논리적인 연결로 VPC에서 인터넷 구간으로 나가는 관문입니다.

몇가지 특징이 있는데 하기와 같습니다.

  • VPC당 1개만 연결이 가능합니다.
  • 퍼블릭 서브넷 내의 자원만 외부와 통신이 가능합니다. 
  • 라우팅 테이블에 외부 인터넷으로 나가는 구간을 인터넷 게이트웨이로 지정해 주어야 합니다.
  • 인터넷 게이트웨이는 양방향 통신을 지원합니다. 

 

4. NAT 게이트웨이

이 역시 외부 인터넷 구간과 연결하는 관문 역할을 합니다. 이름 그대로 NAT(Network Address Translation) 기술을 이용하는 게이트웨이 입니다. 프라이빗 IP는 인터넷 구간으로 넘어올 수 없지만 NAT 게이트웨이가 프라이빗 IP를 퍼블릭 IP로 변환하여 통신을 가능케 합니다. 

NAT 게이트웨이는 프라이빗 서브넷 인스턴스의 프라이빗 IP를 퍼블릭 IP로 변환하여 외부 인터넷 구간으로 연결할 수 있습니다. 또한, NAT 게이트웨이는 단방향 통신으로 "프라이빗 -> 외부" 통신은 가능하지만 "외부->프라이빗" 통신은 불가능합니다. 

 

5. 보안그룹과 네트워크 ACL

VPC는 인스턴스 레벨과 서브넷 레벨 상에서 대상을 필터링 할 수 있는 보안 기술을 가지고 있습니다. 인스턴스 레벨에서의 보안 기술은 보안 그룹(Security Group)이며, 서브넷 레벨에서의 보안 기술은 네트워크 ACL(Access Control List)입니다.

이러한 보안 기술들은 인바운드 및 아웃바운드되는 데이터에 대해 허용 규칙과 거부 규칙을 수립하여, 원하는 데이터만 수용할 수 있게 필터링 합니다. 

 

5. 보안그룹과 네트워크 ACL

VPC는 인스턴스 레벨과 서브넷 레벨 상에서 대상을 필터링 할 수 있는 보안 기술을 가지고 있습니다. 인스턴스 레벨에서의 보안 기술은 보안 그룹(Security Group)이며, 서브넷 레벨에서의 보안 기술은 네트워크 ACL(Access Control List)입니다.

이러한 보안 기술들은 인바운드 및 아웃바운드되는 데이터에 대해 허용 규칙과 거부 규칙을 수립하여, 원하는 데이터만 수용할 수 있게 필터링 합니다. 

 

C. VPC 엔드포인트 개요

1. VPC 엔드포인트란? 

사용자가 생성한 VPC에서 AWS 퍼블릭 서비스와 다른 VPC로 통신시 일반적으로 외부 인터넷 구간인 퍼블릭 네트워크를 통해 통신이 이루어 집니다. VPC 엔드포인트는 AWS의 퍼블릭 서비스나 직접적으로 생성한 AWS 서비스에 대해 외부 인터넷 구간을 통해서가 아닌 직접적으로 접근을 가능하게 해주는 프라이빗 액세스 기능입니다. 

2. VPC 엔드포인트 유형

  • 엔드포인트 : AWS 퍼블릭 서비스 대상에 프라이빗 연결
    • 게이트웨이 엔드포인트 : S3, DynamoDB에 대한 연결
    • 인터페이스 엔드포인트 : S3, DynamoDB를 제외한 나머지 AWS 퍼블릭 서비스에 대한 연결
  • 엔드포인트 서비스 :  사용자가 지정한 서비스 대상에 대한 프라이빗 연결 

 

3. VPC 엔드포인트 특징

  • 보안 강화 : 프라이빗 견경을 통해 외부 구간으로 노출이 되지 않습니다. 
  • 서비스 제약 : 연결 대상 서비스는 동일 리전에 속한 서비스만 가능합니다. 
  • VPC 종속 : 오직 VPC 하나에만 연결할 수 있습니다. (다수의 VPC에 종속 불가)
  • 권한 제어 : AWS IAM 기능을 통해 정책을 수립하여 VPC 엔드포인트에 대한 권한 부여가 가능합니다.