You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This guide covers deploying ABCA into an AWS account, including compute backend choices, scale-to-zero characteristics, and the complete AWS service inventory. For day-to-day development workflow, see the Developer guide. For a quick first deployment, see the Quick start. For least-privilege IAM deployment roles, see DEPLOYMENT_ROLES.md.
Architecture overview
ABCA deploys as a single CDK stack (backgroundagent-dev) containing all platform resources. The stack uses a ComputeStrategy interface to support two compute backends within the same stack:
Aspect
AgentCore (default)
ECS Fargate (opt-in)
Compute
Bedrock AgentCore Runtime (Firecracker MicroVMs)
ECS Fargate containers
Resources
2 vCPU, 8 GB RAM, 2 GB max image size
2 vCPU, 4 GB RAM
Orchestration
Durable Lambda (checkpoint/replay)
Same durable Lambda via ComputeStrategy
Agent mode
FastAPI server (HTTP invocation)
Batch (run-to-completion)
Startup
~10s (warm MicroVM)
~60-180s (Fargate cold start)
Max duration
8 hours (AgentCore service limit)
9 hours (orchestrator executionTimeout)
Both backends are orchestrated by the same durable Lambda function. The ComputeStrategy interface abstracts startSession(), pollSession(), and stopSession() -- the ECS strategy calls ecs:RunTask / ecs:DescribeTasks / ecs:StopTask directly from the Lambda. No Step Functions are used.
ECS Fargate is currently opt-in -- the EcsAgentCluster construct is present in the stack code but commented out. To enable it, uncomment the ECS blocks in cdk/src/stacks/agent.ts.
Scale-to-zero analysis
Components that scale to zero (pay-per-use)
Component
Billing Model
Idle Cost
DynamoDB (5 tables)
PAY_PER_REQUEST
$0
Lambda (all functions)
Per invocation
$0
API Gateway REST
Per request
$0
ECS Fargate tasks (when enabled)
Per running task
$0 (cluster is free)
AgentCore Runtime
Per session
$0
Bedrock inference
Per token
$0
AgentCore Memory
Proportional to usage
~$0
Cognito
Free tier (50K MAU)
$0
Components that do not scale to zero (always-on)
Component
Est. Monthly Idle Cost
Why
NAT Gateway (1x)
~$32
$0.045/hr fixed charge
VPC Interface Endpoints (7x, 2 AZs)
~$102
$0.01/hr × 7 endpoints × 2 AZs × 730 hrs
WAF v2 Web ACL
~$5
Base monthly charge
CloudWatch Dashboard
~$3
Per-dashboard charge
Secrets Manager (1+ secrets)
~$0.40/secret
Per-secret monthly
CloudWatch Alarms
~$0.10/alarm
Per standard alarm
CloudWatch Logs retention
~$1-5
Storage for retained logs
Total always-on baseline
~$140-150/month
The dominant idle cost is VPC networking: 7 interface endpoints across 2 AZs ($102/month) plus the NAT Gateway ($32/month).
For the full cost model including per-task costs, see COST_MODEL.md.
AWS services inventory
Compute
Service
Used By
Scales to Zero
Bedrock AgentCore Runtime (MicroVMs)
Agent sessions (default)
Yes
ECS Fargate (when enabled)
Agent sessions (opt-in)
Yes
Lambda (Node.js 24, ARM64)
Orchestrator, API handlers, reconciler, custom resources