NICE EnginFrame および NICE DCV セッションマネージャーを使用して Auto Scaling 仮想デスクトップインフラストラクチャ (VDI) をセットアップする - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

NICE EnginFrame および NICE DCV セッションマネージャーを使用して Auto Scaling 仮想デスクトップインフラストラクチャ (VDI) をセットアップする

ダリオ・ラ・ポルタとサルバトーレ・マカローネ(AWS)によって作成されました

コードリポジトリ: elastic-vdi-infrastructure

環境:PoC またはパイロット

テクノロジー:ハイパフォーマンスコンピューティング; インフラストラクチャー

AWS サービス: AWS CDK、AWS CloudFormation、Amazon EC2 Auto Scaling、Elastic Load Balancing (ELB)

[概要]

NICE DCV は、高性能なリモートディスプレイプロトコルで、さまざまなネットワーク条件の中で、あらゆるデバイスにリモートデスクトップやアプリケーションを安全にストリームする方法を提供します。NICE DCV と Amazon Elastic Compute Cloud (Amazon EC2) を使用すると、グラフィックスを多用するアプリケーションを EC2 インスタンス上でリモートで実行し、ユーザーインターフェイスをよりシンプルなリモートクライアントマシンにストリーミングすることができます。これにより、高価な専用ワークステーションが不要になり、クラウドとクライアントマシン間で大量のデータを転送する必要がなくなります。

このパターンでは、ウェブベースのユーザーインターフェイスからアクセス可能な、フル機能で自動スケール可能なLinuxおよびWindows仮想デスクトップインフラストラクチャ(VDIをセットアップします。VDIソリューションにより、研究開発(R&D)ユーザーは、グラフィックスを多用する分析リクエストを送信したり、結果をリモートで確認したりするための、アクセスしやすくパフォーマンスの高いユーザーインターフェースを利用できます。

前提条件と制限

前提条件

  • アクティブなAWS アカウント

  • 管理者権限と一連のアクセスキー。

  • AWS Cloud Development Kit (AWS CDK) ツールキット (インストールおよび設定) 詳細については、「 AWS CDK をインストールする」 を参照してください。

  • AWS コマンドラインインターフェイス (AWS CLI)、AWS アカウントにインストールおよび設定されています。詳細については、「 AWS CLI の最新バージョンをインストール、更新する」 を参照してください。

  • Python、インストールおよび設定。詳細については、「ソースリリース」 (Python ウェブサイト)を参照してください。

  • 1 つ以上の 仮想プライベートクラウド (VPC) が利用可能です。

  • 2 つ以上の Elastic IP アドレスを使用できます。デフォルトの制限について詳しくは、「Elastic IP アドレスの制限」 を参照してください。

  • Linux EC2 インスタンスでは、Secure Shell (SSH) key pair を設定します。詳細については、「キーペアおよび Linux インスタンス」 を参照してください。

製品バージョン

  • AWS CDK バージョン 2.26.0 またはそれ以降

  • Python バージョン 3.6 以降。

アーキテクチャ

ターゲットアーキテクチャ

次の図は、この VDI ソリューションのさまざまなコンポーネントを示しています。ユーザーは NICE を操作し EnginFrame て、Windows および Linux NICE DCV インスタンスの Amazon EC2 Auto Scaling グループに従って Amazon EC2 インスタンスを起動します。

プライベートサブネット内の Windows および Linux VDI 用のApplication Load Balancerと Auto Scaling グループ。

自動化とスケール

このパターンに含まれるコードは、カスタム VPC、パブリックサブネットとプライベートサブネット、インターネットゲートウェイ、NAT ゲートウェイ、Application Load Balancer、セキュリティグループ、IAM ポリシーを作成します。AWS CloudFormation は、Linux および Windows NICE DCV サーバーのフリートの作成にも使用されます。

ツール

AWS サービス

  • AWS Cloud Development Kit (AWS CDK) は、AWS クラウドインフラストラクチャをコードで定義してプロビジョニングするのに役立つソフトウェア開発フレームワークです。

  • AWS CloudFormation は、AWS リソースのセットアップ、迅速かつ一貫したプロビジョニング、AWS アカウントとリージョン全体のライフサイクル全体の管理に役立ちます。

  • NICE DCV は、さまざまなネットワーク条件下で、任意のクラウドまたはデータセンターから任意のデバイスに、リモートデスクトップやアプリケーションストリーミングを配信するのに役立つ高性能リモート表示プロトコルです。このパターンでは、ハイパフォーマンスコンピューティング (HPC) の 3D グラフィックをリモートでストリーミングする帯域幅効率の高いエクスペリエンスを提供します。

  • NICE DCV セッションマネージャー」は、NICE DCV サーバーフリートの NICE DCV セッションのライフサイクルを管理するのに役立ちます。

  • NICE EnginFrame は、クラウド内の技術および科学アプリケーションにアクセスするための高度なフロントエンドウェブインターフェイスです。

コードリポジトリ

このパターンのコードは、NICE EnginFrame および NICE DCV セッションマネージャーリポジトリを備えた Auto Scaling VDI ソリューションで使用できます。

エピック

タスク説明必要なスキル

リポジトリをクローン作成します。

コードを含むリポジトリをクローンします。

git clone https://github.com/aws-samples/elastic-vdi-infrastructure.git
クラウドアーキテクト

必要な 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 Regions」 を参照してください。

    • account — ターゲット AWS アカウントの ID。詳細については、「AWS アカウント ID を見つける」 を参照してください。

    • key_name — Linux EC2 インスタンスへのアクセスに使用されるkey pair。

  3. (オプション) 以下のパラメータの値を変更して、環境に合わせてソリューションをカスタマイズします。

    • ec2_type_enginframe – EnginFrame インスタンスタイプ

    • ec2_type_broker — セッションマネージャーブローカーのインスタンスタイプ

    • ebs_enginframe_size – EnginFrame インスタンスの Amazon Elastic Block Store (Amazon EBS) ボリュームのサイズ

    • ebs_broker_size — セッションマネージャーブローカーインスタンスの EBS ボリュームのサイズ

    • TagName and TagValue — リソースの請求タグ。

    • efadmin_uid – EnginFrame 管理者 (efadmin ) ユーザーの一意の識別子

    • linux_shared_storage_size — ギガバイナリバイト (GiB) 単位の OpenZFS サイズ

    • 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

デプロイが完了すると、次の 2 つの出力が返されます。

  • Elastic-Vdi-Infrastructure.EnginFrameURL – EnginFrame ポータルの HTTPS アドレス

  • Elastic-Vdi-InfrastruSecretEFadminPassword — efadmin ユーザーのパスワードを含むシークレットの Amazon リソースネーム (ARN)

これらの値をメモしておきます。これらはこのパターンの後半で使用します。

クラウドアーキテクト

多数の Linux サーバーをデプロイします。

  1. AWS マネジメントコンソールにサインインし、CloudFormation コンソールを開きます。

  2. スタックの作成を選択し、新しいリソースを使用(標準)を選択します。

  3. cloudformation_files フォルダで、dcv-linux-fleet.yaml ファイルを選択します。

  4. スタックの詳細の指定ページで、以下のパラメータを定義します。

    • スタック名 – スタック名です。

    • DcvFleet — NICE DCV フリートの名前。この値を空白のままにしたり、スペースを使用したりしないでください。

    • InstanceType – フリートのインスタンスタイプ。

    • RootVolumeSize – Linux EC2 インスタンスのルートボリュームサイズ。

    • MinSize — DCV セッションを実行しない使用可能なノードの最小数。たとえば、2 と入力した場合、ソリューションはノードが 2 つから始まります。ユーザーがセッションを作成すると、使用可能なノードの数が 1 に減り、ソリューションは最小限を維持するために別のノードを作成します。

    • MaxSize – フリート内のノードの最大数。最大数に達した場合、ユーザーは新しいセッションを開始できません。

    • BillingTagName – 請求に使用されるタグ名。このタグ名は Windows スタックに使用されているものとは異なる必要があります。

    • BillingTagValue – 請求に使用されるタグ値。

  5. スタック作成ウィザードを完了し、Submit を選択してスタックの作成を開始します。

クラウドアーキテクト

フリートな Windows サーバーをデプロイしましょう。

  1. AWS マネジメントコンソールにサインインし、CloudFormation コンソールを開きます。

  2. スタックの作成を選択し、新しいリソースを使用(標準)を選択します。

  3. cloudformation_files フォルダで、dcv-windows-fleet.yaml ファイルを選択します。

  4. スタックの詳細の指定ページで、以下のパラメータを定義します。

    • スタック名 – スタック名です。

    • DcvFleet — NICE DCV フリートの名前。この値を空白のままにしたり、スペースを使用したりしないでください。

    • InstanceType – フリートのインスタンスタイプ。

    • RootVolumeSize – Windows EC2 インスタンスのルートボリュームサイズ。

    • MinSize – 使用可能で、どの DCV セッションも実行しないノードの最小数。

    • MaxSize – フリート内のノードの最大数。

    • BillingTagName – 請求に使用されるタグ名。このタグ名は Linux スタックで使用されているものとは異なる必要があります。

    • BillingTagValue – 請求に使用されるタグ値。

  5. スタック作成ウィザードを完了し、Submit を選択してスタックの作成を開始します。

クラウドアーキテクト
タスク説明必要なスキル

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 Desktop を選択します。

  2. Windows 管理者としてサインインするように求められたら、efadmin ユーザーと同じパスワードを入力します。

  3. Windows セッションが正常に開始されることを確認します。

クラウドアーキテクト

Linux セッションを開始します。

  1. EnginFrame ポータルのメニューで Linux Desktop を選択します。

  2. サインインするように求められたら、efadmin ユーザーの認証情報を入力します。

  3. Linux セッションが正常に開始されることを確認します。

クラウドアーキテクト
タスク説明必要なスキル

スタックを削除します。

AWS CloudFormation コンソールで、Windows および Linux サーバーフリートのスタックを削除します。詳細について、「スタックの削除」 を参照してください。

クラウドアーキテクト

インフラストラクチャを削除します。

次の AWS CDK コマンドを使用して、デプロイされたインフラストラクチャを削除します。

cdk destroy --all
クラウドアーキテクト

トラブルシューティング

問題ソリューション

デプロイは中断されたため完了しませんでした。

クリーンアップエピックの指示に従い、このパターンを繰り返して環境を再度デプロイします。

関連リソース