
背景
入社してしばらくして、上司から AWS でリモートワークの環境構築を頼まれました。
唯一の理系学部出身ということで頼まれましたが、AWS なんて触ったこともありません。
弊社では、社員は出社して、自分の席にあるパソコンから仕事を行います。
上司の要望を実現するべく、AWS を勉強するところから始めました。
課題
業務自体は会社のパソコンにインストールされたソフトウェアで作業します。
このソフトウェアをノートパソコンにインストールして、社員に配布すれば、AWS なんて使わなくともリモートワークできるようになるんじゃないかと進言しました。
すると、以下のような課題が見えてきました。
- ソフトウェアで通信元の IP アドレスをもとに許可設定がされているので、許可された IP アドレスからのみソフトウェアの使用が可能
- ソフトウェアの作業でファイルが作成されるが、そのファイルを社内ネットワーク内のドライブに保存する必要がある
後者は Google ドライブとか使うにしても、前者は難しいと考えていました。
リモートワークにするとなると、各社員の家のネットワークの IP アドレスを許可してもらう必要があると考えたからです。
方法
AWS の Amazon WorkSpaces を使えば、社員ごとに仮想的な端末環境を提供できることがわかりました。
また、仮想的な端末は、仮想的なネットワーク(VPC)内に存在するようで、このネットワーク内でインターネットへの出口を指定する必要があります。
NAT ゲートウェイを使うことで、インターネットに出るときの IP アドレスを固定することもできます。
これで場所によらずインターネットのあるところであれば、どこででも端末にアクセスできます。
ざっくり以下のような構成です。

管理者側の手順
AWS アカウントは既に会社のクレジットカードで作成していて、マネジメントコンソールにはログイン済みとします。
VPC の作成
- 以下の URL から VPC やサブネットなどを作成します。
https://ap-northeast-1.console.aws.amazon.com/vpcconsole/home?region=ap-northeast-1#CreateVpc:createMode=vpcWithResources - 以下の設定で作成します。(下線の項目以外はデフォルトのままにしました。)
- 作成するリソース:VPC など
- これでサブネットなども同時に作ってくれます。
- 名前タグの自動生成:☑️ 自動生成「リモートワーク環境」
- VPC やサブネットの名前を自動で付けてくれます。後から変更可能です。
- IPv4 CIDR ブロック:10.0.0.0/16
- VPC のプライベートな IP アドレスの範囲です。後から変更できません。
- インターネットに出るときのパブリックな IP アドレスとは無関係です。
- アベイラビリティゾーン (AZ) の数:2
- サブネットを配置する AWS データセンタの個数と認識しています。
- パブリックサブネットの数:2
- インターネットに出れるサブネットの個数です。
- プライベートサブネットの数:2
- インターネットに出れないサブネットの個数です。
- NAT ゲートウェイ ($):1 AZ 内
- NAT ゲートウェイを使うなら、すべての AZ に配置するかどうかの設定です。
- NAT ゲートウェイの数ごとに費用がかかるので、ひとまず1つの AZ に作成します。
- (($)マークが料金のかかることを表している?)
- VPC エンドポイント:S3 ゲートウェイ
- VPC から S3 へ直接アクセスできるようにするものみたいです。
- 付けること自体は無料で、料金の削減に貢献するようなのでそのままつけときます。
- 作成するリソース:VPC など
画像

Directory Service の作成
- 以下の URL からディレクトリ(ユーザーを管理するもの?)を作成します。
https://ap-northeast-1.console.aws.amazon.com/directoryservicev2/home?region=ap-northeast-1#!/create - [ステップ1] ディレクトリタイプを選択
- ディレクトリタイプ:⦿ AWS Managed Microsoft AD
画像

- [ステップ2] ディレクトリ情報を入力
- エディション:⦿ Standard Edition
- ディレクトリの DNS 名:corp.awsexample.com
- Admin パスワード:**********
画像

- [ステップ3] VPC とサブネットを選択
- VPC:VPC の作成 で作った VPC
- サブネット:VPC の作成 で作ったプライベートサブネット2つ
画像

- [ステップ4] 確認と作成
- [ディレクトリの作成] をクリック
画像

ディレクトリの登録
- 以下の URL から WorkSpaces に使うディレクトリを登録します。
https://ap-northeast-1.console.aws.amazon.com/workspaces/v2/directories/create-directory - 以下の設定で登録します。
- WorkSpace タイプ:⦿ 個人
- WorkSpace デバイス管理:⦿ AWS Directory Service
- AWS Directory Service の未登録ディレクトリ:⦿ Directory Service の作成 で作ったディレクトリ
- 登録:VPC の作成 で作ったプライベートサブネット2つ
画像

Workspaces の作成
- 以下の URL から WorkSpaces を作成します。
https://ap-northeast-1.console.aws.amazon.com/workspaces/v2/workspaces/create-workspaces - [ステップ1] ディレクトリを選択
- ディレクトリ:⦿ Directory Service の作成 で作ったディレクトリ
画像

- [ステップ2- オプショナル] ユーザーを作成
- ユーザー:リモートワークしたい社員を5人登録
- ユーザーネーム:社員がログインするときの ID
- 名:社員の First Name
- 姓:社員の Last Name
- E メール:社内用メールアドレス
- ユーザー:リモートワークしたい社員を5人登録
画像

- [ステップ3] ユーザーの特定
- ディレクトリからユーザーを選択:作成したユーザーを選択
画像

- [ステップ4] バンドルを選択
- バンドルを選択:Power
- Power バンドル:⦿ Power with Windows 10 and Office 2019 Pro Plus (Server 2022 based)
- オペレーティングシステム:Windows
- プロトコル:PCoIP(iPad でも使いたいので†)
- ソフトウェア:Plus with Office 2019
画像

- [ステップ5] WorkSpaces の設定
- 実行モード:AutoStop
- AutoStop 時間 (時間):1
画像

- [ステップ6- オプショナル] カスタマイズ
- 何もせずそのまま [次へ]
画像

- [ステップ7] 確認
- [作成] をクリック
画像

上記手順の後、登録された社員のメールアドレスに対して、ログイン方法の記されたメールが送信されます。
ユーザーの追加をする際には、[ステップ2- オプショナル] を繰り返します。
何人かはログイン方法の記載されたメールが届きませんでした。
届く人とそうでない人との差異は不明ですが、その場合には、以下 URL にて該当の WorkSpaces を選択し、[アクション] > [ユーザーを招待] の順で招待メールを送信することができます。
https://ap-northeast-1.console.aws.amazon.com/workspaces/v2/workspaces
ユーザー側の手順
- 届いたメールの手順を進めパスワードを設定します。
- WorkSpaces クライアントを家のパソコンや iPad にインストールしてもらいます。
- WorkSpaces クライアントからユーザー名とパスワードでログインできるか確認してもらいます。
書き記せばこんな流れですが、初心者にはなかなか長い道のりでした。
1ヶ月以上もかかってしまいましたが、助けてもらいつつ、なんとか施行までできました。
どなたかの参考となれば幸いです。