VDI
サーバ上の仮想マシンでデスクトップ環境を動かし、利用者が手元の端末から画面転送で操作するための基盤である。OSや業務アプリケーションをサーバ側へ集めて管理する。
イマシルちゃんの解説
手元のパソコンに仕事の環境を置く代わりに、サーバの中の仮想PCを操作する方法があるよ。
その環境を提供する基盤がVDIなんだ。
仮想PCの中でOSやアプリが動き、手元の端末はキーボードやマウスの操作を送るよ。
処理した結果の画面を受け取る画面転送によって、離れた場所から使えるの。
利用者ごとに専用の仮想PCを用意する構成もあるよ。
更新やデータの管理をサーバ側へ集めやすい一方、サーバとネットワークが使えることが仕事を続けるための条件になるんだ。
この解説はわかりやすかったですか?
より深い解説
デスクトップと操作端末を分ける
VDIはVirtual Desktop Infrastructureの略である。サーバのハイパーバイザ上でデスクトップ用OSを動かし、遠隔の端末から利用させる。シンクライアントを実現する方法の一つであり、すべてのシンクライアントがVDIというわけではない。
| 構成要素 | 役割 |
|---|---|
| 仮想PC | 利用者のOSと業務アプリケーションを実行する仮想マシンである |
| VDIサーバ | 複数の仮想PCへCPU、メモリ、ネットワークなどの資源を提供する |
| VDIクライアント | 手元の端末で動き、入力を送り、返された画面を表示するソフトウェアである |
| SSL-VPN装置 | VPNを組み合わせる構成で、トンネルを終端し、許可された仮想PCへ通信を中継する |
| SSL-VPNクライアント | 手元の端末で動き、認証とトンネルの処理を行って画面転送の通信を運ぶ |
| 仮想スイッチ | 仮想PCの仮想NICを接続し、仮想PC同士や物理ネットワークとの通信をつなぐ |
仮想PCを利用者へ固定的に割り当てる構成も、利用時にプールから割り当てる構成もある。静的IPアドレスの設定、起動のタイミング、利用後に環境を残すか初期化するかも設計で決まる。VDIだから必ず一人一台を常時起動しておく、という条件ではない。
画面を運ぶ通信
画面転送にはRDPなどのプロトコルを使う。RDPの標準ポートは3389であり、TCPによる接続を待ち受ける構成がある。製品や接続構成によってUDPも利用するため、RDPをTCPだけの通信とは決めつけない。
利用者の入力をサーバへ送り、仮想PCが処理した表示内容を返す。業務アプリケーションとデータを端末へ丸ごと移す方式ではない。ただし、クリップボード共有、ファイル転送、ローカルドライブの共有を許可するとデータの交換経路ができる。端末へデータを残したくない場合は、これらも制限する。
VPNを通じて利用する構成
インターネット越しの接続にSSL-VPNを組み合わせる場合、画面を扱うVDIクライアントと、トンネルを扱うSSL-VPNクライアントの役割は別である。後者がクライアント証明書などで認証し、SSL-VPN装置が通信を社内側へ中継する。
ポートフォワーディング方式の例では、画面転送ソフトがlocalhostの待受ポートへ接続する。クライアントモジュールがそれを受け、暗号化トンネルを通してSSL-VPN装置へ渡す。localhostは手元の端末自身を指し、仮想PCのアドレスではない。
VPN装置側で接続受付用のVIPを用意し、宛先を実際の仮想PCへ変換する構成もある。この処理はDNATであり、送信元を変えるSNATとは異なる。利用者と接続先を管理する情報と、アドレス・ポートの変換対応を持つNATテーブルを使って、認可された接続先へ中継する。これは接続構成の一例であり、VDIそのものに必須のNAT方式ではない。
障害と感染への対応
同じ物理サーバへ多数の仮想PCを集めると、そのサーバの故障は複数利用者へ影響する。冗長化、保存データの保護、ピーク時の処理能力を確認する。
特定の仮想PCが感染した場合は、その仮想NICを仮想スイッチから切り離すなどして隔離する。共有する物理NICを止めると他の利用者の通信まで停止するため、操作する対象を区別する。仮想ネットワークでの隔離方法は、仮想スイッチの記事で扱う。
VDIをクラウドのサービスとして利用する提供形態がDaaSである。VDIは仕組み、DaaSはサービスの提供形態という観点の違いがある。