Directory APIがやってきた記念!Amazon WorkSpacesをAWS CLIで作成してみました。

AWS運用自動化サービス「Cloud Automator」

こんにちは、技術4課の城です。
先日、Directory APIがついにやってきました
例えば、Amazon WorkSpacesをAWS CLIで構築しようとした際、Directory Serviceを構築した後にWorkSpacesに利用するDirectory Serviceの登録をする必要があるのですが、これまではAPIが提供されていなかったため、どうしてもマネジメントコンソールで対応する必要がありました。
今後はこの作業もAWS CLIで対応できるようになったわけです。

というわけでAmazon WorkSpacesをAWS CLIで作ってみましょう!

1.前提条件

WorkSpaces用のVPC及び、サブネット2つ(異なるAvailability Zone)は作成済みであること。
今回は10.0.0.0/16のVPC、10.0.0.0/24、10.0.1.0/24のサブネットを用意しました。
クライアントはWSLのUbuntu18.04を使っています。

2.今回のゴール

Simple ADを使ったWorkSpacesを1台作成します。
では手順に入っていきます。

3.AWS CLIのアップグレード

AWS CLIの最新バージョンへアップグレードします。

まだインストールされてないよー、という方については下記リンク先ドキュメントをご参考ください。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html

4.プロファイルの設定

利用するアカウントのプロファイルを環境変数に設定します。
【コマンド】

AWS CLIの名前付きプロファイルの設定については下記をご覧ください。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-profiles.html

5.Simple ADの作成

5.1 変数の設定

パラメータを変数として設定します。
【コマンド】

5.2 VPC IDの取得

【コマンド】

【結果例】

5.3 サブネットIDの取得

【コマンド】

【結果例】

【コマンド】

【結果例】

5.4 変数の確認

【コマンド】

【結果例】

5.5 Simple ADの構築

【コマンド】

※出力を事項のDirectory IDの取得に使いたいため、teeコマンドへパイプしています。

【結果例】

5.6 Directory IDの取得

【コマンド】

【結果例】

5.7 Directoryのステータス確認

Activeが返ってくればOKです。
Creatingの場合は少し待ちましょう。

【コマンド】

6.Directoryの登録

お待ちかねのDirectoryの登録になります。
下記リファレンスを参考にコマンド実行してみます。
https://docs.aws.amazon.com/cli/latest/reference/workspaces/register-workspace-directory.html
今回はWorkDocsは無効、セルフサービス管理機能は有効にしてみました。

【コマンド】

【結果】
戻り値無し

サクッと登録されました。

7.WorkSpacesの構築

それではWorkSpacesを構築していきます。

7.1 変数の設定

必要なパラメータを変数として設定します。

【コマンド】

7.2 変数の確認

【コマンド】

【結果例】

7.3 WorkSpace設定出力ファイルの作成

【コマンド】

【結果例】

7.4 WorkSpaceの作成

残念ながらSimpleADでは現時点(2019/11/28)にてAWS CLIでユーザーを作成することはできないので、マネジメントコンソールにて作成した後に下記コマンドを実行します。

【コマンド】

【結果例】

7.5 WorkSpaceのステータス確認

下記コマンドを実行し、ActiveになればOKです。
※PendingからActiveになるのに経験則ではありますが、20分~30分程度かかります。

【コマンド】

できました!

最後に

一部、マネジメントコンソールで実行する必要はあるものの、Directory APIがサポートされたことでオペレーションする方にとっては嬉しいアップデートだったのではないでしょうか。

どなたかの助けになれば、幸いです。

AWS運用自動化サービス「Cloud Automator」