AWS/실전압축지식

[실.압.지][AWS]VPC, Subnet, Region and AZ(Availability Zones)란 무엇인가

faru 2024. 10. 2. 17:15

[1.짧게 말해서]

개발자든 TA든 DBA든 이제 AWS 사용은 선택이 아닌 필수의 영역이 되어가고 있다. 매우 기초적인 내용이지만, AWS의 중추를 이루는 해당 개념만 정확하게 알고 있어도 업무 이해의 폭이 달라질거라 생각하며 작성한다. 

 

A)VPC

VPC는 '논리적으로 격리된 섹션을 프로비저닝하여 가상 사설 클라우드를 제공하는 상용 클라우드 컴퓨팅 서비스입니다' 라고 구글에 검색하면 나온다.

 

어려워 보이지만, 가장 중요한 것은 '격리'라는 키워드이다. 우리가 큰 아파트를 지었다고 생각해보자. 문제는 아파트 내부에 층도 없고 방도 없으며, 그냥 큰 하나의 집처럼 되어있다고 가정해보자. 엄청나게 큰 사이즈의 집을 지었지만, 실제로 여러명이 함께 사용하기에는 매우 불편할 것이다.

바닥에 선을 긋고, 냉장고와 수도 시설을 같이 사용해야 할 것이고, 천막을 치더라도 완벽하게 사생활이 보호가 되지 않을 것이다.

그렇기에 우리는 층을 나누고 층을 또 호로 나누어서 사용한다. 열쇠는 사용자에게만 주어지고, 각 호별로 구조도 다를 것이고 내부 구성도 다를 것이다. 즉 각 호수를 격리하여 각 호들이 마치 하나의 독립 된 집처럼 존재 할 수 있게 된 것이다.

이와 마찬가지로 VPC도 클라우드 환경에서 마치 본인만의 자체 데이터 센터를 운영하는 것처럼 사용할 수 있게 논리적으로 '격리'된 가상의 네트워크를 제공하는 것을 의미한다.

 

VPC는 Cloud 초기부터 있었던게 아니라, 2011년 AWS에 의해 처음 릴리즈 되었다. 만약 VPC가 없었다면, 수천개의 서버를 클라우드에 올려놓고, 그 후 모든 IP 자원이 사용자간 겹치지 않도록 엄밀하게 구분하여 제공했을 것이다. 또한 만약에 AWS가 VPC 없이, 사설 IP 대역인 10.0.0.0/8을 사용했다고 가정해보자. 계산해보면 16,777,226개가 전부이다. 지금의 AWS 규모를 생각해보면 턱없이 부족한 IP이다. 추가적으로, 고객이 만약 같은 대역의 사설 IP를 On-premise로 기존에 운영하고 있었다면 그것 또한 큰 문제가 될 것이다.

그래서 AWS는 위와 같이, VPC라는 개념을 만들고 구현해 냈다. 위의 VPC A, B, C는 각각 독립적인 네트워크 이며 같은 IP 대역이지만, 각각 독립적인 데이터센터처럼 격리되어 있으므로 통신이 불가하다.(연동하는 방법도 존재한다. 물론)

이를 통해 위에서 언급한 문제(자원의 독립성, On-Premise 와의 연동, IP 자원 문제, 보안문제)가 모두 해결 가능해졌다.

사용자가 네트워크에 대한 온전한 통제권을 가질 수 있게 되었고(IP 대역, Private and Public 분리 등), Sunbet, Gateway, EC2등 모든 자원을 자유롭게 VPC에 배치할 수 있게 되었다. 

 

추후 설명하겠지만, VPC는 Regional한 자원이며 여러 Region에 걸쳐있을 수 없다. 즉, 하나의 VPC를 서울과 유럽에 걸쳐서 생성할 수 없다는 의미이다.

 

B)Subnet

서브넷은, VPC를 잘게 분리한 것을 의미한다. 아파트를 층과 호수로 분리한게 VPC라면, 한 호수 내부를 기능에 따라 여러 공간으로 분리한 것이 바로 Subnet이다.

단순하게 Subnet은 VPC에 주어진 IP대역을 잘라놓은 하위망이다. 예시로 VPC에 10.0.0.0/16 대역을 할당했다고 가정해 보겠다. 

(65,536개 IP)

그리고 나는 이 VPC를  Public, Private, DB 3개의 Subnet으로 구분하여 사용하고자 한다면 이렇게 Subnetting이 가능하다.(물론 현업에서 이렇게 큰 범위로 IP 대역을 잡아서 사용하기는 거의 불가능하고, 단순하게 서브네팅이 이렇다 라고 생각하자.)

다음과 같이 IP를 나눌 수 있다.

 

Public : 10.0.128.0/17( 10.0.128.0~ 10.0.255.255 -> 32,768개)

Private:  10.0.0.0/18 ( 10.0.0.0 ~ 10.0.63.255 -> 16384개)

DB : 10.0.64.0/18 ( 10.0.64.0 ~ 10.0.127.255 -> 16,384개)

C)Region And AZ

Region과 AZ는 너무 명확하므로, 그냥 AWS 설명을 가져오겠다.

 

AWS에는 리전이라는 개념이 있습니다. AWS가 전 세계에서 데이터 센터를 클러스터링하는 물리적 위치를 리전이라고 합니다. 논리적 데이터 센터의 각 그룹을 가용 영역이라고 합니다. 각 AWS 리전은 지리적 영역 내에서 격리되고 물리적으로 분리된 최소 3개의 AZ로 구성됩니다.  

 

AZ(가용 영역)는 AWS 리전의 중복 전력, 네트워킹 및 연결이 제공되는 하나 이상의 개별 데이터 센터로 구성됩니다. AZ를 사용하면 단일 데이터 센터를 사용하는 것보다 더 높은 가용성, 내결함성 및 확장성을 갖춘 프로덕션 애플리케이션과 데이터베이스를 운영할 수 있습니다.

 

 

여기서 중요한 점은 하나의 VPC는 하나의 Region에 속하지만, Region에는 여러개의 AZ가 존재하므로 VPC는 여러개의 AZ에 걸쳐서 자원 생성이 가능하다는 점이다.