WorkSpaces ユーザーに対して WorkDocs 利用料金が発生している!?

WorkSpaces ユーザーに WorkDocs 利用料金が発生している場合は、設定を確認してみよう!
2022.01.07

はじめに

発生しないと思っていた WorkDocs の利用料金が発生している

みなさま Xin chao !

とある AWS 環境の利用料金を眺めていたところ、おや? と思える点に気づきました。

 

発生することがないと思っていた、Amazon WorkDocs の利用料金が発生しています。

Amazon WorkSpaces および WorkDocs の料金体系に詳しい方はご存じかと思いますが、WorkSpaces のユーザーは追加料金なしで WorkDocs のストレージ 50 GB を使用することができます。

また、Amazon WorkSpaces ユーザーには、追加料金なしで、50 GB のストレージが用意された Amazon WorkDocs へのアクセス権限が付与されます。WorkSpaces ユーザー 1 人につき 1 TB のストレージにアップグレードする際は割引料金が適用されます。

(Amazon WorkSpaces の料金 より抜粋)

Amazon WorkSpaces のユーザーには、追加料金なしで WorkDocs へのアクセス権限が付与されます。これには、WorkSpaces のユーザー 1 人あたり 50 GB のストレージが含まれます。WorkSpaces のユーザー 1 人あたり毎月 2.00USD の割引料金を支払うことで、ストレージを 1 TB にアップグレード可能です。

(Amazon WorkDocs 料金 より抜粋)

 

もちろん、WorkSpaces を使用しているのとは異なるユーザーが WorkDocs を使用する場合には、WorkDocs の利用料金が発生します。 しかし、該当の AWS 環境の使用状況をヒアリングする限りでは、この AWS アカウントでは、WorkSpaces を使用しているユーザーのみが WorkDocs を使用しているとのことで、本来であれば追加料金なしで 1 ユーザーあたり WorkDocs を 50 GB 使用できるハズです。

 

WorkDocs が「無効」になっていたのが原因

原因はすぐに分かりました。 このの状態に至る経緯は把握できませんでしたが、結論としては WorkSpaces のディレクトリの設定で WorkDocs が「無効」になっていました。

 

そこで今回は、WorkSpaces のディレクトリ設定を変更して、WorkDocs を「有効」にすることを試してみたいと思います。

 

環境を再現して変更してみた

ここからは、検証環境で試した際の様子になります。 以下のような要件を想定しています。

  • (過去の経緯は不明だが) 現状として WorkSpaces のディレクトリ設定で WorkDocs が「無効」になっている
  • WorkSpaces を使用しているユーザーに対する WorkDocs 利用料金の発生をなくしたい
  • WorkSpaces と WorkDocs は既に本番環境で使用中のため再構築は困難

環境を再現する

詳細は割愛しますが、以下の順序で構築したところ、同じ状況を再現することができました。

  1. Directory Service をデプロイする (実際に見つけた環境と同じく Simple AD を使用しています)
  2. WorkDocs を 1. の Directory Service を使ってデプロイする
  3. WorkSpaces を 1. の Directory Service を使って、意図的に WorkDocs を「無効」の状態でデプロイする

構築後のそれぞれの状態は以下の通りです。

 

Directory Service

Directory Service の [AWS アプリおよびサービス] を見ると、デプロイしたディレクトリが WorkSpaces と WorkDocs で使用されていることが分かります。

 

WorkDocs

WorkDocs サイトを作成済みです。

 

WorkDocs 管理コントロールパネルで WorkDocs ユーザーをアクティブ化済みです。 ユーザーの役割は以下の通りです。

  • WorkDocsAdmin ・・・ WorkDocs 管理者で WorkSpaces は使用しない (WorkDocs の利用料金が発生する)
  • masawo ・・・ WorkDocs ユーザーで WorkSpaces も使用する (WorkDocs の利用料金が発生しない想定)

 

WorkSpaces ユーザーが WorkDocs を使用する場合、「権限」が「WS ユーザー」になっている必要がありますが、この時点では、選択肢に「WS ユーザー」がありません。

(参考) ユーザーロールの概要 - Amazon WorkDocs 管理ガイド

 

WorkSpaces

WorkSpace をデプロイ済みです。

 

WorkSpaces のディレクトリの状態を確認すると、WorkDocs が「無効」になっています。

 

WorkDocs が「無効」となっていても、WorkSpaces から有効化できていないだけで、WorkDocs 自体は利用できています。 また、本番環境を想定するために、WorkDocs に既にファイルを保存している状態にしています。

 

WorkSpaces のディレクトリ設定で WorkDocs を「有効」にする

本ブログの執筆時点において、AWS マネジメントコンソールでは、WorkSpaces に対するディレクトリ登録時にのみ WorkDocs を「有効」に設定することができるようです (以下は Simple AD を登録する際の画面)。

 

既に WorkSpaces に登録済みのディレクトリに対して、AWS マネジメントコンソールを使って WorkDocs を「有効」にする方法は見つかりませんでした (上の画面で「登録後、いつでも選択を変更できます。」と書いてあるのは気になります)。 一旦ディレクトリを登録解除し、再度登録する際に WorkDocs を「有効」にすることも考えましたが、ディレクトリを登録解除するにはデプロイ済みの WorkSpaces を削除する必要があるため、既に稼働中の本番環境に対して行うのは困難です。

 

一方で AWS CLI Command Reference を眺めていたところ、以下が使えそうなことが分かったので試してみました。

modify-workspace-creation-properties - AWS CLI Command Reference (AWS CLI v2) modify-workspace-creation-properties - AWS CLI Command Reference (AWS CLI v1)

 

まず、変更前の WorkSpaces のディレクトリの状態を AWS CLI でも確認してみます。 WorkDocs が「無効」 (="EnableWorkDocs": false) になっています。

> aws workspaces describe-workspace-directories
{
    "Directories": [
        {
            "DirectoryId": "d-9********7",
            "Alias": "m********s",
            "DirectoryName": "masawo.test",
            "RegistrationCode": "S****+*****H",
            "SubnetIds": [
                "subnet-0***************3",
                "subnet-0***************d"
            ],
            "DnsIpAddresses": [
                "10.0.22.130",
                "10.0.21.236"
            ],
            "CustomerUserName": "Administrator",
            "IamRoleId": "arn:aws:iam::************:role/workspaces_DefaultRole",
            "DirectoryType": "SIMPLE_AD",
            "WorkspaceSecurityGroupId": "sg-0***************6",
            "State": "REGISTERED",
            "WorkspaceCreationProperties": {
                "EnableWorkDocs": false,
                "EnableInternetAccess": true,
                "UserEnabledAsLocalAdministrator": true,
                "EnableMaintenanceMode": true
            },
            "WorkspaceAccessProperties": {
                "DeviceTypeWindows": "ALLOW",
                "DeviceTypeOsx": "DENY",
                "DeviceTypeWeb": "DENY",
                "DeviceTypeIos": "DENY",
                "DeviceTypeAndroid": "DENY",
                "DeviceTypeChromeOs": "DENY",
                "DeviceTypeZeroClient": "DENY",
                "DeviceTypeLinux": "DENY"
            },
            "Tenancy": "SHARED",
            "SelfservicePermissions": {
                "RestartWorkspace": "ENABLED",
                "IncreaseVolumeSize": "ENABLED",
                "ChangeComputeType": "ENABLED",
                "SwitchRunningMode": "ENABLED",
                "RebuildWorkspace": "ENABLED"
            }
        }
    ]
}

 

WorkDocs を「有効」 (="EnableWorkDocs=true") に変更します。 結果は何も表示されませんでした。

> aws workspaces modify-workspace-creation-properties --resource-id d-9********7 --workspace-creation-properties EnableWorkDocs=true

 

再度 WorkSpaces のディレクトリの状態を確認します。 WorkDocs が「有効」 (="EnableWorkDocs": true) になったことが確認できました。

> aws workspaces describe-workspace-directories
{
    "Directories": [
        {
            "DirectoryId": "d-9********7",
            "Alias": "m********s",
            "DirectoryName": "masawo.test",
            "RegistrationCode": "S****+*****H",
            "SubnetIds": [
                "subnet-0***************3",
                "subnet-0***************d"
            ],
            "DnsIpAddresses": [
                "10.0.22.130",
                "10.0.21.236"
            ],
            "CustomerUserName": "Administrator",
            "IamRoleId": "arn:aws:iam::************:role/workspaces_DefaultRole",
            "DirectoryType": "SIMPLE_AD",
            "WorkspaceSecurityGroupId": "sg-0***************6",
            "State": "REGISTERED",
            "WorkspaceCreationProperties": {
                "EnableWorkDocs": true,
                "EnableInternetAccess": true,
                "UserEnabledAsLocalAdministrator": true,
                "EnableMaintenanceMode": true
            },
            "WorkspaceAccessProperties": {
                "DeviceTypeWindows": "ALLOW",
                "DeviceTypeOsx": "DENY",
                "DeviceTypeWeb": "DENY",
                "DeviceTypeIos": "DENY",
                "DeviceTypeAndroid": "DENY",
                "DeviceTypeChromeOs": "DENY",
                "DeviceTypeZeroClient": "DENY",
                "DeviceTypeLinux": "DENY"
            },
            "Tenancy": "SHARED",
            "SelfservicePermissions": {
                "RestartWorkspace": "ENABLED",
                "IncreaseVolumeSize": "DISABLED",
                "ChangeComputeType": "DISABLED",
                "SwitchRunningMode": "DISABLED",
                "RebuildWorkspace": "DISABLED"
            }
        }
    ]
}

 

AWS マネジメントコンソールでも、WorkSpaces のディレクトリの状態で WorkDocs が「有効」になっていることを確認できました。

 

WorkDocs 管理コントロールパネルを確認すると、WorkSpaces を使用している WorkDocs ユーザーの「権限」が「WS ユーザー」に自動的に変更されていました。

 

もちろん、「権限」の選択肢としても「WS ユーザー」が表示されています。

 

また、今回の変更を行っている最中に接続したままだった WorkSpace も切断等発生することなく利用できていますし、WorkDocs に保存されていたファイルも引き続き使用できることが確認できました。

 

これで、WorkSpaces ユーザーに対する WorkDocs の利用料金は (50 GB / ユーザー 以内であれば) 発生しない状態になりました。

なお、同様の方法で今回とは逆に、WorkDocs を「有効」 (="EnableWorkDocs": true) から「無効」 (="EnableWorkDocs": false) に変更することも試してみましたが、問題なく変更することができました。

 

まとめ

既に本番環境で WorkDocs と WorkSpaces を利用中の環境で、WorkDocs の利用料金が発生している環境を想定したうえで、WorkSpaces のディレクトリ設定において WorkDocs を「有効」にしてみましたが、本番環境に影響を与えることなく変更することができました。

...と、ここまで書いた段階で、全く同じ内容の記事が既に投稿済みであることに気づいてしまいました (汗)。

見なかったことにして、シレっとこのまま投稿することにしました。