이상학의 개발블로그

[AWS/아마존 웹서비스] 말도 안 되는 과금의 추억. 요금 폭탄 본문

Cloud Computing

[AWS/아마존 웹서비스] 말도 안 되는 과금의 추억. 요금 폭탄

학학이 2016. 5. 23. 00:39


2015 AWS Summit, 2015 Awesome day, AWS를 이용한 서버 인프라 구성. 작년 T 아카데미를 통해 AWS를 알게되어 '셀폰'의 API 서버를 AWS로 구성했기에 AWS는 어느 정도 쓴다고 생각했다. 

이번 졸업 프로젝트도 AWS에서 서버 인프라를 구성하기로 계획했고, 1년의 프리티어를 다시 이용하기 위해 새로운 계정을 사용했다.( 잘 안쓰던 Daum 메일 사용 )


그런데.. 해당 메일을 잘 안쓰기 때문에 오랜만에 들어갔는데..

뭐래는 거니 아마존아... 번역을 돌리니 

뭐 잘못된 사용으로 $903.76이 나왔다.. 확인해라 이런 내용... 

이 메일도 3일전에 왔던거..!!



깜짝 놀라 아마존에 들어가보니........

??????

눈 앞이 깜깜해졌다.... 약 $9000... 처음엔  $500..$900..$8000 메일이 3번 왔는데 계속해서 요금은 늘어나고 있었다.. 

1000만원이 넘는 금액.... 내 통장 잔고에 저런 돈이 있었던 적이 있었던가? 

아직 학생인데... 신용 불량자가 되는건가?,,,  AWS 가 좋다고 그렇게 홍보를 했는데 나는 이제 빚쟁이가 되는건가... 

뭔가 잘못 나왔겠지 생각했다.



상세 내역을 보니 처참했다.. g2.xlarge windows spot intance가 각 리전마다 돌고 있어 엄청난 금액이 청구되고 있었다..



엄청난 수의 Spot Instance 들....

이게 뭡니까 AWS느님들 ㅠㅠ 전 이런거 사용한 적 없어요..ㅠㅠㅠ



사실  AWS는 나에게 메일을 3번씩이나 보냈다. 그런데 메일을 확인하지 않아 내가 이 사실을 몰랐다..

정말 1000만원이라는 금액 때문에 머릿속이 하얘졌다. 

다시 정신을 차리고 AWS Support Center로 들어갔다.



짧은 영어로 AWS 고객센터에 문의를 했다.

웹으로 문의를 하고도 너무 불안해서 AWS에 전화까지 했다.

10분 넘게 네이티브의 유창한 영어를 들었다. 간간이 '내가 최선을 다하겠다' 뭐 이런 말만 들렸다.

영어의 중요성을 다시 느꼈다. 'yes, yes'만 대답한거 같다. 


그 후로도 고객센터에 계속해서 영어로 문의를 했다.


사건 발생 후 수 많은 메일을 주고 받았는데 대충 이런 내용이다.

  1. "당신의 AWS 계정이 허가되지 않은 접근으로 이용되고있다"
  2. "우리가 제시한 해결책을 모두 수행한 뒤 다시 연락해라. 그리고 너무 걱정하지 말아라 좋은 방향으로 해결될 것이다" (AWS 멋져요..)
    1. AWS 비밀번호를 변경해라
    2. Root 키를 삭제해라
    3. IAM 키를 모두 삭제해라 ( 그룹, 유저 모두 )
    4. Spot instance를 모두 취소해라 ( 여기서 요금이 나가는 중)
  3. "모든 해결책을 수행한 뒤 다시 메일을 보내라"
  4. AWS 에선 "걱정말고 좀 기다려봐라. 24~36 시간안에 너의 billing은 해결될 것이다"

마지막 해결될 것이다라는 메일을 5월 10일에 받았는데 17일까지 연락이 없었다.

진짜 해결해 주는거니 AWS야... 나 학교 휴학하고 빚 갚으러 가야하니...


그렇게 불안한 마음으로 2016 05.17 AWS Seoul Summit에 갔다. 그래도 AWS는 사랑이기 때문에.. 역시나 점심은 맛있다. 호텔식 도시락 !!

Summit  중간에 Hands on Labs에서 AWS 실습 담장자님께 상황을 설명하고 해결책을 물었다.

그분의 설명은 간단하게

  1. 루트 키가 털렸을 것이다. ( 사실 사건 발생 몇일 전 Github에 .gitignore 테스트중 AWS 설정 파일이 올라간 적이 있다..! )
  2. 해커들이 Bot을 돌려서 루트 키를 수집한다.
  3. 왜? 비트 코인 채굴하려고 내 AWS 계정으로 비싼 가격으로 Spot Instance 낙찰받아서 돌린단다.. 이런..xx  내 잘못이긴하다..
  4. AWS느님들도 이 상황에 대해 잘 안다. 대부분 1번쯤은 해결해준다.
  5. 이런 경우로 문의하는 사용자가 많다고 한다.
  6. 10일 정도 걸리니 너무 걱정하지 말아라..
너무 다행이었다. ㅠㅠ


그리고 다음부터는
  1. 루트키는 최대한 사용을 자제하고 IAM키로 제한된 기능만 사용하고 Github에 민간한 정보는 절대로 올리면 안된다.
  2. CloudWatch로 Billing Cost가 일정 금액을 넘어가면 메일이나 Slack 메세지로 보내는 설정을 꼭 해둔다.
  3. 자주 사용하는 메일을 사용해라. 메일을 통해  CS를 하기 때문에 꼭 자주 사용하는 메일을 사용하던가 그렇지 않으면 해당 메일을 자주 봐라
  4. AWS는 고객의 계정에 직접 접근이 안된다. 문제 상황을 인지해도 추가 피해를 막기위해 AWS에서 사용자 계정에 접근해서 조치를 취할 수 없다. 즉 주어진 해결책으로 내가 해결하고 보고해야한다.
  5. 또한, 네트워크 All port 여는 것도 위험하다. DDoS 로 네트워크 비용 폭탄 맞을 수 있다. 네트워크 포트는 인가된 IP만 접근할 수 있도록 최대한 보수적으로 운용해라.
정도의 조언을 해주셨다. 감사합니다.


그리고 오늘 드디어 


모든 것이 해결됬다는 메일을 받았다.. $8000의 크레딧을ㅠㅠ 감사합니다 AWS느님들 ㅠㅠ

다음부터 조심히 쓸게요.ㅠㅠ 


선무당이 사람 잡는다고... 제대로 알고 써야겠다.

AWS 에서 한번쯤 봐준다고 대충 써서 저처럼 요금폭탄 맞지 말고 미리미리 예방해두길 바랍니다. 100% 제 잘못이므로, AWS에서 돈 내라하면 돈 내야할 수 밖에 없다네요.



**추가로 루트키가 털리는 경우 외의 요금폭탄 막는법이 이곳에 있습니다. 모두 제대로 알고 AWS 써서 요금 폭탄 맞지 마시길 바랍니다. ㅠㅠ









추가사항

몇몇 분들이 저와 같은 상황인데 어디에 문의를 하는지 모르셔서 추가적으로 알려드립니다.

제가 받은 메일 마지막에 현재 메일은 발신용이며 수신은 되지 않는다고 명시되어 있습니다. 

그래서 메일 하단에 문의를 할 수 있는 고객센터 URL을 주는데 없으신 분들이나 아직 메일이 안온 분들은

다음과 같이 고객센터에 문의할 수 있습니다.



AWS 콘솔 우상단의 Support - Support Center 를 클릭합니다.




Create case로 새로운 문의를 생성합니다.

저는 지난번 $9000 일로 5개의 문의가 있네요..




어떤 상황인지 명시합니다.



 Contact method에 

Web을 클릭하면 몇일 후에 메일과 Support Center에 답변이 오고

Phone을 클릭하면 AWS 관계자와 영어 프리토킹을 합니다.

Web과 Phone  모두 해서 현재 긴박함을 알리는 것이 좋습니다.



금액이 결제된 후 계정 삭제하면 AWS에서도 어떤 상황인지 정확히 알 수 없을 거라 생각하지만,

혹시 모르니 해당 상황에서 해결책이 있으면 바로 포스팅 수정하겠습니다.



Comments