実践CloudFormation Workspaces編

最後！！

まずは少し設定しないと行けないのでWorkSpacesへと移動します

ADと検索でActive Directoryを選択

![スクリーンショット 2020-10-06 3.12.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/5190f15f-c54c-57d7-53d0-3589ca38fa6f.png)

CloudFormationで作成されたADを選択

![スクリーンショット 2020-10-06 3.13.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/97c5f886-7f6c-0506-1677-9ed751866718.png)

アプリ及びサービスの項目でWorkSpcaesを選択

![スクリーンショット 2020-10-06 3.14.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/9d5f8854-9b76-0164-b797-0de4c5da1705.png)

移動さきはこんな感じ

![スクリーンショット 2020-10-06 3.16.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/2614f9e8-1915-656c-2cfe-c4ac445c09ee.png)


WorkSpacesの項目を選択してWorkSpacesの起動をクリック

![スクリーンショット 2020-10-06 3.17.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/f658f0b9-b94d-d453-8311-e23e8cb55a6b.png)

サブネットを選択します。
ここではVPC編で作成したルートテーブルに紐づくパブリックサブネットでいいです

![スクリーンショット 2020-10-06 3.19.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/b5295c7d-b001-bf7d-0296-bc2e76a66eb5.png)


次のステップを選択（念のため作成されたADを使用しているか確認するのもいいかと）

![スクリーンショット 2020-10-06 3.18.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/3010b013-6511-7283-ab0d-ee6a683aed08.png)


ユーザ情報を入力してユーザーの作成をクリック
![スクリーンショット 2020-10-06 3.21.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/da6a422c-8a95-7f20-8ee5-7aeb460f3e7d.png)


準備は以上です。
今回したかったことは
ADをWorkSpacesに紐づけるのとサブネットを登録する必要があったこと、そしてユーザーを一人追加する必要があります。

さてCloudFormationに戻ってきましょう

## その１

![スクリーンショット 2020-10-06 3.23.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/5a51da12-0a4d-a94a-a174-f23369f51cdd.png)

WorkSpaces.yamlを選択

いろいろ設定します
OwnBnadleIdはなくてもOK

![スクリーンショット 2020-10-06 3.29.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/beeb6565-b43d-64ff-8d0e-2ad6c95c362e.png)

いろいろ設定はデフォでスタックの作成を実行

完成！！

![スクリーンショット 2020-10-06 9.46.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/97ace524-d6a3-bfb1-b3d2-b53fb0d89339.png)

##　完成後に起動

次のようなメールが届きますのでWorkSpacesを起動しましょう。

![スクリーンショット 2020-10-06 9.47.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/031bd41c-0905-8818-7209-5ac9b3dd56d0.png)

## パスワード設定

![スクリーンショット 2020-10-06 9.48.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/c77b635a-29a4-a0c1-0fb5-0a15abaf46da.png)

## クライアントソフトをダウンロード

![スクリーンショット 2020-10-06 9.49.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/14dfb4e4-77f9-c3fb-9822-e3c3b182d8b2.png)

## アプリを起動してパスワードを入力

![スクリーンショット 2020-10-06 9.52.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/30759072-57ec-511d-1974-fc90028e0c8d.png)

## 動いた！！

![スクリーンショット 2020-10-06 10.14.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/1e02b909-1a93-ca87-f24c-149cd8663bb4.png)

## 共有フォルダ(FSx）にアクセスできるか確認！！

![スクリーンショット 2020-10-06 10.34.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/66e014ea-d33e-ec62-03c0-dd5edb51be96.png)

## ファイル作成ができるか確認！！

¥¥amznfsxorunjwor.sample.example.com¥share

![スクリーンショット 2020-10-06 10.34.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253981/e0f42fc9-5e5a-8b3c-1031-75971696c601.png)

## これでリモート環境はできました！！

お疲れ様です


## ソースコードの確認

[ドキュメント](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html)

```yaml
AWSTemplateFormatVersion: "2010-09-09"
Description: "Create Workspaces"

Mappings:
  WSTypeMap:
    Standard-with-Windows-10-Japanese:
      BundleId: wsb-0ngbndd5g
    Value-with-Windows-10-Japanese:
      BundleId: wsb-gwwsvq6xr
    Performance-with-Windows-10-Japanese:
      BundleId: wsb-dk55sygy0

Parameters:
  WorkstationType:
    AllowedValues:
      - Standard-with-Windows-10-Japanese
      - Value-with-Windows-10-Japanese
      - Performance-with-Windows-10-Japanese
    Description: Select the type of workstation
    Default: Standard-with-Windows-10-Japanese
    Type: String

  OwnBundleId:
    Type: String
    MinLength: '0'
    MaxLength: '63'
    Default: ""
    AllowedPattern: "(^$|^wsb-[0-9a-z]*$)"
    ConstraintDescription: BundleId format is blank or wsb-[alphanumeric characters]. Min characters 8, Max characters 63.

  UserVolumeSizeGibValue:
    Type: "Number"
    Default: 50
    AllowedValues:
      - 10
      - 50
      - 80

  RootVolumeSizeGibValue:
    Type: "Number"
    Default: 80
    AllowedValues: 
     - 80

  # 前提：事前にuserが作成済み（コンソールから作成）
  UserNameValue:
    Type: "String"
    MinLength: '1'
    MaxLength: '63'
    Default: "username"
    AllowedPattern: "[a-zA-Z][a-zA-Z0-9]*"
    ConstraintDescription: must use only alphabet characters. Min 1 Max 63.

  PJPrefix:
    Description: Enter a prefix of this system.
    Type: String
    Default: "test"
    AllowedPattern: "[a-zA-Z][a-zA-Z0-9][ -~]*"
    ConstraintDescription: must begin with a letter and contain only alphanumeric characters.

Conditions:
  WSBundleId: !Equals [ !Ref OwnBundleId, "" ]

Resources:
  WorkSpacesWorkspace:
    Type: "AWS::WorkSpaces::Workspace"
    Properties:
      DirectoryId: { "Fn::ImportValue": !Sub "${PJPrefix}-windows-ad" }
      UserName: !Ref UserNameValue
      BundleId:
        Fn::If: [ WSBundleId,
          !FindInMap [
            WSTypeMap,
            !Ref WorkstationType,
            BundleId
          ],
          !Ref OwnBundleId
        ]
      RootVolumeEncryptionEnabled: false
      UserVolumeEncryptionEnabled: false
      WorkspaceProperties: 
        RunningMode: "AUTO_STOP"
        RunningModeAutoStopTimeoutInMinutes: 60
        RootVolumeSizeGib: !Ref RootVolumeSizeGibValue
        UserVolumeSizeGib: !Ref UserVolumeSizeGibValue
        ComputeTypeName: "STANDARD"
      Tags:
        - Key: Name
          Value: !Sub ${PJPrefix}-WS
Outputs:
  WorkSpaces:
    Value: !Ref WorkSpacesWorkspace
    Export:
      Name: !Sub ${PJPrefix}-windows-ws

```