본문 바로가기

About/Cloud

[AWS] VPC 서브넷(Subnet)

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