본문 바로가기

AWS

VPC IP주소 범위를 나누는 단위와 AWS 서브넷 설정 CIDR 블록

vpc의 ip주소 범위를 나누는 단위다.

ip주소를 나누는 대표적인 이유는 2가지.

  • 역할분리: 외부에 공개하는 리소스 여부를 구별한다.
    예를 들어, load balancer는 외부공개가 목적이므로, 외부에서 접근할 수 있어야하는 리소스다.
    반대로 DB서버는 VPC내부 서버에서의 사용을 전제로 하므로 외부에서 공개되어는 안 된다.
    이러한 규칙을 리소스마다 개별적으로 할당하지 않고 리소스가 포함된 그룹 전체에 대해 할당하면 설정 누락 등을 피할 수 있다.
    여기서 말하는 그룹이 서브넷이라고 할 수 있고, 서브넷 안에 속해있는 리소스들에게 외부공개냐, 내부에서만 사용할 수 있냐를 정할 수 있는 것이다. ex) public subnet, private subnet
  • 기기분리: AWS 안에서의 물리적인 이중화(다중화)를 수행한다.
    (이중화(다중화)란, 하나가 아닌 두개 이상을 만드는 것을 뜻하는 것 같다.
    내결함성(fault tolerance)를 높이기 위해 기기를 분리한다.
    내결함성이란 하드웨거 고장 등 예측할 수 없는 사태가 발생했을 때 시스템 자체를 사용하지 못하게 되는 것을 방지하는 능력이다
    클라우드라 하더라도 최종적으로는 어딘가 위치한 물리적인 기기상에서 작동한다.
    예를 들어 서브넷이 여럿 존재하더라도 그 서브넷들이 같은 기기에 대한 것이라면 기기에 고장이 발생했을 때 동시에 서브넷 안의 리소스를 사용할 수 없게 된다.
    VPC에는 가용 영역(availability zone: 각 리전 안의 여러 독립된 위치)이라는 개념이 존재한다.
    가용영역은 흔히 말하는 데이터센터이다.
    이 가용 영역이 위치한 데이터센터는 같은 지역 혹은 도시라 하더라도 멀리 떨어져 있다.
    가용 영역이 물리적으로 떨어져 있는 이유는, 하나의
    가용 영역이 각종 재해, 정전, 테러, 화재 등 다양한 이유로 작동불능이 되더라도 다른 가용 영역에서 서비스를 재개할 수 있다.
    로드밸러서인 ELB(Elastic Load Balancing)는 같은 리전 안에 여러 가용 영역에 걸쳐 있는 EC2 트래픽을 분배해줄 수 있다. 이렇게 하면 가용 영역 하나가 작동불능이 되더라도 무중단 서비스를 제공할 수 있다.
    가용 영역이 달면 도릭되었음을 보장할 수 있으므로, 가용 영역별로 서브넷을 제공하면 여러 서브넷을 동시에 잉요하지 못하는 가능성을 낮출 수 있다.

AWS subnet 설정

vpc를 설정했을때, IPv4 CIDR 블록을 10.0.0.0/16으로 설정하면

subnet설정은 10.0.0.0/16의, 16이하로만 가능하다. 15는 불가능하다.

vpc도 subnet도 10.0.0.0/16으로 하면, 그 vpc는 하나의 subnet밖에 가질수 없다.

subnet이 10.0.0.0/17으로 하나 만들면,

11111111.11111111.10000000.00000000이기 때문에 subnet은 2개 밖에 가질수 없다. 이 경우에는 이미 만들어진 10.0.0.0/17와 10.0.128.0/17 이 두 개의 subnet 밖에 가질 수 없다.

10.0.0.0/17 서브넷의 범위는 10.0.0.0/17~10.127.255/17

10.0.128.0/17 서브넷의 범위는 10.0.128.0/127~10.0.255/255/17까지다.

기본적으로 서브넷의 리소스 수는 aws가 예약한 5개를 뺀 값이 된다.

예약된 ip주소는 아래와 같다.

  • 10.0.0.0/17: 네트워크 주소
  • 10.0.0.1/17: AWS에서 VPC 라우터용으로 예약한 주소
  • 10.0.0.2/17: AWS에서 예약한 주소. DNS 서버의 IP주소는 기본 VPC 네트워크 범위에 2를 더한 주소다. CIDR 블록이 여러 개인 VPC인 경우, DNS서버의 IP주소가 기본 CIDR에 위치한다.
    또한 각 서브넷 범위의 기본에 2를 더한 주소를 VPC의 모든 CIDR 블록에 예약한다.
  • 10.0.0.3/17: AWS에서 앞으로 사용하려고 예약한 주소
  • 10.0.0.255/17: 네틍눠크 브로드 캐스트 주소. VPC에서는 브로드캐스트를 지원하지 않으므로 이 주소를 예약한다.

3번째와 4번째가 이해가 잘안가지만, 일단 위의 주소들은 예약이 되어 있다.

그러므로, 서브넷을 설정할땐 사용할 서브넷수와 리소스 수를 고려해서 설정하는게 좋다.

현재 내가 자주 사용하는 서브넷은 10.0.0.0/20으로, 처음 이렇게 설정하면 16개의 서브넷과

서브넷 하나당 4091개(예약된 5개의 ip주소를 뺀 값)의 리소스를 사용할 수 있다.

Reference

VPC의 서브넷

AWS로 시작하는 인프라 구축의 정석

'AWS' 카테고리의 다른 글

AWS AssumeRole, PassRole  (0) 2023.02.23
AWS cil 사용해서 퍼블릭 키를 확인하는 방법  (0) 2023.02.09