* VPC Virtual Private Cloud

2022. 8. 10. 18:14카테고리 없음

VPC 관련 개념

 

우리는 지난 유닛에서 실습을 진행하며 직접 설정하는 과정은 없었지만 자연스럽게 VPC를 이용했습니다. 여러분이 EC2를 생성한다면 어떤 VPC를 사용하는지, 어떤 서브넷을 이용하는지 확인할 수 있습니다. 실습에서 우리는 이미 생성되어있는 기본 VPC를 사용했는데요, 기본 VPC가 아닌 직접 생성하고 설정한 VPC를 사용할 수도 있습니다. VPC가 무엇인지, 또 VPC를 이해하기 위한 개념들은 무엇이 있는지 알아보겠습니다.

VPC

VPC는 Virtual Private Cloud 서비스로, 클라우드 내 프라이빗 공간을 제공함으로써, 클라우드를 퍼블릭프라이빗 영역으로 논리적으로 분리할 수 있게 합니다.

이전에 VPC가 없었을 때는 클라우드에 있는 리소스를 격리 할 수 있는 방법이 없었고, 따라서 인스턴스들이 서로 거미줄처럼 연결되고, 인터넷과 연결되어 시스템의 복잡도를 엄청나게 끌어올릴 뿐만 아니라, 의존도를 높였습니다. 따라서 유지 및 관리에 많은 비용과 노력을 투입해야 하는 단점이 있었습니다. 그러나 VPC를 분리함으로써 확장성을 가질 수 있고, 네트워크에 대한 완전한 통제권을 가질 수 있습니다.


VPC 이해를 위한 구성 요소와 주요 용어

IP Address

IP는 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호로, IPv4, IPv6로 나뉘어 있으며 혼용하여 사용하고 있습니다.

IPv4를 기준으로 예를 들면, 아래와 같은 형식인 172.16.0.0의 모습으로 이루어져 있습니다.

172.16.0.0
10101100. 00010000. 00000000. 00000000

하지만 표에서 보이는 십진수의 형태는 보기 편하도록 변형한 것이고, 실제의 형태는 2진수 8자리의 형태, 즉 각 8bit(비트)씩 총 32bit로 구성되어 있습니다. 이때 각 8bit를 Octet이라고 부르며, .으로 구분합니다. 그러므로 IPv4는 4개의 Octet(옥텟)으로 이루어져 있다고 할 수 있습니다.

IP Address Class

이전에는 IPv4 주소에서 호스트가 연결되어 있는 특정 네트워크를 가리키는 8비트의 네트워크 영역(Network Address)과 해당 네트워크 내에서 호스트의 주소(Host Address)를 가리키는 나머지 영역을 구분하기 위해서 클래스(Class)를 사용했습니다. 클래스는 총 5가지(A, B, C, D, E) 클래스로 나누어져 있습니다. 하지만 D와 E 클래스는 멀티캐스트용, 연구 개발을 위한 예약 IP이므로 보통 사용되지 않습니다.

  • A 클래스Network AddressHost AddressHost AddressHost Address 
    0-127 0-255 0-255 0-255
    단, 0.0.0.0의 경우는 자체 네트워크를 의미하기 때문에 제외되고, 127.0.0.0 ~ 127.255.255.255는 자기 자신을 가리키기 위한 목적으로 예약된 IP주소이기 때문에 사용할 수 없습니다.
  • B 클래스Network AddressNetwork AddressHost AddressHost Address
    128-191 0-255 0-255 0-255
  • C 클래스Network AddressNetwork AddressNetwork AddressHost Address
    192-223 0-255 0-255 0-255

CIDR(Classless inter-domain routing)

CIDR사이더라고 불리우며, 클래스 없는 도메인 간 라우팅 기법으로 1993년 도입되기 시작한 국제 표준의 IP주소 할당 방법이며, 앞서 설명한 IP 클래스 방식을 대체한 방식입니다.

기존에는 클래스에 따라 정해진 Network Address와 Host Address를 사용해야 했다면, CIDR은 원하는 블록만큼 Network Address를 지정하여 운용할 수 있습니다.

예를 들면 다음과 같습니다.

위의 예시에 따르면, /16은 첫 16bit를 Network Address로 사용한다는 의미로, 총 2^16인 65,536개의 IP주소를 사용할 수 있는 커다란 네트워크 블록을 이러한 방식으로 표시합니다.

CIDR 블록IP 주소의 수
/28 16
/24 254
/20 4094
/18 16,382
/16 65,536

서브넷(Subnet)

서브넷은 서브네트워크(Subnetwork)의 줄임말로 IP 네트워크의 논리적인 하위 부분을 가리킵니다. 서브넷을 통해 하나의 네트워크를 여러 개로 나눌 수 있습니다. VPC를 사용하면 퍼블릭 서브넷, 프라이빗 서브넷, VPN only 서브넷 등, 필요에 따라 다양한 서브넷을 생성할 수 있습니다.

  • 퍼블릭 서브넷 : 인터넷을 통해 연결 할 수 있는 서브넷
  • 프라이빗 서브넷 : 인터넷을 연결하지 않고, 보안을 유지하는 배타적인 서브넷
  • VPN only 서브넷 : 기업 데이터 센터와 VPC를 연결하는 서브넷

서브넷은 VPC의 CIDR 블록을 이용해 정의되며, 최소 크기의 서브넷은 /28 입니다. 이때 주의 할 점은 서브넷은 AZ당 최소 하나를 사용할 수 있고, 여러 개의 AZ에 연결되는 서브넷은 만들 수 없습니다.

Tips ) AWS가 확보한 서브넷 중 처음 네 개의 IP주소와 마지막 IP주소는 인터넷 네트워킹을 위해 예약되어 있다. 서브넷에서 가용 IP주소를 계산할 때는 항상 이 부분을 기억하고 있어야 합니다. 예를 들어, 10.0.0.0/24 체계의 CIDR 블록이 있는 서브넷에서 10.0.0.0, 10.0.0.1, 10.0.02, 10.0.0.3, 10.0.0.255 등 5개의 IP주소는 예약 되어 있습니다.


라우팅 테이블(Routing Table)

라우팅 테이블은 트래픽의 전송 방향을 결정하는 라우트와 관련된 규칙을 담은 테이블로 목적지를 향한 최적의 경로로 데이터 패킷을 전송하기 위한 모든 정보를 담고 있습니다. 쉽게 말하자면 라우팅 테이블은 하나의 지점에서 또 다른 지점으로 가기 위한 모든 정보제공하기 위한 테이블입니다.

모든 서브넷은 라우팅 테이블을 지닙니다.

예를 들어 아래의 캡처본과 같이 특정 VPC의 서브넷이 라우팅 테이블인터넷 게이트웨이(VPC와 인터넷 간 통신을 가능하게 하는 구성요소)를 포함하고 있다면, 해당 서브넷은 인터넷 액세스 권한 및 정보를 가집니다.

각각의 서브넷은 항상 라우팅 테이블을 가지고 있어야 하며, 하나의 라우팅 테이블 규칙을 여러 개의 서브넷에 연결하는 것도 가능합니다. 서브넷을 생성하고 별도의 라우팅 테이블을 생성하지 않으면 클라우드가 자동으로 VPC의 메인 라우팅 테이블을 연결합니다.