最近我的 EC2 出现了一些奇怪的行为。有时(并非总是如此),当我的自动扩展组创建新的 EC2 时,EC2 无法运行其用户数据,因为 yum 已损坏,无法获取任何内容。
但我仍可以通过 SSH 连接到我的 EC2,自己运行用户数据,然后突然一切都正常工作了。这意味着它不太可能是代理问题(我认为是)。
这是我从 /var/log/cloud-init-out 获得的跟踪: 日志
(抱歉,链接不对,但当我尝试复制到 Stack 时,一切都乱了。。)
如果你有任何想法
谢谢。
答案1
日志显示:
Cannot find a valid baseurl for repo: amzn2-core/2/x86_64 Could not retrieve mirrorlist http://amazonlinux.eu-west-1.amazonaws.com/2/core/latest/x86_64/mirror.list error was 12: Timeout on http://amazonlinux.eu-west-1.amazonaws.com/2/core/latest/x86_64/mirror.list: (28, 'Connection timed out after 5000 milliseconds')
因此user_data
执行失败是yum
因为与存储库的连接超时。这就是问题所在。
如果这种情况经常发生,而且由于这是一个 aws 托管的存储库,我会排除存储库经常不可用的情况,并开始在您的 aws 环境中寻找问题。
但是,根据提供的信息,我们只能猜测这里的问题是什么。运行 user_data 脚本的 ASG 中的实例如何连接到互联网?也许中间有一个 NAT 网关或防火墙,导致与 repo 的连接出现问题。
启用自动扩展组进行扩展的最可靠和最快捷的方法是自定义AMI
并在 AMI 中安装这些包。这使该过程对第三方服务故障更具弹性。