CloudFormationのEstimateTemplateCost API

2014.05.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。望月です。

前回のエントリ「リザーブドインスタンスをAWS CLIから購入してみる」に続き、「細かすぎて伝わらないAWS API」シリーズ第二弾です。今日はCloudFormationのEstimateTemplateCostを紹介します。このAPIはAWS Simple Monthly Calculatorとの連携を行ってくれます。

Simple Monthly Calculator

Simple Monthly Calculatorは、AWSの提供している簡易料金見積もり作成ツールです。画面上から必要なインスタンスの台数やディスクサイズなどをフォームに入力することで、一ヶ月の利用費用を計算してくれます。弊社でも、お客様に費用を提示する時に活用しています。弊社での見積についてはこのブログも御覧ください。 : AWSの費用見積でおさえておくべきポイント

今日のテーマのEstimateTemplateCostでは、CloudFormationのテンプレートファイルをパラメータとして渡すことで、Simple Monthly Calculatorの結果URLを返してくれます。面白いですね。

試してみる

それでは、過去に弊社ブログで紹介した「【AWS】VPC環境構築ノウハウ社内資料 2014年4月版」のCloudFormationテンプレートを利用して、計算してみます。対象のテンプレートをローカルに保存します。EstimateTemplateCostはテンプレートファイルのURLをパラメータとして渡すこともできるので、その形式で実行してもOKです。

現在、どうやらAWS CLIからはこのAPIを実行できないようなので、AWS SDK for Rubyを使って試してみます。

#!/usr/bin/env ruby

require 'aws-sdk'

template_name = "vpc-knowhow-2014-04.template"

cloudformation = AWS::CloudFormation.new
url = cloudformation.estimate_template_cost(File.read(File.dirname(__FILE__) + "/" + template_name))

puts url

コンソールから実行すると、Simple Monthly CalculatorのURLが表示されます。

$ ./estimate.rb
http://calculator.s3.amazonaws.com/calc5.html?key=cloudformation/1f65f2bf-23c1-4afa-a971-e44cdff6d17c

表示されたURLに、ブラウザからアクセスしてみましょう。

estimate1

テンプレートから作成されるリソースにより、月額200ドル弱の料金が発生することが分かりました。なかなか便利ですね。ただ、単一のテンプレートファイルからしか見積もりを作成できないようなので、複数のテンプレートをまとめてパラメータとして送ることができれば、非常に便利なAPIになりそうな気がします。