AWSは最近Free Tier APIを導入し、開発者がAWS Free Tierの使用量を確認し、Free Tierの制限に対する進捗を監視できるようにした。このAPIはAWS CLIから直接アクセスすることも、SDKを使ってアプリケーションに統合もでき、予期せぬ請求の可能性を削減できる。
新しいGetFreeTierUsage APIは、Free Tierページで利用可能なのと同じ情報を提供するが、プログラムで解析可能な構造化されたフォーマットとなっている。AWSのチーフ・エバンジェリスト(EMEA)であるDanilo Poccia氏は次のように書いている。
以前は、Free Tier APIは一般公開されておらず、AWS BillingコンソールのFree Tierページに内部的に使用されていた。私たちは、GetFreeTierUsage APIを一般公開することで、AWSを楽しみ、AWSのFree Tierオファーをより良く利用し、何が無料なのか、制限に近づいたり超過したりしたときにどうすべきかを認識するのに役立つことを期待している。
いわゆるFree Tierには、APIのfreeTierTypeフィールドで示される3つの異なるタイプのAWSオファリングが含まれる。'Always Free'オファリングは、顧客が指定された上限まで、時間的制約なしに、無料でサービスを利用することを許可する。「12 か月間無料」のオファーでは、顧客はアカウントが有効化された日から 1 年間サービスを利用できる。「無料トライアル」は、短期間のトライアルサービスである。新しいAPIはCLIを使って利用できる。
aws freetier get-free-tier-usage
応答は、課金期間中にアカウントに適用される各オファーの現在の使用量の説明を含むJSONドキュメントである。例えば、
{
"actualUsageAmount": 3.90725671,
"description": "1000000.0 Obj-Month are always free per month as part of AWS Free Usage Tier (Global-Catalog-Storage)",
"forecastedUsageAmount": 8.651782715,
"freeTierType": "Always Free",
"limit": 1000000.0,
"operation": "Storage",
"region": "global",
"service": "AWS Glue",
"unit": "Obj-Month",
"usageType": "Catalog-Storage"
}
Poccia氏はこう説明する。
興味深い3つのプロパティは、オファーの限度額(limit)、オファーの実際の使用量(actualUsageAmount)、課金期間(当月)末の予測使用量(forecastedUsageAmount)である。これらはすべて、オファーが使用する単位に基づいている。例えば、WindowsとLinuxのコンピュート・オファーは、それぞれ月間750時間の制限がある。
APIはまた、予測使用量も提供し、予測が上限を上回り、請求が発生する可能性のあるオファーをフィルタリングするオプションもある。
aws freetier get-free-tier-usage --query 'freeTierUsages[?forecastedUsageAmount > limit]'
しかし、上限に達すると、実際の使用量はGetFreeTierUsage APIによって追跡されなくなり、対応するオファーは返されなくなる。
ここ数年、AWS Free Tier に関する懸念が開発者の間で高まっており、クラウドプロバイダーが予期せぬ課金を回避するための安全バリアをなぜ実装しなかったのか、という疑問の声が上がっていた。AWSは現在、Free Tierの使用量を監視するための複数のオプションを提供しており、AWS Billing and Cost Managementコンソールでは、使用量がFree Tierの制限の85%を超えた場合にメールを送信するデフォルトのアラートと、Budgetsセクションでゼロ支出予算を作成する機能を提供している。
新しいFree Tier APIはモニタリングを簡素化するが、AWSはまだAzureのような支出制限機能やGoogle Cloudのように明示的に課金を有効にする機能を提供していない。
Poccia氏は、各オファーの現在の使用量、限度額、課金期間終了時の予測使用量の概要を得るためのサンプルPythonスクリプトをGitHubで公開した。