[배포 및 인프라] 2. VPC

오잉·2023년 6월 8일
0

INFRA

목록 보기
2/5

1. VPC란

1) VPC 정의

  • VPC : 논리적으로 격리된 가상의 클라우드 네트워크
  • AWS 클라우드 내 논리적으로 독립된 섹션 제공
    → 사용자가 정의한 가상 네트워크상에서 다양한 AWS 리소스를 실행할 수 있게 지원
  • 사용자에 따라 네트워크 환경을 직접 설계할수 있다
    (vpc내에 ip대역, 서브넷, 라우팅 테이블, 인터넷 게이트웨이, 보안 그룹, 네트워크 ACL등 생성 및 제어 가능)
  • 즉, AWS 클라우드내에 VPC를 생성하여 사용자가 원하는대로 다양한 리소스를 생성하고 제어할 수 있다.

    위 다이어그램은 VPC 예시이다.
    하나의 Region안에 VPC가 있다.
    각 가용 영역(AZ)별로 각각 하나의 서브넷이 있고, 각 서브넷에 EC2 인스턴스가 있다.
    VPC의 리소스와 인터넷 간의 통신을 허용하는 인터넷 게이트웨이가 있다.
    (그냥 그렇구나~하고 넘어가자. 뒷부분에서 설명 예정)

2) VPC 종류

  • 분류 기준 : 사용자의 관여
  • Default VPC
    • AWS가 생성
    • 정해진 AWS리소스 미리 생성
    • 리전별로 1개씩 생성되어있음
  • Custom VPC
    • 사용자가 생성
    • 사용자 정의에 의해 수동으로 AWS 리소스를 생성하고 제어 가능
    • 리전별로 최대 5개

2. 본격적으로 VPC에 대해 알아보기 전에 잠깐 네트워크

1) IP (Internet Protocol)

  • 인터넷상의 네트워크 자원들을 구분하는 고유한 주소
  • 버전에 따라 IPv4(32bit)와 IPv6(128bit)로 구분
  • IPv4가 주로 사용됨

2) public IP vs private IP

기본적으로 네트워크의 통신 용도에 따라 public network와 private network로 구분된다.

  • public network : 실제 인터넷 구간으로 통신하는 공공 네트워크
  • private network : 인터넷 구간이 아닌 내부적으로 통신하는 사설 네트워크

이러한 public network와 private network가 사용하는 IPv4 주소 대역이 지정되어 있다.
이 그림에서 82.129.80.111만 public ip이고 나머지는 다 private ip이다.

  • public IP (실제 주소)
    • 인터넷 구간의 통신 대상을 식별하기 위해 ISP에서 제공하는 IP 주소
    • 전 세계의 인터넷 구간에서 유일
  • private IP (독립된 네트워크 안에서의 주소)
    • 일반 가정이나 회사 등의 독립된 네트워크에서 사용하는 내부 IP 주소
    • 프라이빗 네트워크 관리자에 의해 할당
    • 독립된 네트워크상에서 유일한 주소
    • private IP를 통해서는 외부 인터넷 구간과 통신할 수 없다

(그림 출처 : Public or Private IP Address - What's the Difference?)

3) Subnet

모든 네트워크망이 거대한 하나의 망으로 이루어진 형태는 아니다. 네트워크망은 서브넷을 통해 부분적인 네트워크망으로 나눠지고 서로 연결되어 있다.

  • 서브넷 : 하나의 네트워크가 분할되어 나눠진 작은 네트워크
  • 서브네팅 : 네트워크를 분할하는 것 (by 서브넷 마스크)

4) Subnet Mask

  • 서브넷 마스크 : 서로 다른 서브넷을 구분하는 기준
  • IP 주소를 네트워크 ID와 호스트 ID로 구분하는 기준값
    • 네트워크 ID : 서브넷을 식별하는 영역
    • 호스트 ID : 서브넷에서 대상을 식별하는 영역

⇒ 동일한 서브넷에 소한 IP주소의 네트워크 ID는 모두 동일하다. 호스트 ID를 통해 개별 구분한다.
(자세한 내용은 이 블로그를 참고하자)

5) Routing

네트워크는 여러개의 서브넷으로 이루어져 있다. 따라서 목적지 IP로 향하기 위해서는 여러 노드를 거쳐서 통신해야 한다.

  • 라우팅 : 복잡하게 연결된 네트워크망에서 최적의 경로를 찾아 통신하는 것
  • 라우터 : 라우팅을 수행하는 장비 → 라우팅 테이블을 통해 경로를 파악하고 원하는 목적지 대상으로 데이터 전달

3. VPC 리소스

1) Subnet

클라우드 환경의 VPC에서도 서브넷을 통해 네트워크를 분리하여 나눌 수 있다.

  • 서브넷의 IP 대역은 VPC의 IP대역에 속해 있어야 한다.
  • 서브넷은 1개의 가용영역에 속해 있어야 한다.

2) Public Subnet vs Private Subnet

  • public 서브넷
    • 공인 네트워크
    • 외부 인터넷 구간과 직접적으로 통신할 수 있는 공공 네트워크
    • public IP를 가지고 인터넷 게이트웨이를 통해 외부 인터넷 구간의 사용자와 통신 가능
  • private 서브넷
    • 사설 네트워크
    • 외부 인터넷 구간과 직접적인 통신을 할 수 없는 폐쇄적인 네트워크
    • private IP만 가지고 있어 자체적으로 외부 인터넷 구간의 사용자와 통신 불가능
    • 근데, NAT 게이트웨이가 있으면 통신가능

3) 가상 라우터와 라우팅 테이블

  • 가상 라우터
    • VPC를 생성하면 자동으로 생성됨
    • 최초에 기본 라우팅 테이블 보유. 로컬 네트워크(VPC의 자체 대역)에 대한 라우팅 경로만 잡혀있다.
    • VPC 내에 생성된 서브넷은 라우팅 테이블의 로컬 네트워크에 의해 통신 가능
    • 서브넷별로 라우팅 테이블 매핑 가능

가상 라우터는 라우팅 테이블을 사용하여 서브넷 또는 게이트웨이의 네트워크 트래픽이 전달되는 위치를 결정

4) 인터넷 게이트웨이

  • VPC와 인터넷 간의 논리적 연결
  • VPC에서 인터넷 구간으로 나가는 관문
  • public IP를 사용하는 퍼블릿 서브넷 내의 자원은 인터넷 게이트웨이를 통해 외부 인터넷 구간과 통신할 수 있다
  • 퍼블릭 서브넷은 자신의 라우팅 테이블에 외부 인터넷 구간으로 나가는 타깃을 인터넷 게이트웨이로 지정해 줘야 한다
  • VPC 당 1개만 연결
  • 양방향 연결 지원 (퍼블릭 서브넷 <-> 인터넷 구간)

5) NAT 게이트웨이

  • 인터넷 게이트웨이와 마찬가지로 외부 인터넷 구간과 연결하는 관문
  • 프라이빗 서브넷 인스턴스의 private IP를 public IP로 변환해서 외부 인터넷 구간으로 연결할 수 있도록
  • 한쪽방향으로만 동작 (프라이빗 서브넷 → 외부 인터넷)

(사진 출처 : AWS NAT Gateway)

6) 보안그룹과 네트워크 ACL

  • 보안 그룹 : 인스턴스 레벨에서의 보안 기술 (인스턴스 별로 지정)
  • 네트워크 ACL : 서브넷 레벨에서의 보안 기술 (서브넷 별로 지정)

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

(사진 출처 : Differences Between Security Group And Network ACL)


출처
따라하며 배우는 AWS 네트워크 입문
AWS Documentation

profile
오잉이라네 오잉이라네 오잉이라네 ~

0개의 댓글