4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FinOpsエージェントがアクセスするサービスを調べながらAWSのコスト関連サービスを振り返る

4
Posted at

概要

FinOpsエージェントはどういったAWSサービスにアクセスしてコスト情報を分析するのか。AWSのコストに関するサービスが沢山あるので、各種振り返りながら記載します。

IAMロールの構成

FinOpsエージェントを有効化する際、2つのIAMロールを作成します。1つはFinOpsエージェントが各種リソースにアクセスするためのIAMロール、もう1つはユーザーが利用するOperator Web Appを動作させるための管理・操作ロールです。

これはDevOpsエージェントのアクセスの仕組みと同様です。DevOpsエージェントのアクセス制御の仕組みはこちらにまとめましたので参照ください。

FinOpsAgentAgentPolicyの権限

ここでは、1つ目のIAMロール(FinOpsエージェントが各種リソースにアクセスするためのロール)を確認しつつ、FinOpsエージェントがどういったサービスから情報を取得するかを確認します。

こちらに記載のあるFinOpsAgentAgentPolicyの権限を見ていきます。アクセスするサービスの一覧は下記の通りです。

# サービス IAMプレフィックス
1 AWS Cost Explorer ce:
2 AWS Budgets budgets:
3 Cost Optimization Hub cost-optimization-hub:
4 AWS Compute Optimizer compute-optimizer:
5 Amazon EC2 ec2:
6 Amazon ECS ecs:
7 Auto Scaling autoscaling:
8 AWS Lambda lambda:
9 AWS Organizations organizations:
10 Amazon RDS rds:
11 AWS Pricing pricing:
12 AWS Free Tier freetier:
13 AWS Billing and Cost Management Pricing Calculator bcm-pricing-calculator:
14 AWS CloudTrail cloudtrail:
15 Amazon CloudWatch cloudwatch:
16 Amazon CloudWatch Logs logs:
17 Amazon EventBridge events:

大きく分けると下記4つの区分に分かれます。

  • コストデータの照会・分析 — Cost Explorer、Budgetsなど
  • 最適化レコメンデーション — Cost Optimization Hub、Compute Optimizer
  • インフラ構成の把握 — EC2、ECS、Auto Scaling、Lambda、RDSなど
  • コスト異常の原因調査 — CloudTrail

※CloudWatch、EventBridgeなどは割愛

以降、各区分について詳しく見ていきます。

コストデータの照会・分析 / 最適化レコメンデーション

「コストデータの照会・分析」「最適化レコメンデーション」で使用する、Cost Explorer、Compute Optimizer、Cost Optimization Hubを見ていきます。

AWS Compute Optimizer

AWS Compute OptimizerはCloudWatchメトリクスを分析して、リソースの適切なサイジング等、最適化のレコメンデーションを表示します。対象のリソースはこちらに記載の通り、EC2やECS、RDSなどのリソースとなります。

f01.png

f03.png

Cost Optimization Hub

Cost Optimization Hubは、AWSアカウント内のコスト最適化のレコメンデーションを横断的に集約表示して、優先順位を付けるのに役立つサービスです。リソースの適切なサイジング、アイドル状態のリソースの削除、Savings Plans、リザーブドインスタンスに関する推奨事項を表示します。

f02.png

なお、リソースの適正化とアイドル状態のリソースのレコメンデーションについては、AWS Compute Optimizerが一次ソースとして提供しています。対象のリソースはこちらに記載の通り、AWS Compute Optimizerより多いです。

AWS Cost Explorer

AWS Cost Explorerは、コストと使用状況を表示および分析できるツールです。

3つのサービスの関係性

この3つのツールの関係性を具体例で記載します。

  • Cost Explorer で先月「EC2コストが500ドル→700ドルに増加した」と確認
  • Compute Optimizer で「i-abc123(m5.2xlarge)はCPU平均使用率12%なのでm5.largeで十分」と推奨を確認
  • Cost Optimization Hub で「アカウント全体で最もインパクトの大きい推奨はこのEC2ライトサイジングで、年間2,400ドル削減可能」と優先順位付け

インフラ構成の把握

続いて「インフラ構成の把握」です。具体的には下記のような各種リソースに関する読み取り権限が付与されています。

"ec2:DescribeInstances",
"ec2:DescribeVolumes",
"ecs:ListServices",
"ecs:ListClusters",
"autoscaling:DescribeAutoScalingGroups",
"autoscaling:DescribeAutoScalingInstances",
"lambda:ListFunctions",
"lambda:ListProvisionedConcurrencyConfigs",
"rds:DescribeDBInstances",
"rds:DescribeDBClusters",

上記の対象サービスはCompute Optimizerの主要な対象サービスと一致しています。FinOpsエージェントが各種リソースの現状を確認し、Compute Optimizerのレコメンデーションを実際のリソースと紐づけるために使用していると考えられます。

コスト異常の原因調査

最後に「コスト異常の原因調査」です。FinOpsエージェントはコスト異常を検知した際、CloudTrailのログを調査してコスト増加の原因となったAPI操作を特定します。

ドキュメントには下記の記載があります。

CloudTrailのアクションは、コスト異常の調査をサポートします。エージェントは、cloudtrail:LookupEventsを使用して、コスト変更の背後にあるAPIアクティビティを特定します。

コスト異常調査のドキュメントには下記の記載があります。

エージェントは、コスト増加の原因が使用量の増加、料金の上昇、またはその両方によるものかどうかを判断します。CloudTrailのアクセス許可が有効になっている場合、エージェントはCloudTrailのイベント履歴を検索し、コスト変更に関連するAPIアクティビティを特定します。

まとめ

AWSには多くのコスト関連のサービスがあります。これらを横断的に分析できるFinOpsエージェントはコスト最適化にかなり有効であると感じました。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?