0

我正在构建一个从 AWS MediaLive 到位于 2 个不同可用区的一组 2x EC2 实例的工作流。EC2 实例是从设置为始终保持 2 个实例运行(每个 AZ 1 个)的自动扩展组中分离出来的。

就其本身而言,这不是问题,只是我需要两个 MediaLive 管道始终指向一个特定实例而不是另一个。您可能知道,每次生成实例时都会更改私有 IP,因此我很难指出 MediaLive 不需要在每次实例更改时都重新启动流。

所以问题是:如何重用相同的私有 IP 并将其分配给在同一可用区中生成的新实例?

考虑到到目前为止,我一直在尝试几种启动模板组合(总是无法启动)并尝试为每个 AZ 创建(并分配)一个 /31 子网,结果发现最多可以创建 /28。

非常感谢,费德里科

4

2 回答 2

1

当一个新实例启动时,它可以运行一个用户数据脚本来检查它在哪里(哪个 AZ),然后为自己分配一个弹性 IP 地址。

我会推荐:

  • 为标识特定可用区的两个弹性 IP 地址中的每一个添加一个标签
  • 在 User Data 脚本中,使用 EC2 元数据服务发现实例的可用区
  • 然后,关联具有匹配标签的弹性 IP 地址

这是一篇具有类似概念的博客文章,它使用用户数据脚本更新了 Route 53 域名:Amazon Route 53:如何在不使用弹性 IP 的情况下自动更新 IP 地址 - 开发社区

于 2021-07-27T01:40:03.267 回答
0

好的,所以在 AWS 控制台多次尝试失败后,我决定尝试不同的方法,并使用用户数据脚本按我的方式工作。

  • 我首先创建了 2 个 ENI(每个我需要的 AZ 一个)并手动分配了静态私有 IP。
  • 然后,我使用用户数据脚本调用了一些 AWS CLI 命令来查找实例 ID 及其可用区。
  • 有了这些信息,我只需在 bash 中将当前 AZ 与正确的 ENI 进行匹配,并使用正确的 AWS CLI 命令将新的网络接口附加到 EC2 实例。

由于预先知道 EC2 实例的最大数量,因此创建足够的网络接口然后手动附加它们直到全部分配是微不足道的。

于 2021-07-28T15:07:14.617 回答