在 Elastic Beanstalk EC2 上使用 EBS 卷的问题

Issues using EBS Volume on an Elastic Beanstalk EC2

我已将 EBS 卷安装到我的 Elastic Beanstalk EC2 上,将其用作永久数据库。我知道 Elastic Beanstalk 会时不时地将自己滚动到一个新环境,但问题是有时它会更改区域(例如,从 eu-west-3a 到 eu-west-3c)导致我的 EBS 卷分离!

  1. 如何防止我的 EC2 实例自行突然更改区域?或者,将其产卵限制在一个区域?每次发生这种情况都使用快照迁移我的 EBS 卷是一件很烦人的事情。

  2. 如何自动将我的 EBS 卷重新附加到我的 EC2 实例? .ebextensions 是答案吗?我真的想不通那个……:(

提前致谢!

  1. How can I keep my EC2 instance from abruptly changing region by itself?

您可以在 aws:autoscaling:asg 命名空间中使用 Custom Availability Zones 选项将 Auto Scaling 组 (ASG) 限制为 一个特定可用区 (AZ)。这将确保当一个实例终止并开始替换时,它将被放置在同一个 AZ 中。请务必将可用区设置为与您的额外 EBS 卷相同的可用区。 缺点 是您的应用程序将被限制在一个可用区内,因此如果出现问题,您的应用程序将下线。

  1. How can I re-attach my EBS Volume to my EC2 instance automatically? Is .ebextensions the answer?

有几种方法可以做到这一点。 .ebextensions 将是其中之一。您将必须提供一个 脚本,它将卷重新附加到实例并相应地安装它 。可以找到示例脚本 .

另一种方法是使用 Amazon EC2 Auto Scaling Lifecycle Hooks。设置完成后,当 ASG 启动新实例时,您可以使用 lambda 函数附加卷。您还需要确保它已安装在实例上。因此可能 .ebextensions 会更容易使用。

P.S.

Availability Zone,不是Region