2017-05-31 57 views
4

我試圖運行logstash在一個針對ECS的容器中,該容器將通過UDP監聽日誌消息。如何在ECS上爲運行UDP服務的容器設置別名?

我希望我的應用能夠發送消息給logging.mydomain.com無需知道可能更改的底層IP。

通常我會CNAME一個ELB,但ELB不支持UDP。我需要在這裏做一些服務發現還是有更簡單的我可以做的?

回答

0

我會推薦使用Amazon Route 53 DNS循環來解決這個問題。

的作品是:

  • 連接到CloudWatch的事件流,用於在ECS您logstash服務lambda函數。只要有任務狀態發生變化就會調用此lambda函數,因此當新的logstash任務啓動或停止並更新Route 53記錄時,它將運行。
  • 當您的應用程序解析dns記錄時,將會給出其中一個IP地址採用循環方式,並使用IP直接與託管logstash容器的實例進行通信。
  • 您的ECS服務需要有一個靜態分配的主機端口,而不是動態端口。

有,在更詳細地描述這個參考架構,而且對你的示例代碼:https://aws.amazon.com/blogs/compute/service-discovery-for-amazon-ecs-using-dns/

+0

我覺得有使用平面CNAME記錄和容器有一些限制 - 每1個IP地址1容器(假設服務在同一端口上監聽)。 SRV記錄的使用可能在客戶端的實施方面存在限制。 – karnauskas

+0

正確,您需要使用DNS記錄方法將靜態分配的主機端口限制爲每個主機一個容器。你也可以調查Weaveworks或Consul。 – nathanpeck

相關問題