跳至內容

當我的 EC2 執行個體無法與 Elastic Beanstalk 通訊時,該如何解決我收到的 "failed to communicate" 錯誤訊息?

2 分的閱讀內容
0

當我嘗試建立 AWS Elastic Beanstalk 環境時,收到 "failed to communicate" 錯誤訊息。

簡短說明

您必須設定您的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,以啟動前往 Elastic Beanstalk 和其他服務端點的傳出連線。

如果您嘗試在沒有傳出連線的情況下建立 Elastic Beanstalk 環境,則會收到下列錯誤訊息:

"The EC2 instances failed to communicate with AWS Elastic Beanstalk, either because of configuration problems with the VPC or a failed EC2 instance.Check your VPC configuration and try launching the environment again."

若要解決此錯誤,請確認您已將 EC2 執行個體設定為透過下列其中一個端點啟動傳出連線:

解決方法

適用於在公有子網路中設定的 EC2 執行個體

如果您的執行個體無法連線至網際網路,請檢查您是否已將網際網路閘道附加至 VPC。另請檢查您是否已將路由表設定為具有一條指向網際網路閘道的 0.0.0.0/0 路由。

請確保您已將公有子網路與具有此預設路由的正確路由表建立關聯。

您必須將執行個體設為具有傳出 HTTPS (443) 和 HTTP (80) 存取權限,以與 AWS 服務通訊並下載套件。請確保您的安全群組允許前往 0.0.0.0/0 的連接埠上的傳出流量。針對傳入流量,請允許您的負載平衡器在應用程式連接埠上連線至執行個體。

如果您使用的是自訂網路存取控制清單 (網路 ACL),請確保您允許連接埠 80 和 443 上的傳出流量,且傳入回傳流量可通過暫時連接埠 (1024-65535)。使用預設網路 ACL 是最佳實務,因為它允許所有流量。

適用於在私有子網路中設定的 EC2 執行個體

您必須將 NAT 閘道部署在已附加彈性 IP 位址的公有子網路中。請確保您將私有子網路的 0.0.0.0/0 路由表指向 NAT 閘道,並將公有子網路 (NAT 閘道所在位置) 的 0.0.0.0/0 路由指向網際網路閘道。如需更多資訊,請參閱 Troubleshoot NAT gateways (對 NAT 閘道進行疑難排解)。

如果路由遺失或不正確,您可能會遇到連線失敗。若要解決此問題,請確認您的私有子網路會將 0.0.0.0/0 流量路由至 NAT 閘道,且您會將 NAT 閘道所在的公有子網路路由將 0.0.0.0/0 流量路由至網際網路閘道。

您必須為私有執行個體設定連接埠 80 和 443 的傳出存取權限,以連線至 AWS 服務並下載套件。如果您使用的是 NAT 執行個體而非 NAT 閘道,請確保您已設定 NAT 執行個體的安全群組,以允許來自私有子網路的傳入流量以及前往網際網路的傳出流量。

如果沒有正確的 DNS 設定,那麼即使路由正確,執行個體也無法解析 AWS 服務端點。若要解決此問題,請啟用 DNS 解析和 DNS 主機名稱

適用於透過 VPC 端點設定的 EC2 執行個體

請確保您已設定下列 VPC 端點,以正確啟動環境:

  • Amazon Simple Queue Service (Amazon SQS)
  • AWS CloudFormation
  • Elastic Beanstalk (elasticbeanstalk.region.amazonaws.com)
  • Elastic Beanstalk Health (elasticbeanstalk-health.region.amazonaws.com)
  • Amazon Simple Storage Service (Amazon S3) 閘道端點

注意: 如果您的環境必須與其他 AWS 服務互動,請為這些服務建立 VPC 端點。

VPC 端點必須具有允許執行個體子網路 HTTPS (443) 流量的安全群組。請確保您為 VPC 端點建立安全群組,其傳入規則須允許來自您私有子網路 CIDR 區塊或執行個體安全群組的連接埠 443 流量。

在介面端點上啟用私有 DNS,並確保您已為 VPC 啟用 DNS 解析和 DNS 主機名稱。

相關資訊

為什麼我無法使用 NAT 將私有子網路中的 EC2 執行個體連線到網際網路?

AWS 官方已更新 7 個月前