本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
先決條件
主題
AWS 帳戶使用管理使用者建立
您必須擁有AWS 帳戶具有 管理使用者的 :
開啟 https://portal.aws.amazon.com/billing/signup
。 請遵循線上指示進行。
部分註冊程序需接收來電或簡訊,並在電話鍵盤輸入驗證碼。
當您註冊 時AWS 帳戶,AWS 帳戶根使用者會建立 。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務,請將管理存取權指派給使用者,並且僅使用根使用者來執行需要根使用者存取權的任務。
建立 Amazon EC2 SSH 金鑰對
如果您沒有 Amazon EC2 SSH 金鑰對,則需要建立一個金鑰對。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的使用 Amazon EC2 建立金鑰對。 Amazon EC2
增加服務配額
我們建議增加下列服務配額:
-
-
將每個 NAT 閘道的彈性 IP 地址配額從 5 提高到 8。
-
將每個可用區域的 NAT 閘道從 5 提高到 10。
-
-
-
將 EC2-VPC 彈性 IPs 從 5 提高到 10
-
AWS您的帳戶具有每個AWS服務的預設配額,先前稱為限制。除非另有說明,否則每個配額都是區域特定的。您可以請求提高某些配額,而其他配額無法提高。如需詳細資訊,請參閱此產品中AWS服務的配額。
建立自訂網域 (選用)
我們建議您為產品使用自訂網域,以擁有易於使用的 URL。您可以提供自訂網域,並選擇性地為其提供憑證。
外部資源堆疊中有一個程序,可為您提供的自訂網域建立憑證。如果您有網域並想要使用外部資源堆疊的憑證產生功能,您可以略過此處的步驟。
或者,請依照下列步驟,使用 Amazon Route 53 註冊網域,並使用 匯入網域的憑證AWS Certificate Manager。
建立網域 (僅限 GovCloud)
如果您是在 anAWSGovCloud 區域中部署 ,而且您使用適用於 Research and Engineering Studio 的自訂網域,則需要完成這些先決條件步驟。
-
在建立公有託管網域的商業分割區AWS帳戶中部署憑證CloudFormation堆疊
。 -
從憑證 CloudFormation 輸出中,尋找並記下
CertificateARN和PrivateKeySecretARN。 -
在 GovCloud 分割區帳戶中,建立具有
CertificateARN輸出值的秘密。請記下新的秘密 ARN,並將兩個標籤新增至秘密,以便vdc-gateway可以存取秘密值:-
res:ModuleName = virtual-desktop-controller
-
res:EnvironmentName = 【環境名稱】 (可以是 res-demo。)
-
-
在 GovCloud 分割區帳戶中,建立具有
PrivateKeySecretArn輸出值的秘密。請記下新的秘密 ARN,並將兩個標籤新增至秘密,以便vdc-gateway可以存取秘密值:-
res:ModuleName = virtual-desktop-controller
-
res:EnvironmentName = 【環境名稱】 (可以是 res-demo。)
-
提供外部資源
上的研究和工程 Studio AWS預期在部署時存在下列外部資源。
-
網路 (VPC、公有子網路和私有子網路)
在這裡,您將執行用於託管 RES 環境、Active Directory (AD) 和共用儲存體的 EC2 執行個體。
-
儲存 (Amazon EFS)
儲存磁碟區包含虛擬桌面基礎設施 (VDI) 所需的檔案和資料。
-
目錄服務 (AWS Directory Service for Microsoft Active Directory)
目錄服務會將使用者驗證為 RES 環境。
-
秘密,其中包含格式化為鍵/值對的 Active Directory 服務帳戶使用者名稱和密碼 (使用者名稱、密碼)
Research and Engineering Studio 會使用 存取您提供的秘密,包括服務帳戶密碼AWS Secrets Manager。
警告
您必須為要同步的所有 Active Directory (AD) 使用者提供有效的電子郵件地址。
提示
如果您正在部署示範環境,但沒有這些外部資源可用,則可以使用AWS高效能運算配方來產生外部資源。請參閱下一節 建立外部資源,以在您的帳戶中部署資源。
對於 anAWSGovCloud 區域中的示範部署,您將需要完成 中的先決條件步驟建立網域 (僅限 GovCloud)。
在您的環境中設定 LDAPS (選用)
如果您計劃在環境中使用 LDAPS 通訊,您必須完成這些步驟,才能建立憑證並將其連接至 AWS Managed Microsoft AD(AD) 網域控制器,以提供 AD 和 RES 之間的通訊。
-
請遵循如何為 啟用伺服器端 LDAPS AWS Managed Microsoft AD
中提供的步驟。如果您已啟用 LDAPS,則可以略過此步驟。 -
確認已在 AD 上設定 LDAPS 之後,匯出 AD 憑證:
-
前往您的 Active Directory 伺服器。
-
以管理員身分開啟 PowerShell。
-
執行
certmgr.msc以開啟憑證清單。 -
首先開啟信任的根憑證授權機構,然後開啟憑證清單。
-
選取並按住 (或以滑鼠右鍵按一下) 與 AD 伺服器同名的憑證,然後選擇所有任務,然後選擇匯出。
-
選取 Base-64 編碼的 X.509 (.CER),然後選擇下一步。
-
選取目錄,然後選擇下一步。
-
-
在 中建立秘密AWS Secrets Manager:
在 Secrets Manager 中建立機密時,在機密類型下選擇其他類型的機密,並將 PEM 編碼的憑證貼到純文字欄位中。
-
請注意建立的 ARN,並將其輸入為 中的
DomainTLSCertificateSecretARN參數步驟 1:啟動產品。
設定 Microsoft Active Directory 的服務帳戶
如果您選擇 Microsoft Active Directory (AD) 作為 RES 的身分來源,則 AD 中會有允許程式設計存取的服務帳戶。做為 RES 安裝的一部分,您必須使用服務帳戶的登入資料傳遞秘密。秘密的格式必須如下所示。
另請注意, username 欄位不支援格式 的 NT 樣式登入名稱DOMAIN\username。
服務帳戶負責下列函數:
-
從 AD 同步使用者:RES 必須從 AD 同步使用者,以允許他們登入 Web 入口網站。同步程序使用 服務帳戶查詢使用 LDAP 的 AD (以確定哪些使用者和群組可用)。
-
加入 AD 網域:這是執行個體加入 AD 網域之 Linux 虛擬桌面和基礎設施主機的選用操作。在 RES 中,這會使用
DisableADJoin參數控制。此參數預設為 False,這表示 Linux 虛擬桌面會嘗試在預設組態中加入 AD 網域。 -
連線至 AD:如果 Linux 虛擬桌面和基礎設施主機未加入 AD 網域,則會連線至 AD 網域 (
DisableADJoin= True)。為了讓此功能正常運作,服務帳戶也需要UsersOU和 中使用者和群組的讀取存取權GroupsOU。
服務帳戶需要下列許可:
-
同步使用者並連線至 AD →
UsersOU和 中使用者和群組的讀取存取權GroupsOU。 -
若要加入 AD 網域 → 在 中建立
Computer物件ComputersOU。
https://https://github.com/aws-samples/aws-hpc-recipes/blob/main/recipes/res/res_demo_env/assets/service_account.ps1
設定私有 VPC (選用)
在隔離的 VPC 中部署研究和工程 Studio 可提供增強的安全性,以滿足組織的合規和管理要求。不過,標準 RES 部署依賴網際網路存取來安裝相依性。若要在私有 VPC 中安裝 RES,您需要滿足下列先決條件:
準備 Amazon Machine Image AMIs)
-
在 https://https://research-engineering-studio-us-east-1.s3.amazonaws.com/releases/latest/res-installation-scripts.tar.gz
下載相依性。若要在隔離的 VPC 中部署,RES 基礎設施需要有相依性的可用性,而不需要公有網際網路存取。 重要
如果您的 RES 環境版本不是最新的,請將下載 URI
latest中的 取代為確切的版本編號 (例如2025.06)。 -
使用 Amazon S3 唯讀存取和 Amazon EC2 的受信任身分建立 IAM 角色。
前往 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在角色中,選擇建立角色。
-
在選取信任的實體頁面:
-
在信任的實體類型下,選擇 AWS 服務。
-
針對服務或使用案例下的使用案例,選擇 EC2,然後選擇下一步。
-
-
在新增許可上,選取下列許可政策,然後選擇下一步:
-
AmazonS3ReadOnlyAccess
-
AmazonSSMManagedInstanceCore
-
EC2InstanceProfileForImageBuilder
-
-
新增角色名稱和描述,然後選擇建立角色。
-
建立 EC2 映像建置器元件:
-
在 開啟 EC2 Image Builder 主控台https://console.aws.amazon.com//imagebuilder
。 -
在已儲存資源下,選擇元件,然後選擇建立元件。
-
在建立元件頁面上,輸入下列詳細資訊:
-
針對元件類型,選擇建置。
-
如需元件詳細資訊,請選擇:
參數 使用者項目 Image operating system (OS) Linux Compatible OS Versions Amazon Linux 2, Amazon Linux 2023, RHEL8, RHEL 9, or Windows 10 and 11 Component name Enter a name such as: <research-and-engineering-studio-infrastructure>Component version We recommend starting with 1.0.0. Description Optional user entry.
-
-
在建立元件頁面上,選擇定義文件內容。
-
在輸入定義文件內容之前,您需要 tar.gz 檔案的檔案 URI。將 RES 提供的 tar.gz 檔案上傳至 Amazon S3 儲存貯體,並從儲存貯體屬性複製檔案的 URI。
-
輸入下列資料:
注意
AddEnvironmentVariables是選用的,如果您在基礎設施主機中不需要自訂環境變數,則可以將其移除。如果您要設定
http_proxy和https_proxy環境變數,則需要這些no_proxy參數,以防止執行個體使用代理來查詢 localhost、執行個體中繼資料 IP 地址,以及支援 VPC 端點的服務。# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance # with the License. A copy of the License is located at # # http://www.apache.org/licenses/LICENSE-2.0 # # or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES # OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions # and limitations under the License. name: research-and-engineering-studio-infrastructure description: An RES EC2 Image Builder component to install required RES software dependencies for infrastructure hosts. schemaVersion: 1.0 parameters: - AWSRegion: type: string description: RES Environment AWS Region phases: - name: build steps: - name: DownloadRESInstallScripts action: S3Download onFailure: Abort maxAttempts: 3 inputs: - source: '<s3 tar.gz file uri>' destination: '/root/bootstrap/res-installation-scripts/res-installation-scripts.tar.gz' - name: RunInstallScript action: ExecuteBash onFailure: Abort maxAttempts: 3 inputs: commands: - 'cd /root/bootstrap/res-installation-scripts' - 'tar -xf res-installation-scripts.tar.gz' - 'cd scripts/infrastructure-host' - '/bin/bash install.sh' - name: AddEnvironmentVariables action: ExecuteBash onFailure: Abort maxAttempts: 3 inputs: commands: - | echo -e " http_proxy=http://<ip>:<port>https_proxy=http://<ip>:<port>no_proxy=127.0.0.1,169.254.169.254,169.254.170.2,localhost,{{ AWSRegion }}.res,{{ AWSRegion }}.vpce.amazonaws.com,{{ AWSRegion }}.elb.amazonaws.com,s3.{{ AWSRegion }}.amazonaws.com,s3.dualstack.{{ AWSRegion }}.amazonaws.com,ec2.{{ AWSRegion }}.amazonaws.com,ec2.{{ AWSRegion }}.api.aws,ec2messages.{{ AWSRegion }}.amazonaws.com,ssm.{{ AWSRegion }}.amazonaws.com,ssmmessages.{{ AWSRegion }}.amazonaws.com,kms.{{ AWSRegion }}.amazonaws.com,secretsmanager.{{ AWSRegion }}.amazonaws.com,sqs.{{ AWSRegion }}.amazonaws.com,elasticloadbalancing.{{ AWSRegion }}.amazonaws.com,sns.{{ AWSRegion }}.amazonaws.com,logs.{{ AWSRegion }}.amazonaws.com,logs.{{ AWSRegion }}.api.aws,elasticfilesystem.{{ AWSRegion }}.amazonaws.com,fsx.{{ AWSRegion }}.amazonaws.com,dynamodb.{{ AWSRegion }}.amazonaws.com,api.ecr.{{ AWSRegion }}.amazonaws.com,.dkr.ecr.{{ AWSRegion }}.amazonaws.com,kinesis.{{ AWSRegion }}.amazonaws.com,.data-kinesis.{{ AWSRegion }}.amazonaws.com,.control-kinesis.{{ AWSRegion }}.amazonaws.com,events.{{ AWSRegion }}.amazonaws.com,cloudformation.{{ AWSRegion }}.amazonaws.com,sts.{{ AWSRegion }}.amazonaws.com,application-autoscaling.{{ AWSRegion }}.amazonaws.com,monitoring.{{ AWSRegion }}.amazonaws.com,ecs.{{ AWSRegion }}.amazonaws.com,.execute-api.{{ AWSRegion }}.amazonaws.com " > /etc/environment
-
-
選擇建立元件。
-
-
建立映像建置器映像配方。
-
在建立配方頁面上,輸入下列內容:
區段 參數 使用者項目 配方詳細資訊 名稱 Enter an appropriate name such as res-recipe-linux-x86. 版本 Enter a version, typically starting with 1.0.0. 說明 Add an optional description. 基礎映像 選取影像 Select managed images. 作業系統 Amazon Linux or Red Hat Enterprise Linux (RHEL) 影像原始伺服器 Quick start (Amazon-managed) 映像名稱 Amazon Linux 2 x86, Amazon Linux 2023 x86, Red Hat Enterprise Linux 8 x86, or Red Hat Enterprise Linux 9 x86 自動版本控制選項 Use latest available OS version. 執行個體組態 – Keep everything in the default settings, and make sure 在管道執行後移除 SSM 代理程式 is not selected. 工作目錄 工作目錄路徑 /root/bootstrap/res-installation-scripts 元件 建置元件 搜尋並選取下列項目:
-
Amazon 受管:aws-cli-version-2-linux
-
Amazon 受管:amazon-cloudwatch-agent-linux
-
由您擁有:先前建立的 Amazon EC2 元件。將您目前的AWS區域放在 欄位中。
測試元件 搜尋並選取:
-
Amazon 受管:simple-boot-test-linux
-
-
選擇建立配方。
-
-
建立映像建置器基礎設施組態。
-
在已儲存資源下,選擇基礎設施組態。
-
選擇建立基礎設施組態。
-
在建立基礎設施組態頁面上,輸入下列內容:
區段 參數 使用者項目 一般 名稱 Enter an appropriate name such as res-infra-linux-x86. 描述 Add an optional description. IAM 角色 Select the IAM role created previously. AWS基礎設施 執行個體類型 Choose t3.medium. VPC、子網路和安全群組 選取允許網際網路存取和存取 Amazon S3 儲存貯體的選項。如果您需要建立安全群組,您可以從 Amazon EC2 主控台使用下列輸入建立安全群組:
-
VPC:選取用於基礎設施組態的相同 VPC。此 VPC 必須具有網際網路存取。
-
傳入規則:
-
Type (類型):SSH
-
Source (來源):自訂
-
CIDR 區塊:0.0.0.0/0
-
-
-
選擇建立基礎設施組態。
-
-
建立新的 EC2 Image Builder 管道:
-
前往映像管道,然後選擇建立映像管道。
-
在指定管道詳細資訊頁面上,輸入以下內容並選擇下一步:
-
管道名稱和選用描述
-
針對建置排程,如果您想要手動啟動 AMI 製作程序,請設定排程或選擇手動。
-
-
在選擇配方頁面上,選擇使用現有配方,然後輸入先前建立的配方名稱。選擇下一步。
-
在定義映像程序頁面上,選取預設工作流程,然後選擇下一步。
-
在定義基礎設施組態頁面上,選擇使用現有的基礎設施組態,然後輸入先前建立的基礎設施組態名稱。選擇下一步。
-
在定義分佈設定頁面上,針對您的選擇考慮下列事項:
-
輸出映像必須與部署的 RES 環境位於相同的區域,以便 RES 可以從中正確啟動基礎設施主機執行個體。使用服務預設值,輸出映像會在使用 EC2 Image Builder 服務的區域中建立。
-
如果您想要在多個區域中部署 RES,您可以選擇建立新的分佈設定,並在該處新增更多區域。
-
-
檢閱您的選擇,然後選擇建立管道。
-
-
執行 EC2 Image Builder 管道:
-
從映像管道中,尋找並選取您建立的管道。
-
選擇動作,然後選取執行管道。
管道可能需要大約 45 分鐘到一小時的時間來建立 AMI 映像。
-
-
請注意產生的 AMI 的 AMI ID,並將其用作 中 InfrastructureHostAMI 參數的輸入步驟 1:啟動產品。
設定 VPC 端點
若要部署 RES 並啟動虛擬桌面, AWS 服務需要存取您的私有子網路。您必須設定 VPC 端點以提供必要的存取權,而且您必須為每個端點重複這些步驟。
-
如果先前尚未設定端點,請遵循AWS 服務使用介面 VPC 端點存取 中提供的指示。
-
在兩個可用區域中各選取一個私有子網路。
| AWS 服務 | 服務名稱 |
|---|---|
| Application Auto Scaling | com.amazonaws.region.application-autoscaling |
| AWS CloudFormation | com.amazonaws.region.cloudformation |
| Amazon CloudWatch | com.amazonaws.region.monitoring |
| Amazon CloudWatch Logs | com.amazonaws.region.logs |
| Amazon DynamoDB | com.amazonaws.region.dynamodb (需要閘道端點) |
| Amazon EC2 | com.amazonaws.region.ec2 |
| Amazon ECR | com.amazonaws.region.ecr.api |
com.amazonaws.region.ecr.dkr |
|
| Amazon Elastic File System | com.amazonaws.region.elasticfilesystem |
| Elastic Load Balancing | com.amazonaws.region.elasticloadbalancing |
| Amazon EventBridge | com.amazonaws.region.events |
| Amazon FSx | com.amazonaws.region.fsx |
| AWS Key Management Service | com.amazonaws.region.kms |
| Amazon Kinesis Data Streams | com.amazonaws.region.kinesis-streams |
| AWS Lambda | com.amazonaws.region.lambda |
| Amazon S3 |
com.amazonaws. 隔離環境中的跨掛載儲存貯體需要額外的 Amazon S3 介面端點。請參閱存取 Amazon Simple Storage Service 介面端點。 |
| AWS Secrets Manager | com.amazonaws.region.secretsmanager |
| Amazon Elastic Container Service | com.amazonaws.region.ecs |
| Amazon SES | com.amazonaws.region.email-smtp (下列可用區域不支援:use-1-az2、use1-az3、use1-az5、usw1-az2、usw2-az4、apne2-az4、cac1-az3 和 cac1-az4。) |
| AWS Security Token Service | com.amazonaws.region.sts |
| Amazon SNS | com.amazonaws.region.sns |
| Amazon SQS | com.amazonaws.region.sqs |
| AWS Systems Manager | com.amazonaws.region.ec2messages |
com.amazonaws.region.ssm |
|
com.amazonaws.region.ssmmessages |
在沒有 VPC 端點的情況下連線至 服務
若要與不支援 VPC 端點的服務整合,您可以在 VPC 的公有子網路中設定代理伺服器。請依照下列步驟,使用AWS身分中心做為您的身分提供者,建立具有研究和工程 Studio 部署所需最低存取權的代理伺服器。
-
在將用於 RES 部署的 VPC 公有子網路中啟動 Linux 執行個體。
-
Linux 系列 – Amazon Linux 2 或 Amazon Linux 3
-
架構 – x86
-
執行個體類型 – t2.micro 或更高版本
-
安全群組 – 從 0.0.0.0/0 起連接埠 3128 上的 TCP
-
-
連線至執行個體以設定代理伺服器。
-
開啟 http 連線。
-
允許從所有相關子網路連線至下列網域:
-
.amazonaws.com (適用於一般AWS服務)
-
.amazoncognito.com (適用於 Amazon Cognito)
-
.awsapps.com (適用於 Identity Center)
-
.signin.aws (適用於 Identity Center)
-
.amazonaws-us-gov.com (適用於 Gov Cloud)
-
-
拒絕所有其他連線。
-
啟用並啟動代理伺服器。
-
請注意代理伺服器接聽的 PORT。
-
-
設定您的路由表以允許存取代理伺服器。
-
前往 VPC 主控台,並識別您將用於基礎設施主機和 VDI 主機之子網路的路由表。
-
編輯路由表,以允許所有傳入連線前往先前步驟中建立的代理伺服器執行個體。
-
針對您要用於基礎設施/VDIs 的所有子網路 (無網際網路存取) 的路由表,執行此操作。
-
-
修改代理伺服器 EC2 執行個體的安全群組,並確保其允許代理伺服器接聽之 PORT 上的傳入 TCP 連線。
設定私有 VPC 部署參數
在 中步驟 1:啟動產品,您需要在CloudFormation範本中輸入特定參數。請務必依照說明設定下列參數,以成功部署到您剛設定的私有 VPC。
| 參數 | Input |
|---|---|
| InfrastructureHostAMI | Use the infrastructure AMI ID created in 準備 Amazon Machine Image AMIs). |
| IsLoadBalancerInternetFacing | Set to false. |
| LoadBalancerSubnets | Choose private subnets without internet access. |
| InfrastructureHostSubnets | Choose private subnets without internet access. |
| VdiSubnets | Choose private subnets without internet access. |
|
ClientIP |
You can choose your VPC CIDR to allow access for all VPC IP addresses. |
|
HttpProxy |
Example: http://10.1.2.3:123 |
|
HttpsProxy |
Example: http://10.1.2.3:123 |
|
NoProxy |
範例:
|