【AWS】WorkSpaces + FSx + Microsoft AD でテレワーク環境を構築する 

#はじめに
はじめまして。
本記事が初投稿となります。
至らぬ点が多々あると思いますが、ご容赦くださいませ。
初回なので気合を入れた結果、長文となってしまいました。。
次回以降は要約した記事作成を心がけたいと思います。

#対象者
* テレワーク用途で仮想デスクトップの利用をお考えの方
* WorkSpaces、Fsxの導入方法を知りたい方

#背景
最近、テレワークが当たり前になりつつありますね。
テレワーク環境を用意する場合、いろいろなやり方がありますが、クラウドサービスを活用して仮想デスクトップを導入するのが安全で楽な方法です。
ハードウェアの追加購入が不要で初期投資を抑えられますし、利用者は自宅のPCとインターネット回線を使ってすぐに利用できるというメリットがあります。

AWSのサービスを活用し、仮想デスクトップ＋AD＋ファイルサーバの3点セットで簡単にテレワークをスタートできますので、今回はその構築方法を紹介します。
構築にあたっては、なるべく手順を簡素化したいと思い、一部テンプレート化にもチャレンジしています。

#実現したいこと
WorkSpacesを利用し、テレワークを想定した仮想デスクトップ環境を構築します。
仮想デスクトップでは以下の機能が利用できることを確認します。

* インターネット接続
* ファイルサーバ接続
* Microsoft Office利用
* アンチウイルス機能

#構成
できる限りAWSのマネージドサービスを活用し、管理の手間がかからない構成とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/3603be99-4397-bfbe-b64c-b119216b3158.png)

#環境
####AWSリージョン
* 東京リージョン(ap-northeast-1)

####WorkSpaces
* Windows スタンダードバンドル（2vCPU/メモリ4GB） 
* ルートボリューム80GB/ユーザボリューム50GB
* プラスアプリケーションバンドル利用（Microsoft + ウイルス対策ソフト）

####FSx for Windows File Server
* マルチAZ
* SSD
* 容量100GB

####Active Directory
* AWS Directory Service for Microsoft Active Directory（Standard Edition）

#使用するAWSサービス
###WorkSpaces
WorkSpacesは、AWSが提供する仮想デスクトップ配信サービスです。
利用者は専用のクライアントもしくはWebブラウザを使用して仮想デスクトップを利用することができます。

[Amazon WorkSpaces](https://aws.amazon.com/jp/workspaces/?nc=sn&loc=1&workspaces-blogs.sort-by=item.additionalFields.createdDate&workspaces-blogs.sort-order=desc)

使用するOSはWindowsかLinuxを選択でき、ユースケースに合わせたバンドル（vCPU数/メモリサイズ/ボリュームサイズの組み合わせ）を選んで仮想デスクトップを即座にデプロイできます。
Microsoft Officeやアンチウイルスソフトがセットになったプラスアプリケーションバンドルを追加することも可能です。

###FSx for Windows File Server
FSxはAWSが提供するマネージド型のファイルストレージです。
FSx for Windows File Serverを利用することで、ADと統合されたWindowsファイル
サーバを簡単に導入できます。AWSのマネージドサービスですので、サーバ管理も不要です。

[Amazon FSx](https://aws.amazon.com/jp/fsx/)

Windowsのファイルサーバを導入することで、ADのユーザ情報やグループ情報に基づくアクセス制御が可能となります。

###Directory Service for Microsoft Active Directory
FSx for Windows ファイルサーバにはMicrosoft ADが必須となります。
今回はDirectory Serviceを利用してMicrosoft ADを構築します。

[AWS Directory Service](https://aws.amazon.com/jp/directoryservice/?nc=sn&loc=0)

こちらもAWSのマネージドサービスですので、サーバの管理が不要です。
デフォルトで2つのドメインコントローラが作成されますので、意識せずとも可用性が高い
AD環境を作成することができます。

WorkSpacesもMicrosoft ADと連携し、このADを使ってWorkSpacesとユーザの管理を行います。

#注意点
* 2020年9月時点の情報です。
* AWSマネジメントコンソールを使用します。ルートユーザもしくは権限を満たすIAMユーザを利用できる前提で進めます。
* AWS利用料にご注意ください。利用料については、リンク先のAWSの公式ページをご参照ください。

#構築の流れ
１．VPC作成
２．AD作成
３．FSx作成
４．WorkSpaces作成
５．WorkSpaces初期設定
６．WorkSpaces動作確認

##１．VPC作成
まずはじめに、AD、FSx、WorkSpacesを配置するVPCを作成します。
VPC、パブリックサブネット、プライベートサブネット、ルートテーブル、インターネットゲートウェイを作成するCloudFormation用のテンプレートをGithubで公開していますので、こちらをご利用ください。
https://github.com/COSMEDIA-cloud/cloudformation-template.git
「01_vpc.yaml」を使用します。

ローカルPCにyamlを保存したら、AWSのマネジメントコンソールでCloudFormationの画面を開き、[スタックの作成]をクリックします。
![スクリーンショット 2020-09-14 113957.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/dba7e3dd-8f3a-b4b9-c32d-9ad5576223e9.png)

ステップ１では、[テンプレートファイルのアップロード]を選択し、S3 URLが表示されることを確認して[次へ]をクリックします。
![スクリーンショット 2020-09-14 114046.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/5f5cf233-f0d4-a00f-5d2e-58e9bed20434.png)

ステップ２では、任意のパラメータを入力し、[次へ]をクリックします。
・スタックの名前…CloudFormationのコンソール画面に表示されるスタックの名前です。
・Project Name Prefix…ここに入力したプレフィックスが作成後の各リソースのNmaeタグに付与されます。
・Network Configuration…VPCおよび各サブネットのIPv4 CIDRを入力します。
![スクリーンショット 2020-09-14 115115.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/cf275bf8-8694-5d4c-f488-7b5db148e228.png)

ステップ３は特に何も設定しなくても問題ありません。そのまま[次へ]をクリックします。
![スクリーンショット 2020-09-14 115147.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/7e146a31-4ded-8bf0-259b-75be7737656b.png)

ステップ４で設定内容を確認し、問題なければ[スタックの作成]をクリックします。
![スクリーンショット 2020-09-14 115227.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/1bdd7d48-9a10-4bf5-db19-20af43e9b214.png)

スタックの一覧で作成したスタックのステータスを確認します。
緑文字で「CREATE_COMPLETE」と表示されていればOKです。（作成までに5分ほどかかります）
![スクリーンショット 2020-09-14 115426.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/b344f6c1-12cd-4184-89cc-818ec8d40f68.png)

* VPC
* パブリックサブネット(AZ-aとAZ-c)
* プライベートサブネット(AZ-aとAZ-c)
* ルートテーブル
* ネットワークACL
* インターネットゲートウェイ

が作成されています。

##２．AD作成
プライベートサブネットにMicrosoft ADを作成します。
AWSのマネジメントコンソールでDirectory Serviceの画面を開き、「AWS Managed Microsoft AD」を
選択して[ディレクトリのセットアップ]をクリックします。
![スクリーンショット 2020-09-14 120131.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/2efc8ce2-d0a8-46c8-a697-e16f745abc6c.png)

ステップ１では、「AWS Managed Microsoft AD」が選択されていることを確認し、[次へ]をクリックします。
![スクリーンショット 2020-09-14 120158.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/00f24680-ac8b-a134-1ef1-25688e612d51.png)

ステップ２では、ディレクトリ情報を入力します。
「Standard Edition」を選択し、ディレクトリのDNS名とNetBIOS名、ディレクトリの管理者ユーザ(Admin)のパスワードを入力します。
入力が終わったら[次へ]をクリックします。
![スクリーンショット 2020-09-14 120424.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/b72135a2-65e6-bec3-6f04-2109dbe3991a.png)

ステップ３では、ADを起動するVPCとサブネットを選択します。
作成したVPCとプライベートサブネット(AZ-aとAZ-c)を選択し、[次へ]をクリック。
![スクリーンショット 2020-09-14 120608.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/eebac6e3-9d26-d9f6-168f-8294a1d3730e.png)

ステップ４で設定内容を確認し、問題なければ[ディレクトリの作成]をクリックします。
ディレクトリの一覧に対象のディレクトリが表示されます。
ステータスが「作成中」から「アクティブ」に変わったら作成完了です。
（アクティブに変わるまで30分前後かかります）
![スクリーンショット 2020-09-14 124258.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/7133fa47-8bad-5209-3ac6-583abb891ef5.png)


##３．FSx作成
プライベートサブネットにFSx for Windowsファイルサーバを作成します。

まず、FSxで使用するセキュリティグループを作成します。
AWSマネジメントコンソールでEC2の画面を開き、左のメニューから[セキュリティグループ]をクリックします。
インバウンドルールでパブリックサブネットからのTCP/135、TCP445の通信を許可します。
これによりWorkSpacesからFSxへのアクセスが可能となります。
設定が終わったら、[セキュリティグループの作成]をクリックします。
![スクリーンショット 2020-09-15 183953.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/561ce202-b01b-2e34-a6a5-b85aa14d5edf.png)

次に、AWSのマネジメントコンソールでFSxの画面を開き、Get startedの
[Create file system]をクリックします。
![スクリーンショット 2020-09-14 133533.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/863a4002-2641-4cc8-b629-d0bc17e6f384.png)

ステップ１で、ファイルシステムを選択します。
今回はAmazon FSx for Windows File Serverを選択し、[Next]をクリックします。
![スクリーンショット 2020-09-14 133624.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/14bed64d-1e57-7b9a-6b7b-8cb35728479c.png)

ステップ２で、ファイルシステムの詳細を設定します。
画面では可用性を考慮してマルチ-AZ構成とし、ストレージタイプはSSD、サイズは100GB、スループット容量は推奨値を設定しています。
![スクリーンショット 2020-09-14 134126.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/f11e0d5f-4e0c-99d1-d687-738796607a6b.png)

ネットワーク設定については、作成したVPCとプライベートサブネット(AZ-aとAZ-c)を選択してください。
また、認証先のADは作成したMicrosoft ADを選択してください。
（注）セキュリティグループについて、画面ではデフォルトのものを設定していますが、ここでは作成済みのFSx用のセキュリティグループを設定してください。
![スクリーンショット 2020-09-14 134513.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/bf6888bc-0a31-21b9-7543-302ab058fbe4.png)

暗号化キーとバックアップ設定を入力します。
画面では特に変更せず、デフォルトの値を使用しています。
![スクリーンショット 2020-09-14 134657.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/67c48e50-7188-615b-a0e8-ed47e6b537e9.png)

タグ設定はお好みで設定してください。
すべて入力し終えたら[Next]をクリックします。
![スクリーンショット 2020-09-14 134750.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/8d050bef-35ac-cf68-df71-f375c1f308b1.png)

ステップ３で設定内容を確認し、問題なければ[Create file system]をクリックします。
![スクリーンショット 2020-09-14 134933.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/4df02dda-cc0a-ba1c-52e0-31fbcbd283b2.png)

ファイルシステムの一覧に作成中のファイルシステムが表示されます。
ステータスが「Creating」から「Available」に変わったら作成完了です。
（Availableに変わるまでに20分前後かかります）
![スクリーンショット 2020-09-14 141357.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/4ce44a60-eaf5-40b6-f2b5-ab43a1af2b2a.png)

Directory Serviceの画面で手順２で作成したディレクトリを確認すると、「AWSアプリおよびサービス」の中でFSxのステータスが有効になっているのを確認できます。
![スクリーンショット 2020-09-14 141522.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/4171a240-78c7-2973-11a1-af3d48ecd6f9.png)

##４．WorkSpaces作成
続いて、WorkSpacesを作成します。
AWSのマネジメントコンソールでWorkSpacesの画面を開き、[WorkSpacesの起動]をクリックします。
ステップ１ではWorkSpacesを起動するディレクトリを選択します。
作成したディレクトリ、パブリックサブネットを設定し、[次のステップ]をクリックしてください。
![スクリーンショット 2020-09-14 192718.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/e2f7fa1e-5e3c-4ac4-f321-c98dd5026774.png)

ステップ２でWorkSpacesを利用するユーザーを設定します。
ADに登録済みのユーザーを設定することもできますし、ここで新規ユーザーを作成することもできます。
今回は新規ユーザーを作成します。
ユーザー名、名、姓、Eメールアドレスを入力し、ユーザーを作成してください。
![スクリーンショット 2020-09-14 192945.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/42366a26-8dde-3842-fe2d-e39b387252d5.png)

ユーザーが追加されたら、[次のステップ]をクリック。
![スクリーンショット 2020-09-14 193021.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/6a5080ad-c8c3-7bfb-8639-bebbe271823c.png)

ステップ３で起動するWorkSpacesのスペックを決めます。
以下の画面では、日本語の「Standard with Windows 10 and Office 2016」を選択しています。
※バンドルについては、Standardより安価なValueも選択できますが、Windowsだとかなり動作がもっさりしますので、個人的にはお勧めしません。
![スクリーンショット 2020-09-14 193339.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/28fa1604-0873-6269-dc25-d7d5fc14e036.png)

ステップ４では、実行モードや暗号化の設定を行います。
実行モードはAuto Stop(時間課金)を選択します。
※月に80時間以上利用する場合には、AlwaysOn(月単位で課金)のほうが安価となります。
セキュリティを考慮し、ボリュームは暗号化しておきます。
![スクリーンショット 2020-09-14 193440.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/67fc68af-1d39-00a6-fa0a-fa0caadb8e32.png)

最後にステップ５で設定内容の確認を行い、問題なければ[WorkSpacesの起動]をクリック。
![スクリーンショット 2020-09-14 193514.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/574a7d3e-42a1-5c55-93c5-54400bf461eb.png)

ステータスが「Available」になったら作成完了です。（20～30分ほどかかります）
![スクリーンショット 2020-09-15 105329.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/ed5f331a-91d3-acb4-3aa5-d0c204c344f4.png)

ステータスが「Available」になると、登録したメールアドレス宛にWorkSpacesからメールが届きます。
メールにはユーザー初期設定用のURL、登録コード、WorkSpacesユーザー名が記載されています。
まず、初期設定用のURLにアクセスし、認証情報の登録を行います。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/52d8e9cf-400d-a3b2-0475-24352e1fc91d.png" width=40%>

登録が終わると、クライアントツールのダウンロードサイトに飛びますので、自身が利用しているデバイスのツールをダウンロードします。
![スクリーンショット 2020-09-14 195906.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/0fe41bdc-b337-df2d-7d45-d5c53a8d9eec.png)

クライアントツールをインストールして起動します。
登録コードを入力して[登録]をクリック。
認証画面でユーザー名、パスワードを入力し、[サインイン]をクリックするとWorkSpacesが起動します。
![スクリーンショット 2020-09-14 200736.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/80549848-f459-139f-f053-1c7c9cb7e322.png)

##５．WorkSpaces初期設定
###キーボードの日本語化
日本語版のバンドルで起動してもキーボードレイアウトが日本語キーボードになっていないため、まずこれを変更します。
デスクトップ画面左下のWindowsロゴをクリックし、設定から[音声認識、日付、言語]をクリックします。
[地域と言語]を選択し、日本語の[オプション]をクリックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/83f8c149-5b4e-ab96-c63d-8d80d78ec252.png" width=60%>

ハードウェア キーボード レイアウトの[レイアウトを変更する]をクリックし、日本語キーボードを選択してサインアウトします。
再ログインすると日本語キーボードが有効になります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/659e46c7-6ffb-88df-cd2c-96eda6d918b1.png" width=60%>

###ディスプレイ解像度の設定
WorkSpacesはローカルデバイスのウィンドウ枠の大きさに従い、解像度が自動でスケーリングします。
ただし、ローカルで高解像度のディスプレイを使用している場合、WorkSpacesの画面が荒く感じることがあります。
この場合、高DPIモードを有効にすることで事象が改善される場合があります。
有効にするには、クライアント画面上部の[設定]から[表示設定]を選択し、高DPIモードにチェックを入れます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/f6ef0ca9-1485-9adb-1466-73ff90bd85e4.png" width=70%>

##６．WorkSpaces動作確認
###インターネット利用
WorkSpacesにはデフォルトでFirefoxとInternet Explorerがインストールされており、すぐに利用することができます。
※Internet Explorerではセキュリティ強化の構成が有効になっています。
![スクリーンショット 2020-09-15 122512.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/ae8f619d-38d5-cabd-55c2-be198af6152e.png)

無効にしたい場合は、サーバーマネージャーで無効化できます。
以下の画面でIEセキュリティ強化の構成の「有効」をクリックすると設定を変更できます。
![スクリーンショット 2020-09-15 122420.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/03a3d02c-2b34-7856-755a-73b77bb94a24.png)

###ファイルサーバ利用
WorkSpacesからFSxのWindowsファイルサーバが利用できることを確認します。
WorkSpacesでコマンドプロンプトを起動し、net useコマンドを使用してFSxをWorkSpacesのボリュームに割り当てたいと思います。
コマンドは、AWSマネジメントコンソールでFSxの画面を開き、作成したファイルシステムを選択して、右上の[Attach]をクリックすると確認できます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/9d950f08-1738-62f1-4e0a-cf6659a40d74.png" width=60%>

コマンドを実行し、「The command completed successfully」と表示されればOKです。
画面ではZドライブに設定しています。
![スクリーンショット 2020-09-15 163521.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/2bc485b2-30eb-9c76-ce1f-342da6430b28.png)

エクスプローラーを開き、FSxが指定したドライブに割り当てられていることを確認します。
net useコマンドで一度設定を行えば、再起動しても自動的に割り当てられるため、コマンド実行は初回のみでOKです。
![スクリーンショット 2020-09-15 164114.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/5df8111b-2ee5-0f02-3479-f64e7cfc5672.png)

###Microsoft Office利用
プラスアプリケーションバンドルを適用したため、Microsoft Office 2016がインストールされています。
問題なく利用できることを確認します。
![スクリーンショット 2020-09-16 115139 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/f60c8a4d-4819-a874-cb77-3e8983743622.png)

###アンチウイルス
プラスアプリケーションバンドルの適用により、TrendMicro社のウイルスバスタービジネスセキュリティサービスがインストールされています。
ウイルスバスターのコンソール画面は、デスクトップ画面右下のインジケーターからウイルスバスターのアイコンをクリックすると、立ち上げることができます。
画面のように緑のチェックが表示されていれば保護が有効になっています。
![スクリーンショット 2020-09-15 125249.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703690/1eadeb33-801e-2b60-c606-2dc9e1fda018.png)

#参考元
[Amazon FSx for WindowsをWorkspacesで試してみた](https://dev.classmethod.jp/articles/fsx-workspaces/)

#さいごに
WorkSpacesやFSxといったAWSのサービスを活用したテレワーク環境の構築方法を紹介しました。
仮想デスクトップ＋AD＋ファイルサーバの3点セットのみでも、リモート環境でセキュアなファイルのやり取りが可能です。
スモールスタートで始めたいという方は、本構成のみで十分テレワークをスタートできると思います。

####今後の取り組み
本構成については、プロキシの導入、ローカルデバイス⇔仮想デスクトップ間のコピー＆ペースト禁止、デバイス認証の追加などにより、セキュリティ面を強化することもできます。
今回は割愛しましたが、ファイルサーバについてはアクセス権限の設定も可能です。
また、実際に作った環境を運用していく場合には、CloudWatchによる監視や通知の仕組みが必要です。

セキュリティや監視を考慮した環境のバージョンアップについては、次回以降の記事で扱いたいと思います。

また、今回はVPCのみテンプレートを使用し、CloudFormationで環境を作成しましたが、その他のリソースについても同じことができると思います。
環境を楽に構築できますので、テンプレートは積極的に活用したいところです。

このあたりも引き続き取り組んでいきたいと思います。