是否可以在aws中使用静态IP进行自动缩放?新创建的示例应具有预定义的ip或从预定义ip池中选取。
我们正在尝试在生产中设置zookeeper,有5个zookeeper示例。每一个都应该有一个静态ip,在我们使用的kafka的ami/数据包中硬编码。它还应该支持自动缩放,这样,如果zookeeper节点中的一个发生故障,就会产生一个具有相同ip或来自ip池的新节点。为此,我们决定每个自动缩放组使用一个zoo keeper示例,但问题在于ip。
如果这是错误的方法,请建议正确的方法。提前谢谢!
是否可以在aws中使用静态IP进行自动缩放?新创建的示例应具有预定义的ip或从预定义ip池中选取。
我们正在尝试在生产中设置zookeeper,有5个zookeeper示例。每一个都应该有一个静态ip,在我们使用的kafka的ami/数据包中硬编码。它还应该支持自动缩放,这样,如果zookeeper节点中的一个发生故障,就会产生一个具有相同ip或来自ip池的新节点。为此,我们决定每个自动缩放组使用一个zoo keeper示例,但问题在于ip。
如果这是错误的方法,请建议正确的方法。提前谢谢!
1条答案
按热度按时间piok6c0g1#
一种方法是在每个示例上维护一个用户数据脚本,并让每个示例从为此目的分配的一组eip中为自己分配一个弹性ip。此用户数据脚本将在asgs启动配置中引用,并在启动时运行。
假设用户脚本名为“/scripts/assigneip.sh”,使用aws cli可以让它查看池中哪些可用,哪些不可用(已经在使用)。然后它将为自己分配一个可用的eip。
为了便于ip管理,您可以将ip池保存在s3上一个简单的文本属性文件中,并在示例启动时让示例下载并查阅该列表。
请记住,每个示例都需要一个待分配的iam示例配置文件,该配置文件将允许每个示例查阅EIP并将其分配给自身。