使用 NICE EnginFrame 和 NICE DCV 工作階段管理員設定 auto 調整規模的虛擬桌面基礎架構 (VDI) - AWS 方案指引

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

使用 NICE EnginFrame 和 NICE DCV 工作階段管理員設定 auto 調整規模的虛擬桌面基礎架構 (VDI)

創建者:達里奧拉波塔和薩爾瓦多·馬卡羅內(AWS)

代碼存儲庫:elastic-vdi-infrastructure

環境:PoC 或試點

技術:高效能運算;基礎架構

AWS 服務:AWS CDK;AWS;Amazon EC2 Auto Scaling CloudFormation;Elastic Load Balancing (ELB)

Summary

NICE DCV 是一種高性能的遠端顯示協議,可幫助您在不同的網絡條件下將遠程桌面和應用程序從任何雲或數據中心流式傳輸到任何設備。使用 NICE DCV 和 Amazon 彈性運算雲端 (Amazon EC2),您可以在 EC2 執行個體上遠端執行圖形密集型應用程式,並將其使用者界面串流至更簡單的遠端用戶端機器。這樣就不需要昂貴的專用工作站,並且無需在雲端和用戶端機器之間傳輸大量資料。

這種模式設置了一個功能齊全的 auto 擴展 Linux 和 Windows 虛擬桌面基礎結構(VDI),可通過基於 Web 的用戶界面訪問。VDI 解決方案為研發 (R&D) 使用者提供可存取且高效能的使用者介面,可提交圖形密集型分析要求,並從遠端檢閱結果。

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • 管理員權限和一組存取金鑰。

  • 已安裝和設定的 AWS Cloud Development Kit (AWS CDK) 工具組。如需詳細資訊,請參閱安裝 AWS CDK

  • 為您的 AWS 帳戶安裝和設定的 AWS Command Line Interface (AWS CLI) (AWS CLI)。如需詳細資訊,請參閱安裝或更新最新版本的 AWS CLI

  • Python, 安裝和配置. 如需詳細資訊,請參閱原始碼發行版本 (Python 網站)。

  • 提供一或多個虛擬私有雲 (VPC)。

  • 可使用兩個或多個彈性 IP 位址。如需有關預設限制的詳細資訊,請參閱彈性 IP 位址限制

  • 對於 Linux EC2 執行個體,請設定安全殼層 (SSH) key pair。如需詳細資訊,請參閱金鑰配對和 Linux 執行個體

產品版本

  • AWS CDK 版本 2.26.0 或更新版本

  • Python 版本 3.8 或更新版本

架構

目標架構

下圖顯示此 VDI 解決方案的不同元件。使用者會根據適用於視窗和 Linux NICE EnginFrame DCV 執行個體的 Amazon EC2 自動擴展群組,與 NICE 互動以啟動 Amazon EC2 執行個體。

適用於私有子網路中 Windows 和 Linux VDI 的應用程式負載平衡器和 Auto Scaling 群組。

自動化和規模

此模式隨附的程式碼會建立自訂 VPC、公用和私有子網路、網際網路閘道、NAT 閘道、Application Load Balancer、安全群組和 IAM 政策。AWS CloudFormation 還用於創建 Linux 和視窗漂亮的 DCV 服務器的車隊。

工具

AWS 服務

  • AWS Cloud Development Kit (AWS CDK) 是一種軟體開發架構,可協助您在程式碼中定義和佈建 AWS 雲端基礎設施。

  • AWS 可 CloudFormation協助您設定 AWS 資源、快速且一致地佈建 AWS 資源,並在 AWS 帳戶和區域的整個生命週期中進行管理。

  • NICE DCV 是一種高性能遠端顯示協議,可幫助您在不同的網絡條件下從任何雲或數據中心將遠程桌面和應用程序流傳輸到任何設備。在這種模式中,它提供了高頻寬效率的體驗,可遠端串流高效能運算 (HPC) 3D 圖形。

  • NICE DCV 工作階段管理員可協助您在 NICE DCV 伺服器叢集中建立和管理 NICE DCV 工作階段的生命週期。

  • NICE EnginFrame 是一個先進的前端 Web 界面,用於訪問雲中的技術和科學應用程序。

代碼存儲庫

此模式的代碼可在帶有 NICE EnginFrame 和 NICE DCV 會話管理器存儲庫的自動縮放 VDI 解決方案中找到。

史诗

任務描述所需技能

複製儲存庫。

克隆包含代碼的存儲庫。

git clone https://github.com/aws-samples/elastic-vdi-infrastructure.git
雲端架構師

安裝所需的 AWS CDK 程式庫。

安裝 AWS CDK 程式庫。

cd elastic-vdi-infrastructure python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt
雲端架構師

更新參數。

  1. 在您選擇的文字編輯器中開啟 app.py 檔案。

  2. 取代下列必要參數的CHANGE_ME值:

    • region— 目標 AWS 區域。如需完整清單,請參閱 AWS 區域

    • account— 目標 AWS 帳戶的識別碼。如需詳細資訊,請參閱尋找您的 AWS 帳戶 ID

    • key_name— 用於存取 Linux EC2 執行個體的 key pair。

  3. (選擇性) 修改下列參數的值,為您的環境自訂解決方案:

    • ec2_type_enginframe— EnginFrame 執行個體類型

    • ec2_type_broker— 工作階段管理員代理實例類型

    • ebs_enginframe_size— 執行個體的亞馬遜彈性區塊存放區 (Amazon EBS) 磁碟區的 EnginFrame 大小

    • ebs_broker_size— 工作階段管理員代理人執行個體的 EBS 磁碟區大小

    • TagName and TagValue— 資源的計費標籤

    • efadmin_uid— 管理 EnginFrame 員 (efadmin) 使用者的唯一識別碼

    • linux_shared_storage_size— 以千兆位元組為單位的 OpenZF 大小 (GiB)

    • Shared_Storage_Linux— 共享存儲的掛載點

    • Enginframe_installer— 下載鏈接 EnginFrame

    • Session_Manager_Broker_Installer— 工作階段管理員代理人的下載連結

  4. 儲存並關閉 app.py 檔案。

雲端架構師

部署解決方案。

依序執行下列命令。

cdk bootstrap cdk deploy Assets-Stack Parameters-Stack cdk deploy Elastic-Vdi-Infrastructure

部署完成時,會傳回下列兩個輸出:

  • Elastic-Vdi-Infrastructure.EnginFrameURL— 入 EnginFrame 口網站的 HTTPS 位址

  • Elastic-Vdi-InfrastruSecretEFadminPassword— 包含 ef admin 使用者密碼的秘密的 Amazon 資源名稱 (ARN)

請記下這些值。您稍後在此模式中使用它們。

雲端架構師

部署 Linux 伺服器的叢集。

  1. 登入 AWS 管理主控台,並開啟 CloudFormation 主控台

  2. 選擇 [建立堆疊],然後選擇 [使用新資源]。

  3. 雲格式檔案資料夾中,選取 .yaml 檔案。dcv-linux-fleet

  4. 在 [指定堆疊詳細資訊] 頁面上,定義下列參數:

    • 堆疊名稱 — 堆疊的名稱。

    • DcvFleet— NICE DCV DCV 艦隊的名稱。請勿將此值留空或使用空格。

    • InstanceType— 叢集的執行個體類型。

    • RootVolumeSize— Linux EC2 執行個體的根磁碟區大小。

    • MinSize— 應該可用且未執行任何 DCV 工作階段的節點數目下限。例如,如果您輸入2,則解決方案從 2 個節點開始。當使用者建立工作階段時,可用節點的數目會減少到1,而解決方案會建立另一個節點來維持最小值。

    • MaxSize— 叢集中節點的最大數目。如果已達到上限,使用者將無法啟動新的工作階段。

    • BillingTagName— 用於計費的標籤名稱。此標籤名稱必須與用於 Windows 堆疊的名稱不同。

    • BillingTagValue— 用於計費的標籤值。

  5. 完成堆疊建立精靈,然後選擇 [送出] 開始建立堆疊。

雲端架構師

部署視窗伺服器群。

  1. 登入 AWS 管理主控台,並開啟 CloudFormation 主控台

  2. 選擇 [建立堆疊],然後選擇 [使用新資源]。

  3. 雲格式檔案資料夾中,選取 .yaml 檔案。dcv-windows-fleet

  4. 在 [指定堆疊詳細資訊] 頁面上,定義下列參數:

    • 堆疊名稱 — 堆疊的名稱。

    • DcvFleet— NICE DCV DCV 艦隊的名稱。請勿將此值留空或使用空格。

    • InstanceType— 叢集的執行個體類型。

    • RootVolumeSize— 視窗 EC2 執行個體的根磁碟區大小。

    • MinSize— 應該可用且未執行任何 DCV 工作階段的節點數目下限。

    • MaxSize— 叢集中節點的最大數目。

    • BillingTagName— 用於計費的標籤名稱。此標籤名稱必須與用於 Linux 堆疊的名稱不同。

    • BillingTagValue— 用於計費的標籤值。

  5. 完成堆疊建立精靈,然後選擇 [送出] 開始建立堆疊。

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

擷取管 EnginFrame 理員密碼。

EnginFrame 管理帳戶名為 efadmin,密碼會以密碼的形式存放在 AWS Secrets Manager 員中。密碼的 ARN 是動態產生的,而且會顯示在 AWS CDK 部署的輸出中。

  1. 在之前的史詩中,在部署解決方案故事中,在Elastic-Vdi-Infrastructure.SecretEFadminPassword輸出之下,找到生成的秘密的 ARN。

  2. 執行下列其中一項動作以擷取密碼:

雲端架構師

存取入 EnginFrame 口網站。

  1. 在之前的史詩中,在部署解決方案故事中,在Elastic-Vdi-Infrastructure.EnginFrameURL輸出之下,找到 EnginFrame 入口網站的 HTTPS 位址。

  2. 在網頁瀏覽器中,輸入入口網站的 HTTPS 位址。

  3. 輸入 efadmin 使用者的認證。

雲端架構師

啟動視窗工作階段。

  1. 在入 EnginFrame 口網站的功能表中,選擇 [Windows 桌面]。

  2. 當系統提示您以 Windows 系統管理員身分登入時,請輸入與 efadmin 使用者相同的密碼。

  3. 確認 Windows 工作階段已成功啟動。

雲端架構師

啟動一個工作階段。

  1. 在入 EnginFrame 口網站的功能表中,選擇 Linux 桌面平台

  2. 當系統提示您登入時,請輸入 efadmin 使用者的認證。

  3. 確認 Linux 工作階段已成功啟動。

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

刪除堆疊。

在 AWS 主 CloudFormation 控台中,刪除 Windows 和 Linux 伺服器叢集的堆疊。如需詳細資訊,請參閱刪除堆疊

雲端架構師

刪除基礎結構。

使用下列 AWS CDK 命令刪除已部署的基礎設施。

cdk destroy --all
雲端架構師

故障診斷

問題解決方案

部署未完成,因為它已中斷。

按照清理史詩中的說明進行操作,然後重複此模式以再次部署環境。

相關資源