我想為 AWS Elastic Beanstalk 應用程式建立可擴展、負載平衡的環境。我也想為負載平衡器指定自己的安全群組。
簡短描述
Elastic Beanstalk 會為您的負載平衡器建立預設安全群組。若要連接至負載平衡器的現有安全群組 (ManagedSecurityGroup),您可覆寫此預設行為。將更多組態檔案新增至 .ebextensions/ 目錄,Elastic Beanstalk 就不會建立預設安全群組。目錄位於您的應用程式部署套件。
**重要事項:**下列步驟僅適用於 Application Load Balancer 和 Classic Load Balancer。Network Load Balancer 沒有關聯的安全群組。
解決方法
使用 .ebextensions 指示 Elastic Beanstalk 服務將現有安全群組連接至您的負載平衡器。然後,移除 Elastic Beanstalk 為您建立的預設安全群組。
1. 確認具有可供 Elastic Beanstalk 使用的現有安全群組。或者,在 Elastic Beanstalk 環境中為負載平衡器建立新的安全群組。
2. 記下安全群組 ID。例如:sg-123456。
3. 在您的本機應用程式程式碼目錄中建立 .ebextensions/ 目錄。
4. 在 .ebextensions/ 目錄中,建立名為 elbsg.config的檔案。例如:
~/workspace/my-app/├── .ebextensions
│ ├── elbsg.config
├── helloworld
**注意:**如需上述兩個步驟的詳細資訊,請參閱使用組態檔案 (.ebextensions) 進行進階環境自訂。
5. 根據 Elastic Beanstalk 環境的負載平衡器類型更新 elbsg.config 檔案。
若要使用 Classic Load Balancer 建立新環境或更新現有環境,請使用 SecurityGroups 設定來覆寫預設安全群組。例如:
option\_settings: aws:elb:loadbalancer:
ManagedSecurityGroup: "sg-123456"
SecurityGroups: "sg-123456"
若要使用 Application Load Balancer 建立新環境或更新現有環境,請使用 SecurityGroups 設定來覆寫預設安全群組。例如:
option\_settings: aws:elbv2:loadbalancer:
ManagedSecurityGroup: "sg-123456"
SecurityGroups: "sg-123456"
**注意:**在上述範例中,將 sg-123456 取代為您的安全群組和受管安全群組 ID。先前的 .ebextensions 採用 YAML 格式。請驗證 YAML 格式。
6. 將您的程式碼和新的 .ebextensions/ 目錄一起部署為 Elastic Beanstalk 環境的新應用程式版本。
相關資訊
設定 Elastic Beanstalk 環境
aws:elb:loadbalancer
aws:elbv2:loadbalancer