본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

AWS Ambassador

AWS VPC의 네트워크 주소 사용량 CloudWatch Metric 추가 활용 방안

2023.02.01

1. 개요

AWS VPC는 생성할 때 사용이 예상되는 IP 개수에 맞춰 CIDR 블록을 지정해야 하며, VPC를 생성한 이후에 IP 가 부족하게 되면 CIDR 블록을 추가하여 사용할 수 있는 IP 개수를 증가할 수 있습니다.이러한 VPC의 Subnet CIDR 블록의 앞쪽 4개 IP 주소와 마지막 IP 주소는 AWS에서 예약된 IP로 사용자가 해당 IP를 사용하여 자원을 생성하는 것은 불가능합니다.

예를 들어, 10.0.0.0/27 대역의 VPC를 생성하면 아래와 같이 예약된 IP 주소가 할당됩니다.
● Network address (10.0.0.0)
● Default gateway (10.0.0.1)
● AWS reserve (10.0.0.2, 단 VPC 기본 CIDR 이 10.0.0.0/24 인 경우 2번째 IP인 10.0.0.2 가 Amazon의 DNS IP로 사용)
● AWS reserve (10.0.0.3)
● Broadcast address (10.0.0.31)

사용자는 예약된 IP 주소와 이미 생성되어 있는 자원에 할당된 IP 주소를 제외한 나머지 IP 주소 범위 내에서 신규 자원을 생성하게 되는데, 여유 IP 가 부족한 경우 신규 자원 생성이 불가능합니다. 자원 별로 필요한 최소 IP 개수가 상이하여, 실제로 자원을 만들어보기 전까지 사용자가 VPC의 IP 개수가 부족한지를 알기 어려웠습니다.

이에 따라 최근 AWS에서 VPC 네트워크 주소 사용량(NAU: Network Address Usage)에 대한 CloudWatch Metric 을 추가하여,
이번 포스팅에서는 이를 활용하여 IP 주소를 모니터링하고 Alarm 을 생성하는 등의 활용 방안에 대하여 살펴보겠습니다.

2. 서비스 소개

2.1 네트워크 주소 사용량(NAU: Network Address Usage)
NAU(네트워크 주소 사용량)는 VPC의 크기를 계획하고 모니터링하는 데 도움이 되도록 가상 네트워크의 자원에 적용되는 Metric으로, 관리형 접두사 목록의 IP 주소 및 네트워크 인터페이스와 CIDR로 구성됩니다. 네트워크 주소 사용량 : 단일 VPC에서 보유할 수 있는 최대 NAU 단위 수를 의미합니다.
Peering 된 네트워크 주소 사용량 : VPC와 peering 된 모든 VPC에서 보유할 있는 최대 NAU 단위 수의 합계를 의미하며, 상이한 Region에서 peering 되는 VPC는 이 제한에 포함되지 않습니다. 각 VPC는 ​​기본적으로 최대 64,000 NAU 단위를 가질 수 있으며, 이 할당량을 256,000으로 늘리도록 요청할 수 있습니다. VPC가 동일한 Region의 다른 VPC 와 peering 되는 경우 결합된 두 VPC는 ​​기본적으로 최대 128,000 NAU 단위를 가질 수 있고 이 할당량을 512,000으로 늘리도록 요청할 수 있습니다.

기본적으로 NSU는 다음과 같이 계산됩니다.

2.2 CloudWatch Metric
● AWS/EC2 > NetworkAddressUsage

● AWS/Usage > NetworkAddressUsage

3. 설정 및 활용

3.1 NAU 구성 활성화
● NAU 지표는 기본적으로 AWS VPC에서 비활성화되어 있으며, 네트워크 주소 사용량을 모니터링하려는 VPC 단위로 개별적으로 활성화하는 작업이 필요합니다. (VPC > Edit VPC Settings)

3.2 CloudWatch Metric 확인

수집 주기는 24시간이기 때문에 24시간 이상의 기간을 검색 조건으로 설정해야 하며, 위 화면에서 ResourceCount 수치가 7 인 이유는 해당 VPC에 ENI(Elastic Network Interface) 가 EC2 용도로 하나, Transit Gateway Attachment 용도로 하나 생성되어 있기 때문입니다. 앞서 살펴봤던 NAU 계산을 위한 표의 units에 따라 아래와 같이 계산되었습니다.

3.3 CloudWatch Alarm 설정
아래 순서로 CloudWatch Alarm 을 설정하고, 메일로 해당 Alarm 내역을 수신할 수 있도록 SNS(Simple Notification Service)를 추가합니다.

1) Alarm 을 생성할 CloudWatch Metric 선택
수집 주기가 24시간이므로, 1d 이상 선택해야 현재 수집된 수치가 graph에 표시됩니다. 본 TEST에서는 앞서 NAU 수치를 7로 확인했던 VPC의 NetworkAddressUsage > ResourceCount를 선택하겠습니다.

2) CloudWatch Metric 및 Alarm 발생 조건 상세 설정
본 TEST에서는 기존 7 인 NAU 수치를 기준으로, EC2를 한 대 추가 생성하여 NAU 가 8로 증가하는 경우 Alarm 을 발생하도록 설정해 보았습니다.

3) Alarm 발생 시 해당 내용을 어디로 송신할지 설정
본 TEST에서는 이미 생성한 nau-alarm-test라는 SNS topic으로 In alarm state인 경우 메일을 송신하도록 설정하였습니다.

4) Alarm 이름과 description 을 설정합니다.

3.4 CloudWatch Alarm 확인
앞서 설정한 NAU 임계치를 넘는 경우, 아래와 같이 CloudWatch Alarm의 State 가 In alarm으로 변경되고, Alarm 생성 시 설정한 SNS의 메일 주소로 상세 내역이 수신됩니다.

4. 결론

VPC에 대한 NAU 할당량이 소진되는 경우 신규 EC2 인스턴스를 시작하거나 신규 자원(Network Load Balancer, Transit Gateway Attachment 또는 NAT Gateway 등) 을 생성할 수 없기 때문에 NAU에 대한 모니터링이 필요합니다. 사용자는 NAU에 대한 모니터링과 함께 CloudWatch Alarm 을 설정하여 IP 주소가 부족해지기 전에 이를 감지하고 불필요한 자원을 정리하거나 CIDR 을 추가하는 등의 조치를 취할 수 있으며, VPC 배포 확장을 계획하고 하이퍼스케일 운영을 용이하게 하는 데 도움이 될 수 있습니다. 수집 주기는 24시간으로 CloudWatch만으로는 실시간으로 IP 사용량 모니터링을 하기는 어렵기 때문에 이를 감안하여 계획적으로 NAU를 관리하는 것이 중요하며, NAU 모니터링 추가에 대한 비용 발생은 없으므로 사용자가 필요에 따라 자유롭게 이를 활용하는 것이 좋겠습니다.

5. 참고

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/network-address-usage.html
https://aws.amazon.com/ko/about-aws/whats-new/2022/10/amazon-virtual-private-cloud-vpc-now-supports-new-cloudwatch-metrics-measure-track-network-address-usage/

챗봇과 대화를 할 수 있어요