S3 + EC2 + RDS를 이용한 프로젝트의 구현 이후 PM2를 적용하여 24시간 중단되지 않는 서버 환경을 구축하였습니다.
저는 AWS Free Tier를 사용 중이기 때문에, 일정 사용량까지는 과금이 발생하지 않아야 합니다. 그런데 사용량을 초과하지 않았음에도, 상당한 수준의 과금이 발생하고 있었습니다.
이번 글에서는 Free Tier에서 왜 과금이 발생하는지 그 원인을 짚어보고, 주의해야할 점들을 정리하려 합니다.
AWS에서는 신규 계정에 한하여 1년간 Free Tier 서비스를 제공해주고 있습니다.
Free Tier란, AWS의 특정 서비스에 한하여 제한된 성능과 사용량을 무료로 사용할 수 있게 해주는 것입니다. AWS Free Tier 참조
문제의 원인인 EC2 인스턴스의 경우 Free Tier에서는 가장 저성능 인스턴스인 t2.micro에서 1달 750시간의 무료사용량을 보장해주고 있습니다. (1개월이 곧 750시간이니 과금이 발생하지 않음)
그런데 겉보기와 달리 막상 서비스를 사용해보면 Free Tier에서도 요금이 발생하는 경우가 흔하게 발생하곤 합니다. 그 원인은 대략 다음과 같습니다.
인스턴스가 2개 이상인 경우, 각각의 가동시간이 따로 계산되기 때문에 750시간을 초과할 수가 있습니다.
Public IPv4를 2개 이상 할당받아 사용중인 경우.
첫 번째 원인은 자신이 생성한 인스턴스를 제대로 관리해주기만 해도 예방할 수 있고, 문제가 생겨도 해결이 쉽습니다.
두 번째 원인은 과금의 원인을 찾던 도중 청구서를 보고 내역의 이상함을 느끼고, 더 조사를 해보던 중 발견하게 된 것입니다.
청구서에 의하면 Public IPv4의 사용 시간은 무려 1929시간. 청구서는 1달 주기로 출력되고, 1달은 총 750시간이기 때문에 1900시간은 물리적으로 발생할 수가 없는 사용시간입니다.
제 EC2 인스턴스는 하나이기에 첫 번째 원인은 해당되지 않습니다. 그렇다면..
2024년 02월 01일, AWS는 기존에 무료로 제공되던 Public IPv4의 유료화를 선언했습니다.
다만 Free Tier 서비스의 이용자들은 1달 750시간의 무료 사용량을 제공해주지만, 2개 이상의 Public IPv4를 할당받아 사용 중일 경우, EC2 인스턴스에 할당된 Public IPv4를 제외한 것들은 모두 사용 시간에 따라 요금이 발생하게 됩니다.
Amazon VPC IP Address Manager를 통해 제 계정의 Public IPv4 할당 상황을 살펴보니 무려 3개의 Public IPv4를 사용 중이었다는 사실을 깨닫게 되었습니다.
무중단 서버 환경 테스트를 위해 1달 이상 AWS 서비스를 가동 중이었으니 1900시간의 말도 안되는 사용량이 발생하는 것도 이상한 일이 아니었던 것입니다.
내역을 살펴보니 EC2 인스턴스를 제외한 Public IPv4들은 데이터베이스 배포를 위해서 생성한 RDS 인스턴스에서 하나, HTTPS 도입 시도 당시에 생성했던 Application Load Balancer에서 하나를 사용 중이었습니다.
RDS 인스턴스의 경우 EC2와 같은 지역에서 생성되어있기 때문에 Public IPv4를 통한 퍼블릭 엑세스 없이도 접근이 가능했습니다.
Application Load Balancer의 경우 HTTPS 도입이 실패로 돌아갔기 때문에 프로젝트 배포에 사용 중이 아니었습니다.
결국, 필요하지 않고 사용하지 않는 Public IPv4를 제대로 해제하지 않고 할당받고 있던 탓에 2달 동안 총 15달러의 비싼 교육비(...)를 지불해야 했습니다.
AWS는 결코 사용자에게 친절한 서비스가 아닙니다. 꼼꼼한 설명은 커녕 사용자가 뭘 찾아보려고 해도 찾아지지도 않는 경우가 많습니다. AWS를 사용하겠다고 한다면 다른 것은 몰라도 서비스 사용 전에 인터넷에서 과금 관련된 주의점들은 철저하게 찾아봐야 할 것입니다.