[アップデート] Amazon QuickSight でプロビジョニングされたユーザーの料金にコスト配分タグを適用出来るようになりました

2023.10.01

いわさです。

Amazon QuickSight の料金は主に、プロビジョニングされたユーザーの数、そして追加で購入した SPICE の使用量で構成されています。

これまで QuickSight では一部のリソースにタグを付与することは出来たのですが、ユーザーにタグを付与することは出来ませんでした。そのためコスト配分タグのような概念を使用することも出来ませんでした。

これが先日のアップデートでコスト配分タグが適用出来るようになってます。大規模に運用している環境だと嬉しいかもしれない。

本日は実際にコスト配分タグを設定した管理者や作成者を登録して料金がどのように振り分けされるのかを確認してみました。

コスト配分タグを有効化

クラスメソッドメンバーズの AWS アカウントでは通常 CmBillingGroup というコスト配分タグを使用します。

今回検証に使ったアカウントはクラスメソッドメンバーズのアカウントではないですが、同じ名前のコスト配分タグを使って試してみたいと思います。

コスト配分タグを設定したユーザーを登録

新規ユーザー登録時に設定可能

AWS CLI v1.29.54 以上のregister-userコマンドにて、ユーザーの新規作成時にタグの設定が可能です。
記事執筆時点では、既存ユーザーに対してタグを設定する機能が提供されていませんのでご注意ください。

既存ユーザーへのタグ設定は別の API で設定が可能です。別途検証し追記します。

タグの指定方法は他の AWS リソースと同様で Tags オプションでタグが複数設定出来ます。
ここでは先程有効化したコスト配分タグを設定したユーザーを作成してみます。

% cat register-user.json
{
    "IdentityType": "QUICKSIGHT",
    "Email": "iwasa.takahito+qs1@example.com",
    "UserRole": "ADMIN",
    "AwsAccountId": "123456789012",
    "Namespace": "default",
    "UserName": "admin1",
    "Tags": [
        {
            "Key": "CmBillingGroup",
            "Value": "QuickSight1"
        }
    ]
}
% aws-v1 quicksight register-user --cli-input-json file://register-user1.json --profile hoge0912
{
    "Status": 201,
    "User": {
        "Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/admin1",
        "UserName": "admin1",
        "Email": "iwasa.takahito+qs1@example.com",
        "Role": "ADMIN",
        "IdentityType": "QUICKSIGHT",
        "Active": false,
        "PrincipalId": "user/d-95676c0c14/da9df8cf-2af2-4dc2-8b08-079dc277d0a1"
    },
    "UserInvitationUrl": "hogehoge",
    "RequestId": "34575b72-f3d6-4fed-931b-b26294d25e89"
}

振り分けされる様子を確認したいので次のように 4 人のユーザーを作成しました。
コスト配分タグ値は QuickSight1 と QuickSight2 の 2 つです。

ロール ユーザー名 CmBillingGroup のタグ値
ADMIN admin1 QuickSight1
AUTHOR author1 QuickSight1
AUTHOR author2 QuickSight2
AUTHOR reader1 QuickSight2

4 人目のユーザーはユーザー名が reader という名称なのに AUTHOR で登録してしまいました。

既存ユーザーに設定されたタグは describe-user では確認できない

describe-userで作成されたユーザー情報を確認してみましょう。

% aws-v1 quicksight describe-user --user-name admin1 --aws-account-id 123456789012 --namespace default --profile hoge0912
{
    "Status": 200,
    "User": {
        "Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/admin1",
        "UserName": "admin1",
        "Email": "iwasa.takahito+qs1@example.com",
        "Role": "ADMIN",
        "IdentityType": "QUICKSIGHT",
        "Active": true,
        "PrincipalId": "user/d-95676c0c14/da9df8cf-2af2-4dc2-8b08-079dc277d0a1"
    },
    "RequestId": "d7ee89d1-a875-4187-9a94-39cffad5bf1f"
}

今回のアップデートの影響を受けたコマンドはregister-userだけのようで、本記事の執筆時点では設定済みユーザーにどのタグが設定されているのか確認する術がないようです。うーむ。

既存ユーザーのタグ確認は別の API で確認が可能です。別途検証し追記します。

ちなみに、コンソール上はタグの確認は出来ませんでした。

Cost Explorer で料金を確認

数日後に Cost Explorer でタグ別の使用量と料金を確認してみました。

使用量も料金も、コスト配分タグで割り振りできていそうですね。

さいごに

本日は Amazon QuickSight でプロビジョニングされたユーザーの料金にコスト配分タグを適用出来るようになったので実際に適用して確認してみました。

新規ユーザー作成時のみしか設定が出来ないという状態ではありますが、コスト配分タグで振り分け出来ることが確認出来ました。
QuickSight は 1 つの AWS アカウントで 1 のアカウントしか有効化ができないので、複数サービスやマルチテナントの環境でどうしても混在しやすくなります。
どのユーザーにどのタグが設定されているのかを確認したり、あるいは Update で既存ユーザーのタグを変更出来るアップデートが追加で欲しいところですが、コスト配分タグの需要は高そうな気がします。

既存ユーザーのタグ更新やタグの確認について別の API で確認や設定が可能です。別途追記予定です