[AWS] 프리티어 요금 결제되었을 때 - 청구서 부검하기
분명 프리티어 요금제인데 결제가…
저는 두달 전 AWS 공부를 위해서 AWS에 가입하고 프리티어 요금제를 가입하였습니다. 용량이 작고 성능이 제한적이긴 하지만, 1년동안 무료로 사용할 수 있기 때문에 공부를 하기에는 1년이면 뽕을 뽑고도 남았죠.
근데 오늘 아침에, 제 통장에서 AWS가 돈을 출금해 갔습니다…
출금을 보자마자 후다닥 책상에 앉아서 AWS에 들어갔는데, 다음과 같은 청구서를 확인 할 수 있었습니다.
저는 간단한 웹사이트를 만들기 위해서 EC2와 RDS를 사용하고 있었는데 해당 항목들에서 비용이 발생 하였습니다. 전 분명히 프리티어 요금제를 사용중이라 1년간 무료일텐데, 왜 이런일이 발생했을까요?
돈을 지출하게 되어 너무나도 마음이 아프지만 다시는 이런일이 없도록 다짐하고 제 마음을 위로할겸, 제 청구서를 부검해보록 하겠습니다.
프리티어 요금제는 완전한 무료가 아니다
저는 얼마전에 기존에 책을 보고 따라만들던 웹사이트와 별개로 제가 스스로 프로젝트를 하나 해보려고 EC2와 RDS의 인스턴스를 하나씩 늘렸습니다. EC2와 RDS 둘 다 두개의 인스턴스를 사용하고 있었던 것이죠.
프리티어 요금제니까, 단순하게 1년동안은 무료인줄 알았습니다.
하지만 프리티어 요금제는 지정된 한도내에서만 무료로 서비스를 제공합니다
위 링크에서는 프리티어 요금제의 서비스별 사용량을 확인 할 수 있습니다.
그럼, 제 청구서를 부검해보며 저는 어떤 실수를 했길래 요금을 지불했는지 알아보겠습니다.
EC2와 RDS
EC2의 경우, 750시간은 free tier가 정상적으로 적용되었지만, 추가로 403시간의 비용이 청구 되었습니다. EC2의 인스턴스에서 사용한 EBS에서는 30GB의 용량을 추가로 사용한 비용이 청구 되었습니다. ElasticIP에서도 동일하게 요금이 청구 되었지만, 이는 뒤에서 따로 다루도록 하겠습니다.
RDS를 한번 볼까요? RDS의 경우, 750시간은 프리티어로 처리되었고, 731시간이 청구되었네요. 마찬가지로 RDS에서 사용하는 Storage에서도 기본 프리티어 사용량인 20기가는 프리티어로 처리되었지만, 나머지는 요금이 청구되었습니다.
왜 프리티어인데도 요금이 발생 했을까요?
위 사진을 보면 제가 사용한 EC2와 RDS의 경우, 월당 750시간만큼이 무료로 제공됩니다. 물론 이 시간은 인스턴스 하나당 시간으로 적용되므로, 만약 저처럼 2개의 인스턴스를 사용하면 개당 375시간으로 적용되기 때문에, 보름정도의 시간이 지나고 나면, 남은 보름에 대해서는 요금을 지불해야 합니다.
마찬가지로, EBS와 Storage도 프리티어 당 정해진 시간이 존재하고, 이 둘은 EC2나 RDS의 인스턴스를 만들면 함께 생성되기 때문에, 이 둘도 동일하게 프리티어 이상의 사용 요금을 지불해야 했죠.
저의 경우는 이 사실을 모르고 인스턴스를 2개씩 만들었기 때문에, 프리티어 제공 시간을 초과한 보름 동안의 사용비용이 청구된 것 입니다.
Elastic IP
EC2를 이용해 웹서버를 호스팅 하게 되면, EC2가 항상 같은 ip주소로 동작하게 하기 위해서 고정 아이피를 발급 받고 이를 EC2에 연결하여 사용하게 되는데요. 이를 연결하지 않는경우, 또는 연결된 상태일지라도 EC2가 멈춰 있는 상태라면 요금이 부과됩니다.
위 사진을 보면 첫번째 아이피는 EC2에 할당이 되어있지만, 두번째 아이피는 할당이 되어있지 않습니다. 이 경우에 요금이 부과됩니다. 물론 EC2에 연결되어 있는 상태더라도, EC2인스턴스가 멈춘 상태라면 요금이 부과됩니다.
RDS 인스턴스가 유료 옵션이 선택된 인스턴스로 만들어질 경우
이 항목은 이번에 제가 실수하지는 않은 항목이지만, 이 경우에도 비용이 발생합니다.
RDS 생성 시 멀티 AZ 옵션을 사용하도록 체크하면, 별도의 추가 비용이 발생합니다. 이 옵션은 데이터베이스를 만들때 기본으로 YES로 설정되어 있기 때문에 이 기능이 별도로 필요하시지 않고, 온전히 무료로 프리티어로 사용하고 싶다면 해당 옵션을 꼭 꺼주셔야 합니다.
위의 방법들만 꼼꼼히 체크한다면, 안전하게 프리티어 요금제를 무료로 사용할 수 있습니다. 하지만 더 안전한 방법은, 내가 생각한 요금보다 큰 요금이 발생했을 때, 최대한 빠르게 알아채는 것입니다. 사람은 누구나 실수를 하니까요.
유료옵션을 실수로 설정했을 때는 물론이고 실수로 트래픽이 과도하게 발생하는 코드를 짰거나, 해킹을 당했을때도 이를 바로 알 수 있다면 즉시 인스턴스를 종료하여 요금 폭탄을 피할 수 있을 것입니다. 저도 만약 알림을 설정해놓았다면, 제가 유료옵션을 실수로 선택했다는 것을 훨씬 빠르게 알아채고 대응하여 요금을 지불할 일이 없었겠죠. 그럼 이번에는 AWS의 요금 알림을 설정하는 법에 대해 알아보겠습니다.
가장 좋은 것은 미리 알아 채는 것
AWS는 이러한 일들을 사용자가 겪지 않도록 하기 위해, Budget, 예산을 설정할 수 있습니다. 서비스의 예산을 정해 놓음으로써, 해당 예산의 일정 퍼센테이지 이상 금액이 발생하면, 바로 사용자에게 알림이 가는것이죠.
AWS 오른쪽 위에 아이디를 눌러 결제 대시보드로 이동합시다.
왼쪽에 보면 여러가지 결제 관련 메뉴들이 있습니다. 여기서 Budget으로 이동해 줍시다.
이 곳에서는 예산을 작성하고, 해당 예산의 일정 퍼센테이지 이상의 요금이 발생하면 메일로 알림을 받을 수 있게 됩니다.
오른쪽 위에 예산 작성 을 눌러 예산을 작성해봅시다.
예산을 다양한 옵션으로 작성할 수 있습니다. 저는 프리티어 요금제를 완전히 무료로 사용하기 위해서 1달러만 비용이 발생해도 알림이 오도록 하기위해, 비용 예산을 선택하겠습니다.
예산 이름은 FreeTier로 하고, 예산 금액을 1달러로 하겠습니다. Budget scope는 모든 AWS 서비스를 대상으로 해서, 모든 서비스의 총합 예산을 1달러로 설정합니다.
이제 알림을 설정하는데, 임계값을 절대값으로 하고 0.1달러의 비용만 발생해도 알림이 오도록 해주겠습니다.이메일 수신자에는 제 이메일을 입력하는데, 쉼표로 구분해주면 알림을 여러개의 이메일로 오도록 할 수도 있습니다.
이제 예산을 작성을 완료했으므로, 제 AWS에서 만약 0.1달러의 요금이라도 발생하게되면 저는 이메일로 이를 알고 대응 할 수 있게 되었습니다.
이미 지불한 비용은…?
실수로 발생한 비용이라 수업료로 생각하자는 마음이 들면서도 실수로 결제된 금액이 너무 아까워 인터넷을 찾아보니, AWS는 개인계정에 한해서 1회정도는 실수에 대한 요금을 환불해준다고 합니다.
게다가 학생의 경우는 조금 더 너그럽게 실수를 처리해준다고 하는데, 인터넷 검색을 하다가 어떤 분께서는 거의 천만원이 넘는 비용을 무료로 처리해준 케이스도 있었습니다. 정말 미국 대기업답게 시원 시원하네요…
다만 기업계정의 경우 얄짤 없다고 하니, 직장에서 AWS를 사용한다면 조심 또 조심 해야 할 것 같습니다.
그래서 잠시 고민에 잠겨 이번에는 수업료로 가볍게 지불하고, 혹여나 나중에 해킹을 당하거나, 코드 실수를 해서 한 천만원 이렇게 나왔을 때 환불찬스를 써야하나… 하는 생각이 잠깐 들었지만, 이번에 환불 받고 앞으로는 철저히 AWS 관리를 해서 이런 일이 발생하지 않도록 노력 하기로 했습니다.
AWS 지원센터로 가서 환불요청을 하면 되는데요, 중요한점은 문의하기전 반드시 해당 실수가 일어난 부분들을 정상으로 돌려놓은 뒤에 문의해야 합니다.
저는 다음과 같이 요청했는데요, 학생임을 인증하기 위해서 학생증까지 첨부하였습니다… 부끄러운 실력으로 영어로 한자 한자 적었는데, 나중에 알고보니 한국어로 작성해도 상관없다고 합니다;
문의를 할 때는 제목은 refund request로 간결하게 적고, 카테고리는
Billing, Charge Inquiry로 설정하고 문의를 남기면 됩니다.
이것으로 아마존의 넓은 아량을 믿고 제발 환불이 되기를 바라면서 제 청구서 부검을 마치고, 아직 승인이 나지 않았지만 만약 환불이 된다면 게시물에 추가하도록 하겠습니다.
댓글남기기