프로젝트를 진행하면서 어느정도 개발이 끝나고 서비스 배포 준비를 했다. 배포 서비스는 대중적인 AWS를 사용했고, EC2와 RDS를 사용하기로 했다.
AWS를 선택한 이유는 아래와 같다.
서비스를 AWS로 배포하고 3일 뒤 서버를 재부팅하기 위해 AWS 홈페이지에 들어갔는데 충격적인 화면을 봤다.
AWS에서 비용이 발생하고 있던 것이다.
관려 자료를 찾아보니 2024년 2월 1일부터 AWS의 Public IPv4 주소 사용이 유료화되었다.
IPv4 주소가 고갈되면서 IPv6로의 이전을 장려하기 위해 취한 조치라는 것 같다.
공지 글을 읽어보면 프리티어(Free-tier) 사용자는 유료화에서 제외가 되는 모양이다.
단, 이는 EC2 인스턴스에 할당된 주소에만 적용된다.
"퍼블릭 IPv4 주소로 EC2 인스턴스를 시작하면 매달 750시간의 퍼블릭 IPv4 주소를 무료로 사용할 수 있습니다."
(매달 750시간이라는 건 한달 내내 써도 무료라는 뜻이다.)
그런데 이상하게도 내가 가진 프리티어 계정에서는 과금이 되고 있었다.
프리티어인데 왜 과금이 되고 있는지, 어떻게 하면 이를 해결할 수 있는지 알아보자.
어디서 비용이 청구된 것인지 확인하기
AWS 콘솔 > 결제 및 비용관리 > 청구서에 들어가면 아래처럼 청구 항목을 확인할 수 있다.
Virtual Private Cloud에서 돈이 나갔는데, 아래 두 항목에 주목해보자.
EC2가 아닌 무언가에서 Public IP를 사용하고 있다는 뜻이다.
프리티어인데 Public IP에서 비용이 발생한 사용자는 대부분 RDS에서 비용이 발생했을 것이다.
프리티어는 RDS의 퍼블릭 액세스 할당 -> Public Ip는 무료로 제공하지 않는다.
해결 방법 - RDS에 할당된 Public IPv4 주소 사용 해지
해결 방법은 간단하다.
AWS 콘솔 > RDS > (왼편 메뉴 중) 데이터베이스 > 목록에서 DB 인스턴스 선택 > 수정
에 들어간다.
화면을 쭉 내려가다보면 '연결' 섹션이 있는데 섹션 하단의 '추가 구성' 부분을 펼쳐보자.
여기서 "퍼블릭 액세스 불가능"을 선택하고 저장하면 된다.
퍼블릭 액세스 불가능을 선택하면 VPC 외부의 EC2 인스턴스 및 디바이스는 DB에 연결할 수 없으니, 본인 프로젝트에 영향이 없는지 잘 파악하고 선택하자.
나처럼 외부 프로그램으로 DB에 연결해 사용하는 경우라면 RDS 퍼블릭 액세스 불가능 설정 시 불편함을 느낄 것이다.
다행히도
public 엑세스 없이 RDS를 외부에서 연결하는 방법
이 존재한다. 자세한 방법은 아래 블로그를 확인해보자!
public 액세스 없이 RDS를 외부에서 연결하는 방법
출처
https://aws.amazon.com/ko/about-aws/whats-new/2024/02/aws-free-tier-750-hours-free-public-ipv4-addresses/
https://inchan.dev/posts/202403051335/