具有 AWS Elastic Beanstalk 的應用程式負載平衡器 - 目標群組

具有 AWS Elastic Beanstalk 的應用程式負載平衡器 - 目標群組

我正在使用一個應用程式負載平衡器AWS 彈性豆莖

AWS 自動伺服器更新後,我收到 503 服務暫時無法使用頁面。 (僅此,伺服器負載接近零 - 單一實例)

[在 64 位元 Amazon Linux/2.9.2 上執行的 PHP 7.3(從 2.9.1 自動升級)]

環境本身顯示出健康。

我正在將應用程式負載平衡器用於 HTTPS 和未來的擴展。

事實證明,AWS EB 建立了一個新的 EC2 執行個體並終止了前一個實例,因此在應用程式負載平衡器指向的目標群組中沒有註冊任何執行個體。

如何配置 AWS 以取代 Elastic Beanstalk EC2 執行個體自動註冊到目標群組對於應用程式負載平衡器?

答案1

這是不久前的事了,對我來說似乎效果很好的方法是在 Auto Scaling Groups 下的 Target Group 部分下添加適用的 Target Group。

因此,請前往 EC2 控制台,然後在左側選單的最底部(無論如何目前對我來說)有 Auto Scaling Groups。按一下清單中的自動擴充群組,然後在詳細資料標籤上按一下編輯,然後新增適用的目標群組。

即使實例發生變化,這似乎也能讓它們保持同步。

所以它應該看起來像這樣:螢幕截圖

答案2

我遇到了完全相同的問題。經過一天的谷歌搜尋並嘗試不同的方法後,我最終使用以下指令將腳本添加到我的 .ebextensions 目錄中:

container_commands:
   01_register_ALB_target:
    command: "aws elbv2 register-targets --region us-east-1 --target-group-arn arn:aws:elasticloadbalancing:us-east-1:xxxxxxxx:targetgroup/xxxxx/xxxxx
--targets Id=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)"

老實說,我不能 100% 確定它在實際的崩潰和重新啟動情況下能否完美工作。例如,我沒有努力從目標群組中刪除先前的instanceId(我猜它會自動刪除,至少在一段時間後)。但該命令肯定會在部署期間運行,並且如果實例已在目標中註冊,則似乎不會造成任何損害。

看:https://docs.aws.amazon.com/cli/latest/reference/elbv2/register-targets.html

相關內容