【问题标题】:Rebooting my EC2 instance empties my www/html folder重新启动我的 EC2 实例会清空我的 www/html 文件夹
【发布时间】:2017-08-07 07:26:23
【问题描述】:

我使用 Elastic Beanstalk 创建了一个环境,其中包含一个安装了 PHP 的 EC2 实例:我的文件位于 /var/www/html 中。

首先我允许自动缩放/负载均衡器,但是当触发自动缩放时,它创建了另一个实例并终止了旧实例。然后我意识到,新的不是旧的克隆:我丢失了所有的配置和文件,而我确实在我的 EB 配置中附加了一个 SSD 根卷。

我再次尝试并创建了一个 AMI 映像,该映像包含在我的 EB 配置中(在自定义 AMI ID 中)。这次我的配置仍然存在,但我的文件夹 /var/www/html 被清空并替换为默认的 index.html 文件。

1. 它应该发生吗?我以为自动缩放创建了实例的克隆?

所以我决定禁用自动缩放/负载均衡器并使用单实例模式。但是,即使我重新启动我的 EC2 实例,配置也会保留,但我的整个文件夹 /var/www/html 再次被清空,并且只有默认文件在里面。

2. 为什么?我的实例附加了一个 EBS 卷(EB 自动执行此操作),所以如果我正确理解它的工作原理,它不应该发生。

也许两者都是同一个问题,但我真的不明白为什么我的文件被删除了。

非常感谢您的帮助! 罗曼

【问题讨论】:

  • “但是,即使我重新启动我的 EC2 实例,配置也会保留,但我的整个文件夹 /var/www/html 被清空了”:仔细检查真的重新启动还是停止启动?行为可能不同。

标签: amazon-ec2 amazon-elastic-beanstalk autoscaling


【解决方案1】:

Autoscaling 使用 AMI 启动新实例,AMI 只不过是 EC2 实例在某个时间点的快照。因此,每次 Autoscaling 启动新实例时,必须在启动时应用 AMI 与当前所需状态之间的任何差异,然后才能接收新流量。

ElasticBeanstalk 提供了用于管理集成到 Autoscaling 动态中的应用程序部署以及管理实例配置的工具。有时,这些配置变得过于复杂,无法在使用 EB 工具进行引导期间实现,而此时自定义 AMI 会派上用场。

如果您通过 SSH 连接到自动扩展实例并开始手动执行 ElasticBeanstalk 工具堆栈范围之外的操作,那么所有这些更改都将在下一次自动扩展事件中丢失,除非您从实例保存更新的 AMI 并将其应用到您的自动扩展组.

【讨论】:

  • 非常清楚,谢谢。然后我将使用 eb-config 文件进行配置,以确保在每个新实例中都包含正确的内容和配置。
猜你喜欢
  • 2010-10-12
  • 2021-06-11
  • 1970-01-01
  • 2014-03-16
  • 1970-01-01
  • 1970-01-01
  • 2011-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多