AWS CodeDeploy 到第二个子网失败

AWS CodeDeploy 到第二个子网失败

最近我在使用 CodeDeploy 和 EC2 实例时遇到了一些问题。我有一个带有两个公共子网的 VPC(VPC:10.0.0.0/16,子网 1:10.0.0.0/24,子网 2:10.0.1.0/24),两个子网都分配了一个互联网网关。我使用正确的角色将 EC2 实例部署到它们两个。但我遇到的问题是,当使用 CodeDeploy 部署到第一个子网(10.0.0.0/24)中的实例时,它可以一直正常工作,但是当我对第二个子网中的实例执行同样的事情时,它仍然卡在待处理状态,没有完成任何步骤,然后超时。两个子网的配置似乎相同,但我不知道为什么 CodeDeploy 可以与第一个子网一起使用,而不能与第二个子网一起使用。

你知道吗?我可以检查什么?失败的原因明显吗?

答案1

从您的描述来看没有什么明显的问题,因此只需检查以下几点:

  • 两个 EC2 实例是否注册在同一个部署组
  • 是个CodeDeploy 代理正在第二个实例上运行?
  • 他们都在同一个安全组
  • 它们都是从相同的 AMI使用相同的自动化脚本? 例如通过 AutoScaling Launch Config?(这是为了确保两个 EC2 100% 相同)
  • 如果你创建另一个例子在第一个子网中- 部署到那里可以吗?(这是为了确定是否任何第二次部署失败或由子网配置导致)
  • 什么部署类型你使用什么?也许第一次部署没有成功完成,所以第二次部署永远不会启动。你可以尝试一次全部在所有实例上同时启动的部署?

要么实例不相同,要么子网具有不同的配置,要么安全设置不相同,或者它们之间存在其他差异。

更新:或者您的 AMI 具有针对特定可用区或子网的内置配置。AMI 应该自动配置启动时从 DHCP 获取。它们不应硬编码任何与网络相关的设置,这样它们就可以在不同的子网和 AZ 中使用。

希望有帮助:)

相关内容