MCP 测试环境
利用AWS VPC流日志和Cloudflare集成的多区域测试基础设施,用于生成和分析网络流量模式。
🎯 目的
此仓库提供了一个完整的测试环境,用于:
- 在多个地区生成真实的HTTP/HTTPS流量模式
- 生成VPC流量日志以进行网络分析和监控
- 测试Cloudflare MCP与AWS基础设施的集成
- 验证安全控制措施和网络可见性工具
📁 仓库结构
mcp-test-environment/
├── test-api/ # Test API infrastructure and application
│ ├── main.tf # Terraform configuration
│ ├── app.py # FastAPI application
│ ├── Dockerfile # Container definition
│ └── README.md # Detailed documentation
│
├── traffic-generators/ # Multi-region Lambda traffic generators
│ ├── traffic-generators.tf # Terraform configuration
│ ├── traffic_generator.py # Lambda function code
│ └── README.md # Detailed documentation
│
└── scripts/ # Deployment automation
├── deploy-api.sh # Deploy Test API
└── deploy-traffic-generators.sh🚀 快速入门
先决条件
- 已使用适当凭据配置的 AWS CLI
- Terraform 版本 >= 1.6
- Docker(在WSL2上使用buildx进行ARM64架构构建)
- 在Cloudflare中配置的域名
1. 部署测试API
# Configure
cd test-api
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your values
# Deploy
cd ..
./scripts/deploy-api.sh2. 部署流量生成器(可选)
# Configure
cd traffic-generators
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your values
# Deploy
cd ..
./scripts/deploy-traffic-generators.sh请参阅各组件的README文件以获取详细说明:
🏗️ 建筑学
测试API
- FastAPI 在ECS Fargate(ARM64/Graviton2)上运行的应用程序
- 应用负载均衡器 使用HTTPS终止(或:在HTTPS终止点)
- Cloudflare 用于DDoS防护和分析的代理
- VPC 流日志 以Parquet格式捕获到S3(存储服务)
流量生成器
- Lambda 函数 部署在4个AWS区域
- EventBridge(事件总线) 每5分钟计划执行一次
- 可配置的流量模式 (正常,突发,易出错)
- 多区域 逼真的交通模拟
🔐 安全特性
- 通过Cloudflare和ALB使用TLS 1.3加密
- 非root容器执行
- 安全组最小权限访问
- ECR图像扫描已启用
- 用于网络监控的VPC流日志
- 加密的S3存储(AES-256)
- 没有硬编码的凭据
📊 监控
- CloudWatch Logs(云监视日志) 用于应用程序和容器日志
- CloudWatch 指标 用于ECS和Lambda指标
- VPC 流日志 用于网络流量分析
- ALB访问日志 用于HTTP请求详情
- Cloudflare 分析(或:Cloudflare 数据分析) 用于边缘流量洞察
💰 成本估算
测试API(全天候运行):
- ECS Fargate(2个任务,ARM64架构):约15美元/月
- ALB:约20美元/月
- S3 + 流日志:约5美元/月
- 总计:约40美元/月
流量生成器(可选):
- Lambda 调用次数:每月约 2 次
- 总计:约2美元/月
🧹 清理
# Destroy traffic generators
cd traffic-generators
terraform destroy
# Destroy test API
cd ../test-api
terraform destroy📝 使用场景
- 网络安全测试 - 验证防火墙规则和安全控制措施
- MCP 集成测试 - 使用真实流量模式测试Cloudflare MCP
- 流量日志分析 - 开发并测试流量日志解析工具
- 性能测试 - 使用真实流量对负载测试应用程序进行测试
- 培训 - 学习AWS网络、ECS(亚马逊弹性容器服务)和基础设施即代码
🛠️ 开发
本地测试
# Test API locally
cd test-api
docker build -t test-api:latest .
docker run -p 8080:8080 test-api:latest
# Test traffic generator locally
cd traffic-generators
python3 traffic_generator.pyWSL2 / Windows 用户
对于在WSL2上进行的ARM64构建,部署脚本使用 docker buildx确保Docker Desktop已启用BuildKit。
📚 额外资源
🤝 贡献
- 创建一个特性分支
- 用描述性的提交信息进行更改
- 在单独的AWS账户中进行测试部署
- 提交包含详细描述的拉取请求
📄 许可证
内部使用 - 网络安全部门
______________________________________________________________________
维护者: Kwiatriot(这个词汇在常规语境下并不常见,可能是特定领域或创造性的词汇,直接翻译可能无对应中文词汇,但尝试给出一种可能的解释)可以理解为“四重奏的某种变体”或“四元素的组合”,不过具体含义需结合上下文或特定领域来确定。在缺乏具体上下文的情况下,这是一个较为宽泛的翻译。\ 最后更新时间: 2025年10月\ Terraform 版本: 大于等于1.6\ AWS 提供商: ~> 6.15.0
