WorkSpacesの料金モデルを最適化するAmazon WorkSpaces Cost Optimizerの紹介

WorkSpacesの料金モデルを最適化するAmazon WorkSpaces Cost Optimizerを紹介します。
2020.04.01

こんにちは。
ご機嫌いかがでしょうか。
"No human labor is no human error" が大好きな吉井 亮です。

社会的にテレワークの需要が増え、WorkSpaces の利用開始、または、検討をしている方も増えていると思います。
ただやはり心配なのはコスト (月額料金) だと思います。

EC2 であればコスト削減の推奨を教えてくれるサービスがあります。

Cost Explorer でも推奨をしてくれます。

Amazon WorkSpaces Cost Optimizer

WorkSpaces は残念ながら標準サービスにはないようです。
その代わりになりそうなテンプレートが AWS Solutions で公開されています。
Amazon WorkSpaces Cost Optimizer

概要

WorkSpaces には AlwaysOn (月額料金) と自動停止 (時間料金) の2種類の料金モデル/実行モードがあります。
このソリューションでは、WorkSpaces の使用状況を分析し、費用対効果の高い料金モデルを提案するものです。
使い方は以下になります。

  1. ソリューションを実装する
  2. 毎日1回分析を実行する (CloudWatch Events でスケジュール)
  3. 月末にレポート (CSV ファイル) を確認
  4. 翌月の料金モデルを決定

実装方法

マネジメントコンソールに管理者権限でログインします。

Amazon WorkSpaces Cost Optimizer のサイトを開きます。

Launch solution in the AWS Console をクリックします。

CloudFormation の スタックの作成 画面が表示されます。
リージョンがバージニア北部になっているので、普段お使いのリージョンに変更します。

CloudFormation のパラメーターは以下を指定します。
CIDR が構築済み VPC に影響しないこと、Dry Run Mode は特に気を付けて実行ください。

パラメーター デフォルト値 説明
AWS Fargate VPC CIDR Block 10.215.0.0/16 このソリューションが使うコンテナの VPC CIDR。
AWS Fargate Subnet1 CIDR Block 10.215.10.0/24 このソリューションが使うコンテナのサブネット。
AWS Fargate Subnet2 CIDR Block 10.215.20.0/24 このソリューションが使うコンテナのサブネット。
AWS Fargate SecurityGroup CIDR Block 0.0.0.0/0 コンテナのセキュリティグループのアウトバウンドに適用するルール。
Launch in Dry Run Mode Yes レポートの生成のみを行う。 No にすると料金モデルの変更が自動的に行われる。
Simulate End of Month Cleanup No 月末をシュミレートして実行する。
Log Level INFO Lambda 関数のログレベル。
Value Limit 81 AlwaysOn に変換されるまでに、バリューインスタンスが1か月に実行できる時間数。東京リージョン Windows の場合は 80 を指定。
Standard Limit 85 AlwaysOn に変換されるまでに、スタンダードインスタンスが1か月に実行できる時間数。東京リージョン Windows の場合は 88 を指定。
Performance Limit 83 AlwaysOn に変換されるまでに、パフォーマンスインスタンスが1か月に実行できる時間数。東京リージョン Windows の場合は 81 を指定。
Power Limit 83 AlwaysOn に変換されるまでに、パワーインスタンスが1か月に実行できる時間数。東京リージョン Windows の場合は 111 を指定。
PowerPro Limit 80 AlwaysOn に変換されるまでに、PowerPro インスタンスが1か月に実行できる時間数。東京リージョン Windows の場合は 83 を指定。
Graphics Limit 217 AlwaysOn に変換されるまでに、グラフィックインスタンスが1か月に実行できる時間数。東京リージョン Windows の場合は 383 を指定。
GraphicsPro Limit 80 AlwaysOn に変換されるまでに、GraphicsPro インスタンスが1か月に実行できる時間数。東京リージョン Windows の場合は 81 を指定。

実行

CloudFormation テンプレートを流し終えるとソリューションが実装されます。

CloudWatch Events で定期実行が設定されています。
GMT で23時55分になっていますので任意の時刻に変更します。
JST の23時55分は GMT では14時55分です。
※ Cron 式を変更して保存しようとするとエラーが表示されることがあります。
※ これはルール名が長すぎるためです。その場合はルールを自身で作り直すようにしましょう。

結果

workspacescostoptimizer-costoptimizerbucket-xxxxxx という S3 バケットが存在すると思います。(xxxxx はランダム文字例)
その配下に CSV ファイルが結果として出力されます。
Chabge Reported、Initial Mode、New Mode あたりを見ると最適な料金モデルが記載されています。

WorkspaceID,Billable Hours,Usage Threshold,Change Reported,Bundle Type,Initial Mode,New Mode
ws-h4jhrrmb1,3,85,No Change,STANDARD,AUTO_STOP,AUTO_STOP
ws-47znmgxnn,3,85,No Change,STANDARD,AUTO_STOP,AUTO_STOP

コスト

このソリューション自体のランニングコストは $0.005/日 (バージニア北部リージョン) とされています。
環境やリージョンで微増はあると思いますが、大きなコストではないと思われます。

まとめ

WorkSpaces の料金体系は公式サイトに公開されています。
Amazon WorkSpaces の料金

料金表を見てもらい「(月額料金 - 時間料金の固定分) ÷ 時間料金の従量課金分」 を計算すれば、このソリューションを使わずとも料金モデル選択の分岐点が判明します。
ユーザーさんの WorkSpaces 利用時間が事前に把握できるのであれば料金モデルを決定することが可能です。まずは机上で計算することが大切です。

ユーザーさんの利用時間が不明、かつ、台数が多い場合にはこのソリューションを使って料金モデルを判断し、料金節約に役立ててみてはいかがでしょうか。

参考

Amazon WorkSpaces Cost Optimizer
Amazon WorkSpaces の料金

以上、吉井 亮 がお届けしました。