一部のサービスについては調査中ですが、現時点での一覧を公開します。
リザーブドインスタンスは、クラウドサービスにおいて事前にリソースを予約し、コスト最適化を図る方法の一つです。しかし、リザーブドインスタンスの購入は高額になる可能性があり、予期しない支出を引き起こすリスクも伴います。
この問題に対処する一つの方法は、IAM ポリシーを利用してリザーブドインスタンスの購入を明示的に拒否することです。具体的には、以下のアクションを拒否する IAM ポリシーの設定を検討してください。
リザーブドインスタンスの対象サービス
過去のブログで 10 のサービスを調査しました。一覧を再掲します。 [1]
リザーブドの種類 | AWS サービス |
---|---|
リザーブドインスタンス | EC2, RDS, OpenSearch Service |
リザーブドノード | ElastiCache, Redshift, MemoryDB |
リザーブドキャパシティ | DynamoDB, CodeBuild, CloudFront |
その他 | Elemental MediaLive |
上記サービスの購入に関するアクション
*ReservedInstances*
などと幅広く指定する事も可能ですが、以下のアクションを明確に拒否する事も効果的と考えます。
以下のアクションを IAM ポリシーで Deny することで、各サービスにおける購入を制限することが可能です。
- ec2:PurchaseReservedInstancesOffering [2]
- ec2:CreateCapacityReservation [2]
- rds:PurchaseReservedDBInstancesOffering [3]
- es:PurchaseReservedInstanceOffering [4]
- elasticache:PurchaseReservedCacheNodesOffering [5]
- redshift:PurchaseReservedNodeOffering [6]
- memorydb:PurchaseReservedNodesOffering [7]
- dynamodb:PurchaseReservedCapacityOfferings [8]
- codebuild:CreateFleet [9]
- (CloudFront 調査中) [10]
- medialive:PurchaseOffering [11]
【補足 1 】アクション名に含まれる Offering とは?
以下の情報の組み合わせで一意の Offering ID が決まります。[12]
リザーブドインスタンスを購入する際には、この Offering ID を指定する必要があります。
- インスタンスタイプ
- 支払オプション
- 期間
- 購入台数
- (その他)
したがって、Offering を拒否することで、リザーブドインスタンスを購入することが出来なくなります。
言い換えると、リザーブドインスタンスを購入する許可
を拒否する必要があります。
【補足 2 】CodeBuild のリザーブドキャパシティについて
DyanamoDB や CloudFront とは位置付けが異なる様です。[13]
他の RI や Savings Plans のように、特定の期間を指定して購入するものではなさそうです。
Savings Plans の購入に関するアクション
リザーブドインスタンスと異なり、 Savings Plans は以下のアクションで指定が可能です。
- cloudfront:CreateSavingsPlan [14]
- savingsplans:CreateSavingsPlan [15]
参考資料
[1] 【AWS】 リザーブドインスタンスの対象サービスを全部言えますか?
[2] Amazon EC2 のアクション、リソース、および条件キー
[3] Amazon RDS のアクション、リソース、および条件キー
[4] Amazon OpenSearch Service のアクション、リソース、および条件キー
[5] Amazon ElastiCache のアクション、リソース、および条件キー
[6] Amazon Redshift のアクション、リソース、および条件キー
[7] Amazon MemoryDB のアクション、リソース、および条件キー
[8] Amazon DynamoDB のアクション、リソース、および条件キー
[9] AWS CodeBuild のアクション、リソース、条件キー
[10]
[11] AWS Elemental のアクション、リソース、および条件キー MediaLive
[12]リザーブドインスタンスの購入 - Amazon Elastic Compute Cloud
[13] AWS CodeBuild のリザーブドキャパシティを使ってみました | DevelopersIO