You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CloudFormation创建MongoDB Atlas集群遇「内部失败」错误排查

问题解答

1. MongoDB::Atlas::*系列CloudFormation资源出现「Internal Failure」的常见原因

  • 权限配置不足:Secrets Manager中的Atlas API密钥缺少atlas.clusters.create、atlas.networkContainers.create等核心权限;或CloudFormation执行角色无读取Secrets Manager、调用Atlas API的权限。
  • 资源依赖顺序错误:比如先创建集群再创建网络容器,导致集群无法关联网络环境,触发API调用失败。
  • 参数不兼容/非法:Atlas CIDR与VPC CIDR重叠;指定的MongoDB版本与实例类型不兼容;目标区域不支持所选实例规格;参数格式不符合Atlas API要求。
  • API限流触发:短时间内重复创建资源,触发Atlas API的速率限制,导致内部调用失败。
  • 现有资源冲突:Atlas项目中已存在同名集群、网络容器或对等连接,与CloudFormation创建逻辑冲突。
  • CFN扩展版本问题:使用的MongoDB Atlas CloudFormation注册扩展版本过旧,存在兼容性bug。

2. 模板中存在的遗漏与错误

  • 缺失PrivateRouteTable资源:RouteToAtlas引用的PrivateRouteTable未在模板中定义,直接导致路由创建失败。
  • 资源依赖顺序颠倒:NetworkContainer依赖AtlasCluster,正确逻辑应为先创建网络容器,再创建集群(集群需关联网络容器ID),否则集群无法部署到指定私有网络。
  • VPC对等连接配置冗余且错误:无需手动创建AcceptVpcPeering,MongoDB::Atlas::NetworkPeering会自动处理AWS侧的对等连接接受;且PeerVpcId引用NetworkPeering.ConnectionId是错误的,该属性是Atlas侧对等连接ID,并非VPC ID。
  • 集群未关联网络容器:AtlasCluster的ReplicationSpecs[].AdvancedRegionConfigs未指定NetworkContainerId,导致集群不会部署到创建的网络容器内,后续对等连接无法生效。
  • 存储类型不兼容:ElectableSpecs.EbsVolumeType设置为STANDARD,但M10及以上实例通常需使用GP2或GP3,部分区域/规格不支持标准存储。
  • 冗余资源:AtlasIAMRole未被任何资源引用,属于无效配置。

3. 指定集群实例类型为Flex的方法

不能直接使用FLEX作为实例类型,需指定具体的Flex规格(如M20_FLEX、M30_FLEX等),同时必须配置DiskSizeGB(Flex实例存储容量可自定义)。示例配置如下:

ElectableSpecs:
  InstanceSize: "M20_FLEX"
  DiskSizeGB: 20
  EbsVolumeType: "GP3"

注意:需确保目标区域支持所选Flex规格,且MongoDB版本与Flex实例兼容。


内容的提问来源于stack exchange,提问作者Sangeetha Thiyagarajan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 21:44:53