在ECS上部署Cassandra?

时间:2017-05-09 17:20:37

标签: amazon-web-services docker cassandra amazon-ecs

我正在尝试在AWS ECS上部署Cassandra作为docker容器。 单个节点很容易完成,但现在我正在尝试为它创建一个集群。

Cassandra需要固定的IP地址,至少对于种子节点来说,需要将其传递给集群中的所有节点。 Cassandra无法使用ELB地址,因为ELB名称解析为与docker主机本身不同的ip。

所以基本上我需要能够强制AWS将图像部署到特定的实例/ host / ip。这样我就可以在运行docker镜像时传递正确的配置。

我可以使用RunTask api并将其传递给PlacementConstraint,并根据IP将主机限制为单个主机吗? PrivateIp是此接口中EC2实例的属性吗?

你有什么其他好的想法我能做到吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以在种子列表中使用主机名。只要确保您的种子将使用这些名称即可。另外,如果种子停止并且解析为另一个IP,则需要替换它(但这对于更改其IP的任何节点都是如此)

答案 1 :(得分:1)

如果使用awsvpc网络模式添加了种子ecs容器,则每个任务将获得自己的eni。启动种子节点后,您可以使用“ aws describe-tasks” API获取其IP地址并相应地更新您的Cassandra.yml