WorkSpaces 使用 Amazon ECS 隨時隨地在 Amazon 上運行 Amazon ECS Anywhere 務 - AWS 方案指引

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

WorkSpaces 使用 Amazon ECS 隨時隨地在 Amazon 上運行 Amazon ECS Anywhere 務

由阿卡什·庫馬爾(AWS)創建

環境:生產

技術:容器與微服務;現代化

工作負載:所有其他工作

AWS 服務:Amazon ECS; Amazon WorkSpaces; AWS Directory Service

Summary

亞馬遜彈性容器服務 (Amazon ECS) 任何地方都支援在任何環境中部署 Amazon ECS 任務,包括 Amazon Web Services (AWS) 受管基礎設施和客戶管理的基礎設施。您可以在使用在雲端執行且始終保持最新狀態的完全 AWS 受管控平面時執行此操作。 

企業經常使用 Amazon 來開 WorkSpaces 發容器型應用程式。這需要 Amazon Elastic Compute Cloud (Amazon EC2) 或 AWS Fargate 與 Amazon ECS 集群來測試和運行 ECS 任務。現在,透過使用 Amazon ECS Anywhere,您可以將 Amazon WorkSpaces 做為外部執行個體直接新增到 ECS 叢集,而且可以直接執行您的任務。這可以縮短您的開發時間,因為您可以在 Amazon WorkSpaces 上使用 ECS 叢集來測試容器。您也可以節省使用 EC2 或 Fargate 執行個體測試容器應用程式的成本。

這種模式展示了如何 WorkSpaces 使用 Amazon ECS 在亞馬遜任何地方部署 Amazon ECS Anywhere 務。它會設定 ECS 叢集,並使用 AWS Directory Service Simple AD 來啟動 WorkSpaces. 然後,範例 ECS 工作會在中啟動 NGINX。 WorkSpaces

先決條件和限制

架構

目標技術堆疊

  • 虛擬私有雲 (VPC)

  • Amazon ECS 集群

  • Amazon WorkSpaces

  • 使用 Simple AD 的 AWS Directory Service

目標架構

ECS 無所不在設定 ECS 叢集,並使用 Simple AD 來啟動。 WorkSpaces

該架構包括以下服務和資源:

  • 在自訂 VPC 中具有公用和私有子網路的 ECS 叢集

  • VPC 中的 Simple AD 可讓使用者存取 Amazon WorkSpaces

  • Amazon 使用簡單的 AD 在 VPC 中 WorkSpaces 佈建

  • AWS Systems Manager 已啟動將 Amazon 新增 WorkSpaces 為受管執行個體

  • 使用 Amazon ECS 和 AWS 系統管理器代理(SSM 代理),Amazon WorkSpaces 添加到系統管理器和 ECS 集群

  • 要在 ECS 叢集中執行的 ECS WorkSpaces 工作範例

工具

  • AWS Directory Service 簡易作用中目錄 (Simple AD) 是獨立的受管目錄,由 Samba 4 作用中目錄相容伺服器提供支援。Simple AD 提供 AWS 受管 Microsoft AD 所提供的功能子集,包括管理使用者和安全連線至 Amazon EC2 執行個體的功能。

  • Amazon Elastic Container Service (Amazon ECS) 是快速、可擴展的容器管理服務,可協助您執行、停止和管理叢集上的容器。

  • AWS Identity and Access Management (IAM) 可透過控制誰經過身份驗證和授權使用 AWS 資源,協助您安全地管理對 AWS 資源的存取。

  • AWS Systems Manager 可協助您管理在 AWS 雲端中執行的應用程式和基礎設施。它可簡化應用程式和資源管理、縮短偵測和解決操作問題的時間,並協助您安全地大規模管理 AWS 資源。

  • Amazon WorkSpaces 幫助您為您的用戶佈建虛擬,基於雲的 Microsoft Windows 或 Amazon Linux 桌面,稱為 WorkSpaces. WorkSpaces 無需採購和部署硬體或安裝複雜的軟體。

史诗

任務描述所需技能

建立和配置 ECS 叢集。

若要建立 ECS 叢集,請遵循 AWS 文件中的指示,包括下列步驟:

  • 對於選取叢集相容性,請選擇僅聯網,這將支援 Amazon WorkSpace 做為 ECS 叢集的外部執行個體。

  • 選擇建立新的 VPC。

雲端架構師
任務描述所需技能

設置 Simple AD 並啟動 Amazon WorkSpaces。

若要為新建立的 VPC 佈建 Simple AD 目錄並啟動 Amazon WorkSpaces,請遵循 AWS 文件中的指示。

雲端架構師
任務描述所需技能

下載附加的腳本。

在本機電腦上,下載「附件」區段中的ssm-trust-policy.jsonssm-activation.json檔案。

雲端架構師

新增 IAM 角色。

根據您的業務需求新增環境變數。

export AWS_DEFAULT_REGION=${AWS_REGION_ID} export ROLE_NAME=${ECS_TASK_ROLE} export CLUSTER_NAME=${ECS_CLUSTER_NAME} export SERVICE_NAME=${ECS_CLUSTER_SERVICE_NAME}

執行下列命令。

aws iam create-role --role-name $ROLE_NAME --assume-role-policy-document file://ssm-trust-policy.json
雲端架構師

將亞馬遜 SSM ManagedInstanceCore 政策添加到 IAM 角色。

執行下列命令。

aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
雲端架構師

將亞馬遜 ContainerServicefor EC2 角色政策添加到 IAM 角色。

執行下列命令。

aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role
雲端架構師

驗證 IAM 角色。

若要驗證 IAM 角色,請執行下列命令。

aws iam list-attached-role-policies --role-name $ROLE_NAME
雲端架構師

啟用 Systems Manager。

執行下列命令。

aws ssm create-activation --iam-role $ROLE_NAME | tee ssm-activation.json
雲端架構師
任務描述所需技能

Connect 到您的 WorkSpaces.

若要連接並設定您的工作區,請遵循 AWS 文件中的指示。

應用程式開發人員

下載 EC-任何地方安裝腳本。

在命令提示中,執行下列 命令。

curl -o "ecs-anywhere-install.sh" "https://amazon-ecs-agent-packages-preview.s3.us-east-1.amazonaws.com/ecs-anywhere-install.sh" && sudo chmod +x ecs-anywhere-install.sh
應用程式開發人員

檢查外圍程序檔的完整性。

(選擇性) 執行下列命令。

curl -o "ecs-anywhere-install.sh.sha256" "https://amazon-ecs-agent-packages-preview.s3.us-east-1.amazonaws.com/ecs-anywhere-install.sh.sha256" && sha256sum -c ecs-anywhere-install.sh.sha256
應用程式開發人員

在 Amazon Linux 上新增 EPEL 儲存庫。

若要新增企業 Linux (EPEL) 儲存區域的額外套件,請執行命令sudo amazon-linux-extras install epel -y

應用程式開發人員

在任何地方安裝亞馬遜 ECS。

若要執行安裝指令碼,請使用下列命令。

sudo ./ecs-anywhere-install.sh --cluster $CLUSTER_NAME --activation-id $ACTIVATION_ID --activation-code $ACTIVATION_CODE --region $AWS_REGION

檢查 ECS 叢集中的執行個體資訊。

若要檢查 Systems Manager 和 ECS 叢集執行個體資訊,並驗證 WorkSpaces 已新增至叢集,請從本機電腦執行下列命令。

aws ssm describe-instance-information" && "aws ecs list-container-instances --cluster $CLUSTER_NAME
應用程式開發人員
任務描述所需技能

建立工作執行 IAM 角色。

下載task-execution-assume-role.jsonexternal-task-definition.json件部分。 

在您的本機電腦上,執行下列命令。

aws iam --region $AWS_DEFAULT_REGION create-role --role-name $ECS_TASK_EXECUTION_ROLE --assume-role-policy-document file://task-execution-assume-role.json
雲端架構師

將原則新增至執行角色。

執行下列命令。

aws iam --region $AWS_DEFAULT_REGION attach-role-policy --role-name $ECS_TASK_EXECUTION_ROLE --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
雲端架構師

建立工作角色。

執行下列命令。

aws iam --region $AWS_DEFAULT_REGION create-role --role-name $ECS_TASK_EXECUTION_ROLE --assume-role-policy-document file://task-execution-assume-role.json
雲端架構師

將任務定義註冊到叢集。

在您的本機電腦上,執行下列命令。

aws ecs register-task-definition --cli-input-json file://external-task-definition.json
雲端架構師

執行工作。

在您的本機電腦上,執行下列命令。

aws ecs run-task --cluster $CLUSTER_NAME --launch-type EXTERNAL --task-definition nginx
雲端架構師

驗證工作執行狀態。

若要擷取工作 ID,請執行下列命令。

export TEST_TASKID=$(aws ecs list-tasks --cluster $CLUSTER_NAME | jq -r '.taskArns[0]')

使用工作 ID,執行下列命令。

aws ecs describe-tasks --cluster $CLUSTER_NAME --tasks ${TEST_TASKID}
雲端架構師

驗證上的工作 WorkSpace。

若要檢查 NGINX 是否在上執行 WorkSpace,請執行命令。 curl http://localhost:8080

應用程式開發人員

相關資源

附件

若要存取與此文件相關聯的其他內容,請解壓縮下列檔案:attachment.zip