クラウド上に自分専用のデスクトップ(DaaS: Desktop as a Service)を持つと、 タブレットや低スペックの端末からでも、いつもの作業環境に入れる。 問題はコストと経路の安全性である。商用DaaSは月額固定で高く、 自前で建てるとデスクトップをインターネットに直接晒しがちになる。
本稿では、ブラウザから起動・停止でき、VPN経由でのみ到達でき、 使う時だけ課金される構成を解説する。
1. 全体像: 3つの構成要素
鍵になるのは「常時いる部分」をすべてサーバレスにしたこと。 EC2は1台も常時稼働させず、それでも「ブラウザを開けばいつでも起動できる」入口だけは常に生きている。
2. 利用の流れ
- VPNはL2TP/IPsecを採用。iPhone・iPad・MacはOS標準のVPN機能でL2TP over IPsecに対応しており、専用アプリの導入が不要
- デスクトップにはVPNトンネル内のプライベートアドレスで直接RDP接続する。インターネット側にRDPポートは一切開けない
- 停止し忘れに備え、毎晩決まった時刻に全インスタンスを自動停止するスケジュールを仕込んである
3. 各EC2サーバーの構成
VPNサーバー(ARM小型インスタンス・スポット)
デスクトップ(汎用インスタンス・スポット)
NATインスタンス(ARM最小・オンデマンド)
プライベートサブネットからの外向き通信(OSアップデート等)にはNAT Gatewayではなく、 最小クラスのEC2をNATインスタンスとして使う。NAT Gatewayは利用可能な状態にある時間ごとに課金されるため、使わない時間にも費用がかかる。 この用途の帯域なら最小インスタンスで十分であり、デスクトップ停止中は一緒に停止もできる。
4. コスト設計: 「使う時だけ」を徹底する
スポットの中断リスクは「個人の作業環境」という用途なら許容しやすい。 中断時の動作を「停止」にしておくと、停止中もEBSボリュームは保持され、同じアベイラビリティーゾーンで容量が戻るとEC2がインスタンスを再開する。作業データはボリュームに残っている。
5. セキュリティ設計: 入口はVPNだけ
「デスクトップをインターネットに晒さない」を出発点に、 到達経路(ネットワーク)と操作権限(IAM)を別々のレイヤーで絞っている。
6. 入口を常設しない: エンドポイントを使う時だけ作る
本構成のVPNサーバーはEC2の自前運用であり、OSとVPNソフトウェアの面倒を自分で見る必要がある。 マネージドな入口に置き換えると運用は軽くなるが、今度は入口そのものの常設費用が問題になる。
どちらも、入口を作ったままにすれば使わない時間にも課金が続く。 そこで、入口のリソース自体を、使う時だけ作り、使い終わったら消すという考え方を取る。
当社では、この考え方をAWS Verified Accessを使った別の入口で実装した。 Verified AccessはVPNを使わずに、アプリケーションへのアクセスをリクエストごとに評価するサービスである。
- エンドポイントをTerraformの管理外に置くのは、作成・削除のたびにapplyが必要になるのを避けるためである
- 作成の手順に待機と削除まで含め、利用の終わりに必ず削除まで進むようにしている。後始末を利用者に委ねない
- インフラがコードで定義され、作り方が手順として固定されているからこそ、「リソースの存在自体をオンデマンドにする」という選択肢が取れる
7. まとめ
DaaSは「贅沢な常時稼働サービス」である必要はない。 起動停止の導線をブラウザまで持ってくることで、クラウドの従量課金を個人の作業環境にそのまま適用できる。
