교훈 : 모르는 건 죄다...
모르는 건 알아서 반복되지 않도록 해야 한다.
사건의 발단
때는 2.8(수) 아침에 졸린 눈으로 일어나기 힘겨워 하며 알람을 끄는데 지메일로 AWS에 문자가 하나 날라온 것이다.
사실 내가 전에 부트캠프를 수료하면서 받았던 추가 교육 자료에 있던 클라우드 기초 교육 강좌를 2.1(수) 부터 수강하면서 실습을 따라했었다. 그 강좌에서는 EC2 인스턴스를 생성하는 것부터 해서 RDS, VPC, S3, EFS 등 이것저것 많이 경험하는 강의였던 지라 사실 내가 어떤 설정을 하고 있는 것인지도 잘 모른채 따라가고 있었다. 그치만 설정 하나 했다고 해서 그게 과금이 되겠어? 라는 안일한 생각을 했는데 그것이 문제를 불렀다..
Billing 청구 시트에 들어가보니.. 나는 제대로 서비스를 띄우거나 한 적이 없는데 도대체 무슨일인가 해서 접속해보니..
와... 예전에 다른 사람들이 AWS 과금 폭탄 맞았다는 말을 들었지만 그 당시에 그냥 그러려니 했었는데 이게 내 얘기가 되니까 체감이 너무 달랐다. 불난 집 보러 갔는데 불난 집이 우리집이었다는 유머처럼 이 순간 정말 당황했다. 특히 나는 RDS를 EC2에 연동하려고 붙이는 것만 해보려고 시도만 했을 뿐 사실 아무것도 한게 없는데 RDS에서 368달러나 과금이 된 것에 이해 할 수 없었다.
당황스럽고 혼란스럽긴 하지만 다른 사람들의 경험을 알아보고자 블로그를 여러개 찾아봤다. 다른 이들도 자주 이런 경우가 많다는 걸 알았다. 프로젝트 하면서 private key가 노출되어서 제 3자가 비트코인을 채굴하거나 다른 작업을 돌리는 경우도 있고 과금이 책정되는 사안들에 대해서 제대로 알아보지 않아서 과금이 된 것을 뒤늦게 알았다는 내용의 글도 있었다
해결 못한 케이스도 있지만 해결한 케이스들도 있었다. Case By Case 임을 그제서야 알았다.. 내가 할 수 있는 건 AWS 서비스팀에 내 사정을 말하고 싹싹 비는 것 말고는 없었다. 가난한 학생에게 50만원은 엄청난 거금이다... AWS 좀 배워보려고 시도했다가 첫 시작을 이렇게 큰 고배를 마실줄 누가 알았겠는가...
(여담이지만.. 어린시절 2G 폰에 정보이용료가 분?초? 단위로 과금된다는 거 모르고 부모님 휴대폰으로 만화 컨텐츠 보다가 30만원대 통신비 나왔을 때가 생각났다.. 그 때도 참.. 뒤늦게 아차 싶었었는데... 그 때를 다시 추억하게 했었다.. 모르는 건 죄가 맞다. 모르는 건 죄가 아니다라는 말은 그저.. 그 잠깐 낙심한 자를 위한 위로일 뿐... 진정한 충고이자 직언은 모르는 건 죄라는 것이었다..)
사건 해결 과정
그래서 이제 나의 싹싹 빌기 위해 허접한 나의 영어 실력이지만 AWS CS팀에 요청을 넣었다.
나는 AWS를 첫 가입하면 1년간 프리티어를 이용할 수 있기에 그걸 했다고 생각했던 것이다. 하지만 일단 과금이 되어버린 이상... 내가 뭘 잘못했는지도 따져봐야겠지만 AWS에 내 사정을 한번은 빌어봐야 하지 않을까 하는 심정에 정말 싹싹 빌었다. 내용은 '내가 학생인데 사실 나 AWS 막 배우려고 이것저것 해보고 있었다. 난 분명히 EC2 인스턴스를 만들고 RDS 붙이는 거 해보려고 한 건데 프리티어를 썼는데 RDS에서 과금이 되었다.. 이 상황을 예상 못했다... 내가 다시는 이런 일 없게 대책을 마련하고 재발하지 않게 주의할테니 이번 한번만 봐주면 안 될까요?' 라는 내용에 호소를 적었다.
사실 그러고나서 아무것도 손에 잡히지 않았고.. 그저 답이 오기만을 기다렸다. 다행히 몇시간 후에 답장이 왔다. 내용은 내가 보니까 너의 과금되는게 인스턴스 유형이 프리티어가 아니던데?라는 내용과 너의 상황 이해했기에 내가 이 문제는 해결해줄게 걱정말라는 답장이었다. 깜깜한 내 앞에 한줄기 빛이었다. 그저 빛...!!
그러고서 나는 문제가 되었다 싶었던 모든 인스턴스를 다 지워버렸다. 지우면서 하나하나 검색하며 알게 된 사실은 AWS에서 제공하는 서비스들은 잘 살펴보지 않으면 과금이 나간다는 걸 간과할 수 있다는 사실이었다. 그 중에 하나는 NAT 설정을 했었던 것인데 나는 EC2에 NAT 설정 그거 버튼 몇 번 누른 정도의 설정이며 서비스의 실체인 EC2가 돌아가지 않는데 과금이 되겠어? 라는 생각을 했었는데 그게 아니었던 것이다. NAT 정책 설정은 EC2가 켜져있든 아니든 클라우드 내에서는 계속 돌아가고 있어서 돈을 요구했던 것이다 또 RDS는 시간당으로 계산하기에 내가 RDS가 설정되어서 계속 돌아가고 있다는 걸 생각하고 있지 않았다.
사건 발생의 원인
그런데 여기서 한가지 의문이 드는게 프리티어인데 왜 RDS는 돈이 나갔지?라는 생각이었다.
얼마 지나지 않아 알게되었다.. 내가 RDS 인스턴스를 만드는 과정을 따라가면서...
내가 처음 설정을 Amazon Aurora로 설정을 했었는데 알고보니 Amazon Aurora는 애초에 프리티어 요금제의 서비스가 없던 것이다
DB엔진을 MariaDB로 바꾸니까 템플릿에 프리티어 요금제가 나타나는 것을 볼 수 있다. 그렇다. Aurora는 프리티어 요금제를 제공하지 않는다는 걸 잘 모르면 당할 수 있던 것이다. 강의 자료는 AWS가 예전 디자인한 페이지였어서 지금 페이지와 달랐는데 내가 그걸 제대로 살펴보지 않고 비슷하다 싶은 거로 엔진유형을 정하고서 따라 만들다가 그렇게 된 것이다..
알고나니 되게 사소한 실수였는데 그 실수가 크게 문제를 만들었던 것이다.
다행히 AWS CS에서는 이 문제를 해결해주었다. 그러고 저녁에 다시 확인해봤는데...
이상하게 가격이 오히려 오른 것이다.. 그래서 다시 문의를 넣었다.. 친절하게도 그들은 다시 답변을 주었다.
내가 처음에 요청을 넣었을 때 봤던 금액은 라이브로 최신화된 청구서는 아니었던 것 같다며 24~48시간동안 모니터링 해서 최종 나온 비용에 대해서 해결해주겠다고 했다. 그리고 약속대로 정말 해결해주었다.
RDS만 해결해준게 아니라 EC2에서 NAT 잘못 설정해서 과금된 약 8달러도 해결해주었다...
결론
나의 AWS 첫 체험의 실패기록은 이렇게 해결이 되었다. 뼈아픈 경험이었지만 덕분에 많은 깨달음을 얻었다.
1. 제대로 알아보지도 않고 생각없이 하는 행동은 댓가를 치뤄야 할 수 있다..
2. 생성한 인스턴스도 종료시킨 인스턴스도 다시 보자...
'실패기록' 카테고리의 다른 글
[후기] 2023 오토에버 서류 지원, 코딩 테스트, 1차 면접 탈락 후기 (0) | 2023.04.10 |
---|---|
"THERE IS NO ROYAL ROAD TO LEARNING" (1) | 2020.01.16 |