EC2 vs Lambda: 언제 무엇을 선택해야 할까?
EC2는 지속적인 서버 워크로드에, Lambda는 이벤트 기반 단기 작업에 적합합니다. SAA-C03 시험 관점에서 선택 기준을 정리합니다.
관련 시험 도메인
- Domain 3: Design High-Performing Architectures
- Domain 4: Design Cost-Optimized Architectures
핵심 요약 (BLUF)
EC2는 지속적으로 실행되는 서버 워크로드에, Lambda는 이벤트 기반 단기 작업에 적합합니다. 트래픽이 예측 가능하고 24시간 실행이 필요하면 EC2, 간헐적이고 짧은 작업이면 Lambda를 선택하세요.
시험 팁
시험 핵심: "서버리스", "이벤트 기반", "짧은 실행 시간" → Lambda / "지속 실행", "상태 유지", "커스텀 런타임" → EC2
EC2와 Lambda는 언제 사용해야 할까?
AWS에서 컴퓨팅 서비스를 선택할 때 가장 흔한 질문입니다. 두 서비스는 근본적으로 다른 접근 방식을 가지고 있습니다.
EC2가 적합한 경우
- 24시간 실행이 필요한 웹 서버
- 상태(State)를 유지해야 하는 애플리케이션
- 15분 이상 실행되는 배치 작업
- GPU나 특수 하드웨어가 필요한 경우
- 커스텀 OS나 런타임 환경이 필요한 경우
Lambda가 적합한 경우
- 이벤트 기반 처리 (S3 업로드, API 요청 등)
- 간헐적으로 실행되는 짧은 작업
- 트래픽 변동이 큰 API 백엔드
- 서버 관리 부담을 줄이고 싶은 경우
- 실행 시간이 15분 이내인 작업
EC2 vs Lambda: 어떤 걸 선택해야 할까?
| 비교 항목 | EC2 | Lambda |
|---|---|---|
| 과금 방식 | 시간/초 단위 (실행 중일 때) | 요청 수 + 실행 시간 |
| 최대 실행 시간 | 제한 없음 | 15분 |
| Cold Start | 없음 (항상 실행 중) | 있음 (수 ms ~ 수 초) |
| 확장성 | Auto Scaling 설정 필요 | 자동 확장 |
| 상태 관리 | 인스턴스에 저장 가능 | Stateless (외부 저장소 필요) |
| OS 접근 | 전체 접근 가능 | 불가능 |
| 메모리 | 최대 24TB | 최대 10GB |
선택 기준
- EC2 선택: 24시간 실행, 15분 이상 작업, 상태 유지 필요, 특수 하드웨어/OS 필요
- Lambda 선택: 이벤트 기반, 간헐적 실행, 서버 관리 부담 감소, 자동 확장 필요
비용을 줄이려면 어떻게 해야 할까?
EC2 비용 최적화
- Reserved Instances: 1~3년 약정으로 최대 72% 할인
- Spot Instances: 최대 90% 할인 (중단 가능한 워크로드)
- Savings Plans: 유연한 사용량 약정
Lambda 비용 최적화
- 메모리 최적화: 적절한 메모리 설정으로 비용/성능 균형
- Provisioned Concurrency: Cold Start 감소, 예측 가능한 비용
- ARM 아키텍처: Graviton2 사용 시 20% 저렴
SAA-C03 시험 출제 포인트
- ✅ Lambda 제한 사항: 최대 15분 실행, 10GB 메모리, Stateless
- ✅ 비용 최적화: 간헐적 워크로드 → Lambda, 지속 워크로드 → EC2 + Reserved
- ✅ 아키텍처 패턴: API Gateway + Lambda (서버리스 API), ELB + EC2 (전통적 웹)
시험 팁
시험 문제 예시: "웹 애플리케이션이 하루에 몇 번만 요청을 받고, 각 요청 처리에 10초가 걸립니다. 가장 비용 효율적인 솔루션은?" → 정답: Lambda (간헐적 + 짧은 실행 시간)
자주 묻는 질문 (FAQ)
Q: Lambda의 Cold Start는 얼마나 걸리나요?
언어와 패키지 크기에 따라 다릅니다. Python/Node.js는 100-200ms, Java/.NET은 1-5초가 일반적입니다. Provisioned Concurrency로 해결할 수 있습니다.
Q: EC2와 Lambda를 함께 사용할 수 있나요?
네, 많은 아키텍처에서 함께 사용합니다. 예를 들어 메인 애플리케이션은 EC2에서 실행하고, 이미지 처리 같은 비동기 작업은 Lambda로 처리합니다.
Q: Lambda에서 데이터베이스 연결은 어떻게 하나요?
RDS Proxy를 사용하는 것이 권장됩니다. Lambda의 동시 실행으로 인한 데이터베이스 연결 폭증을 방지합니다.
Q: 실행 시간이 15분을 초과하면 어떻게 하나요?
Step Functions로 여러 Lambda를 연결하거나, EC2/Fargate를 사용해야 합니다. AWS Batch도 배치 작업에 좋은 대안입니다.
Q: Lambda가 EC2보다 항상 저렴한가요?
아닙니다. 지속적으로 높은 트래픽이 있다면 EC2 + Reserved Instances가 더 저렴할 수 있습니다. 교차점(breakeven point)을 계산해야 합니다.