본문 바로가기
사담

[해결] AWS 퍼블릭 IPv4 유료화: 프리티어인데 과금되었다면

by 푸드듥 2024. 2. 10.
반응형

2024년 2월 1일부터 AWS의 Public IPv4 주소 사용이 유료화되었다.

https://aws.amazon.com/ko/about-aws/whats-new/2024/02/aws-free-tier-750-hours-free-public-ipv4-addresses/

 

IPv4 주소가 고갈되면서 IPv6로의 이전을 장려하기 위해 취한 조치라는 것 같다.

 

공지 글을 읽어보면 프리티어(Free-tier) 사용자는 유료화에서 제외가 되는 모양이다.

단, 이는 EC2 인스턴스에 할당된 주소에만 적용된다.

"퍼블릭 IPv4 주소로 EC2 인스턴스를 시작하면 매달 750시간의 퍼블릭 IPv4 주소를 무료로 사용할 수 있습니다."

(매달 750시간이라는 건 한달 내내 써도 무료라는 뜻이다.)

 

그런데 이상하게도 내가 가진 프리티어 계정에서는 2월부터 과금이 되고 있었다.

검색해보니 해외에서도 이런 유저가 꽤 많은 모양이다.

프리티어인데 왜 과금이 되고 있는지, 어떻게 하면 이를 해결할 수 있는지 알아보자.

 

1. 일단 프리티어가 맞는가?

프리티어 플랜은 1년간만 유효하기 때문에, 계정 생성 후 1년이 넘었다면 과금이 되는 것이 정상이다.

그냥 돈을 내거나 IPv6로의 전환 등 다른 방법들을 찾아보자.

 

2. 어디서 비용이 청구 됐는지 확인하기

AWS 콘솔 > 결제 및 비용관리 > 청구서에 들어가면 아래처럼 청구 항목을 확인할 수 있다.

 

AWS 청구서

 

Virtual Private Cloud에서 돈이 나갔는데, 아래 두 항목에 주목해보자.

  • $0.00 per In-use public IPv4 address per hour for EC2 Free Tier --> 비용 청구 안됨
  • $0.005 per In-use public IPv4 address per hour --> 비용 청구됨

EC2가 아닌 무언가에서 Public IP를 사용하고 있다는 뜻이다.

 

 

Q. 저는 EC2만 쓰고 있는데요? (혹은 EC2도 안 쓰고 있는데요?)

필자도 위 사진의 계정 외에 EC2 인스턴스 하나만 만든 계정이 있는데,

얼마 전에 확인해보니 $0.2정도가 과금되었었다.

그런데 며칠 뒤에 다시 보니 $0.0으로 표시가 바뀌어 있었다.

이와 관련해서 AWS의 답변을 찾았는데, 이번 변화가 모든 계정에 적용되는데 시간이 걸리고 있어서 잠깐 잘못 표시되었을 수 있고, 2월 말에 실제 비용이 청구되기 전에는 모든 계정이 제대로 표시될 것이라고 한다.

그러니 본인이 여기에 해당한다면 좀 인내심을 갖고 기다려보자.


3. 무엇이 Public IPv4를 쓰고 있는지 찾기

AWS 콘솔 > VPC IP Address Manager (검색창에 address라고 치면 나옴) > (왼편 메뉴 중) 퍼블릭 IP 인사이트 > 퍼블릭 IP주소 섹션을 확인해보자.

* 만약 IPAM을 생성해야 한다고 하면 프리티어용으로 먼저 하나 만들어준다.

IP Address Manager

 

필자는 Public IP를 총 2개 사용 중이었다.

하나는 EC2이고, 나머지 하나는 Relational Database Service라고 되어 있다.

즉 RDS에 Public IPv4 주소가 할당이 되어 있다는 말이다.

(본인이 해놓고 왜 모르냐 싶겠지만 위 계정은 내가 PM으로 있는 프로젝트에 다른 개발자가 세팅해둔 것이다..그리고 개발자여도 실수로 할당했을 수 있다!)

 

럼 이제 결정을 해야 한다.

돈을 내고 RDS IP주소를 계속 쓸 것인가, 아니면 IP주소를 해제하고 과금을 피할 것인가?

 

위 프로젝트의 경우 RDS에 Public IP는 딱히 필요없어서, 이를 해제하기로 했다.

 

4. RDS에 할당된 Public IPv4 주소 사용 해제하기

AWS 콘솔 > RDS > (왼편 메뉴 중) 데이터베이스 > 목록에서 DB 인스턴스 선택 > 수정에 들어간다.

화면을 쭉 내려가다보면 '연결' 섹션이 있는데 섹션 하단의 '추가 구성' 부분을 펼쳐보자.

여기서 "퍼블릭 액세스 불가능"을 선택하고 저장하면 된다.

 

퍼블릭 액세스 불가능을 선택하면 VPC 외부의 EC2 인스턴스 및 디바이스는 DB에 연결할 수 없으니, 본인 프로젝트에 영향이 없는지 잘 파악하고 선택하자.

 

이제 Public IP주소가 해제됐다.

그런데..

잘 해제됐나 확인하려고 VPC IP Address Manager 에 다시 들어갔는데

사용 중인 IP가 여전히 2개라고 표시되고 있었다.

 

왜일까?

 

이것도 그냥 반영이 느려서 그렇다.

필자의 경우 24시간 정도 지나서야 1로 바뀌었으니, 좀 기다려보기 바란다.

 

Q. 불안한데 잘 해제된건지 미리 알 수 없을까요?

AWS 콘솔 상단에 있는 네모[>-] 아이콘을 클릭하면 AWS cloudshell을 열 수 있다.

여기서 다음 명령으로 RDS에 설정된 IP 주소를 확인할 수 있다.

nslookup [RDS 엔드포인트]

 

RDS의 퍼블릭 액세스를 비활성화하면, 기존에 할당된 Public IP 주소는 사라지고 Private IP 주소로 변경된다.

따라서 위 명령어를 입력했을 때 Private IP 주소가 출력된다면 Public IP 주소가 잘 사라진 것이다.

 

* 만약 command not found 같은게 뜬다면 설치가 안 되어서 그러니,

sudo yum install -y bind-utils를 먼저 쳐준다.

 

Q. 명령어에 입력할 [RDS 엔드포인트]는 어떻게 찾아요?

DB 인스턴스 클릭 > "연결 및 보안" 탭 > "엔드포이트 및 포트"에서 찾을 수 있다.

대충 my-rds.abcabc.ap-northeast-2.rds.amazonaws.com 이런 느낌의 엔드포인트가 적혀있을 것이다.

셸에 "nslookup my-rds.abcabc.ap-northeast-2.rds.amazonaws.com" 라고 치면 된다.

 

그럼 아래처럼 출력이 될 것이다.

여기서 제일 아래에 표시되는 주소를 확인하면 된다.

Server: x.x.x.x
Address: x.x.x.x#53
 
Non-authoritative answer:
Name: my-rds.abcabc.ap-northeast-2.rds.amazonaws.com
Address: 172.31.0.0 ←이거

 

5. 기타 IPv4 - 로드밸런서

VPC IP Address Manager 에서 아래와 같이 로드밸런서가 뜨는 분도 있을 것이다.

IP Address Manager - Load balancer

 

위는 필자의 다른 프로젝트인데, 사진에는 2개만 있지만 처음에는 4개가 떴다.

프로젝트에 SSL 적용을 위해 로드밸런서를 설정하면서 가용영역을 4개 선택했었는데, 여기서 선택한 각 영역에 IP가 자동할당 되면서 4개의 퍼블릭 IP가 사용되고 있던 것이었다.

 

가용영역은 최소 2개만 설정해줘도 되기 때문에 나머지 2개는 해제해 주기로 했다.

EC2 > 네트워크 인터페이스로 들어가 2개의 인터페이스에 대해 작업 > 주소연결 해제를 선택해준다.

이때! EC2 인스턴스가 사용하는 가용영역은 해제하면 접속이 막혀버리므로 해제하면 안 된다.

EC2 > 인스턴스 목록에 '가용영역' 칼럼을 확인해서 해당하는 인터페이스는 남겨준다.

 

그리고 이렇게 IP가 자동할당되는 일이 없도록 설정도 바꿔줄 것이다.

VPC > 서브넷으로 들어가서 서브넷을 선택한 뒤 작업 > 서브넷 설정 편집을 누른다.

자동 할당 IP 설정 탭에서> '퍼블릭 IPv4 주소 자동 할당 활성화'를 선택 해제 해준다.

 

이렇게 불필요한 비용을 없앴다!

AWS 알못이라 찾기 정말 어려웠는데 그래도 해결하니 뿌듯하다.

나같은 누군가에게 도움이 되길~!

반응형

댓글