EC2上でリモート実行しているX11アプリケーションをWindowsに表示してみた

X11アプリケーションをEC2(Amazon Linux 2)で実行し、Windowsデスクトップに画面表示する方法をご紹介します。
2021.06.14

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

はじめに

データアナリティクス事業本部の藤川です。
クラウドを使う理由として、手軽にアプリケーションの実行環境が手に入ることだと思います。特に、ハイスペックな環境が格安に用意できることではないでしょうか。
利用用途は様々ですが、画像処理や動画編集、機械学習、もしかしたら、ビットコインマイニング等、重い処理をしたい場合には重宝します。

私がプライベートで使用しているWindows PCは非力なので、重い処理はEC2に任せています。
そこで、今回はX11アプリケーションをEC2(Amazon Linux 2)で実行し、Windowsデスクトップに画面表示する方法をご紹介したいと思います。

用意するもの

EC2インスタンスとWindows PCが必要です。
IAMアカウントは予め用意しておいてください。

  • EC2インスタンス
  • Windows PC
  • SSHクライアント(PuTTY)
  • X Server(VcXsrv)

準備

EC2(X Client)側

EC2側での準備作業は次の通りです。

  • EC2インスタンスを起動
  • xauthをインストール
  • SSHのX11Forwarding設定を有効化

EC2インスタンスを起動

  1. AWSマネジメントコンソールからEC2インスタンスを起動します。
    ここでは、Amazon Linux 2を使用します。
  2. 自動割り当てパブリック IPを有効にする等、Windows PCからSSH接続できるように設定します。
  3. キーペアファイルを忘れずにダウンロードします。
  4. セキュリティグループで、SSH(22番ポート)を開けておきます。

X11アプリケーションをインストール

  1. xorg-x11-xauthパッケージをインストールします。
    sudo yum install xorg-x11-xauth

SSHを設定変更

  1. /etc/ssh/sshd_configファイルを編集します。
    sudo vi /etc/ssh/sshd_config
  2. X11Forwardingyesに設定します。
    X11Forwarding yes
  3. sshdを再起動します。
    sudo systemctl restart sshd

Windows(X Server)側

Windows PC側での準備作業は次の通りです。

  • PuTTYをインストール
    • キーペアファイルをPuTTY形式に変換
    • SSHクライアントを設定
    • Enable X11 forwarding設定を有効化
  • X Server(VcXsrv)をインストールし、設定

PuTTYをインストール

  1. PuTTYをインストールします。
  2. PuTTYgen を使用してプライベートキーを変換するの手順を参考に、キーペアファイルをPuTTY形式に変換します。
  3. 画面左側のCategoryペインで、Connection-SSH-Authを開きます。
  4. Private key file for authenticationBrowse...ボタンをクリックします。
  5. PuTTY形式に変換したキーペアファイルを選択し、開くボタンをクリックします。
  6. 画面左側のCategoryペインで、Connection-SSH-X11を開きます。
  7. 画面右側のEnable X11 forwardingにチェックを付けます。
  8. 画面左側のCategoryペインで、Sessionを開きます。
  9. 画面右側のHost Name(or IP address)Portにそれぞれ、ec2-user@EC2インスタンスのIPアドレスとポート番号を入力します。
    ※ここでは、それぞれec2-user@54.xx.xx.xx22と入力しています。
  10. Saved SessionsEC2などと入力します。
  11. Saveボタンをクリックします。

X Server(VcXsrv)をインストール

  1. 構築方法(Windows)を参考に、VcXsrvをインストールし、起動しておきます。

使用方法

EC2(X Client)側

  1. X11アプリケーションをインストールします。
    sudo yum install xeyes

Windows(X Server)側

  1. PuTTYを起動します。
  2. 画面左側のCategoryペインで、Sessionが開いていると思います。
  3. 先ほど保存したEC2を選択し、Loadボタンをクリックします。
  4. Saved SessionsEC2と表示されます。
  5. Openボタンをクリックします。
  6. EC2インスタンスにログインできます。
  7. X11アプリケーションを起動します。
    xeyes &
  8. Windowsのデスクトップ上に、xeyes等のX11アプリケーションが表示されます。 vcxsrv-xeyes

さいごに

ポートフォワーディングを設定すれば、EC2上で稼働するX11アプリケーションの画面を、手元にあるWindowsのデスクトップに表示させることが可能です。クラウドのメリットを活かし、必要なときに必要なだけ使用することができます。重い処理が必要なアプリケーションを一時的にEC2で実行できると、効率良く作業できます。