我在 AWS 中使用Elastic Beanstalk (EB)
,遇到了一个严重的问题。当我的服务器宕机时,EB 会删除其 EC2 实例并再次创建另一个实例。我猜这就是 EB 处理服务器宕机问题的方式,以便网站继续运行。
问题是我丢失了安装在 EC2 上的 SSL,并且当服务器被移除并再次创建时,EC2 的 IP 会发生变化。尽管 EB 移除并再次创建了新的 EC2 实例,我该如何处理这些问题?
答案1
这是预期行为。Beanstalk 使用自动缩放来管理实例,如果出现问题,自动缩放将终止实例。
如果要确保启动的新实例以完全相同的方式配置,则需要引导所有配置。您可以使用 ebextensions 来执行此操作。 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html
您永远不应该依赖 Beanstalk 的手动配置。如果您需要在实例运行之前对其进行某些操作,则需要编写一个脚本并将其包含在 ebextensions 中。将脚本添加到“文件”部分的 /tmp 中,然后在“命令”或“容器命令”部分中,您可以执行该脚本。
要包含 ebextensions,请在源代码名称“.ebextensions”的根级别创建一个目录。此目录中的文件应以“.config”扩展名结尾,并且都是 yaml 文件。 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html