[AWS] 비용 비교: Lambda vs. EC2

@Shin, Jiwoo · February 09, 2024 · 6 min read

안녕하세요!👋🏻

클라우드 컴퓨팅이 우리 개발 생활에 깊숙이 자리 잡은 요즘, AWS는 마치 필수 요소처럼 여겨지곤 합니다.

서버부터 함수 하나까지, AWS는 우리가 필요로 하는 거의 모든 것을 제공하는데요. 그 중에서도 특히 EC2와 Lambda는 많은 개발자들 사이에서 끊임없는 비교의 대상이 되어왔습니다.

EC2(Elastic Compute Cloud)는 가상 서버를 제공하여, 사용자가 원하는 대로 운영체제를 선택하고, 애플리케이션을 설치하며, 네트워크 구성을 조정할 수 있는 유연성을 제공합니다. 마치 자유도 높은 놀이터와 같아서 원하는 대로 서버를 구성하고 조정할 수 있지만, 관리해야 할 것도 많습니다. 반면, Lambda는 서버리스 컴퓨팅 서비스로, 마치 요리사가 모든 준비를 미리 해놓은 상태에서 우리는 할 요리만 하는 것처럼, 서버 걱정 없이 코드 실행에만 집중할 수 있게 해줍니다.

이번 글에서는 이 두 서비스의 비용 면에서 어떤 차이점이 있는지, 각각의 서비스가 어떤 상황에서 더 경제적일 수 있는지에 대해 살펴보겠습니다.

비용모델

EC2의 경우 온디맨드 인스턴스를 사용하면 장기 약정 없이 컴퓨팅 파워에 대해 시간당 또는 초당(최소 60초) 비용을 지불하게 됩니다. 즉 서버를 사용한 만큼 과금하는 비용모델입니다. EC2 인스턴스는 지속적으로 실행되므로, 높은 CPU 사용량과 같이 안정적이고 예측 가능한 성능이 요구되는 경우 더 경제적일 수 있습니다. 또한, EC2는 예약 인스턴스나 스팟 인스턴스와 같은 다양한 가격 모델을 제공하여 장기적으로 비용을 절감할 수 있는 기회를 제공합니다.

Lambda는 1) 실행된 함수의 수와 2) 실행 시간, 3) 메모리 할당량(메모리 할당량은 GB-초 계산에 반영됩니다)에 따라 비용이 결정됩니다. 이는 높은 트래픽이 예측되지 않거나 간헐적인 워크로드에 매우 이상적입니다. 예를 들어, 단기적인 배치 작업이나 API 요청 처리와 같은 작업에서 Lambda를 사용하면 EC2 인스턴스를 24/7 운영하는 것에 비해 비용을 크게 절감할 수 있습니다.

사용 예시

실제 비용 예시를 통해 Lambda와 EC2의 비용 차이를 구체적으로 살펴보겠습니다. (프리티어 논외)

Lambda의 경우,

비용은 함수 실행 횟수, 실행 시간 및 할당된 메모리에 따라 달라집니다.

서울리전) x86 아키텍처와 1GB 메모리를 할당받아 매월 2,592,000건의 요청을 처리하고, 함수 실행 시간이 100ms일 때

  • GB-초당 0.0000166667 USD
  • 요청 1백만 건당 0.20 USD
월별 컴퓨팅 요금
  • 컴퓨팅(초) = 한달에 86,400초 * 30일 = 2,592,000초 * 0.1초 = 259,200 초
  • 컴퓨팅(GB-s) = 259,200 초 * 1GB = 259,200GB-초
  • 월별 컴퓨팅 요금 = 259,200GB-초 * 0.0000166667 USD/GB-초 = 4.32 USD
월별 요청 요금
  • 월별 요청 요금 = 2,592,000건 * 0.2 USD/백만건 = 518.4 USD
총 월별 요금
  • 총 요금 = 월별 컴퓨팅 요금 + 월별 요청 요금 = 4.32 + 518.40 = $522.72 USD

EC2 인스턴스의 경우,

지속적으로 실행되는 가상 서버에 대한 비용을 지불합니다.

버지니아 북부) t2.micro 인스턴스를 한 달(30일) 동안 24시간 계속해서 운영한다고 가정한경우

  • 시간당 0.0116 USD
월별 컴퓨팅 요금
  • 0.0116 USD * 24시간 * 30일 = 월별 8.35 USD 의 비용이 발생합니다.

위 예시에서 볼 수 있듯이, Lambda는 실행 횟수와 실행 시간이 적은 경우 매우 저렴할 수 있지만, 실행 횟수가 많아지고 실행 시간이 길어질수록 비용이 증가합니다. 그러니 간편한 작업이나 간헐적인 워크로드에 적합합니다. 반면, EC2는 지속적인 운영이 필요한 경우에 비용 효율적일 수 있으며, 특히 예약 인스턴스나 스팟 인스턴스를 활용할 경우 비용을 더 절감할 수 있습니다.

결론

어떤 서비스를 선택하든, AWS의 다양한 서비스와 가격 모델을 활용하여 최적의 비용 효율을 달성할 수 있습니다. 이를 위해 AWS 요금 계산기를 활용하여 자신의 사용 사례에 맞게 비용을 예측하고 계획하는 것이 좋습니다.

참고사이트

  1. https://aws.amazon.com/ko/lambda/pricing/
  2. https://aws.amazon.com/ko/ec2/pricing/on-demand/
@Shin, Jiwoo
다양한 관점에서 문제를 해결하길 좋아합니다.