Basic_Studies/그외

[AWS] Free tier은 free가 아닙니다.(AWS EC2 프리티어 과금 외)

adore_voy 2020. 12. 22. 00:47

최근 진행했던 프로젝트를 중단했을 때, 이런 이야기를 했었다.

 

"서버가 다운된 이후 서버를 증설해 더 많은 분들이 테스트를 참여해보실 수 있도록 여러가지 노력을 해보았으나 그 과정 속에서 예상치 못한 큰 금액이 발생"

 

여기서 금액은 AWS EC2의 free tier를 지원하는 t2.micro 사용에서 발생했다.

분명 나처럼 비영리적으로, 포트폴리오 용으로 등 지출을 생각하지 않고 웹개발을 하는 사람들이 많을 것이다.

그들에게 조금이나마 도움이 되도록

어떤 과정을 겪었는지, 무료로 이용할 땐 어떤 방법이 있는지, 과금을 막으려면 어떻게 해야하는지

서술해보려고 한다.


사건 일지

프로젝트가 다 만들어졌다. 이제 남은 일은 이 세상에 내 사이트를 알리는 일!

무료 웹호스팅을 진행하는 사이트를 찾아보았다.

 AWS 아마존 웹 서비스 에서 EC2 에 무료로 이용하는 프리티어 서비스가 있다고 한다. 사람들이 배우려고도 하고 기업들도 이용하는 공신력있는 서비스이기 때문에 나도 이걸 선택한다.

인스턴스가 생성되면 퍼블릭 아이피가 발급된다. 퍼블릭 아이피로 타인들이 내 웹서비스를 이용할 수 있는 것이다.

하지만 어떤 웹도 퍼블릭 아이피로 웹사이트를 배포하지 않는다. 

무료 도메인 사이트에 들어가 사람들이 접근하기 쉽게 도메인을 구매한다.

www.freenom.com/en/index.html?lang=en

 

Freenom - A Name for Everyone

Cost Price Free Special

www.freenom.com

도메인 적용은 간단히 말하면, 사용하는 도메인 사이트에 있는 DNS 관리 창으로 들어가 발급받은 퍼블릭 IP 주소를 붙여넣으면 연결이 된다.

 

완벽한 준비. 배포를 시작한다.

 

배포 30분 후, 예상치 못하게 서버가 터진다.

마이크로 용량의 서버를 구매했는데 30분 당 이용자가 몇천명이니 당연히 이용이 힘들다. 

그렇기 때문에 내가 생각한 해결책은 EC2에서 t2.medium을 구매하는 방법이다. 초 당 금액이 들어가 한 달로 계산해보니 2만원 정도 든다는 말에 결제한다.

 

두 번째 인스턴스가 생성 된 것이다. 그렇다면 새 퍼블릭 IP가 발급됐기 때문에 해당 도메인 사이트에 들어가 DNS에 아이피를 추가한다.

 

적용이 안되다가 두시간 정도 후에 연결이 된다.

 

그리고 다음날...사이트가 또 터진다. 이건 나도 아직 미지수인데, DNS에 예전의 마이크로 아이피를 삭제하지 않고 새로운 아이피를 그냥 추가했어서 새로 산 t2.medium은 이용조차 못해보는 상황이 발생한다. 아직까지도 그냥 프리인 t2.micro를 사용중이었던 것이다.

 

때문에, 예전의 아이피를 지우고 그 자리에 t2.medium 아이피를 적어넣는다.

 

적용이 안된다... 이유를 찾아보니 DNS 수정 내역 적용에 해외 도메인은 최소 몇시간에서 최대 72시간이 걸린다고 한다. 반짝 떴다가 반짝 사라지는 내 웹서비스는 최대한 빨리 복구를 해도 모자랄 지경에 서버가 3일 후에 열리게 생긴 것이다.

 

그리고 그때, 메일이 도착한다.

어? 초 당 금액 들어간다면서? 사용 한 만큼만 내면 된다면서? 왜 벌써 14.58달러야?

무서운 마음에 AWS billing을 확인해본다.

심장이 뛰기 시작한다. 아... 말로만 들었던 AWS 과금이 나에게도 일어나는구나... 근데 그 분은 키파일을 해킹당해 그렇다는데 난 보호차원에서 깃허브도 프라이빗 repository로 이용했는데 어디서 과금이 된건지 살펴본다.

data transfer에서 과금이 발생했다.

이 부분이 트래픽 관련한 부분이다. 프리티어로는 커버 불가능한 기업수준의 인원이 몰려, 한 달에 허용된 무료 data transfer 용량을 훌쩍 넘어버린 것이다.

또한, 이 data transfer은 링크를 사람들끼리 공유하는 경우에 또 사용이 된다고 한다. 내가 만든 웹서비스는 링크를 공유하는 방식인데 이렇게 과금이 안되는게 이상할 정도다.

 

결국 웹서비스를 지속하기 어려웠고 서비스를 그만두게 된다.

 

다음날, 구글 애널리틱스는 전 날의 웹 이용자 수를 추산한다.

10만명이란다. 중간에 DNS 연결이 안되던 것 까지 정확히 배포 시간은 24시간이 채 안됐다.

이 상태로 지속했으면 금액이 말도 안되게 불었을 것 이다.


무료 호스팅으로 생각했던 대안책들

1. Netlify

넷리파이는 무료로 호스팅할 수 있고, http를 https로 전환시킬 수 있는 인증서까지 발급해주는 사이트라고 한다. 

이 페이지를 이용하지 않은 이유는, 우선 동적 사이트는 이용이 안됐다. html 파일이 직접적으로 루트폴더에 있어야 하는데 그렇지 않고 본인은 노드 익스프레스를 이용하여 웹을 만들었기 때문에 적용이 불가능했다.

이후에 정말 무료일까 싶어 알아봤는데, 그것도 아니었다.

가격표를 보면 한 달에 100기가고, 그 이상을 넘으면 100기가에 20달러 추가요금이 발생한다고 적혀있다. 때문에 하루에 400기가를 사용했던 난 적어도 600기가는 넘는 요금제를 이용해야 했다.

하지만 이는 매우 후한 가격표이다.

 

개인이 한 달에 100기가가 넘는 트래픽을 이용 하기도 어렵고 aws도 프리티어는 15기가정도로 알고있다. 만일 나중에라도 개인 웹을 배포 할 일이 있다면 넷리파이 이용을 적극 검토해 볼 예정이다.

 

2. 깃허브

깃허브도 무료 호스팅 서비스를 제공한다.

하지만 이 조건은 우선 repository가 퍼블릭이어야만 호스팅 서비스를 무료로 이용할 수 있다. 보안상의 문제로 프라이빗 repository를 이용한 나에게 애초에 선택권 밖이었다.

 

그리고 물론 깃허브 호스팅도 bandwidth의 제한이 있었다.

깃허브 공식 문서에서 발췌했다.

 

한 달에 100기가를 지원하며, 그 이상이 되면 서버가 끊기는 것 같다. 어떻게 보면 깃허브를 이용하는 방법이 과금이 되지 않고 서버가 끊어진다는 부분이 안전하게 들릴 수 있겠지만, 100기가를 넘는 정도면 이용자 수가 꽤 있다는 말인데 서버를 끊어버리는 방법이 올바른 선택일까?

 

3. 개인 컴퓨터 서버로 이용하기

 

이 부분은 내가 잘 모른다. 하지만 주변 전문가에게 조언을 구한 결과, 본인이 가지고 있는 컴퓨터를 개인 서버로 이용하면 과금이 전기세 말고는 없기 때문에 가장 저렴한 방법이라고 말할 수 있다.

 

하지만 사람들이 비싼 비용 들여 왜 호스팅 서비스를 이용할까?

개인 컴퓨터를 서버로 이용하면 24시간 컴퓨터를 켜 두어야 한다.

한 2~3일정도 켜두거나 필요할 때만 켜 두는건 좋지만 개인에게 어떤 방법이 효율적인 방법인지는 찾아보길 바란다.

 

함께 프로젝트를 제작했던 친구가 알아본 결과 U+ 통신사 기준 인터넷 사용량이 갑자기 비정상적으로 증가하면 통신사가 이를 의심해 서버를 중단시킨다고 한다. 이렇게 할 수 밖에 없는게, 무제한으로 서버가동이 가능하면, 집은 비트코인 채굴장이 되고 말 것이다. 

 

자세한 정보는 각자 찾아보길 바라며...

 

이 외에도 무료 호스팅이라 검색하면 aws를 필두로 무료 호스팅 이라고 적힌 웹사이트가 수두룩하게 나온다. 개인이 소소하게 쓰기에는 위의 선택지들 중 아무거나 선택해도 괜찮겠지만, 급격한 트래픽 사용, 과다한 사용자를 견디기 위해선 개인 사이트가 평균 소비하는 트래픽 데이터 양 등을 잘 알아보고 가격표를 사이트마다 비교해봐야 할 것이다.


그럼 어떻게 해야 과금을 예방할 수 있나?

이번 프로젝트를 하면서 제일 중요하게 느꼈던 것은 

AWS 과금 시 알림 설정이다.

 

AWS 웹의 Billing에 들어간다.

결제 기본 설정을 누르고 프리 티어 사용량 알림 받기를 체크한다.

AWS 사용 예정이라면 꼭꼭... 체크해 불상사를 일찍 막도록 하자.

또한, AWS 앱을 다운받아 매일 수시로 비용이 얼마나 청구되었는지 확인해 본다면 더 완벽 할 것이다.

자세한 비용 내역은 앱으로는 볼 수 없다.

 

해당 인스턴스 사용이 끝나고 더이상 사이트를 운영하지 않아도 된다고 생각하면 꼭!!! 인스턴스 사용 종료를 눌러 인스턴스를 삭제하자. 정지를 누르지 말고 종료를 누르자.

 

과금을 줄이기 위해서는 이미지 파일과 미디어 파일의 최적화가 필요하다. 필요 이상의 이미지와 미디어 파일을 다운받느라 사용하는 데이터가 과금의 상당 부분을 차지할 수 있다.

그 외에도 웹사이트 최적화를 시킬 수 있는 부분은 너무도 많다.

아래의 블로그가 상당히 자세히 나와있는 것 같으니 링크를 걸겠다.

black7375.tistory.com/72

 

[스압/데이터주의] 웹 최적화 방식 모음

웹으로 전향한지 얼마 안됐는데 그동안 경험상 전반적 구조 파악에는 퍼포먼스 개선하는게 짱짱이라 적게되었습니다. 이 문서는 완전히 완성된 상태가 아니라 시간이 나면 업데이트 중. 혹시

black7375.tistory.com


광고도 걸지 않은 재미로 만든 사이트에 하루만에 몇만원씩 과금이 되는 것을 보고 어떤 용량의 요금제를 이용해야 하는지에 대한 선택, 최대한 가벼운 웹을 만들기 위한 웹 최적화 방식, DNS 주소를 변경하면 적용되기까지 최소 몇시간이 걸린다는 사실 등 너무 많은 것을 배웠다.

또 공부하고 공부해야함을 느낀 프로젝트였다.

반응형