Configure una infraestructura de escritorio virtual (VDI) con escalado automático mediante NICE EnginFrame y el administrador de sesiones NICE DCV - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configure una infraestructura de escritorio virtual (VDI) con escalado automático mediante NICE EnginFrame y el administrador de sesiones NICE DCV

Creado por Dario La Porta y Salvatore Maccarone (AWS)

Repositorio de código: elastic-vdi-infrastructure

Entorno: PoC o piloto

Tecnologías: computación de alto rendimiento; infraestructura

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

Resumen

NICE DCV es un protocolo de visualización remota de alto rendimiento que le ayuda a transmitir escritorios remotos y aplicaciones desde cualquier nube o centro de datos a cualquier dispositivo, en condiciones de red variables. Con NICE DCV y Amazon Elastic Compute Cloud (Amazon EC2) Compute Cloud (Amazon EC2), puede ejecutar aplicaciones con uso intensivo de gráficos de forma remota en instancias EC2 y transmitir sus interfaces de usuario a equipos cliente remotos y más sencillos. Esto elimina la necesidad de costosas estaciones de trabajo dedicadas y la necesidad de transferir grandes cantidades de datos entre la nube y las equipos cliente.

Este patrón establece una infraestructura de escritorio virtual (VDI) para Linux y Windows completamente funcional y con escalado automático, a la que se pueda acceder a través de una interfaz de usuario basada en la web. La solución VDI proporciona a los usuarios de investigación y desarrollo (I+D) una interfaz de usuario accesible y eficaz para enviar solicitudes de análisis con uso intensivo de gráficos y revisar los resultados de forma remota.

Requisitos previos y limitaciones

Requisitos previos

  • Una cuenta de AWS activa.

  • Permisos de administrador y un conjunto de claves de acceso.

  • Kit de herramientas AWS Cloud Development Kit (AWS CDK), instalado y configurado. Para obtener más información, consulte Instalación de AWS CDK.

  • Interfaz de la línea de comandos de AWS (AWS CLI), instalada y configurada para su cuenta AWS. Para obtener más información, consulte Installing or updating the latest version of the AWS CLI.

  • Python, instalado y configurado. Para obtener más información, consulte Versiones de origen (sitio web de Python).

  • Una o varias nubes privadas virtuales (VPC) disponibles.

  • Dos o varias direcciones IP elásticas disponibles. Para obtener más información sobre el límite predeterminado, consulte límite de direcciones IP elásticas.

  • Para las instancias EC2 de Linux, configure un par de claves Secure Shell (SSH). Para obtener más información, consulte Pares de claves e instancias Linux.

Versiones de producto

  • CDK de AWS, versión 2.26.0 o posterior

  • Python, versión 3.8 o posterior

Arquitectura

Arquitectura de destino

En el siguiente gráfico se muestran los diferentes componentes de esta solución VDI. El usuario interactúa con NICE EnginFrame para lanzar instancias de Amazon EC2 de acuerdo con los grupos de Auto Scaling de Amazon EC2 para instancias NICE DCV de Windows y Linux.

Equilibradores de carga de aplicación y grupos de escalado automático para VDI de Windows y Linux en una subred privada.

Automatizar y escalar

El código incluido en este patrón crea una VPC personalizada, subredes públicas y privadas, una puerta de enlace de Internet, una puerta de enlace NAT, un Equilibrador de carga de aplicación, grupos de seguridad y políticas de IAM. AWS también CloudFormation se utiliza para crear la flota de servidores NICE DCV para Linux y Windows.

Herramientas

Servicios de AWS

  • AWS Cloud Development Kit (AWS CDK) es un marco de desarrollo de software que le ayuda a definir y aprovisionar la infraestructura de la nube de AWS en código.

  • AWS le CloudFormation ayuda a configurar los recursos de AWS, aprovisionarlos de forma rápida y coherente y gestionarlos durante todo su ciclo de vida en todas las cuentas y regiones de AWS.

  • NICE DCV es un protocolo de visualización remota de alto rendimiento que le permite ofrecer escritorios remotos y streaming de aplicaciones desde cualquier nube o centro de datos a cualquier dispositivo, en condiciones de red variables. En este patrón, se proporciona una experiencia de uso eficiente del ancho de banda que permite transmitir gráficos 3D de computación de alto rendimiento (HPC) de forma remota.

  • NICE DCV Session Manager le ayuda a crear y gestionar el ciclo de vida de las sesiones NICE DCV en una flota de servidores NICE DCV.

  • NICE EnginFrame es una interfaz web frontend avanzada que permite acceder a aplicaciones técnicas y científicas en la nube.

Repositorio de código

El código de este patrón está disponible en la solución VDI de escalado automático con los repositorios NICE EnginFrame y NICE DCV Session Manager.

Epics

TareaDescripciónHabilidades requeridas

Clonar el repositorio.

Clone el repositorio que contiene el código.

git clone https://github.com/aws-samples/elastic-vdi-infrastructure.git
Arquitecto de la nube

Instale las bibliotecas de AWS CDK requeridas.

Instale las bibliotecas de AWS CDK.

cd elastic-vdi-infrastructure python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt
Arquitecto de la nube

Actualice los parámetros.

  1. Abra el archivo app.py con el editor de texto que prefiera.

  2. Reemplace el valor CHANGE_ME para los siguientes parámetros requeridos:

    • region: la región de AWS de destino. Para obtener una lista completa, consulte Regiones de AWS.

    • account: el ID de la cuenta AWS de destino. Para obtener más información, consulte Buscar el ID de cuenta de AWS.

    • key_name: el par de claves utilizado para acceder a las instancias EC2 de Linux.

  3. (Opcional) Modifique los valores de los siguientes parámetros con el fin de personalizar la solución para su entorno:

    • ec2_type_enginframe— El tipo de instancia EnginFrame

    • ec2_type_broker: el tipo de instancia de Session Manager Broker

    • ebs_enginframe_size— El tamaño del volumen de Amazon Elastic Block Store (Amazon EBS) de la instancia EnginFrame

    • ebs_broker_size: el tamaño del volumen de EBS para la instancia de Session Manager Broker

    • TagName and TagValue: ea etiqueta de facturación de los recursos

    • efadmin_uid— El identificador único del usuario EnginFrame administrador (efadmin)

    • linux_shared_storage_size: el tamaño de OpenZFS en gibibytes (GiB)

    • Shared_Storage_Linux: el punto de montaje del almacenamiento compartido

    • Enginframe_installer— El enlace de descarga de EnginFrame

    • Session_Manager_Broker_Installer: el enlace de descarga del Session Manager Broker

  4. Guarde y cierre el archivo app.py.

Arquitecto de la nube

Implemente la solución.

Ejecute los comandos siguientes secuencialmente.

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

Una vez completada la implementación, se devuelven los dos resultados siguientes:

  • Elastic-Vdi-Infrastructure.EnginFrameURL— La dirección HTTPS del EnginFrame portal

  • Elastic-Vdi-InfrastruSecretEFadminPassword: el nombre de recurso de Amazon (ARN) del secreto que contiene la contraseña del usuario efadmin

Anote el valor de estos valores. Los usará más adelante en este patrón.

Arquitecto de la nube

Implemente la flota de servidores de Linux.

  1. Inicie sesión en la consola de administración de AWS y abra la CloudFormation consola.

  2. Seleccione Create stack (Crear pila) y, a continuación, seleccione With new resources (Con nuevos recursos).

  3. En la carpeta cloudformation_files, seleccione el archivo.yaml. dcv-linux-fleet

  4. En la página Specify stack details (Especificar detalles de la pila), ingrese los siguientes parámetros:

    • Nombre de pila: el nombre de la pila.

    • DcvFleet— El nombre de la flota de NICE DCV. No deje este valor en blanco ni utilice espacios.

    • InstanceType— El tipo de instancia de la flota.

    • RootVolumeSize— El tamaño del volumen raíz de la instancia EC2 de Linux.

    • MinSize— El número mínimo de nodos que deberían estar disponibles y que no deberían ejecutar ninguna sesión de DCV. Por ejemplo, si introduce 2, la solución comienza con 2 nodos. Cuando un usuario crea una sesión, el número de nodos disponibles se reduce a 1 y la solución crea otro nodo para mantener el mínimo.

    • MaxSize— El número máximo de nodos de la flota. Los usuarios no pueden iniciar nuevas sesiones si se ha alcanzado el máximo.

    • BillingTagName— El nombre de la etiqueta utilizada para la facturación. El nombre de esta etiqueta debe ser diferente del que se usa para la pila de Windows.

    • BillingTagValue— El valor de la etiqueta utilizado para la facturación.

  5. Complete el asistente de creación de pilas y, a continuación, seleccione Submit (Enviar) para empezar a crear la pila.

Arquitecto de la nube

Implemente la flota de servidores de Windows.

  1. Inicie sesión en la consola de administración de AWS y abra la CloudFormation consola.

  2. Seleccione Create stack (Crear pila) y, a continuación, seleccione With new resources (Con nuevos recursos).

  3. En la carpeta cloudformation_files, seleccione el archivo.yaml. dcv-windows-fleet

  4. En la página Specify stack details (Especificar detalles de la pila), ingrese los siguientes parámetros:

    • Nombre de pila: el nombre de la pila.

    • DcvFleet— El nombre de la flota de NICE DCV. No deje este valor en blanco ni utilice espacios.

    • InstanceType— El tipo de instancia de la flota.

    • RootVolumeSize— El tamaño del volumen raíz de la instancia EC2 de Windows.

    • MinSize— El número mínimo de nodos que deberían estar disponibles y que no deberían estar ejecutando ninguna sesión de DCV.

    • MaxSize— El número máximo de nodos de la flota.

    • BillingTagName— El nombre de la etiqueta utilizada para la facturación. El nombre de esta etiqueta debe ser diferente del que se usa para la pila de Linux.

    • BillingTagValue— El valor de la etiqueta utilizado para la facturación.

  5. Complete el asistente de creación de pilas y, a continuación, seleccione Submit (Enviar) para empezar a crear la pila.

Arquitecto de la nube
TareaDescripciónHabilidades requeridas

Recupera la contraseña de EnginFrame administrador.

La cuenta de EnginFrame administración se denomina efadmin y la contraseña se guarda en AWS Secrets Manager como un secreto. El ARN del secreto se genera de forma dinámica y está visible en el resultado de la implementación de AWS CDK.

  1. En la épica anterior, en Implementar la historia de la solución, debajo del resultado Elastic-Vdi-Infrastructure.SecretEFadminPassword, busque el ARN del secreto generado.

  2. Realice una de las siguientes acciones para recuperar el secreto:

Arquitecto de la nube

Acceda al EnginFrame portal.

  1. En la epopeya anterior, en la historia sobre cómo implementar la solución, debajo del Elastic-Vdi-Infrastructure.EnginFrameURL resultado, busca la dirección HTTPS del EnginFrame portal.

  2. En un navegador web, escriba la dirección HTTPS del portal.

  3. Introduzca las credenciales del usuario efadmin.

Arquitecto de la nube

Inicie una sesión de Windows.

  1. En el EnginFrame portal, en el menú, elija Windows Desktop.

  2. Cuando se le pida que inicie sesión como administrador de Windows, introduzca la misma contraseña utilizada para el usuario efadmin.

  3. Confirme que la sesión de Windows se ha iniciado correctamente.

Arquitecto de la nube

Inicie una sesión de Linux.

  1. En el EnginFrame portal, en el menú, elija Linux Desktop.

  2. Cuando se le pida que inicie sesión, introduzca las credenciales del usuario efadmin.

  3. Confirme que la sesión de Linux se ha iniciado correctamente.

Arquitecto de la nube
TareaDescripciónHabilidades requeridas

Elimine las pilas.

En la CloudFormation consola de AWS, elimine las pilas de las flotas de servidores de Windows y Linux. Para obtener más información, consulte Eliminación de pilas.

Arquitecto de la nube

Configurar la infraestructura.

Elimine la infraestructura implementada mediante el siguiente comando de AWS CDK.

cdk destroy --all
Arquitecto de la nube

Resolución de problemas

ProblemaSolución

La implementación no se completó porque se interrumpió.

Siga las instrucciones de la épica sobre la Limpieza y, a continuación, repita este patrón para volver a implementar el entorno.

Recursos relacionados