Amazon EC2 vs AWS Lambda 가격비교
Amazon EC2 쓰면 얼마 나와요? AWS Lambda 얼마에요?
대답하실 수 있나요. 어렵죠. 리소스에 대한 사양이나 사용량, 추가적으로 어떠한 상황인지에 대한 정보가 없으니까요.
하지만 대략적으로 어느정도 비용이 발생하나요? 에 대한 질문이라고 생각한다면 가장 싼 버전을 단순히 1달동안 사용한다면 이정도 나올거에요. 는 대답할 수 있겠네요.
저는 대략 체감적으로 AWS Lambda가 Amazon EC2 보다 평균적으로 가격이 비싼건 알고 있는데요. 최저 스펙에서 어느정도 차이가 있는지에 대해 알아보겠습니다.
⚠️단순 사용시간에 대한 계산입니다, 데이터 전송요금, AWS Lambda 같은 경우 요청 당 요금이 붙는 부분을 뗴어놓고 간단하게 비교해보겠습니다.
리전은 서울리전, 환율은 2021년 6월 13일 기준 1USD = 1116.55원으로 계산해보겠습니다.
가장 요금이 적은 Amazon EC2 한달 비용
가장 시간당 요금이 싼 t4g.nano
를 계산해보겠습니다.
EC2 온디맨드 인스턴스 요금 – Amazon Web Services
t4g 라인업은 2021년 2월 23일에 서울리전도 사용가능해지게 되었습니다.
Amazon EC2 T4g 인스턴스, 서울 리전 출시 (6월 30일까지 무료 사용 가능) | Amazon Web Services 한국 블로그
참고로 Linux 인스턴스는 초당 계산되어지지만 이외 인스턴스는 시간당으로 계산되어집니다.
요금은 각 인스턴스에 사용된 인스턴스 시간, 즉 인스턴스가 시작된 시점부터 종료 또는 중단될 때까지의 시간을 기준으로 책정됩니다. 각 부분 인스턴스에 사용된 시간은 Linux 인스턴스의 경우 초당 요금이 책정되고 다른 모든 인스턴스 유형의 경우 1시간 당 요금이 책정됩니다.
Amazon EC2 T4g 인스턴스, 서울 리전 출시 (6월 30일까지 무료 사용 가능) | Amazon Web Services 한국 블로그
시간 | 가격 |
---|---|
1hour | 0.0052 USD |
1day | 0.1248 USD |
1month (30d) | 3.744 USD |
1달의 시간동안 사용한 경우 4180.36원
이 나오네요.
가장 요금이 적은 AWS Lambda 한달 비용
가장 낮고 싼 사양인 메모리 128MB의 경우
시간 | 가격 |
---|---|
1ms | 0.0000000021 USD |
1s | 0.0000021 USD |
1min | 0.000126 USD |
1hour | 0.00756 USD |
1day | 0.18144 USD |
1month (30d) | 5.4432 USD |
1달의 시간동안 사용한 경우 6077.60원
이 나오네요.
두 리소스의 가장 요금이 적은 경우 비교 요약
- Amazon EC2의 가장 싼
t4g.nano
1달4180.36원
-
AWS Lambda의 가장 싼
메모리 128MB
1달6077.60원
-
Amazon EC2가
1,897.24원
더 쌈 (약1900원
)
잠깐만요
가장 싼 버전으로 두 리소스를 비교할 수도 있겠지만, 실은 AWS Lambda의 가장 싼 버전은 메모리가 128MB인 반면에 t4g.nano
는 0.5GIB 입니다.
그러면 AWS Lambda 중 가장 비슷한 메모리를 가지고 있는 512MB 버전으로 비교를 해야겠죠?
AWS Lambda 512MB 요금
시간 | 가격 |
---|---|
1ms | 0.0000000083 USD |
1s | 0.0000083 USD |
1min | 0.000498 USD |
1hour | 0.02988 USD |
1day | 0.71712 USD |
1month (30d) | 21.5136 USD |
1달의 시간동안 사용한 경우 24021.01원
이 나오네요.
천원 단위에서 놀던 친구들이 한 단계 오르게 되네요.
결론
- 가장 싼 버전으로 비교할 경우 Amazon EC2가
1,897.24원
더 쌈 (약1900원
) -
Amazon EC2의 가장 싼 버전의 비슷한 사양의 AWS Lambda로 비교할 경우 Amazon EC2가
19,840.65원
더 쌈 (약19,800원
) -
Amazon EC2가 더 싸다.
하지만...
단순 가격 비교를 하게 되면 Amazon EC2가 쌉니다. 하지만 저는 개인적으로 쓰는 작은 프로젝트들은 대부분의 경우에 AWS Lambda를 선호합니다.
만약 어플리케이션을 Amazon EC2에 배포하는 경우, Amazon EC2가 일단 설정이나 환경이 기존에 자주 만지던 환경이라 편합니다.
그러나, 서버로 구동하는 경우 서버 내의 어플리케이션이 언제 문제가 생길지 모릅니다. 그래서 문제를 대비해 서버 상태 확인 알람이나 어플리케이션 다운시 재가동 같은 추가적인 부분을 구축해둬야 합니다.
안그러면 배포한 자신의 프로젝트가 꺼져도 모르게 되죠... 그래서 며칠전에 꺼져 버린 자신의 프로젝트를 확인하거나, 수시로 잘 작동하고 있는지 모니터링 해줘야 합니다.
모니터링을 집중적으로 하고 있는 경우는 문제없지만, 아닌 경우 매우 성가시게 됩니다.
그리고 여러 작은 프로젝트들은 배포한 경우 더 피곤해지게 되죠...
그리고 또한, 위에 여태 언급한 비용문제가 있는데요. 사실 모든 프로젝트가 매일매일 매시간마다 풀로 사용자들이 사용하지는 않죠. 이런 경우 AWS Lambda가 더 싼 경우가 될 수 있습니다...
특히 사람들의 방문이 적은 페이지들은 프론트는 SAP로 구축하여 Amazon S3 (+ Amazon CloudFront)에 배포하고, 백엔드는 Amazon API Gateway + AWS Lambda로 구축하는게 장기적으로 쌉니다.
예로, 한달동안 300명이 방문하고 평균 5분 정도 사용하는 페이지라고 가정해봅시다.
Amazon EC2의 경우 4180.36원
(약 4200원
)
AWS Lambda (메모리 128MB)
시간 | 가격 |
---|---|
1ms | 0.0000000021 USD |
1s | 0.0000021 USD |
1min | 0.000126 USD |
1hour | 0.00756 USD |
1day | 0.18144 USD |
1month (30d) | 5.4432 USD |
300 * (0.000126 USD * 5mins) = 0.189 USD = 211.03원
AWS Lambda (메모리 512MB)
시간 | 가격 |
---|---|
1ms | 0.0000000083 USD |
1s | 0.0000083 USD |
1min | 0.000498 USD |
1hour | 0.02988 USD |
1day | 0.71712 USD |
1month (30d) | 21.5136 USD |
300 * (0.000498 USD * 5mins) = 0.747 USD = 834.06원
실제로는 사용자가 접속한 5분 내내 AWS Lambda가 사용되어지지 않는 경우가 많고, 또한 AWS Lambda 이외의 같이 사용하는 리소스들의 비용도 있겠지만, 이렇게 극단적인 경우 AWS Lambda가 가장 싼 메모리 128MB의 경우 20배에서 메모리 512MB는 5배 정도 싼 것을 알 수 있습니다.
현실에서의 가격차이와는 모든 것을 고려하지 않기 때문에 괴리가 있을 수 있으나 간단하게 이런 차이가 날수도 있습니다.
사실 위의 예시는 사용자가 사용량이 적은 페이지이기 때문에 극단적인 예입니다. 계속해서 리얼타임으로 컴퓨팅 자원이 필요하거나, 사용량이 많은 경우 Amazon EC2가 쌀 수도 있습니다.
그리고 마지막으로 고려해야 할게 개발 과정이죠. 서버리스 기반의 MSA로 개발하는 것이 익숙하지 않아 사용자가 적은 상황으로 예상한 경우의 리소스의 비용을 따져 개발하면 오히려 개발기간이 늘어나 좋지 않은 결과를 낼 수도 있겠습니다.
마지막으로
보통 간단한 것들은 AWS Lambda로 개발하는 일이 많았는데요. 어쩌다 토이 프로젝트로 작은 봇을 만들일이 생겨 GCP의 계정 당 한 개의 무료 인스턴스 GCE(AWS의 EC2 같은 서비스)를 사용하다 개발은 생각대로 빠르게 하였는데, 모니터링적인 부분에서 시간을 많이 뺏겼습니다...
약간의 리얼타임이 필요한 봇이라 AWS Lambda 보다 서버로 구축하였는데요. 돈을 조금 쓰고 서버리스로 개발하는게 더 편한 것을 다시 한번 느꼈습니다.
생각해보면 비용도 비용인데 자기가 가장 편하고 익숙한 환경이 제일 좋은 것 같긴 합니다... ?