한량의 개발블로그

[AWS] VPC (Virtual Private Cloud) 본문

AWS

[AWS] VPC (Virtual Private Cloud)

Jayce.KIM 2023. 6. 23. 14:52

Virtual Private Cloud(VPC)

Virtual Private Cloud(VPC)는 사용자의 AWS 계정 전용 가상 가상 네트워크입니다. VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어있습니다. Amazon EC2 인스턴스와 같은 AWS 리소스를 VPC에서 실행할 수 있습니다. IP 주소 범위와 VPC 범위를 설정하고 서브넷을 추가하고 보안 그룹을 연결한 다음 라우팅 테이블을 구성합니다.

쉽게 말해서 VPC는 가상으로 존재하는 데이터 센터 입니다. 즉, VPC를 이용하면 원하는대로 사설망을 구축하여 사용할 수 있습니다. (리전 단위) 

 

VPC 사용 사례

  1. EC2, RDS, Lambda등의 AWS 컴퓨팅 서비스 실행
  2. 다양한 서브넷 구성
  3. 보안 설정 (IP Block, 인터넷에 노출되지 않는 EC 구성)

 

VPC의 구성 요소

  • Availability Zone
  • 서브넷
  • 인터넷 게이트웨이
  • NACL/보안그룹
  • 라우트 테이블
  • NAT Instance/ NAT Gateway
  • Bastion Host
  • VPC Endpoint

 

Availability Zone

  • 데이터 센터
  • 하나의 Region안에 2개 이상의 AZ로 이루어져 있습니다
  • 고가용성을 위해 각 AZ는 물리적으로 분리되어 있습니다

 

서브넷이란? 

  • VPC의 하위 단위
  • VPC에 할당된 IP를 더 작은 단위로 분할한 개념
  • 하나의 서브넷은 하나의 가용영역안에 위치
  • CIDR Block Range로 IP주소 지정

AWS 서브넷 IP 계산 시  

  • AWS의 사용 가능 IP 숫자는 5개를 제외하고 계산
  • 예를 들어 IP가 10.0.0.0/24라면,
  • 10.0.0.0 : 네트워크 어드레스
  • 10.0.0.1 : VPC Router
  • 10.0.0.2 : DNS Server
  • 10.0.0.3 : 미래에 사용을 위해 남겨 둠
  • 10.0.0.2455(마지막 번호) : 네트워크 브로드캐스트 어드레스
  • 즉 총 사용 가능한 IP 갯수는 2^8 - 5 == 251

 

라우트 테이블 

  • 트래픽이 어디로 가야 할지 알려주는 이정표
  • VPC 생성시 기본으로 하나가 제공
  • 가장 구체적인 IP로 답변해줍니다
  • 예를 들어,
  • Destination이 10.0.0.0/16과 0.0.0.0/0이 있고
  • IP 주소가 10.0.1.231인 경우
  • 라우트 테이블은 10.0.0.0/16으로 안내해줍니다

 

인터넷 게이트웨이

  • VPC가 외부의 인터네소가 통신할 수 있도록 경로를 만들어주는 리소스
  • 확장성과 고가용성이 확보되어 있습니다
  • IPv4, IPv6 지원

 

보안 그룹 (Security Group)

  • 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할
  • Network Access Control List(NACL)와 함께 방화벽의 역할을 하는 서비스
  • 기본적으로 모든 포트는 비활성화 (선택적으로 설정 가능)
  • Deny 불가능
  • 인스턴스 단위 - 하나의 인스턴스에 하나의 SG설정 가능
  • 설정된 인스턴스는 설정한 모든 SG의 룰을 적용 받음 
  • Stateful - Inbound된 트래픽이라면 Outbound도 허용시켜줍니다

 

NACL(Network Access Control List)

  • 보안 그룹처럼 방화벽 역할을 담당
  • 서브넷 단위
  • 포트 및 아이피를 직접 Deny가능
  • Statless : Inbound된 트래픽이어도 Outbound에서 허용해야 나갈 수 있습니다
  • 낮은 숫자부터 순서대로 규칙 평가

예를들어, 112.12.35.4라는 IP를 Deny 하고 싶은 경우,

위 그림처럼 규칙번호 100에 0.0.0.0/0을 Allow하고 규칙번호 200에 112.12.35.4/32 Deny하는 경우

NACL은 규칙 번호를 낮은 순서대로 평가하기 때문에 112.12.35.4는 인스턴스에 접속이 가능합니다.

반대로, 규칙번호 100에 112.12.35.4를 Deny하는 경우에는 112.12.35.4가 인스턴스테 접속할 수 없게됩니다.

 

Nat Gateway / Nat Instance 

  • Nat Instance => 단일 EC2 인스턴스
  • Nat Gateway => AWS에서 제공하는 서비스
  • Amazon VPC의 프라이빗 서브넷에 있는 인스턴스가 인터넷에 쉽게 연결할 수 있는 통로
  • 가용성이 높은 AWS관리형 서비스
  • 서브넷 단위
  • Public Subnet에 있어야 합니다 => 인터넷에 연결하기 위해

 

Bastion Host

  • 외부에서 사설 네트워크에 접속할 수 있도록 경로를 확보해주는 서버
  • 실무에서는 잘 쓰이지 않고, AWS Session Manager를 더 많이 사용한다고 합니다

 

VPC Peering (VPC간 연결)

  • Transitive Peering 불가능
  • A와 B가 연결되어 있고, B와 C가 연결되어 있더라도 A와 C가 연결되어 있는 것은 아닙니다

 

VPC FlowLog

  • VPC로그를 Cloud Watch에 저장 가능합니다

 

 

'AWS' 카테고리의 다른 글

AWS S3 자동배포  (0) 2021.11.11
S3 정적 웹사이트 호스팅하기  (0) 2021.11.03
Comments