第1回 アマゾンウェブサービス(AWS)のタグによるコスト管理の考察(1)
背景
P35抜粋
コスト配分タグを使⽤して、AWS の使⽤量とコストの分類や追跡ができます。AWS リソース (EC2 インスタンスや S3 バケットなど) にタグを付けると、AWS では使⽤量とタグの情報を使ってコストと使⽤状況のレポートが⽣成されます。組織のカテゴリ (コストセンター、ワークロード名、所有者など) を表すタグを付けることで、複数のサービスにわたってコストを整理することができます。 |
コスト管理において、タグ管理は有用です。
しかし、Savings Plansやリザーブドインスタンスによるコスト削減との組み合わせにより管理が複雑になるケースがあります(Savings Plans、リザーブドインスタンスについての解説は多くの良い記事がネット上にあるため、ここでは割愛します)。
本ブログでは管理が複雑になるケースに注目し、2019年12月現在株式会社QESが持つノウハウの中でAWSコスト管理の特徴と改善についてまとめたいと思います。
AWSコスト管理の特徴
AWSでは多くのサービスにタグ設定を行うことが可能です。
また、Cost Explorer等ではタグでフィルタ処理を行うことができるため、タグ毎のコストを容易に把握できます。
一方、コスト削減プランとして効果の高いSavings Plansやリザーブドインスタンスはタグレベルで適用範囲を指定出来ません(2019年12月現在)。そのため、以下の様なケースが発生します。
参照(詳細):https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/apply_ri.html
参照(詳細):https://docs.aws.amazon.com/savingsplans/latest/userguide/sp-applying.html
サービスAはCompute Savings Plans購入に加え、Cost Explorer等のタグフィルタでコスト確認をするとFargateのオンデマンド料金が課金されています。サービスBはサービスAが購入したCompute Savings Plansが適用されて安くなります。AWSアカウント全体としては期待よりも高い割引率が得られていますが、運用上期待した結果ではありません。
また、Cost Explorer等ではタグでフィルタ処理を行うことができるため、タグ毎のコストを容易に把握できます。
一方、コスト削減プランとして効果の高いSavings Plansやリザーブドインスタンスはタグレベルで適用範囲を指定出来ません(2019年12月現在)。そのため、以下の様なケースが発生します。
ケース1:リザーブドインスタンス導入
参照(詳細):https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/apply_ri.html
サービスAは5台分のリザーブドインスタンス購入に加え、Cost Explorer等のタグフィルタでコストを確認すると2台分のオンデマンド料金が課金されています。一方、サービスBはサービスAが購入したリザーブドインスタンスが適用されてオンデマンド料金は発生しません。
AWSアカウント全体で見れば期待された減額効果が出ていますが、これは運用上期待した結果ではありません。ケース2:Compute Savings Plans導入
参照(詳細):https://docs.aws.amazon.com/savingsplans/latest/userguide/sp-applying.html
サービスAはCompute Savings Plans購入に加え、Cost Explorer等のタグフィルタでコスト確認をするとFargateのオンデマンド料金が課金されています。サービスBはサービスAが購入したCompute Savings Plansが適用されて安くなります。AWSアカウント全体としては期待よりも高い割引率が得られていますが、運用上期待した結果ではありません。
コスト管理のベストプラクティス
これらのケースのようにAWSに積極的に取り組んでいるサービスAの方が損をするような運用ではAWS利用全体に悪影響を与えかねません。ではどうすれば良いか。
上記2ケースはサービスAとサービスBが異なるAWSアカウントであれば基本的に発生しません。Savings Plansもリザーブドインスタンスも適切に運用すれば素晴らしい減額効果をもたらしてくれます。AWSはコスト削減プランに柔軟性をもたせることにより効率的に減額効果をもたらす様々な工夫をされていますが、この工夫とタグ付けによるコスト管理の相性が悪い部分があるということです。
以上を踏まえ、当社が考えるコスト管理のベストプラクティスは以下の通りです。
AWSアカウント内に複数のコスト管理単位を含めない |
タグによるコスト管理
とはいえ、というお話です。
実際のケースを見ると、システム設計・運用の観点やその経緯からタグレベルのコスト管理に分割せざるを得ないケースがあります。
例えば、当初オンデマンド課金でタグ管理を導入しその後リザーブドインスタンスやSavings Plansを導入しようとした時に初めて本問題に気づかれるケース(最初に当社にお声がけ頂ければ!)や、当初はAWSアカウント単位でコスト管理していたものが組織変更やシステム拡張などの事情で複数の採算管理に分割されるケースがあります。また、必ずしもAWSアカウントを細分化することが全体から見たベストではないことも。
この現実にどう対応するか。
次回「第2回 アマゾンウェブサービス(AWS)のタグによるコスト管理の考察(2)」では、CostSheepによるコストのタグ管理についてご説明します。
次回「第2回 アマゾンウェブサービス(AWS)のタグによるコスト管理の考察(2)」では、CostSheepによるコストのタグ管理についてご説明します。
<参照URL>
リザーブドインスタンス がどのように適用されるか
Understanding How Savings Plans are Applied to Your Usage