Configura un'infrastruttura desktop virtuale (VDI) con scalabilità automatica utilizzando NICE EnginFrame e NICE DCV Session Manager - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configura un'infrastruttura desktop virtuale (VDI) con scalabilità automatica utilizzando NICE EnginFrame e NICE DCV Session Manager

Creato da Dario La Porta e Salvatore Maccarone (AWS)

Archivio di codici: elastic-vdi-infrastructure

Ambiente: PoC o pilota

Tecnologie: calcolo ad alte prestazioni; infrastruttura

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

Riepilogo

NICE DCV è un protocollo di visualizzazione remota ad alte prestazioni che consente di trasmettere desktop e applicazioni remoti da qualsiasi cloud o data center a qualsiasi dispositivo, in condizioni di rete variabili. Con NICE DCV e Amazon Elastic Compute Cloud (Amazon EC2) Elastic Cloud (Amazon EC2), puoi eseguire applicazioni a uso intensivo di grafica in remoto su istanze EC2 e trasmettere le relative interfacce utente su macchine client remote più semplici. Ciò elimina la necessità di costose workstation dedicate e la necessità di trasferire grandi quantità di dati tra il cloud e le macchine client.

Questo modello imposta un'infrastruttura desktop virtuale (VDI) Linux e Windows completamente funzionale e con scalabilità automatica, accessibile tramite un'interfaccia utente basata sul Web. La soluzione VDI offre agli utenti di ricerca e sviluppo (R&D) un'interfaccia utente accessibile e performante per l'invio di richieste di analisi ad uso intensivo di grafica e la revisione dei risultati in remoto.

Prerequisiti e limitazioni

Prerequisiti

  • Un account AWS attivo.

  • Autorizzazioni di amministratore e un set di chiavi di accesso.

  • Toolkit AWS Cloud Development Kit (AWS CDK), installato e configurato. Per ulteriori informazioni, consulta Installare il CDK AWS.

  • AWS Command Line Interface (AWS CLI), installata e configurata per il tuo account AWS. Per ulteriori informazioni, consulta Installazione o aggiornamento della versione più recente della CLI AWS.

  • Python, installato e configurato. Per ulteriori informazioni, consulta Source releases (sito Web Python).

  • Sono disponibili uno o più cloud privati virtuali (VPC).

  • Due o più indirizzi IP elastici disponibili. Per ulteriori informazioni sul limite predefinito, consulta Limite di indirizzi IP elastici.

  • Per le istanze Linux EC2, configura una coppia di key pair Secure Shell (SSH). Per ulteriori informazioni, consulta Coppie di chiavi e istanze Linux.

Versioni del prodotto

  • AWS CDK versione 2.26.0 o successiva

  • Python versione 3.8 o successiva

Architettura

Architettura Target

La figura seguente mostra i diversi componenti di questa soluzione VDI. L'utente interagisce con NICE EnginFrame per avviare istanze Amazon EC2 in base ai gruppi Amazon EC2 Auto Scaling per istanze NICE DCV Windows e Linux.

Application Load Balancer e gruppi Auto Scaling per Windows e Linux VDI in una sottorete privata.

Automazione e scalabilità

Il codice incluso in questo pattern crea un VPC personalizzato, sottoreti pubbliche e private, un gateway Internet, un gateway NAT, Application Load Balancer, gruppi di sicurezza e policy IAM. AWS CloudFormation viene anche utilizzato per creare la flotta di server NICE DCV Linux e Windows.

Strumenti

Servizi AWS

  • AWS Cloud Development Kit (AWS CDK) è un framework di sviluppo software che aiuta a definire e fornire l'infrastruttura cloud AWS in codice.

  • AWS ti CloudFormation aiuta a configurare le risorse AWS, effettuarne il provisioning in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita su account e regioni AWS.

  • NICE DCV è un protocollo di visualizzazione remota ad alte prestazioni che consente di fornire desktop remoti e lo streaming di applicazioni da qualsiasi cloud o data center a qualsiasi dispositivo, in condizioni di rete variabili. In questo modello, offre un'esperienza efficiente in termini di larghezza di banda che trasmette in streaming grafica 3D HPC (High Performance Computing) da remoto.

  • NICE DCV Session Manager ti aiuta a creare e gestire il ciclo di vita delle sessioni NICE DCV su una flotta di server NICE DCV.

  • NICE EnginFrame è un'interfaccia web frontend avanzata per l'accesso ad applicazioni tecniche e scientifiche nel cloud.

Archivio di codici

Il codice per questo pattern è disponibile nella soluzione Auto scaling VDI con repository NICE EnginFrame e NICE DCV Session Manager.

Epiche

AttivitàDescrizioneCompetenze richieste

Clonare il repository.

Clona il repository contenente il codice.

git clone https://github.com/aws-samples/elastic-vdi-infrastructure.git
Architetto del cloud

Installa le librerie AWS CDK richieste.

Installa le librerie CDK AWS.

cd elastic-vdi-infrastructure python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt
Architetto del cloud

Aggiorna i parametri.

  1. Apri il file app.py nell'editor di testo che preferisci.

  2. Sostituite il CHANGE_ME valore per i seguenti parametri obbligatori:

    • region— La regione AWS di destinazione. Per un elenco completo, consulta AWS Regions.

    • account— L'ID dell'account AWS di destinazione. Per ulteriori informazioni, consulta Finding your AWS account ID.

    • key_name— La key pair utilizzata per accedere alle istanze Linux EC2.

  3. (Facoltativo) Modifica i valori dei seguenti parametri per personalizzare la soluzione per il tuo ambiente:

    • ec2_type_enginframe— Il tipo di EnginFrame istanza

    • ec2_type_broker— Il tipo di istanza di Session Manager Broker

    • ebs_enginframe_size— La dimensione del volume Amazon Elastic Block Store (Amazon EBS) per l'istanza EnginFrame

    • ebs_broker_size— La dimensione del volume EBS per l'istanza di Session Manager Broker

    • TagName and TagValue— Il tag di fatturazione per le risorse

    • efadmin_uid— L'identificatore univoco dell' EnginFrame utente amministratore (efadmin)

    • linux_shared_storage_size— dimensione OpenZFS in gibibyte (GiB)

    • Shared_Storage_Linux— Il punto di montaggio dello storage condiviso

    • Enginframe_installer— Il link per il download di EnginFrame

    • Session_Manager_Broker_Installer— Il link per il download del Session Manager Broker

  4. Salvare e chiudere il file app.py.

Architetto del cloud

Distribuire la soluzione.

Esegui i seguenti comandi in sequenza.

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

Una volta completata la distribuzione, vengono restituiti i due output seguenti:

  • Elastic-Vdi-Infrastructure.EnginFrameURL— L'indirizzo HTTPS del portale EnginFrame

  • Elastic-Vdi-InfrastruSecretEFadminPassword— L'Amazon Resource Name (ARN) del segreto che contiene la password per l'utente efadmin

Prendi nota di questi valori. Li userai più avanti in questo schema.

Architetto del cloud

Implementa la flotta di server Linux.

  1. Accedi alla Console di gestione AWS e apri la CloudFormation console.

  2. Scegli Create stack, quindi scegli Con nuove risorse.

  3. Nella cartella cloudformation_files, seleziona il file.yaml. dcv-linux-fleet

  4. Nella pagina Specificare i dettagli dello stack, definisci i seguenti parametri:

    • Nome dello stack: il nome dello stack.

    • DcvFleet— Il nome della flotta NICE DCV. Non lasciare questo valore vuoto e non utilizzare spazi.

    • InstanceType— Il tipo di istanza della flotta.

    • RootVolumeSize— La dimensione del volume principale dell'istanza Linux EC2.

    • MinSize— Il numero minimo di nodi che devono essere disponibili e che non devono eseguire alcuna sessione DCV. Ad esempio, se si immette2, la soluzione inizia con 2 nodi. Quando un utente crea una sessione, il numero di nodi disponibili diminuisce a 1 e la soluzione crea un altro nodo per mantenere il minimo.

    • MaxSize— Il numero massimo di nodi della flotta. Gli utenti non possono avviare nuove sessioni se è stato raggiunto il numero massimo.

    • BillingTagName— Il nome del tag utilizzato per la fatturazione. Il nome di questo tag deve essere diverso da quello utilizzato per lo stack di Windows.

    • BillingTagValue— Il valore del tag utilizzato per la fatturazione.

  5. Completa la procedura guidata di creazione dello stack, quindi scegli Invia per iniziare a creare lo stack.

Architetto del cloud

Implementa la flotta di server Windows.

  1. Accedi alla Console di gestione AWS e apri la CloudFormation console.

  2. Scegli Create stack, quindi scegli Con nuove risorse.

  3. Nella cartella cloudformation_files, seleziona il file.yaml. dcv-windows-fleet

  4. Nella pagina Specificare i dettagli dello stack, definisci i seguenti parametri:

    • Nome dello stack: il nome dello stack.

    • DcvFleet— Il nome della flotta NICE DCV. Non lasciare questo valore vuoto e non utilizzare spazi.

    • InstanceType— Il tipo di istanza della flotta.

    • RootVolumeSize— La dimensione del volume principale dell'istanza Windows EC2.

    • MinSize— Il numero minimo di nodi che devono essere disponibili e che non devono eseguire alcuna sessione DCV.

    • MaxSize— Il numero massimo di nodi della flotta.

    • BillingTagName— Il nome del tag utilizzato per la fatturazione. Il nome di questo tag deve essere diverso da quello usato per lo stack Linux.

    • BillingTagValue— Il valore del tag utilizzato per la fatturazione.

  5. Completa la procedura guidata di creazione dello stack, quindi scegli Invia per iniziare a creare lo stack.

Architetto del cloud
AttivitàDescrizioneCompetenze richieste

Recupera la password EnginFrame dell'amministratore.

L'account di EnginFrame amministrazione è denominato efadmin e la password è archiviata in AWS Secrets Manager come segreta. L'ARN del segreto viene generato dinamicamente ed è visibile nell'output della distribuzione di AWS CDK.

  1. Nell'epopea precedente, nella storia Deploy the solution, sotto l'Elastic-Vdi-Infrastructure.SecretEFadminPasswordoutput, trova l'ARN del segreto generato.

  2. Effettuate una delle seguenti operazioni per recuperare il segreto:

Architetto del cloud

Accedi al EnginFrame portale.

  1. Nell'epopea precedente, nella storia Deploy the solution, sotto l'Elastic-Vdi-Infrastructure.EnginFrameURLoutput, trovate l'indirizzo HTTPS del EnginFrame portale.

  2. In un browser Web, inserisci l'indirizzo HTTPS del portale.

  3. Immettete le credenziali per l'utente efadmin.

Architetto del cloud

Avvia una sessione Windows.

  1. Nel EnginFrame portale, nel menu, scegli Windows Desktop.

  2. Quando ti viene richiesto di accedere come amministratore di Windows, inserisci la stessa password usata per l'utente efadmin.

  3. Conferma che la sessione di Windows sia iniziata correttamente.

Architetto del cloud

Avvia una sessione Linux.

  1. Nel EnginFrame portale, nel menu, scegli Linux Desktop.

  2. Quando ti viene richiesto di accedere, inserisci le credenziali per l'utente efadmin.

  3. Conferma che la sessione Linux sia iniziata correttamente.

Architetto del cloud
AttivitàDescrizioneCompetenze richieste

Elimina le pile.

Nella CloudFormation console AWS, elimina gli stack per le flotte di server Windows e Linux. Per ulteriori informazioni, consulta Eliminazione di uno stack.

Architetto del cloud

Elimina l'infrastruttura.

Elimina l'infrastruttura distribuita utilizzando il seguente comando AWS CDK.

cdk destroy --all
Architetto del cloud

Risoluzione dei problemi

ProblemaSoluzione

L'implementazione non è stata completata perché è stata interrotta.

Segui le istruzioni del Clean up Epic, quindi ripeti questo schema per distribuire nuovamente l'ambiente.

Risorse correlate