多区域扩展计划
使用Strands SDK构建的复杂多代理系统,使用AWS知识图MCP(模型上下文协议)加速AWS基础设施在多个地区的扩展。
概述
该项目演示了如何利用AI代理和AWS知识图谱智能地规划和执行多区域基础设施部署。该系统分析现有的AWS资源,确定区域服务可用性差距,并制定全面的扩展策略。
主要特点
- 多代理架构:扩张规划不同方面的专业代理
- AWS知识图谱集成:利用MCP进行全面的服务可用性分析
- 云层形成分析:发现并分析现有的基础设施模式
- CloudTrail智能:从操作数据中提取使用模式
- 区域差距分析:确定不同地区的服务可用性差异
- 成本优化:为多区域部署提供定价分析
- 自动报告:生成详细的扩展规划报告
建筑
该系统由几个专业代理组成:
- CFN浏览器:分析CloudFormation堆栈和资源
- CloudTrail浏览器:从CloudTrail日志中提取服务使用模式
- 航点浏览器:确定区域服务可用性差距
- 多区域扩展计划:精心策划全面的扩张计划
- 分析撰稿人:将调查结果合并为结构化报告
- 定价浏览器:分析多区域部署的成本影响
- 报告生成器:创建最终的扩展规划文档
先决条件
- Python>=3.10
- 已安装AWS CLI
- 具有所需权限的IAM用户
- Strands SDK(通过requirements.txt自动安装)
安装
- 克隆存储库:
git clone
cd multi-region-expansion-planner- 创建虚拟环境:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txtAWS配置文件配置
创建具有以下权限的IAM用户
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CloudFormationAnalysis",
"Effect": "Allow",
"Action": [
"cloudformation:ListStacks",
"cloudformation:DescribeStacks",
"cloudformation:ListStackResources",
"cloudformation:DescribeStackResources"
],
"Resource": "*"
},
{
"Sid": "CloudTrailAnalysis",
"Effect": "Allow",
"Action": [
"cloudtrail:LookupEvents"
],
"Resource": "*"
},
{
"Sid": "BedrockAccess",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": [
"arn:aws:bedrock:*:*:inference-profile/us.anthropic.claude-sonnet-4-20250514-v1:0"
]
}
]
}设置步骤
- AWS控制台→ IAM → 用户→ 创建用户
- 附加策略→ 创建策略→ JSON选项卡
- 粘贴上面的策略→ 审查→ 创建策略
- 将策略附加到您的用户
- 安全凭据→ 创建访问密钥→ 命令行界面(CLI)
- 下载或复制/粘贴AWS CLI配置的凭据
aws configure --profile region-planner-user出现提示时,输入:
- AWS访问密钥ID:IAM用户的访问密钥
- AWS秘密访问密钥:IAM用户的密钥
- 默认区域名称:us-east-1(或您首选的来源地区)
- 默认输出格式:json
测试配置文件配置
# Verify credentials work
aws sts get-caller-identity --profile region-planner-user代码配置
- 在中配置基岩模型提供商帐户AWS配置文件以进行身份验证
src/utils/config.py:
class Constants:
# Replace with your actual account ID to use Bedrock Models
INFRA_ACCOUNT = "123456789012"
# AWS CLI profile for auth
BEDROCK_AWS_CLI_PROFILE = "bedrock-profile" - 为资源发现和区域扩展规划配置AWS帐户访问权限。添加AWS配置文件以访问帐户和目标区域进行规划。
class ExpansionPlaningInputs:
PROFILE_NAME = 'your-aws-profile'
SOURCE_REGION = 'us-east-1'
TARGET_REGIONS = ['eu-central-1', 'ap-southeast-1', 'ca-central-1']用法
清理之前的分析
在运行新的分析之前,您可以清理以前的结果:
./cleanup.sh基本用法
运行完整的扩展规划工作流程:
python src/main.py这将:
- 分析源区域中的CloudFormation资源
- 从CloudTrail中提取服务使用模式
- 确定目标地区的服务可用性差距
- 生成全面的扩展计划报告
个人代理使用
您还可以运行单个代理进行特定分析:
# Run CFN analysis only
python src/agents/cfn_explorer.py
# Run regional gap analysis
python src/agents/waypoint_explorer.py
# Generate expansion plan
python src/agents/multi_region_expansion_planner.py输出
系统在 src/analysis_results/ 目录:
cfn_explorer_result.json:CloudFormation资源分析cloudtrail_explorer_result.json:服务使用模式waypoint_explorer__result.json:区域可用性分析expansion_planning_report.md:最终扩建规划报告multi_region_expansion_planning_report.md:详细的技术分析
AWS知识图谱MCP集成
该项目展示了AWS知识图谱MCP服务器在以下方面的强大功能:
- 服务可用性查询:有关跨地区AWS服务可用性的实时信息
- 功能兼容性分析:了解区域特征差异
- 合规和监管映射:区域合规要求
- 成本优化洞察:区域定价变化和优化机会
项目结构
├── src/
│ ├── agents/ # Specialized AI agents
│ │ ├── cfn_explorer.py
│ │ ├── cloudtrail_explorer.py
│ │ ├── waypoint_explorer.py
│ │ ├── multi_region_expansion_planner.py
│ │ └── ...
│ ├── analysis_results/ # Generated analysis outputs
│ ├── utils/ # Configuration and utilities
│ │ ├── config.py
│ │ ├── planner_inputs.py
│ │ └── prompts.py
│ └── main.py # Main orchestration script
├── tests/ # Test files
├── requirements.txt # Python dependencies
└── README.md # This file主要优势
- 加速规划:将多区域扩展计划从数周缩短到数小时
- 综合分析:考虑技术、运营和成本因素
- 风险缓解:在部署之前识别潜在问题
- 最佳实践:结合了AWS良好架构原则
- 自动化就绪:生成可操作的部署计划
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
支持
如有疑问或问题:
- 检查存储库中的现有问题
- 创建包含详细信息的新问题
- 包括相关日志文件和配置详细信息
致谢
- 使用Strands SDK构建多代理编排
- 由AWS知识图谱MCP提供支持,实现全面的服务智能
- 利用AWS CloudFormation和CloudTrail进行基础设施分析
