如何在ECS上为运行UDP服务的容器添加别名?

时间:2017-05-31 16:52:07

标签: amazon-web-services amazon-ecs

我试图在ECS的容器中运行 logstash ,这将通过UDP侦听日志消息。

我希望我的应用能够向例如 logging.mydomain.com ,无需知道可能发生变化的基础IP。

通常我会将CNAME称为ELB,但ELB不支持UDP。我是否需要在此处进行某种服务发现,或者我能做些什么更简单的事情?

1 个答案:

答案 0 :(得分:1)

我建议使用Amazon Route 53 DNS循环来解决此问题。

这些作品是:

  • 附加到Cloudwatch事件流的Lambda函数,用于ECS中的logstash服务。只要有任务状态更改,就会调用此lambda函数,因此它会在启动或停止新的logstash任务时运行并更新Route 53记录
  • 当您的应用程序解析dns记录时,它将获得一个循环样式的IP地址,并使用其IP直接与托管logstash容器的实例进行通信。
  • 您的ECS服务需要具有静态分配的主机端口,而不是动态端口。

有一个参考架构更详细地描述了这个,并提供了示例代码:https://aws.amazon.com/blogs/compute/service-discovery-for-amazon-ecs-using-dns/