21
AWSVDI/DaaSっぽいものを 作ってみた 青柳 英明 JAWS-UG福岡 in AWS Cloud Roadshow 2016 2016/10/6 LT大会

AWS で VDI / DaaS っぽいものを作ってみた

Embed Size (px)

Citation preview

Page 1: AWS で VDI / DaaS っぽいものを作ってみた

AWSでVDI/DaaSっぽいものを

作ってみた

青柳英明

JAWS-UG福岡 in AWS Cloud Roadshow 2016

2016/10/6 LT大会

Page 2: AWS で VDI / DaaS っぽいものを作ってみた

自己紹介

青柳 英明

職業: インフラSE(オンプレOnly)

経歴: アプリケーション開発 … 3年

インフラエンジニア … 15年

・サーバ/クライアント (Windows中心)

・オンプレ仮想化 (VMware、Hyper-V)

・現在はVDI(デスクトップ仮想化)をやってます

AWS歴: 半年ちょっと

Page 3: AWS で VDI / DaaS っぽいものを作ってみた

自己紹介

ワタシの事ですやん(笑)

Page 4: AWS で VDI / DaaS っぽいものを作ってみた

VDI (デスクトップ仮想化) とは?

「仮想サーバ」 … 仮想環境でサーバを動かす

「仮想デスクトップ」 … 仮想環境でデスクトップ(PC)を動かす

ただし、単に仮想マシンをリモートで利用する、というだけでは

「VDI」 とは言い難いです。

説明になってない…

・ ユーザー管理、ユーザー認証

・ 仮想デスクトップ (仮想マシン) の状態管理、制御

・ ユーザー → 仮想マシンの割り当て管理 (ブローカー)、セッション管理 etc.

Page 5: AWS で VDI / DaaS っぽいものを作ってみた

という訳で、

VDI のエッセンスを盛り込んだ 「っぽいもの」 を

AWS で作ってみました!

Page 6: AWS で VDI / DaaS っぽいものを作ってみた

システム構成EC2

S3バケット

Lambda

AWS Directory Service(Simple AD)

利用者仮想デスクトップ(仮想マシン群)

AMIイメージ

HTML+

JavaScript(AWS SDK)

接続メニュー(静的Webページ)

監視起動・停止

ユーザー認証

リモートデスクトップ接続

RDPファイルダウンロード

接続先選択

インスタンス状態取得

Page 7: AWS で VDI / DaaS っぽいものを作ってみた

フロント動作 (利用イメージ)

選択した仮想マシンのRDPファイル(※)が

ダウンロードされるので、「開く」をクリック

(※ リモートデスクトップ接続ファイル)

仮想マシンを選択して

「接続」をクリック

Webブラウザで「接続メニュー」へアクセス

Page 8: AWS で VDI / DaaS っぽいものを作ってみた

フロント動作 (利用イメージ)

ユーザー名/パスワードを入力

仮想デスクトップ (仮想マシン) へ接続

Page 9: AWS で VDI / DaaS っぽいものを作ってみた

仮想マシンの電源制御について

仮想マシンの利用率が低い場合…

使われていないのに起動しているのは「無駄」

・ オンプレ → 消費電力的に・ クラウド → 利用料金的に

Page 10: AWS で VDI / DaaS っぽいものを作ってみた

仮想マシンの電源制御について

かと言って、使われていない仮想マシンを停止すると…

Page 11: AWS で VDI / DaaS っぽいものを作ってみた

仮想マシンの電源制御について

かと言って、使われていない仮想マシンを停止すると…

接続要求を受けてから起動をするのでは

レスポンスが悪くなってしまう!

Page 12: AWS で VDI / DaaS っぽいものを作ってみた

仮想マシンの電源制御について

ここでは、3台を 「待機状態」 にしています

そこで、常に一定台数の仮想マシンを起動しておくことで

「利用可能な仮想マシン」 を確保します

Page 13: AWS で VDI / DaaS っぽいものを作ってみた

仮想マシンの電源制御について

利用者数が増えたら、

その分だけ裏で仮想マシンを起動して…

そこで、常に一定台数の仮想マシンを起動しておくことで

「利用可能な仮想マシン」 を確保します

Page 14: AWS で VDI / DaaS っぽいものを作ってみた

仮想マシンの電源制御について

利用者数が減ったら、

その分だけ裏で仮想マシンを停止します

そこで、常に一定台数の仮想マシンを起動しておくことで

「利用可能な仮想マシン」 を確保します

Page 15: AWS で VDI / DaaS っぽいものを作ってみた
Page 16: AWS で VDI / DaaS っぽいものを作ってみた
Page 17: AWS で VDI / DaaS っぽいものを作ってみた
Page 18: AWS で VDI / DaaS っぽいものを作ってみた
Page 19: AWS で VDI / DaaS っぽいものを作ってみた
Page 20: AWS で VDI / DaaS っぽいものを作ってみた

ちなみに

・ 「使用中」 (=起動していて、かつ、誰かがログオンしている)

AWS SDK から 「仮想マシンのログオン中ユーザー」 を取得する方法がどうしても分からず困りました。

苦肉の策で、仮想マシンのログオン/ログオフスクリプトで AWS Tools for PowerShell をキックし、

・ ログオン時: 自分自身の EC2 インスタンスの 「タグ」 にユーザー名を書き込む

→ Lambda 関数からは、このタグの値を参照することでログオン中ユーザーを把握する

・ ログオフ時: EC2 インスタンスのタグに設定されたユーザー名を消去する

という訳の分からない処理で何とかしましたが… 良い方法があれば教えて下さい m(__)m

・ 「使用可能」 (=起動していて、誰もログオンしていない)

・ 「停止」 (=起動していない)

今回のシステムでは、仮想マシンの状態は以下の3通りで管理する必要がありますが、

Page 21: AWS で VDI / DaaS っぽいものを作ってみた

結論AWS には

「Amazon WorkSpaces」 という

ちゃんとした VDI/DaaS のサービスがあるので、

良い子はそちらを使いましょう!

Amazon WorkSpaces