About/Cloud

[AWS] VPC 서브넷(Subnet)

김징어 2022. 3. 24. 17:58

VPC에서 서브넷(Subnet)


서브넷은 VPC에 있는 네트워크 로직 컨테이너(logical container)로서 EC2 인스턴스와 같은 VPC 리소스를 연결합니다. 

서브넷은 네트워크 상에 존재하는 여러 인스턴스를 서로 격리하는 역할을 하며, 인스턴스 간의 트래픽 유입 및 유출을 제어하고, 기능별로 조직화합니다. 서브넷은 전통적인 가상 LAN(VLAN)과 유사한 개념의 네트워크 요소라 할 수 있습니다.

이미지 출처 https://cloudguide.cdnetworks.com/CaseStudy/pp-vpc.html

예를 들어, 인터넷 접속이 가능한 퍼블릭 웹 서버용 서브넷(Public Subnet)을 하나 만들고, 웹 인스턴스만 접속할 수 있는 데이터 베이스 전용 서브넷(Private Subnet)을 하나 더 추가할 수 있습니다.

인스턴스는 서브넷 내에 생성되며, 서브넷에 인스턴스를 생성한 뒤에 다른 서브넷으로 옮길 수 없습니다. 이는 하나의 VPC에서 생성된 인스턴스를 다른 VPC로 옮길 수 없다는 의미이기도 합니다. 서브넷을 옮겨야 하는 경우 기존 인스턴스를 종료하고 새 서브넷에서 인스턴스를 시작해야 합니다.

만약 기존 인스턴스의 EBS 볼륨 내 데이터를 보존한 채로 서브넷을 옮겨야 한다면, 볼륨 스냅샷 생성, AMI 생성 그리고 이 AMI를 이용해서 원하는 서브넷에서 새 인스턴스를 시작하면 됩니다.

서브넷의 CIDR 블록

서브넷의 CIDR(Classless Inter Domain Routing)은 VPC CIDR 영역 중 일부를 떼서 서브넷의 CIDR로 사용해야 합니다. 예를 들어 VPC CIDR이 172.17.0.0/16 인 경우 서브넷의 CIDR는 172.16.100.0/24 가 될 수 있습니다. 이 때 IP 주소 범위는 172.16.100.0-172.17.100.255, 총 256개의 주소를 사용할 수 있습니다.

AWS는 모든 서브넷에서 처음 4개의 IP 주소와 마지막 1개의 IP 주소를 예약해서 사용하므로, 이 주소에는 인스턴스를 할당할 수 없습니다.

예를 들어, 서브넷 CIDR이 172.16.100.0/24인 경우 다음 주소는 AWS에 예약됩니다.

- 172.16.100.0
- 172.16.100.1 - 내재된 라우터용
- 172.16.10.2 - Amazon 제공 DNS 서버용
- 172.16.10.3 - 예비로 예약
- 172.16.100.255

서브넷 CIDR의 프리픽스 길이 제한은 VPC CIDR의 프리픽스 길이와 같습니다. 하나의 VPC 내에 있는 서브넷 CIDR 블록은 서로 겹쳐서는 안되고, 서브넷에 CIDR를 할당한 뒤에는 변경할 수 없습니다.

서브넷과 VPC가 동일한 CIDR를 공유하는 것은 가능합니다. 예를 들어, CIDR 192.168.0.0/16을 VPC에 할당하고, VPC 내 서브넷에도 할당할 수 있습니다. 이렇게 하면 다른 서브넷을 위한 공간이 전혀 없으므로 일반적인 경우라 할 순 없지만, 단 하나의 AZ에서만 해당 서브넷을 사용하도록 하기 위해 이런 방식을 사용하는 것도 가능합니다.

보통의 경우 VPC의 CIDR 블록보다 서브넷 프리픽스 길이를 더 길게 하며, 하나의 VPC 내에 여러 개의 서브넷을 둘 수 있습니다. 예를 들어, VPC에 CIDR 192.168.0.0/16를 할당한 경우 해당 VPC 내의 서브넷에 CIDR 192.168.3.0/24를 할당해 다른 서브넷을 추가할 여지를 남겨두는 것이 일반적입니다.

서브넷은 여러 개의 CIDR를 지닐 수 없습니다. VPC는 보조 CIDR를 가질 수 있지만, 서브넷은 하나의 CIDR만 지닐 수 있습니다. 또한 VPC에 기본 CIDR와 보조 CIDR가 있는 경우, 서브넷 CIDR는 두 CIDR 중 하나를 선택해서 생성할 수 있습니다. 

서브넷의 가용 영역(Availability Zone)


서브넷은 하나의 가용 영역(AZ, Availability Zone)에서만 존재할 수 있습니다. 가용 영역은 리전에 비해 상대적으로 작은 지리적 위치에 존재하며, 개별 데이터 센터와 비슷한 개념입니다.

AWS 리전은 서로 연결돼 있으며, 하나의 가용 영역에 장애가 발생하더라도 다른 영역에 그 영향이 끼치지 않도록 설계됐습니다.

서로 다른 가용 영역에 서브넷을 하나씩 만든 뒤 인스턴스를 이들 서브넷에 분산 배치해서 애플리케이션의 복원성을 구현할 수 있습니다.

이미지 출처 ( https://blog.nuricloud.com/aws-vpc-%EB%94%94%EC%9E%90%EC%9D%B81/ )

서브넷을 반드시 여러 가용 영역에 만들어야 하는 것은 아니지만, 모든 서브넷을 같은 영역에 배치했을 때, 해당 영역에 장애가 발생하면 모든 인스턴스가 작동하지 않을 수 있다는 점을 고려해야합니다.


AWS VPC의 서브넷에 대하여 알아보았습니다.

참고사항

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html

 

Amazon VPC란 무엇인가? - Amazon Virtual Private Cloud

Amazon VPC란 무엇인가? Amazon Virtual Private Cloud(Amazon VPC)를 이용하면 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는

docs.aws.amazon.com

http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791161756103 

 

AWS 공인 솔루션스 아키텍트 스터디 가이드: 어소시에이트 - 교보문고

◈ 이 책에서 다루는 내용 ◈ ◆ 내구성 아키텍처 설계 방법 ◆ 고성능 아키텍처 설계 방법 ◆ 보안성을 갖춘 애플리케이션 및 아키텍처 설계 방법 ◆ 비용 효율적인 아키텍처 설계 방법 ◈ 이

www.kyobobook.co.kr