利用 EB CLI,以群組方式管理多個 Elastic Beanstalk 環境 - AWS Elastic Beanstalk

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

利用 EB CLI,以群組方式管理多個 Elastic Beanstalk 環境

您可以使用 EB CLI 建立 AWS Elastic Beanstalk 環境群組,每個群組執行不同的服務導向架構應用程式元件。EB CLI 使用 ComposeEnvironments API 來管理這類群組。

注意

環境群組不同於多容器 Docker 環境中的多個容器。使用環境群組,您的應用程式中的每個元件在個別的 Elastic Beanstalk 環境中執行,有自己專用的一組 Amazon EC2 執行個體。每個元件可分開擴展。有了多容器 Docker,您將一個應用程式中的多個元件結合為單一環境。所有元件共用相同的一組 Amazon EC2 執行個體,每個執行個體執行多個 Docker 容器。根據您的應用程式需求,選擇其中一個架構。

如需關於多容器 Docker 的詳細資訊,請參閱使用 Amazon ECS 平台分支

將您的應用程式元件依下列的資料夾結構來整理劃分:

~/project-name |-- component-a | `-- env.yaml `-- component-b `-- env.yaml

每個子資料夾皆包含應用程式獨立元件的原始碼 (將會在自己的環境中執行),以及名為 env.yaml 的環境定義檔案。關於 env.yaml 格式的詳細資訊,請參閱環境資訊清單 (env.yaml)

若要使用 Compose Environments API,請先從專案資料夾中執行 eb init,然後利用 --modules 選項,根據其所屬資料夾的名稱來指定各元件。

~/workspace/project-name$ eb init --modules component-a component-b

EB CLI 會提示您設定各個元件,然後在每個元件資料夾中建立 .elasticbeanstalk 目錄。EB CLI 不會在父目錄中建立組態檔案。

~/project-name |-- component-a | |-- .elasticbeanstalk | `-- env.yaml `-- component-b |-- .elasticbeanstalk `-- env.yaml

接著,執行 eb create 指令,根據環境的清單,針對每個元件各建立一個環境。

~/workspace/project-name$ eb create --modules component-a component-b --env-group-suffix group-name

此指令會針對每個元件建立環境。將 EnvironmentName 檔案中所指定的 env.yaml,與群組名稱串連在一起,中間以連字號分隔,來做為環境的名稱。這兩個選項加上連字號的總長度,不得超過環境名稱長度的 23 個字元上限。

若要更新環境,請使用 eb deploy 指令:

~/workspace/project-name$ eb deploy --modules component-a component-b

您可以個別更新每個元件,也可用群組方式來更新這些元件。使用 --modules 選項來指定想要更新的元件。

EB CLI 會將您搭配 eb create 使用的群組名稱,存放於 EB CLI 組態檔案 (branch-defaults) 的 /.elasticbeanstalk/config.yml 區段中。若要將應用程式部署到不同的群組,當您執行 --env-group-suffix 時請使用 eb deploy 選項。如果該群組不存在,EB CLI 會建立多個環境的新群組:

~/workspace/project-name$ eb deploy --modules component-a component-b --env-group-suffix group-2-name

若要終止環境,請針對每個模組執行資料夾中的 eb terminate。根據預設,如果您嘗試終止另一個運作中環境所相依的環境,EB CLI 將會顯示錯誤。請先終止從屬的環境,或使用 --ignore-links 選項來取代預設的動作:

~/workspace/project-name/component-b$ eb terminate --ignore-links