-
AWS ECS와 Lambda를 결합한 하이브리드 서버리스 아키텍처AWS/ECS 2025. 9. 4. 15:14반응형
하이브리드 구조의 기본 아이디어
전통적 서버리스인 Lambda는 짧은 작업, ECS는 지속적 과업에 각각 강점이 있습니다. 이 둘을 함께 쓰면, 꾸준한 작업과 갑작스러운 트래픽에 모두 유연하게 대응할 수 있습니다.
언제 쓰면 좋은가?
- 백그라운드 작업을 컨테이너 환경에서 안정적으로 처리할 때
- 갑작스런 트래픽이 몰릴 땐 ECS로 충분히 대응하기 어려울 때
- ECS를 과도하게 할당하지 않고 비용 최적화를 원할 때
- Lambda와 ECS에서 거의 같은 코드베이스를 활용하고 싶을 때
활용 예시
- 실시간 데이터 처리 파이프라인: ECS는 꾸준히 스트림을 처리, Lambda는 갑자기 데이터가 몰릴 때 추가로 대응
- PDF 즉시 생성: ECS에서 대량 작업, Lambda로 단건 작업 처리
- 이미지/영상 처리 대기열 관리
주요 구성 요소와 역할
- SQS Queue: 모든 작업이 일단 여기에 들어와 대기
- ECS (Fargate): SQS에서 메시지를 읽어 안정적으로 처리
- Lambda: SQS 대기열이 쌓이면 즉시 자동 확장해 빠르게 작업을 분산 처리
- CloudWatch: SQS 대기 상태를 모니터링, 필요한 경우 Lambda의 동시 실행 수를 늘림
- 공유 저장소: 결과는 S3나 DynamoDB 등에 저장
작동 방식 한눈에 보기
- 작업이 SQS로 들어옴
- ECS가 꾸준한 속도로 메시지를 처리
- 대기열이 일정 기준(수량 또는 지연시간) 이상 쌓이면 Lambda가 즉시 추가로 투입
- Lambda가 대기열을 소진하면 자동으로 중지
- ECS는 중단 없이 평상시 작업량을 계속 소화
인프라 코드 예시 (Terraform 기반)
아래는 각 리소스의 선언 코드 예시입니다.
resource aws_sqs_queue job_queue { name = job-queue visibility_timeout_seconds = 300 } resource aws_ecs_cluster main { name = hybrid-cluster } resource aws_ecs_task_definition ecs_task { family = ecs-worker requires_compatibilities = [FARGATE] cpu = 512 memory = 1024 network_mode = awsvpc container_definitions = jsonencode([ { name = worker image = 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-worker:latest essential = true environment = [ { name = SQS_QUEUE_URL, value = aws_sqs_queue.job_queue.url } ] } ]) }장점 요약
- 비용효율: ECS는 평상시 작업을 저렴하게 처리, Lambda는 필요할 때만 실행되어 불필요한 요금 발생 없음
- 즉각적인 확장성: Lambda는 ECS보다 빠르게 트래픽 증가에 대응
- 코드 재사용성: Lambda와 ECS 모두 거의 같은 코드로 운영 가능
- 내구성: SQS 사용으로 작업 손실 없이 안정적
주의할 점
- 중복 처리 방지: ECS와 Lambda가 동시에 SQS 메시지를 읽으므로 메시지 가시성 타임아웃 설정이 중요
- Lambda 콜드 스타트: Lambda가 처음 실행 시 다소 느릴 수 있으나, 주요 작업은 ECS가 계속 유지
- 비용 통제 필요: 트래픽 급증시 Lambda 요금이 급등할 수 있어 모니터링 필요
결론: 최적의 균형점
Lambda의 즉각 대응력과 ECS의 지속적 처리 능력을 결합하면 예측 가능한 작업과 갑작스런 스파이크를 동시에 잡을 수 있습니다. 서버를 직접 관리하지 않아도, 비용과 성능 모두에서 생산적인 아키텍처를 설계할 수 있습니다.
반응형'AWS > ECS' 카테고리의 다른 글
FastAPI와 Docker, AWS ECS로 머신러닝 모델 배포하기 (0) 2025.09.04 Amazon ECS의 ECScape 취약점 핵심 정리 (0) 2025.09.04 AWS Secrets Manager와 클라우드 보안 핵심 요약 (on ECS) (0) 2025.09.04