ROBOT PAYMENT Engineers Blog

株式会社ROBOT PAYMENTのテックブログです

リモートデスクトップの効率的使い方

はじめに

こんにちは。
業務委託としてROBOT PAYMENT(以下RP社)で開発お手伝いとして3年ほどお世話になっております。
@nao_val_eと申します。

私は基本的にWeb系エンジニアの人間なのですが、ゲーム好き・デジモノ大好きな人間なため最速クリア・最効率を出せるかをテーマに趣味も仕事もやらせていただいております。

リモートデスクトップについて書こうと思った経緯

最近の新型コロナウィルスでリモートワークになった方も多いと思いますが、
リモートワークではなくリモートデスクトップについて色々個人で使っているところを共有できればなと思いました。結構たまにこんなことできるんだって言われることもあり。

実例紹介

普段は都内にてリモートワークで作業しています。
2019年の12月に実家(秋田)の父親が手術となり、介護手伝いのため12月は早めに帰省し作業場所を実家に一時的に移しました。
RP社の仕事はすでにリモートワーク体制になっていたので、ネット環境さえ整っていれば基本的にはどこでも仕事ができますのでそんなに不安はなかったです。

仕事は何の問題もないのですが、ここで問題になるのが趣味の部分。

結構オンラインゲームをやる人間なので、ログインボーナスなど様々な問題があります。
自宅では同時に複数のゲームをやるためゲームによってPCを分けていたりするので3台動いていたりします。
(ゲームによってnProtectというプログラムのためゲーム多重起動を防がれたりしているのもあるため)
そのため実家に持っていくプライベートノートPC1台では、ゲーム毎にログインしてログアウトしての繰り返し作業と時間を使います。

ここで使うのがリモートデスクトップ機能。
東京の自宅の各PCに接続することで問題なくこなせます。
元々実家が自営業でパソコンはあるのですが親は操作不慣れ。
私が実家にいたときはよかったのですが、実家を出る際になんとかしなきゃで対応策としてリモート設定し実家の事務作業はリモートで10年ほどやっていました。
困ったことがあったとしたら物理的にネットが死んだ場合(モデム故障)くらいでした。

また私は以前ベトナムで仕事のため住んでいたことがあり、行く前からネットは不安定と聞いていたのもあったのでかなり不安でした。
行ってみるとたしかにネットが低速になってしまうこともあり、VPNでもアクセスできないようなゲーム、ブラウザでダウンロード中のファイルが切断されたり・・

こんなときは

  1. リモートで日本にある自宅PCへ接続。
  2. リモート先の対象のファイルをダウンロードする。
  3. DropboxやGoogleドライブなどのストレージサービスへ。
  4. 接続元PCのストレージサービスのアプリなどで同期実行。

アプリの同期機能でゆっくりダウンロードしてくれるため、接続元PCでもしっかりダウンロードできるという手段が使えます。
もちろん実家の事務作業もベトナムから作業もしていました。

リモートアプリの話

世の中色々リモート用のアプリがあります。
色々試してみましたが有名どころの一つとしてこれらがありますね。
Wake on LANでPC起動させるようにしておくことでシャットダウンしていた場合の対策や、
1つのサービスが止まった場合などに備えて2つは設定していたりします。

  • OS標準
    やっぱりこれが一番動作も高速だけど、個人で設定するには少しめんどう。
    ネットワーク知識がそこそこ必要。
  • Realvnc
    昔使ってたけど当時は描画がちょっといまいちだった。
  • TeamViewer
    速度は問題なし。 手軽なんだけど認証系しっかりしないと危ない。
  • Chromeリモートデスクトップ
    こっちも手軽で速度は問題なし。だけど同じく認証は注意。

転送量検証

昔と違って常時接続当たり前だけどスマホでよくある通信量に絡むお話。
シンプルなChromeリモートデスクトップで検証。

接続先PCの解像度は以下の設定。

  • 接続先1: 4kモニター 3840 * 2160
  • 接続先2: 1920 * 1080

この2か所で同じゲームを起動し同じMAPでの同じ画面内。
リモート元で接続先切り替えてNetWorxでグラフ化し、接続して画面操作した場合を計測してみました。

  • 接続先1 4kモニター3840 * 2160 f:id:naoyuki_mura:20200324110102p:plain

  • 接続先2 1920 * 1080 f:id:naoyuki_mura:20200324105934p:plain

一番高いのが画面最大化した場合。
中間が画面の1/4くらいにしてウィンドウ表示。
一番低いのは最小化しバックグラウンドにしたもの。  

結果として同じ操作をしていても、圧倒的に接続先1の4kモニタへの接続時の転送量が多いです。
フルスクリーン状態でゲームをするのと、最小化して動きのないデスクトップ画面の時の転送量が圧倒的に違うので、 やはり動きがある分データの量が多いのでしょう。
そしてゲーム自体の解像度を高画質にした時に一段と転送量増えていました。
接続先PCでの転送量も計測しましたが大体同じような転送量でした。

また接続元PCのモニターサイズや解像度が低いと、4Kモニターが接続先の場合に拡大されるような画面表示になり操作しにくいです。
画面縮小や接続先の解像度設定変更したりと面倒なのと、転送量を無駄に使ってしまうのがデメリット。
飲み屋で友人と飲みながらリモート接続してゲームしてたら月の制限ぎりぎりになってました・・

個人的には接続先の解像度設定は接続先2の一般的に使われる23-27インチの1920 * 1080にしておくことでスマホ・タブレットからもそんなに不便ではないです。

セキュリティの話

便利なんですが誰でもそのPCを操作できてしまうかもしれないというリスクがあります。
結構色々なものを使ってみましたが、簡単に導入しやすいのはchromeな気がします。
某サービスも2016年頃に不正ログイン問題が発生したりもしましたが、
いくら2段階認証とか機能としていれられても結局オート系で記憶設定したりすると個人的には意味がないかなと。
結局は自分自身で気を付けないといけないと思います。
端末に触って誰でもすぐ見れる・接続できてしまうはそもそもNG。
いまだにPCに付箋でユーザーIDとパスワード貼ってたりする人いますよね・・

個人で対策していることとして

  • 毎回入力するのが面倒でもPINコードやパスワードは記憶させない。
  • 複数台設定している場合は同じPINコードやパスワードにはしない。
  • ログアウト・放置状態になるときは必ずスクリーンセーバー設定(パス付き)したり、接続先をロックさせる。
  • 接続先PCでログインした場合はLINE通知送るように。

まとめ

個人的感想として。

  • 利点

    • 実際に処理するのは接続先のPCなのでスペックの低い軽いPCでも良い。
    • 接続元のネットが不安定でも接続先が切断されるわけではないので、大容量ファイルのダウンロードや接続が切断されると困ることは任せられる。
    • 1台のPC・スマホ・タブレットで接続先PCが複数ある場合は複数操作ができる。
    • 接続先PCにキーボードやマウスなど基本的にいらない。
    • OS関係なく操作できる。ショートカットもキーボード設定切り替えとかでそんなに困らないです。
  • 欠点

    • 接続元・接続先のネット環境もそれなりにないといらいらする。
    • 接続先の情報が多いと操作が重い場面もある。
    • 遅延はあるのでFPSとか激しいゲームには向かない。
    • リモートするソフトや設定によっては転送量が多いので、モバイル接続など月の制限がある場合は接続制限にひっかかる可能性がある。
    • システムが正常にシャットダウンしない場合(シャットダウン画面でフリーズ)
    • 物理的に何かあった時がわからない(LANケーブル抜けたとか)

いかに同時に作業できる環境にするか。
自宅に帰れない。
自宅のPCにはこのファイルあるのに。
必要なファイルを使いたいのに回線が安定せずダウンロードできない。
急だけど今週末に海外行って。

こんなことが当たり前にあるのでPCやタブレット・スマホ1台だけでどこでも色々なことができるようにという感じでこういう環境作ってます。

もちろん会社のPCに勝手に設定はまずNGなので、会社の規則に従ってくださいね!