带API网关的ECS Fargate上的MCP服务器
在AWS ECS Fargate上部署MCP服务器,通过API网关使用EFS访问(ChromaDB)和公共HTTPS端点。
建筑
MCP Client (HTTPS)
│
▼
┌─────────────────────┐
│ API Gateway │ ← Public HTTPS (~$1/mo)
│ HTTP API │
└─────────┬───────────┘
│ VPC Link
▼
┌─────────────────────┐
│ Cloud Map │ ← Service Discovery
└─────────┬───────────┘
▼
┌─────────────────────┐
│ ECS Fargate │ ← With EFS mount
│ (MCP Server) │
└─────────┬───────────┘
▼
┌─────────────────────┐
│ EFS (ChromaDB) │
└─────────────────────┘
快速开始
# 1. Configure
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your values
# 2. Deploy
terraform init
terraform plan
terraform apply
# 3. Get URL
terraform output mcp_server_url
成本估算
| 组件 | 成本 |
|---|
| API网关 | 约1美元/百万请求 |
| 云图 | ~0.10美元/月 |
| 云服务器Fargate(0.5 vCPU,1GB) | ~0.03美元/小时 |
| 总计(运行中,低流量) | 约22-25美元/月 |
| 总计(缩放为0) | 约1-3美元/月 |
运营
查看日志
aws logs tail /ecs/mcp-server-dev --follow
连接到容器(调试)
TASK_ID=$(aws ecs list-tasks --cluster mcp-server-dev --service-name mcp-server-dev --query 'taskArns[0]' --output text | rev | cut -d'/' -f1 | rev)
aws ecs execute-command --cluster mcp-server-dev --task $TASK_ID --container app --interactive --command "/bin/sh"
部署新映像
aws ecs update-service --cluster mcp-server-dev --service mcp-server-dev --force-new-deployment
缩放到零
aws ecs update-service --cluster mcp-server-dev --service mcp-server-dev --desired-count 0
扩大规模
aws ecs update-service --cluster mcp-server-dev --service mcp-server-dev --desired-count 1
文件
| 文件 | 描述 |
|---|
providers.tf | AWS提供商配置 |
variables.tf | 输入变量 |
terraform.tfvars.example | 配置示例 |
data.tf | 参考现有资源 |
iam.tf | ECS的IAM角色 |
security_groups.tf | 安全组 |
cloudwatch.tf | 日志组 |
ecs.tf | ECS集群、任务、服务 |
api_gateway.tf | API网关+VPC链接+云地图 |
outputs.tf | 输出值 |