[画像つき]WorkSpacesをひとまずQuick Setupで構築してアーキテクチャをざっくり理解する【構築編】

#はじめに

過去に別の場所で投稿した内容を再編集したものです。（2016年10月！）

なるべく本記事投稿の時点の最新の情報を取り込み、軽く手を動かして状況が変わっていないことは確認済みですが、マネジメントコンソールのデザインなど、細かい部分は最新でないことをご留意ください。

本記事は以下の記事と対になっており、ENI、SecurityGroupなど、構成に関わる部分は下記の記事で大幅に追記を行いました。
[[画像つき]WorkSpacesをひとまずQuick Setupで構築してアーキテクチャをざっくり理解する【アーキテクチャ編】](https://qiita.com/Batchi/items/800c96c6b76af9959aac)



#本記事について

- WorkSpacesの構築について、手は動かしたくない（動かす暇がない）けど大まかに理解したい、という方向けです。
- 製品概要・詳細等は公式のページを見てください。
    - サービス紹介ページ
        - https://aws.amazon.com/jp/workspaces/
    - BlackBelt資料
        - http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-2016-workspaces
    - 最新版BlackBelt資料
        - https://www.slideshare.net/AmazonWebServicesJapan/20190226-aws-black-belt-online-seminar-amazon-workspaces

- EC2とかVPCとかいじったことあります！というレベルの方を想定しています。
- 下記ドキュメントを参考にしつつ、実際に構築しながらまとめていきます。
    - [Amazon WorkSpaces 高速セットアップを開始する]
        - https://docs.aws.amazon.com/ja_jp/workspaces/latest/adminguide/getting-started.html

#0.Workspacesとは
クラウドベースのVDI（仮想デスクトップ）を提供するサービスです。

デスクトップ環境をホストするインスタンスはVPC上で稼働し、ユーザはインターネット/VPN/DirectConnect経由でそこに接続することになります。接続元として対応しているデバイスは様々なものがあり、利用時間に応じた課金体系となっています。ActiveDiredtoryといったディレクトリサービスと連携するほか、実装するアプリケーションのカスタマイズなどに対応しています。

とりあえず本記事のゴールはWorkSpacesインスタンスを1台立てて、クライアントから繋いでみるところまで、とします。

#1.Quick Setup（高速セットアップ）でひとまず立てる

▼スタート。
![WorkSpaces開始](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/3a232fdd-6345-ec21-faa3-418d072d1631.jpeg)

##1.1.セットアップタイプの選択

▼セットアップタイプを選択します。
![Workspacesセットアップタイプ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/b59b0d9e-9e42-358b-e188-f679812d8425.jpeg)

###セットアップタイプとは

WorkSpacesの初回構築時にどこまで丁寧にやるかのオプションで、下記2種類があります。

- Quick Setup（高速セットアップ）
- Advanced Setup（高度な設定）

今回選択するのは前者ですが、簡単に言うと以下のような違いがあります。

- **Quick Setup（高速セットアップ）**
    - VPC：自動的に新規作成される。
        - WorkSpacesインスタンスがインターネット疎通可能な状態。
    - Directoryサービス：SimpleADが新規作成される。
    - 詳細な設定：なし
- **Advanced Setup（高度な設定）**
    - VPC：既存のVPCを選択可能。
    - Directoryサービス：AWS Directory Serviceの3種から選択できる。
    - 詳細な設定：以下を選択可能。
        - 実行モード
        - 暗号化の選択
        - タグの管理

高速セットアップでは、必要最低限の選択をするだけで、土台となるVPCやDirectoryサービスも一緒に作ってくれます。後者を選択する際には、予めVPCやDirectoryサービスの設定を済ませておくといいでしょう。せっかくなのでAWS Directory Serviceにも触れておきます。

###AWS Directory Serviceとは

「フルマネージドのディレクトリサービス」です。下記3種が存在します。

- SimpleAD
    - フルマネージドのディレクトリサービス
    - AWS上に独立して存在する
    - Active Directoryと「互換性」がある（つまりそのものではない）
- AD Connector
    - 既存のディレクトリサービスへの接続
    - 接続する「既存のディレクトリサービス」はオンプレにあるものでもVPC上のものでも可
- Microsoft AD
    - 簡単に言うとSimple ADの「互換じゃなくてそのもの版」
    - Windows Server2012R2によるActive Directory機能の提供
    - 既存ドメイン/フォレストとの信頼関係がサポートされる

WorkSpacesをセットアップする際には、いずれかのAWS Directory Serviceと連携する必要があります。

##1.2.バンドルの選択

▼バンドルの選択。
![バンドルの選択](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/20ac59c7-db7f-25a5-fd62-3f15e88676a4.jpeg)

###バンドルとは
OSとマシンスペック、導入済みソフトウエアの組み合わせからなるものです。EC2におけるインスタンスタイプとAMIを混ぜたような考え方です。構築済みのイメージから、独自にソフトウェアを導入したカスタムバンドルを作成することもできます。2016年当時はOSとしてWindows7のみが対応していましたが、現在ではWindows10とAmazon Linux2ベースのOSが選択可能になっています。

▼ちょっと画面の下のほうが切れてたのでもう一枚。
![バンドルの選択2](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/8a95a13a-ddbc-f88c-ee7b-7b2731383f42.jpeg)
赤枠で囲っているところでは各バンドルの説明が見れるだけで、実際にバンドルを選択するのは青枠のところです。ちなみに、Tokyoリージョンの場合だけLanguageで日本語が選択できます。

画面下部からユーザの情報を入力していきます。ユーザは1人ずつではなく[Create Additional Users]を押下して枠を増やせば、複数同時に設定可能です。どこまで同時に設定できるかについて、**新規作成時は5が上限であるかと思います。（※1）**

[Amazon WorkSpaces の制限]
https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws_service_limits.html#limits_workspaces

####（※1）訂正
当時の自分は「5が上限であるかと思う」ことの根拠としてAWSサービスの上限値のページのリンクを貼っていましたが、現在の記述を見ると、同時に作成可能なインスタンス数についての数字は見受けられません。
![上限値日本語](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/0ff390d1-b5b4-f0f6-661c-a37fea91ba1a.jpeg)

英語に切り替えても同じく記載なし。
（でもIPアクセスコントロールまわりの記述が増えているのと、「per region」が補記されて言葉として分かりやすくなってる。みんな、正とする情報は英語のドキュメントにしような。）

![上限値英語](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/516859bd-f27d-ed93-3797-ab82a0235969.jpeg)
よって、新規作成時に同時に設定可能なユーザ数は、**ちょっとよくわからない**に訂正します。
（でも[Create Additional Users]をポチポチ押下しても枠が5より増えなかったからたぶん5なんだろうな…）

##1.3.ローンチからのエラー
▼バンドルの画面から[Launch Work Spaces]を押下してローンチが始まります。詳細を見に行ってみると…
![WorkSpacesローンチ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/d800af7b-ffb3-e4c1-ae9a-436db08462e9.jpeg)
▼失敗しました。
![WorkSpaces失敗](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/9767809e-a544-d3bf-c923-bb7f52660592.jpeg)

###An Error Has Occurred

もちろん分かっていましたよ。
こうなることは分かっていました。

ただ、エラーの情報が載っていたほうがより有用かな、と思ったまでです。

`VPC limit reached. Please delete a VPC to use Amazon WorkSpaces. for activityId="1" of activityType={Name: validateCustomerLimits,Version: 8}`

先程述べたように、Quick Setup（高速セットアップ）ではVPCが新規作成されるので、
VPCの数が上限に達しているとエラーが起こります。

##1.4.気を取り直して違うリージョンでセットアップ

VPCの上限緩和申請を出したり、既存のVPCを削除したりするのも手間だったので、おとなしくVPCに空きがある違うリージョンで実施しました。

▼ローンチがきちんとはじまりました。
![WorkSpaces成功](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/94a1d689-569e-1719-0d13-ddb13e0afd6a.jpeg)

WorkSpaesインスタンスの作成には数分ほど時間を要し、接続可能な状態になったらメールで教えてくれるそうです。待とう。

#2.Quick Setup（高速セットアップ）が作成してくれるもの

ただ待っているのも何なので、待っている間に、彼がどんなことをやってくれるのかを確認してみます。
とはいえ構築手順の確認という本筋から外れる部分なので、切り出して以下の記事にまとめました。
[[画像つき]WorkSpacesをひとまずQuick Setupで構築してアーキテクチャをざっくり理解する【アーキテクチャ編】](https://qiita.com/Batchi/items/800c96c6b76af9959aac)

構築してくれるAWSリソースや、そこから見えてくるアーキテクチャなどを載せています。
さらっと触れておくと以下のようなものを作成してくれます。
・2.1.IAMロール
・2.2.VPC
・2.3.Elastic Network Interface
・2.4.セキュリティグループ
・2.5.Simple AD

##ありがとうそしてさようならQuick Setup（高速セットアップ）

Quick Setup（高速セットアップ）が選択できるのは、
というか、セットアップタイプが選択できるのは、リージョンごとに初回のみのようでした。

今後WorkSpacesインスタンスを追加していく際には、初回で作成されたSimple ADを利用するか、新たにAWS Directory Serviceを作成して追加していくことになります。

ここまでで一通り作成されたAWSリソースが確認できたので、クライアントからWorkSpacesに接続していきます。

#3.クライアントからの接続

##3.0.接続情報の通知
インスタンスのステータスがAVAILABLEになると、ユーザにメールで通知が行われます。
宛先となるメールアドレスは、セットアップ時のバンドルの選択画面で入力したものです。

```text


件名：Your Amazon WorkSpace
本文：

Dear Amazon WorkSpaces User,

Your administrator has created an Amazon WorkSpace for you. Follow the steps below to quickly get started with your WorkSpace:

1. Complete your user profile and download a WorkSpaces client using the following link: https://xxxxxxxxxxxxxxx

2. Launch the client and enter the following registration code: yyyyyyyyyy

3. Login with your newly created password. Your username is <ユーザ名>

You may download clients for additional devices at https://clients.amazonworkspaces.com/

If you have any issues connecting to your WorkSpace, please contact your administrator.

Sincerely,

Amazon WorkSpaces
```
2019年だと日本語の文章の後に英語の文章が続いていました。

##3.1.プロファイルの設定とクライアントダウンロード

メール内のリンクに飛ぶと、ブラウザ上でユーザプロファイルの設定画面に移ります。

▼パスワードの初期設定と、必要に応じて姓・名の変更を行います。
![Wokspacesユーザ情報](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/c97fd01d-0387-da74-d334-c197829ac90b.jpeg)

ちなみにパスワードポリシーは下記の通り。
(高速セットアップ以外だと、Directoryサービスで定義したものに則る気がします。)

- 8 ～ 64 文字
- 次の3つのカテゴリから1文字以上
    - 英小文字
    - 英大文字
    - 数字
- 次の記号から1つ以上
    - ~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/.


▼画面遷移してクライアントのダウンロードへ。Windows7で試しました。

![workspacesクライアント](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/ff495387-1e4f-6a86-808d-99b82719b4e0.jpeg)

▼インストーラをダウンロードしたらウィザードを順に。
![クライアント1](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/67739016-6c35-9c6d-89e4-f86560a0fdb2.jpeg)
![クライアント2](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/22da4fe9-a8c9-cd7f-aab8-d6fc62958c6c.jpeg)
![クライアント3](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/c5082090-1679-ea21-d7ab-3389442d5eeb.jpeg)
![クライアント4](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/97e44af9-e85f-3894-f8ab-78e354a8e0c6.jpeg)

##3.2.クライアントソフトの起動とレジストレーションコードの入力

インストールが完了したら、クライアントソフトを起動します。
（デスクトップにショートカットが作成されていました）

▼メールに記載されていたレジストレーションコードを入力。
![Workspacesレジストレーションコード](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/693007c1-0931-3070-ae99-e8ac2b872fc6.jpeg)


##3.3.ユーザ名とパスワードを入力してログイン

▼3.1.で設定したものを入力しましょう。
![Workspaces認証](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/91c60322-2fc9-3253-486a-838e4d1cb950.jpeg)

▼次回以降入力をスキップしたければ。
![Wprkspaces確認](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/4b8e015c-df5e-bcf3-c19e-c88a0513d87e.jpeg)

##3.4.ついに仮想デスクトップへ

前工程までを済ませれば、ついに仮想デスクトップへ接続できます。

###Windows2008ライクな画面が…
当時はバンドルとしてWindows7のデスクトップ環境のみが選択可能だったのですが、接続してすぐの段階だと、「2008で動いてるよ」感丸出しの画面が表示されました。（キャプチャは取り損ねた!）

WindowsServerの機能でデスクトップエクスペリエンスというものがあって、裏側ではそれが動いているんですね。とはいえ見えちゃうのはかっこ悪いですね。

https://aws.amazon.com/jp/workspaces/faqs/

>Q: Amazon WorkSpaces で使用できるオペレーティングシステムはどれですか?
>>Amazon WorkSpaces では、Amazon Linux 2 LTS、Windows 7 または Windows 10 のデスクトップエクスペリエンスに構築された Amazon Linux WorkSpaces が提供されます。Windows 7 および Windows 10 のデスクトップエクスペリエンスは、それぞれ Windows Server 2008 R2 および Windows Server 2016 で提供されます。

###インターネットにつながる！
▼自分の書いたブログを見る図。
![WorkSpacesインターネット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/3a95d9ea-fb11-0d2b-a22a-da9cdc15a61a.jpeg)

詳細は対になっている記事で書いているのですが、高速セットアップで立ち上げるとインターネットゲートウェイやルーテーブルの設定がなされ、WorkSpaces用インスタンスのプライマリENIがパブリックIPを持つため、デフォルトでインターネットにつながります。Simple ADの設定でパブリックIP付与の有無をコントロールできて、Quick Setupにおいてはそれが「有効」の状態で立ち上がるようですね。

#おしまい

ひとまずゴールにたどり着いたので終了です。とりあえずQuick Setupで繋がるところまで、ということであればサクサクとすすめることができました。

使用感などは、クライアントの性能やネットワーク帯域に影響を受けると思うので、特別言及する材料がありません。当時の手元の貧弱なノートPCでは、もっさりと感じたくらいです。

元ネタあるからちょっと編集すれば1記事出来上がるだろう～と思って書き始めたら、書きっぷりの不備や当時の自分が分かっていなかった部分などの調査に時間を取られ、結局同じくらいの労力がかかりました。アウトプットって難しい。

##元ネタ
[WorkSpacesをQuick Setupで構築してみた①](https://www.simpline.co.jp/tech_ty/workspaces%E3%82%92quick-setup%E3%81%A7%E6%A7%8B%E7%AF%89%E3%81%97%E3%81%9F%E9%9A%9B%E3%81%AB%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%82%E3%81%AE/)
[WorkSpacesをQuick Setupで構築してみた②](https://www.simpline.co.jp/tech_ty/workspaces%E3%82%92quick-setup%E3%81%A7%E6%A7%8B%E7%AF%89%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F%E2%91%A1/)
[WorkSpacesをQuick Setupで構築してみた③](https://www.simpline.co.jp/tech_ty/workspaces%E3%82%92quick-setup%E3%81%A7%E6%A7%8B%E7%AF%89%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F%E2%91%A2/)