ECS Fargate上的MCP服务器部署

在AWS ECS Fargate上部署MCP服务器,通过API Gateway提供公共HTTPS端点,并支持EFS访问(ChromaDB)。

  • by NathanBJ
  • HCL
  • 本地部署
  • 更新于
在 GitHub 查看 NathanBJ/BKHK-mcp-server-terraform-archi

使用说明

带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 输出值