프로덕션 배포
Lambda/Fargate/AgentCore Runtime 배포 타겟 선택 가이드
에이전트를 프로덕션에 올린다
프롬프트 캐싱·스트리밍·배포 타겟 — 비용과 속도 최적화
🚀
배포 타겟 선택
Lambda vs Fargate vs AgentCore Runtime
PART 4 · 배포 타겟 선택
배포 타겟
워크로드 특성에 맞춘 세 가지 컴퓨팅 타겟의 선택 기준
🚀
Lambda · Fargate · AgentCore Runtime
콜드스타트·비용·확장성 균형점을 찾아 워크로드별 최적 타겟을 선택합니다.
- Lambda — 이벤트 기반 단발 호출, 제로 유휴 비용
- Fargate — 장시간 세션 · 멀티턴, 타임아웃 무제한
- AgentCore Runtime — 관리형 오토스케일 · 내장 관측성
- agentcore create → deploy — CLI 배포 워크플로우
takeaway
만능 타겟은 없습니다 — 콜드스타트 · 비용 모델 · 확장성 3축으로 워크로드마다 판단합니다.
PART 4 · 배포 타겟 선택
배포 옵션 3종
Lambda는 경량 단발, Fargate는 장시간 세션, AgentCore Runtime은 관리형 — 강점과 제약의 대비
AWS Lambda
이벤트 기반 단발 호출에 최적. 15분 타임아웃 이내의 경량 에이전트에 적합.
- ✓ 제로 유휴 비용 — 호출 시에만 과금
- ✓ 자동 스케일링 — 동시성 수천 즉시 확장
- ✓ Function URL로 SSE 스트리밍 지원
- ✗ 콜드스타트 — 보통 1초 미만이지만 무거운 의존성 시 수 초
- ✗ 15분 타임아웃 — 장시간 에이전틱 루프 불가
- ✗ 메모리 10GB 제한 — 대형 컨텍스트 처리 한계
언제 — 비동기 이벤트 처리, 짧은 단일 턴 에이전트, API Gateway 뒤 경량 추론
AWS Fargate
장시간 세션과 멀티턴 대화에 적합. 컨테이너 기반으로 환경 완전 제어.
- ✓ 타임아웃 무제한 — 수 시간 에이전틱 루프 가능
- ✓ 컨테이너 환경 완전 제어 — GPU 접근 가능
- ✓ ALB/NLB 연동으로 WebSocket 안정 지원
- ✗ 최소 1 태스크 상시 과금 (유휴 비용 발생)
- ✗ 스케일아웃 수십 초 소요 — 급격한 트래픽 스파이크 대응 지연
- ✗ ECS 태스크 정의·서비스 설정 관리 필요
언제 — 멀티턴 대화형 에이전트, 장시간 코드 생성, GPU 필요 워크로드
AgentCore Runtime
프레임워크 불문 관리형 런타임. 배포·스케일·모니터링을 원스톱 제공.
- ✓ 에이전트 특화 오토스케일 — 동시 세션 기반 확장
- ✓ 내장 관측성 — 트레이스·메트릭·로그 자동 수집
- ✓ 버전·엔드포인트 관리로 안전한 롤아웃
- ✗ AgentCore 종속 — 타 클라우드 이식 불가
- ✗ 런타임 제약 — Python 3.12+/Node 22, ARM64, 컨테이너 이미지 2GB
- ✗ 신규 서비스 — 리전 가용성 제한적
언제 — 프로덕션 에이전트 전용 인프라, 운영 부담 최소화, Strands 네이티브 배포
takeaway
갈림길은 실행 시간 한도 · 유휴 비용 · 운영 부담입니다 — 짧은 단발이면 Lambda, 장시간 세션이면 Fargate, 운영 최소화면 AgentCore Runtime을 선택합니다.
PART 4 · 배포 타겟 선택
배포 타겟 비교표
콜드스타트·비용 모델·확장성·운영 부담 4축 정량 비교
| 항목 | Lambda | Fargate | AgentCore Runtime |
| 콜드스타트 | 100ms~1초+ (호출의 1% 미만, 의존성 크기에 좌우) | 태스크 프로비저닝 약 30초 | 웜 풀 유지로 콜드스타트 최소화 |
| 최대 실행 시간 | 15분 | 무제한 | 세션 최대 8시간 |
| 비용 모델 | 호출당 과금 (유휴 무료) | 태스크 시간당 과금 | 소비 기반 — 활성 처리 CPU + 메모리(GB-h), 요청당 과금 없음 |
| 스케일 단위 | 동시 실행 1,000 (기본 쿼터, 상향 가능) | 태스크 수 (분 단위) | 에이전트 인스턴스 (초 단위) |
| 운영 부담 | 낮음 (서버리스) | 중간 (ECS 설정) | 낮음 (관리형) |
| 스트리밍 | Function URL SSE | ALB + WebSocket | 네이티브 SSE/WS |
| 관측성 | CloudWatch + X-Ray 수동 | Container Insights | 내장 트레이스·메트릭 |
takeaway
Lambda의 15분 한도와 Fargate의 유휴 과금이 각자의 약점입니다 — AgentCore Runtime은 소비 기반 과금과 세션 최대 8시간으로 그 사이를 메웁니다.
PART 4 · 배포 타겟 선택
AgentCore Runtime 배포 예시
Strands 에이전트를 AgentCore에 배포하는 최소 설정과 CLI 워크플로우
python
# app/MyProdAgent/main.py — agentcore create가 생성한 스캐폴드를 아래처럼 수정
from strands import Agent
from strands.models import BedrockModel
from bedrock_agentcore import BedrockAgentCoreApp
app = BedrockAgentCoreApp()
agent = Agent(
model=BedrockModel(
model_id="us.anthropic.claude-sonnet-4-6",
cache_tools="default",
streaming=True,
),
system_prompt="You are a production assistant.",
tools=[search_docs, query_db, send_notification],
)
# @app.entrypoint — AgentCore Runtime이 호출하는 진입점
@app.entrypoint
def handler(payload):
result = agent(payload.get("prompt"))
return {"result": str(result)}
# ─── CLI 배포 워크플로우 ───
# 1. agentcore create --name MyProdAgent — 스캐폴드 생성(main.py + pyproject.toml)
# 2. 생성된 app/MyProdAgent/main.py를 위 내용으로 수정
# 3. agentcore deploy — 코드 패키징 + 배포(버전·엔드포인트는 Runtime이 관리)
좋은 에이전트는 빠르고 저렴해야 합니다.
캐싱 · 스트리밍 · 배포 — 프로덕션 에이전트의 3대 요소