Amazon Linux 2 の G5 インスタンスに NICE DCV でリモート接続してみた

2022.06.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

2022年6月23日に G5 インスタンスが東京リージョンでも利用可能になりました。Marketplace で公開されている NICE DCV の AMI が G5 インスタンスで動作するのか確認する機会がありましたので紹介します。

G5 インスタンスが GA されたのは 2021年の11月のことでしたので約半年遅れの日本上陸ですね。

Amazon EC2 G5 インスタンスの一般提供を発表

検証環境

項目 バージョン
AMI ID ami-0121e5d0d24ec6031
AMI Name DCV-AmazonLinux2-x86_64-2022.0.12760-NVIDIA-510.47.03-2022-05-23T15-57-07.954Z
Instance Type g5.xlarge
OS Amazon Linux 2
NICE DCV 2022.0 (r12760)
NICE DCV Client 2022.0 (r4131)

NICE DCV AMI で起動してみる

IAM ロールの作成

NICE DCV の初期設定でシェルアクセスが必要になるため、セッションマネージャーの許可と、NICE DCV のライセンスチェック用の許可ポリシーを付与した IAM ロールを作成します。

以下のIAMポリシーを作成します。利用するリージョンに応じてap-northeast-1の箇所を修正してください。

NICEDCVPolicy

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::dcv-license.ap-northeast-1/*"
        }
    ]
}

EC2インスタンスはNICE DCVのライセンス確認のため定期的にS3バケットへアクセスします。そのため、特定のS3バケットへアクセス権限のあるIAMロールを設定する必要があります。

NICE DCV AMI から起動

新規のインスタンスタイプは全リージョンで起動できるとは限らないため、起動対象のアカウントではどの AZ で起動できるか先に確認しましょう。最近はスポットインスタンスの料金設定履歴から表示されるリージョンをチェックするのが早いのではないかと思っています。私のアカウントでは ap-northeast-1d では起動できないようですね。

NICE DCV for Amazon Linux 2 の AMI を利用してインスタンスを起動します。

セキュリティグループ

接続元のグローバル IP から TCP/UDP の 8443 ポートを許可しています。

$ aws ec2 describe-security-groups --group-ids sg-0e5ee023e794b8fa9 --query "SecurityGroups[*].IpPermissions[*]" --output table
--------------------------------------
|       DescribeSecurityGroups       |
+----------+--------------+----------+
| FromPort | IpProtocol   | ToPort   |
+----------+--------------+----------+
|  8443    |  udp         |  8443    |
+----------+--------------+----------+
||             IpRanges             ||
|+----------------------------------+|
||              CidrIp              ||
|+----------------------------------+|
||  203.0.113.1/32                  ||
|+----------------------------------+|
+----------+--------------+----------+
| FromPort | IpProtocol   | ToPort   |
+----------+--------------+----------+
|  8443    |  tcp         |  8443    |
+----------+--------------+----------+
||             IpRanges             ||
|+----------------------------------+|
||              CidrIp              ||
|+----------------------------------+|
||  203.0.113.1/32                  ||
|+----------------------------------+|

NICE DCV の初期設定

セッションマネージャーでインスタンスにアクセスしました。

NICE DCV のバージョンを確認してきます。

$ dcv version

NICE DCV 2022.0 (r12760)
Copyright (C) 2010-2022 NICE s.r.l.
All rights reserved.

This product is protected by copyright and
licenses restricting use, copying, distribution, and decompilation.

NICE DCV でリモート接続する際のパスワードが未設定状態のため、デフォルトの ec2-user にパスワードを設定しました。

$ sudo su - ec2-user
$ sudo passwd ec2-user
Changing password for user ec2-user.
New password:
Retype new password:

Linux の NICE DCV のセッションにはコンソールセッションと仮想セッションの2タイプあります。

Managing NICE DCV sessions - NICE DCV

コンソールセッションだと以下のコマンドを実行するとセッションが利用可能になるのですが、毎回手動で実行するのはめんどくさいです。

$ dcv create-session dcvdemo

EC2 起動時に自動でコンソールセッションを作成するには以下の設定を追加します。

sudo sed -i -e "s/^#create-session/create-session/g" /etc/dcv/dcv.conf
sudo sed -i -e "s/^#owner = \"\"/owner = \"ec2-user\"/g" /etc/dcv/dcv.conf
sudo systemctl restart dcvserver

コメントアウトが外れて、実行ユーザー名が入力されているか確認します。

$ cat /etc/dcv/dcv.conf | egrep ^create-session
create-session = true

$ cat /etc/dcv/dcv.conf | egrep ^owner
owner = "ec2-user"

EC2 上の設定は以上です。

NICE DCV Client から接続

DCV Client バージョンを確認します。

OS: Darwin (20.6.0 Darwin Kernel Version 20.6.0: Wed Jan 12 22:22:42 PST 2022; root:xnu-7195.141.19~2/RELEASE_X86_64)

Architecture: x86_64

Version: 2022.0 (r4131)

EC2 のパブリック IP を入力します。

ec2-user と先ほど設定したパスワードを入力します。

Amazon Linux 2 へ GUI で接続できました。

コンソールセッションがない状態ですとユーザー名・パスワード入力後、下記のエラーが表示され接続できません。コンソールセッションの設定を見直すか、切り分けのため手動でセッションを作成(dcv create-session dcvdemo)してみてください。

おわりに

AMI のレビュー欄に yum upate ができないと書いてあったこと、G5 インスタンスでも動作するか確認したかったため試してみました。yum updateは実行可能でした。2年前のレビューなのでどこかでバージョンあがったタイミングで解消された様です。

参考