Amazon-Web-Services

EC2 實例無法連接到 ECS 集群

  • October 18, 2020

Helo,我有空的 AWS ECS 集群,但我無法將實例放入其中。我想使用啟動模板和 Autoscaling Group,但我無法分配創建的 EC2 實例。

問題顯示在ecs-agent.log

level=error time=2020-10-17T23:23:37Z msg="Unable to register as a container instance with ECS: RequestError: send request failed\ncaused by: Post \"https://ecs.eu-central-1.amazonaws.com/\": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" module=client.go
level=error time=2020-10-17T23:23:37Z msg="Error registering: RequestError: send request failed\ncaused by: Post \"https://ecs.eu-central-1.amazonaws.com/\": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" module=agent.go

筆記:

  • 使用 AMIami-0eff571a24849e852
  • 集群名稱:debug
  • 地區是eu-central-1
  • 實例沒有公網 IP
  • 實例位於10.10.100.0/24子網 ( 10.10.100.14) 中,VPN 子網位於10.10.0.0/16
  • Instance 可以通過 NAT Instance 訪問 Internet:
[ec2-user@ip-10-10-100-14 ecs]$ ping google.com
PING google.com (216.58.212.142) 56(84) bytes of data.
64 bytes from ams15s21-in-f14.1e100.net (216.58.212.142): icmp_seq=1 ttl=109 time=50.1 ms
64 bytes from ams15s21-in-f142.1e100.net (216.58.212.142): icmp_seq=2 ttl=109 time=40.1 ms
  • 到外部的 DNS 解決得很好
[ec2-user@ip-10-10-100-14 ecs]$ nslookup google.com
Server:     10.10.0.2
Address:    10.10.0.2#53

Non-authoritative answer:
Name:   google.com
Address: 216.58.212.142
  • 可以肯定的是,我已經創建了從實例到 ECS 的 VPC 和子網的端點
  • 我已附加安全組,沒有測試限制
  • ecs.config:
ECS_CLUSTER=debug
ECS_BACKEND_HOST=
[ec2-user@ip-10-10-100-14 ecs]$ nslookup ecs.eu-central-1.amazonaws.com
Server:     10.10.0.2
Address:    10.10.0.2#53

Non-authoritative answer:
Name:   ecs.eu-central-1.amazonaws.com
Address: 10.10.100.219
  • 實例具有一條規則並允許來自 sg 的所有流量的安全組,其中 NAT 實例所在的位置。(因為我這裡還不能上傳圖片,所以我必須使用另一個提供商) https://ibb.co/kh7tb2J

有沒有人有什麼建議?

我已經解決了這個問題。

該問題是由 VPC 端點引起的。我將它們放在錯誤的子網和安全組中。

我已將它們移動到公共子網(在 NAT 實例旁邊)並與 NAT 實例在同一組中(允許來自我的 EC2 所在的 sg 的傳入流量)。

根據文件:

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/vpc-endpoints.html

附加到 VPC 終端節點的安全組必須允許來自 VPC 私有子網的埠 443 上的傳入連接。

引用自:https://serverfault.com/questions/1039134