NICE EnginFrame 및 NICE DCV 세션 관리자를 사용하여 자동 스케일링 가상 데스크톱 인프라 (VDI) 를 설정합니다. - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

NICE EnginFrame 및 NICE DCV 세션 관리자를 사용하여 자동 스케일링 가상 데스크톱 인프라 (VDI) 를 설정합니다.

작성자: Dario La Porta 및 Salvatore Maccarone(AWS)

코드 리포지토리: elastic-vdi-infrastructure

환경: PoC 또는 파일럿

기술: 고성능 컴퓨팅, 인프라

AWS 서비스: AWS CDK, AWS, 아마존 EC2 Auto CloudFormation Scaling, Elastic Load Balancing (ELB)

요약

NICE DCV는 다양한 네트워크 조건에서 모든 클라우드 또는 데이터 센터에서 모든 디바이스로 원격 데스크톱 및 애플리케이션을 스트리밍할 수 있는 고성능 원격 디스플레이 프로토콜입니다. NICE DCV와 Amazon Elastic Compute Cloud(Amazon EC2)를 사용하면 그래픽 집약적인 애플리케이션을 EC2 인스턴스에서 원격으로 실행하고 해당 사용자 인터페이스를 더 간단한 원격 클라이언트 시스템으로 스트리밍할 수 있습니다. 따라서 값비싼 전용 워크스테이션이 필요하지 않으며 클라우드와 클라이언트 시스템 간에 대량의 데이터를 전송할 필요가 없습니다.

이 패턴은 웹 기반 사용자 인터페이스를 통해 액세스할 수 있는 모든 기능을 갖춘 Auto Scaling Linux 및 Windows 가상 데스크톱 인프라(VDI)를 설정합니다. VDI 솔루션은 연구 및 개발(R&D) 사용자에게 그래픽 집약적인 분석 요청을 제출하고 결과를 원격으로 검토할 수 있는 접근성과 성능이 뛰어난 사용자 인터페이스를 제공합니다.

사전 조건 및 제한 사항

사전 조건

  • 활성 상태의 AWS 계정

  • 관리자 권한 및 액세스 키 세트.

  • AWS Cloud Development Kit(AWS CDK) 툴킷 설치 및 구성. 자세한 내용은 AWS CDK 설치를 참조하세요.

  • AWS 계정에 대한 AWS Command Line Interface(AWS CLI) 설치 및 구성. 자세한 내용은 최신 버전의 AWS CLI 설치 또는 업데이트를 참조하세요.

  • Python 설치 및 구성. 자세한 내용은 소스 릴리스(Python 웹사이트)를 참조하세요.

  • 하나 이상의 Virtual Private Cloud(VPC) 사용 가능.

  • 두 개 이상의 탄력적 IP 주소 사용 가능. 기본 한도에 대한 자세한 내용은 탄력적 IP 주소 한도를 참조하세요.

  • Linux EC2 인스턴스의 경우 Secure Shell(SSH) 키 페어를 설정합니다. 자세한 내용은 키 페어 및 Linux 인스턴스를 참조하세요.

제품 버전

  • AWS CDK 버전 2.26.0 이상

  • Python 버전 3.8 이상

아키텍처

대상 아키텍처

다음 그림은 VDI 솔루션의 다양한 구성 요소를 보여 줍니다. 사용자는 윈도우 및 리눅스용 Amazon EC2 Auto Scaling 그룹의 EnginFrame NICE DCV 인스턴스에 따라 NICE와 상호 작용하여 Amazon EC2 인스턴스를 시작합니다.

프라이빗 서브넷의 Windows 및 Linux VDI용 Application Load Balancer 및 Auto Scaling 그룹.

자동화 및 규모 조정

이 패턴에 포함된 코드는 사용자 지정 VPC, 퍼블릭 및 프라이빗 서브넷, 인터넷 게이트웨이, NAT 게이트웨이, Application Load Balancer, 보안 그룹, IAM 정책을 생성합니다. CloudFormation AWS는 리눅스 및 윈도우 NICE DCV 서버를 만드는 데에도 사용됩니다.

도구

서비스

  • AWS Cloud Development Kit(AWS CDK)는 AWS 클라우드 인프라를 코드로 정의하고 프로비저닝하는 데 도움이 되는 소프트웨어 개발 프레임워크입니다.

  • AWS는 AWS CloudFormation 리소스를 설정하고, 빠르고 일관되게 프로비저닝하고, AWS 계정 및 지역 전반의 수명 주기 전반에 걸쳐 리소스를 관리할 수 있도록 지원합니다.

  • NICE DCV는 다양한 네트워크 조건에서 모든 클라우드 또는 데이터 센터에서 모든 디바이스로 원격 데스크톱 및 애플리케이션 스트리밍을 제공할 수 있는 고성능 원격 디스플레이 프로토콜입니다. 이 패턴에서는 고성능 컴퓨팅(HPC) 3D 그래픽을 원격으로 스트리밍하는 대역폭 효율적인 환경을 제공합니다.

  • NICE DCV Session Manager를 사용하면 NICE DCV 서버의 플릿에서 NICE DCV 세션의 수명 주기를 생성하고 관리할 수 있습니다.

  • EnginFrameNICE는 클라우드의 기술 및 과학 애플리케이션에 액세스할 수 있는 고급 프런트엔드 웹 인터페이스입니다.

코드 리포지토리

이 패턴의 코드는 NICE EnginFrame 및 NICE DCV 세션 관리자 저장소가 포함된 Auto Scaling 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 계정의 ID입니다. 자세한 내용은 AWS 계정 ID 찾기를 참조하세요.

    • key_name - Linux EC2 인스턴스에 액세스하는 데 사용되는 키 페어입니다.

  3. (선택 사항) 다음 파라미터의 값을 수정하여 환경에 맞게 솔루션을 사용자 지정합니다.

    • ec2_type_enginframe— 인스턴스 유형 EnginFrame

    • ec2_type_broker - Session Manager Broker 인스턴스 유형

    • ebs_enginframe_size— 인스턴스의 아마존 엘라스틱 블록 스토어 (Amazon EBS) 볼륨 크기 EnginFrame

    • ebs_broker_size - Session Manager Broker 인스턴스의 EBS 볼륨 크기

    • TagName and TagValue - 리소스의 청구 태그

    • efadmin_uid— EnginFrame 관리자 (efadmin) 사용자의 고유 식별자

    • linux_shared_storage_size - 기비바이트(GiB) 단위의 OpenZFS 크기

    • Shared_Storage_Linux - 공유 스토리지의 탑재 지점

    • Enginframe_installer— 다운로드 링크 EnginFrame

    • Session_Manager_Broker_Installer - Session Manager Broker 다운로드 링크

  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 - efadmin 사용자의 암호가 포함된 보안 암호의 Amazon 리소스 이름(ARN)

위의 값을 기록해 둡니다. 나중에 이 패턴에서 해당 값을 사용합니다.

클라우드 아키텍트

Linux 서버 플릿을 배포합니다.

  1. AWS Management Console에 로그인하고 CloudFormation 콘솔을 엽니다.

  2. 스택 생성을 선택한 다음 새 리소스 사용(표준)을 선택합니다.

  3. 클라우드포메이션_files 폴더에서.yaml 파일을 선택합니다. dcv-linux-fleet

  4. 스택 세부 정보 지정 페이지에서 다음 파라미터를 정의합니다.

    • Stack name - 스택의 이름입니다.

    • DcvFleet— 니스 DCV 플릿의 이름 이 값을 비워 두거나 공백을 사용하지 마세요.

    • InstanceType— 플릿의 인스턴스 유형.

    • RootVolumeSize— Linux EC2 인스턴스의 루트 볼륨 크기.

    • MinSize— DCV 세션을 실행하지 않고 사용할 수 있어야 하는 최소 노드 수입니다. 예를 들어 2을(를) 입력하면 솔루션이 2개의 노드로 시작됩니다. 사용자가 세션을 생성하면 사용 가능한 노드 수가 1로 줄어들고 솔루션은 최소 노드 수를 유지하기 위해 또 다른 노드를 생성합니다.

    • MaxSize— 플릿의 최대 노드 수 최댓값에 도달하면 사용자는 새 세션을 시작할 수 없습니다.

    • BillingTagName— 대금 청구에 사용되는 태그 이름. 이 태그 이름은 Windows 스택에 사용된 이름과 달라야 합니다.

    • BillingTagValue— 대금 청구에 사용되는 태그 값입니다.

  5. 스택 생성 마법사를 완료한 다음 전송을 선택하여 스택 생성을 시작합니다.

클라우드 아키텍트

Windows 서버 플릿을 배포합니다.

  1. AWS Management Console에 로그인하고 CloudFormation 콘솔을 엽니다.

  2. 스택 생성을 선택한 다음 새 리소스 사용(표준)을 선택합니다.

  3. 클라우드포메이션_files 폴더에서.yaml 파일을 선택합니다. dcv-windows-fleet

  4. 스택 세부 정보 지정 페이지에서 다음 파라미터를 정의합니다.

    • Stack name - 스택의 이름입니다.

    • DcvFleet— 니스 DCV 플릿의 이름 이 값을 비워 두거나 공백을 사용하지 마세요.

    • InstanceType— 플릿의 인스턴스 유형.

    • RootVolumeSize— Windows 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 사용자의 보안 인증 정보를 입력합니다.

클라우드 아키텍트

Windows 세션을 시작합니다.

  1. EnginFrame 포털의 메뉴에서 Windows 데스크톱을 선택합니다.

  2. Windows 관리자로 로그인하라는 메시지가 표시되면 efadmin 사용자에 사용한 것과 동일한 암호를 입력합니다.

  3. Windows 세션이 성공적으로 시작되었는지 확인합니다.

클라우드 아키텍트

Linux 세션을 시작합니다.

  1. EnginFrame 포털의 메뉴에서 Linux 데스크톱을 선택합니다.

  2. 로그인하라는 메시지가 표시되면 efadmin 사용자의 보안 인증 정보를 입력합니다.

  3. Linux 세션이 성공적으로 시작되었는지 확인합니다.

클라우드 아키텍트
작업설명필요한 기술

스택을 삭제합니다.

AWS CloudFormation 콘솔에서 Windows 및 Linux 서버 플릿의 스택을 삭제합니다. 자세한 내용은 스택 삭제를 참조하세요.

클라우드 아키텍트

인프라를 삭제합니다.

다음 AWS CDK 명령을 사용하여 배포한 인프라를 삭제합니다.

cdk destroy --all
클라우드 아키텍트

문제 해결

문제Solution

배포가 중단되어 완료되지 않았습니다.

정리 에픽의 지침을 따른 다음 이 패턴을 반복하여 환경을 다시 배포합니다.

관련 리소스