LINEで送る
Pocket

[AWS][EC2][Ubuntu 20.04.2 LTS]リモートデスクトップをnoVNCでブラウザからアクセスする

先月こんなブログを書きましたが、noVNCでブラウザからUbuntu Desktopにログインはできるようになったものの、複数ログインができないという事象を発見しまして、対応として別ポートでユーザごとに設定しようと試みたところうまくいかずといった状態でした。今回はnoVNCを使わずにApache Guacamoleコンテナを利用して管理や複数ユーザーログインする方法をブログしたいと思います。


Multiuser VNC Idea #121

https://github.com/novnc/noVNC/issues/121

Not a bad idea, but really outside the scope of this project. Also the maintainer has been pretty busy so expanding the project to server work is probably not going to happen. Have you looked at TigerVNC or some of the other existing servers?

noVNC will work with most of them so I’d try to talk with one of those projects if I were you.

noVNCはマルチユーザ対応しないの?というissueを発見しまして、メンテしにくいから厳しいですとのことでした。TigerVNCでユーザー指定と別ポートで接続できると思うよとのことで色々と調べてみました。とりあえずVNCの起動方法はそれでいくとして、ブラウザからのアクセスはどうするかと調査していたところ、クラメソさんがApache Guacamoleを利用してブラウザから各Ubuntu Desktopのユーザーログインができるとのことで早速試してみました。


Apache Guacamoleとは

https://guacamole.apache.org/

https://hub.docker.com/r/guacamole/guacd

https://dev.classmethod.jp/articles/setup-apache-guacamole/

  • クライアントレスのリモートデスクトップゲートウェイ
  • VNC、RDP、SSHなどの標準プロトコルをサポート
  • Dockerをサポート

■構成

前回のAWS EC2/Ubuntuの中にdocker-composeをインストールして、ターゲットグループで8080を80にリバースプロキシしているだけというシンプルな構成にしました。以前はApache Guacamoleを別サーバーで管理して、Ubuntu Desktopをコンテナでチャレンジしていましたが、コンテナだとGoogle Chromeが動作しなかったりなど色々と成約がありました。早速Apache GuacamoleをDockerで起動してみましょう。


Docker run Apache Guacamole

  • docker-compose.yml

  • Setting docker-compose

始めはMySQLコンテナで試してみましたが、httpsで接続しようとしていたのでオフにしてもアプリがMySQLにまったく接続できず、途方に暮れてしまったのでPostgreSQLコンテナに変更したところうまくいきました。エラー出たらdocker logs -fでコンテナのログを見るといいですね。


Setting TigerVNC

  • make test01 user

今回はtest01ユーザを作成して、TigerVNCで各ユーザーごとにportを割り振って起動するようにしました。psコマンドでプロセスを確認してみるとポート5901になっていることがわかります。test02ユーザを作る場合も同様です。vncserverを起動するときに :2 と指定するようにしましょう。以下起動シェルスクリプトもあると便利です。実際はsystemctl化したほうが楽ですがいったんこれで…Ansible化もしたほうが良き。(後で追記します)


Setting Apache Guacamole

https://hoge.adachin.me/guacamole

user:guacadmin
pass:guacadmin

Guacamoleにブラウザでログインしたらまずは設定画面からtest01で接続できるように設定しましょう。自分は5つ分のユーザを作成しました。

上記のようにログインできれば完了です!日本語も打てるし問題なさそう。ちょい重いくらいかなというレスポンスでした。スケールアップかな。


まとめ

インスタンスタイプをt3a.xlargeにスケールアップしましたが、メモリー利用率はあまり上がることなく、CPU/ロードアベレージが食いそうですね。これから色々試していきたいと思います!にしても構築するの大変だった…

LINEで送る
Pocket


adachin

1989年生まれのLancers SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。好きなツールはAnsible,Terraform,CircleCIで、ECS/Fargateでのインフラ構築を得意とする。副業では数社サーバー保守とベンチャー企業のインフラ改善やMENTAで未経験者にインフラのコーチングを実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。現在はサービスの信頼性向上、可用性、レイテンシ、パフォーマンス、モニタリング、緊急対応、インフラコード化、リファクタリング、セキュリティ強化、新技術の検証、Docker開発環境の提供、AWSでのインフラ構築、ECS/Fargateへ移行、CakePHP4での管理画面作成、メンター、分析基盤の運用を担当している。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください