旧数据仍来自 Auto Scaling 组中的 EC2 实例

Posted

技术标签:

【中文标题】旧数据仍来自 Auto Scaling 组中的 EC2 实例【英文标题】:Old data still coming from EC2 instance in Auto Scaling group 【发布时间】:2020-11-12 19:35:59 【问题描述】:

我在实例到来后创建了 ELB(负载平衡)和 Auto Scaling Group (ASG) '这是我通过 putty 登录后工作正常的第一个实例更改了“index.html”文件更新了 index.html(“这是我的第二个实例更新”)文件,然后删除了实例,新实例即将到来,旧数据只来了——这里如何恢复新数据我的意思是更新的实例, 我想要“这是我的第二个实例已更新”

【问题讨论】:

您的问题写得很不清楚。我建议您尝试写一个明确的问题,并清楚地描述您所做的事情。 很难理解您的问题,但听起来您的浏览器正在缓存内容。您可以尝试清除浏览器中的缓存,或尝试使用其他浏览器来验证更新。 所以您在正在运行的实例上手动编辑了一个文件,然后终止了该实例并等待 ASG 启动一个新实例?如果是,您为什么希望您的手动编辑能够跨实例传播? 感谢您理解我的问题,然后 AGS 带来更新数据的新实例,如何做步骤请解释 【参考方案1】:

我不确定我是否关注过,但我认为您的意思是: 您手动 SSH 到实例并更新 index.html,然后 AutoScaling 启动一个新实例,它没有这些更改。对吗?

AutoScaling 无法知道您在实例中做了什么。 AWS 无法在您的实例内部达到峰值并查看您的数据,这将是一个相当大的隐私泄露。

进行更新时,您需要以某种方式修改启动模板或启动配置,以确保新实例具有更新。要么:

    使用更改创建新的 AMI 将更改放入用户数据脚本中

或者,您可以在这方面获得某种自动化帮助,例如:

    拥有一个从 S3 存储桶下载最新文件的用户数据脚本。只要确保在进行更改时更新此存储桶中的网站文件即可 使用某种 CI/CD 管道工具,例如 AWS CodeDeploy。这会自动将更改推送到现有实例,并确保使用最新代码启动新实例。

【讨论】:

以上是关于旧数据仍来自 Auto Scaling 组中的 EC2 实例的主要内容,如果未能解决你的问题,请参考以下文章

AWS CDK 如何覆盖 Auto Scaling 组中的默认启动配置?

网络负载均衡器目标组中的 AWS Auto Scaling 目标

如何在 Amazon Auto-scaling 组中的多个 ec2 实例上部署和更新应用程序?

在关闭之前检查 Auto Scaling 组中的 EC2 实例是不是有任何用户在使用它

如何在 CloudFormation 模板中禁用对 Auto Scaling 组中实例的详细监控?

如何获取 Auto Scaling 组中实例的 IP