本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS CDK 在任何地方設定 Amazon ECS 來管理現場部署容器應用程式
由拉胡爾·沙拉德·蓋克瓦德博士(AWS)創建
代碼存儲庫:amazon-ecs-anywhere-cdk-示例 | 環境:PoC 或試點 | 技術:現代化;容器與微服務;混合雲 DevOps;基礎架構 |
工作負載:所有其他工作 | AWS 服務:AWS CDK;Amazon ECS;AWS Identity and Access Management |
Summary
Amazon ECS Anywhere
此模式示範使用 AWS Cloud Development Kit (AWS CDK
先決條件和限制
先決條件
作用中的 AWS 帳戶
已安裝和設定的 AWS Command Line Interface (AWS CLI) (AWS CLI)。請參閱 AWS CLI 文件中的安裝、更新和解除安裝 AWS CLI。)
已安裝和設定的 AWS CDK 工具組。(請參閱 AWS CDK 文件中的 AWS CDK 工具組,並依照指示在全球安裝最新版本。)
節點套件管理員 (npm),已針對 AWS CDK 中 TypeScript安裝和設定。(請參閱 npm 文檔中的下載和安裝 Node.js 和
npm。)
限制
如需限制和考量事項,請參閱 Amazon ECS 文件中的外部執行個體 (Amazon ECS 無處不在)。
產品版本
AWS CDK 工具組版本 1.116.0 或更新版本
故宮版本 7.20.3 或更新版本
Node.js 版本 16.6.1 或更新版本
架構
目標技術堆疊
AWS CloudFormation
AWS CDK
Amazon ECS Anywhere
AWS Identity and Access Management (IAM)
目標架構
下圖說明使用 AWS CDK 進行 ECS Anywhere 設定的高階系統架構 TypeScript,如此模式所實作。
當您部署 AWS CDK 堆疊時,它會在 AWS 上建立一個 CloudFormation 堆疊。
該 CloudFormation 堆疊佈建了一個 Amazon ECS 叢集和相關的 AWS 資源。
若要向 Amazon ECS 叢集註冊外部執行個體,您必須在虛擬機器 (VM) 上安裝 AWS Systems Manager 代理程式 (SSM 代理程式),並將該 VM 註冊為 AWS Systems Manager 受管執行個體。
您也必須在虛擬機器上安裝 Amazon ECS 容器代理程式和 Docker,才能將其註冊為 Amazon ECS 叢集的外部執行個體。
使用 Amazon ECS 叢集註冊和設定外部執行個體後,它可以在已註冊為外部執行個體的 VM 上執行多個容器。
自動化和規模
此模式提供的GitHub 存放庫
工具
AWS Cloud Development Kit (AWS CDK) 是一種軟體開發架構,可協助您在程式碼中定義和佈建 AWS 雲端基礎設施。
AWS Command Line Interface (AWS CLI) (AWS CLI) 是一種開放原始碼工具,可協助您透過命令列殼層中的命令與 AWS 服務互動。
Code
此模式的原始程式碼可在 GitHub Amazon ECS Anywhere 不在 CDK 範例
史诗
任務 | 描述 | 所需技能 |
---|---|---|
驗證 AWS CDK 版本。 | 執行下列命令來驗證 AWS CDK 工具組的版本:
此病毒碼需要版本 1.116.0 或更新版本。如果您使用的是舊版 AWS CDK,請按照 AWS CDK 文件中的指示進行更新。 | DevOps 工程師 |
設定 AWS 登入資料。 | 若要設定認證,請執行命
| DevOps 工程師 |
任務 | 描述 | 所需技能 |
---|---|---|
複製 AWS CDK 程式碼儲存庫。 | 使用以下命令克隆此模式的 GitHub 代碼存儲庫:
| DevOps 工程師 |
引導環境。 | 若要將 AWS CloudFormation 範本部署到您要使用的帳戶和 AWS 區域,請執行下列命令:
如需詳細資訊,請參閱 AWS CDK 文件中的啟動安裝。 | DevOps 工程師 |
任務 | 描述 | 所需技能 |
---|---|---|
安裝套件相依性並編譯 TypeScript 檔案。 | 安裝套件相依性,並執行下列命令來編譯 TypeScript 檔案:
這些指令會安裝範例存放庫中的所有套件。 重要事項:如果您收到有關遺失套件的任何錯誤,請使用下列其中一個指令:
—或—
如需詳細資訊,請參閱 npm 文件中的 npm ci | DevOps 工程師 |
建置專案。 | 若要建置專案程式碼,請執行下列命令:
如需有關建置和部署專案的詳細資訊,請參閱 AWS CDK 文件中的第一個 AWS CDK 應用程式。 | DevOps 工程師 |
部署專案。 | 若要部署專案程式碼,請執行下列命令:
| DevOps 工程師 |
驗證堆棧的創建和輸出。 | 在 https://console.aws.amazon.com/cloudformation | DevOps 工程師 |
任務 | 描述 | 所需技能 |
---|---|---|
通過使用流浪者設置您的虛擬機。 | 出於演示目的,您可以使用HashiCorp 流浪者 | DevOps 工程師 |
將您的 VM 註冊為外部執行個體。 | 1. 使用 2. 建立啟動碼和 ID,您可以用來向 AWS Systems Manager 註冊您的虛擬機器,以及啟用外部執行個體。此命令的輸出包括
3. 匯出啟動 ID 和代碼值:
4. 將安裝指令碼下載到內部部署伺服器或 VM:
5. 在內部部署伺服器或 VM 上執行安裝指令碼:
如需有關設定和註冊虛擬機器的詳細資訊,請參閱 Amazon ECS 文件中的將外部執行個體註冊到叢集 | DevOps 工程師 |
驗證 ECS 無所不在和外部虛擬機器的狀態。 | 若要驗證虛擬盒是否已連接至 Amazon ECS 控制平面並執行,請使用下列命令:
| DevOps 工程師 |
任務 | 描述 | 所需技能 |
---|---|---|
清理和刪除資源。 | 逐步完成此模式之後,您應該移除建立的資源,以避免產生任何進一步的費用。若要清理,請執行以下指令:
| DevOps 工程師 |