02. VPC - 이론편

본 블로그 내용은 '따라하며 배우는 AWS 네트워크 입문' 도서를 바탕으로 정리한 내용입니다. 모든 저작권은 CloudNet@에 있습니다 :)

=> 아키텍처 이미지는 AWS 홈페이지를 참조하였습니다.

📌 VPC(Virtual Private Cloud) 란?

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

AWS 클라우드 서비스는 사용자에 따라 네트워크 환경을 직접 설계할 수 있다는 특징을 가지고 있습니다. 사용자는 VPC 내에 IP대역, 인터페이스, 서브넷, 라우팅 테이블, 인터넷 게이트웨이, 보안 그룹 등을 생성하고 제어할 수 있습니다.

AWS 콘솔에서 VPC 대시보드에 접근하면 다양한 VPC 리소스들을 확인해볼 수 있습니다.

  • VPC 종류

    • 기본 VPC (Default)

      • 리전별로 1개씩 생성되어 있으며 기본 VPC 내에 AWS 리소스가 미리 정해져있습니다.
    • 사용자 VPC (Custom)

      • 사용자 정의에 의해 수동으로 AWS 리소스를 생성하고 제어할 수 있습니다.
  • VPC 특징

    • 확장성

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

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

      • VPC 내 리소스에 대해 사용자가 원하는 대로 손쉽게 제어할 수 있으며, 네트워크 지표 및 모니터링 툴을 활용하여 사용자에게 높은 가시성을 제공합니다.
    • 제약사항

      • 전통적인 네트워크 환경에서 사용 가능했던 기능이 제한되어 있거나 일부분만 사용 가능하여 기술적 제약(브로드캐스트 / 멀티캐스트 / IP 기반 Failover 프로토콜 등 : AWS에서 지속적인 기능 추가로 개선 진행 중임)이 따르게 됩니다.

📌 기본 네트워크 개념 이해

🔍 OSI 7 레이어 모델

OSI 7레이어 모델은 국제표준화기구에서 개발한 모델로 복잡한 네트워크 동작 과정을 7개의 계층으로 나누어 네트워크 통신 흐름을 한눈에 알아보고 이해할 수 있게 도와주는 역할을 합니다.

이미지 참고 링크 : https://velog.io/@poiuyy0420

  • Application 계층

    • 응용 프로세스와 직접 연계하여 실제 응용 프로그램을 사용하게 하는 계층
    • HTTP, SSH, DHCP 등이 포함
  • Presentation 계층

    • 데이터의 형식상 차이에 대해 송/수신자간 이해할 수 있는 형태로 데이터를 표현하는 기능을 담당
    • 데이터의 암호화 및 압축 등을 수행함
  • Session 계층

    • 종단의 사용자 간의 응용 프로세스 통신을 관리하기 위한 방법을 제공
    • 데이터의 통신을 위한 논리적인 연결
  • Transport 계층 ★

    • 종단의 사용자 간 데이터의 통신을 다루는 최상위 계층
    • 데이터 전달의 유효성과 효율성을 보장
  • Network 계층 ★

    • 데이터를 목적지까지 빠르고 안전하게 전달하는 것이 목적
    • 여러 노드를 거칠 때 마다 최적의 경로를 찾아주는 역할
    • IP, ARP, ICMP 등의 프로토콜이 포함
    • Physical 계층에서 송수신되는 정보의 오류와 흐름을 관리하여 데이터의 전달을 수행하는 역할
    • Ethernet, Wi Fi, 물리적인 케이블 등이 포함
  • Physical 계층

    • 네트워크의 하드웨어 전송 기술
    • 물리적인 링크의 연결, 유지, 해제 담당

🔍 IP & 서브넷 마스크

  • IP(Internet Protocol)

    인터넷 상의 네트워크 자원들을 구분하는 고유한 주소

    • 퍼블릭 IP
      • 실제 인터넷 구간의 통신 대상을 식별하기 위해 ISP에서 제공하는 IP 주소
      • 전 세계 인터넷 구간에서 유일한 주소
    • 프라이빗 IP
      • 인터넷 구간이 아닌 내부적으로 통신(일반 가정이나 회사 등)하는 사설 네트워크
      • 프라이빗 네트워크 관리자에 의해 할당됨
      • 외부 인터넷 구간과 통신이 불가능
      1. Class A : 10.0.0.0 ~ 10.255.255.255
      2. Class B : 172.16.0.0 ~ 172.31.255.255
      3. Class C : 192.168.0.0 ~ 192.168.255.255
  • 서브넷 마스크

    • IP 주소에 네트워크 ID와 호스트 ID를 구분하는 기준값

      • 네트워크 ID : 서브넷을 식별하는 영역
      • 호스트 ID : 서브넷에서 대상을 식별하는 영역
    • 10진수로 표현하거나 Prefix 형태로 표현함

      • /8, /16, /24와 같이 Prefix 형태로 표기하는 방법을 IP CIDR 표기법이라고 함

🔍 TCP와 UDP & 포트 번호

  • TCP와 UDP

    구분TCPUDP
    OSI 모델4계층4계층
    연결연결 지향성비연결 지향성
    신뢰성신뢰성 보장신뢰성 보장 X
    순서데이터 순서 보장데이터 순서 보장 X
    제어혼잡 제어, 흐름 제어혼잡 제어, 흐름 제어 제공 X
    속도상대적으로 느림상대적으로 빠름
    서비스HTTP, SSH, FTPDNS, DHCP
  • 포트 번호

    • TCP와 UDP의 특성에 따라 제공되는 응용 프로그램 서비스를 포트 번호를 이용해 구분함
    1. Well Known Port : 0 ~ 1023
    2. Registered Port : 1024 ~ 49151
    3. Dynamic Port : 49152 ~ 65535

    Ex ) TCP의 포트 번호 : 80 (HTTP : 잘 알려진 포트)

🔍 DHCP (Dynamic Host Configuration Protocol)

  • 동적으로 IPv4 주소를 일정 기간 임대를 하는 프로토콜
  • UDP 프로토콜을 사용하며 포트번호 67과 68를 사용하며 동작함
  • 임대 시간이 존재하며 임대 시간이 만료되면 반환하거나 갱신을 수행함

🔍 DNS (Domain Name System)

  • 도메인 네임을 제공하기 위한 기술
    • 도메인 네임 : IP 주소의 복잡한 주소 체계를 해소하기 위해 문자 형태로 구성된 이름
  • UDP 프로토콜을 사용하며, 포트 번호 53을 사용하여 동작함

🔍 라우팅 (Routing)

  • 복잡하게 연결된 네트워크 망에서 최적의 경로를 잡아 통신하는 것
  • 네트워크는 최적의 라우팅을 통해 안정적이고 빠른 통신을 하는 것이 중요한 지향점입니다.
  • 라우팅을 수행하는 장비

    • 라우터 : 라우터는 라우팅 테이블을 통해 목적지 IP가 어느 경로로 향하는지 기록하고 해당 경로로 데이터를 전달함
    • 라우팅 테이블

📌 VPC 리소스 소개

🔍 서브넷 (Subnet)

네트워크 영역을 부분적으로 나눈 망으로, 클라우드 환경의 VPC에서도 서브넷을 통해 네트워크 분리가 가능합니다.

  • 서브넷의 IP 대역은 반드시 VPC의 IP 대역에 속해 있어야 한다.

  • 서브넷은 1개의 가용 영역에 종속되어 있어야 한다.

  • AWS에서는 서브넷에 할당할 수 있는 IP대역에서 미리 예약되어 있는 IP주소가 존재한다.

    Ex) 서브넷에서 할당할 IP 대역 = 10.0.0.0/24

    1. 첫번째 주소 : 10.0.0.0 => 네트워크 주소
    2. 두번째 주소 : 10.0.0.1 => VPC 가상 라우터 주소
    3. 세번째 주소 : 10.0.0.2 => DNS 서버 주소
    4. 네번째 주소 : 10.0.0.3 => 향후 새로운 기능에 활용할 주소
    5. 마지막 주소 : 10.0.0.255 => 네트워크 브로드캐스트 주소

    => 예약된 IP 주소들은 AWS 자원에 할당할 수 없다.

  • 퍼블릭 서브넷

    • 외부 인터넷 구간과 직접적으로 통신이 가능한 공공 네트워크
  • 프라이빗 서브넷

    • 외부 인터넷 구간과 직접적인 통신을 할 수 없는 폐쇄적인 네트워크

🔍 가상 라우터와 라우팅 테이블

VPC를 생성하면 자동으로 가상 라우터가 생성됩니다. 이 가상라우터는 라우팅 테이블을 가지고 있어 목적지 네트워크로 라우팅하여 통신합니다.

  • 가상 라우터에서는 서브넷 별로 라우팅 테이블을 매핑시켜줄 수 있음
  • 기본 라우팅 테이블 외에, 새로운 라우팅 테이블 생성

🔍 인터넷 게이트웨이

  • VPC와 인터넷 간의 논리적인 연결(VPC에서 인터넷 구간으로 나가는 관문)

  • 인터넷 게이트웨이를 통해 외부 인터넷 구간으로 통신할 수 있는 대상은 퍼블릭 IP를 사용하는 퍼블릭 서브넷 내의 자원

🔍 NAT 게이트웨이

  • 인터넷 게이트웨이처럼 외부 인터넷 구간과 연결하는 관문 역할을 수행함
  • NAT = Network Address Translation : 프라이빗 IP를 퍼블릭 IP로 변환하여 통신을 도와줌
  • 인터넷 게이트웨이와 다르게 한쪽 방향으로만 동작함 (프라이빗 서브넷 → 외부 인터넷)

🔍 보안 그룹과 네트워크 ACL

VPC는 인스턴스 레벨과 서브넷 레벨 상에서 대상을 필터링 할 수 있는 보안 기술을 사용할 수 있음

  • 인스턴스 레벨

    • 보안 그룹
  • 서브넷 레벨

    • 네트워크 ACL

0개의 댓글