AWS:如何在引导时保证静态私有 IP 的可用性

AWS : How to guarantee availability of static Private IP while bootstrapping

我正在启动 EMR 集群,在引导时我正在为其主节点分配一个私有 IP 地址。因此,这在集群启动时关联,并在集群终止时释放。 我如何保证此 IP 始终可用于我的集群,并且即使在不使用时也没有其他进程获取它。

获得此 Ip 后,我使用 Apache livy REST API

将我的 spark jar 提交到此 IP 的 8998 端口

所以我的用例是在主节点上公开 IP,以便 LIVY APIs 可以将作业提交到 EMR。

无法为群集请求特定的私有 IP 地址。

相反,我建议:

  • 使用集群的记录集创建 Route 53 私有托管区域(例如 cluster.private
  • 启动EMR集群后,更新主节点IP地址的记录集
  • 让 Apache Livy 通过 DNS 名称而不是 IP 地址引用集群

可以通过编程方式更新记录集。脚本会做类似的事情:

  • 致电list_clusters()
  • 对于每个集群,调用 describe_cluster()
  • 寻找标签(例如DNS=cluster.private
  • 如果 DNS 标签存在:
    • 更新 Route 53 中的命名记录集以使用 A-Record 指向主节点的 IP 地址

此脚本需要在集群启动后触发。