1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

いや~、社内のみんなで仲良く AWS 検証環境をシェアしていたんですが、気がついたら月額がすごいことに:scream:

costimage1.png

コスト管理は誰がどのリソースを使っているか分かれば、ある程度コントロールできると考えていたため、最低限、利用者のタグ付けをお願いしていたが、なかなか緊急の動作確認などで検証するとタグ付けを忘れてしまったりしますよね。

検証環境なので、あまりルールで縛ってしまうと使いづらくなるかと思い、かなり自由に使わせていた結果・・・

リソースや利用リージョンが散乱していて、無法地帯に:cry:
そんなこんなで削除してよいのかどうか分からないリソースだらけになってしまいました。

$\color{red}{\large \textsf{こういうのってみなさんもあるあるですよね?w}}$

本投稿では、無駄に使われているリソースがどれくらいあるのかをいかに頑張らないでさくっと把握することを目指して、New Relic を活用した話となります。

なお、こちらの記事は Qiita Advent Calendar 2025 参加しているものとなります。

現状環境

  • タグ付けなどの運用ルールの統制が効いていない
  • 古い世代の利用者によってなんとなく管理されてきたが、若い世代はあまり意識できていない
  • 利用されているリージョン、サービス、機能が散乱している(絞られていない)
  • 利用者ごとに VPC などを区切るようにしているが、検証上の理由から新しいものもどんどん自由に作られている
  • 緊急な動作確認などで作成されたものは命名規則も含め、まったく守られていないものが散乱している

やってみたこと

  • 事前準備
    • AWS Integration にて情報収集
    • MCP 連携用の New Relic Userkey の発行
    • New Relic AI MCP Server を Opt in
    • New Relic AI MCP Server にて VS Code 上の生成系 AI と New Relic を連携
  • さくっと無駄なリソースについて聞いてみた

事前準備

まず、以下の準備が必要です。

New Relic への AWS Integration

AWS Integration1.png

AWS Integration の際、コスト削減のつもりなのに New Relic からの API Request によってコストが増してしまうのは意味がないので、以下画像のようにポーリング間隔は最大の1時間とかにしておきましょう。また、不要なリージョン等がある場合はそれも絞っておくとよいです。今回の目的はあくまでコスト削減なのでリアルタイム性のある情報は不要です。

AWS Integration2.png

MCP 連携用の New Relic Userkey の発行

  • UserKey 詳細
  • AWS Integration の際に作成される UserKey を MCP 連携に流用してもよい

New Relic AI MCP Server を Opt in

  • Administration > Previews & Trials > New Relic AI MCP Server を選択し、Accept & enroll をクリック
  • 以下画面のように Status が Opted in となっていることを確認

New Relic AI MCP Server1.png

VS Code などのツールに New Relic MCP Server を設定

  • New Relic MCP を設定
  • AWS Kiro でも設定可能(JSONフォーマットの書き方が少しだけ異なるので注意)

New Relic AI MCP Server2.png

一点、注意としては楽にコスト削減するために生成系 AI 側へ多くの処理が走るため、無料枠のクレジットだとすぐに限界がきてしまう可能性があります。どうしても無料枠でやる場合は、無駄を分析させる範囲を絞ってから聞くとよいかもしれません。
ちなみに GitHub Copilot だと、Free プランでもかなり使えるので今回のブログでも GitHub Copilot を使用しています。

さくっと生成系 AI にコスト削減アドバイスをもらってみよう

タイトルの通り 「時は金なり」 ともいいますので、あまりプロンプトでの聞き方とかも考えすぎずに聞いてみます。

プロンプト
New Relic アカウント「<アカウントID>: <アカウント名>」に連携されているAWSのリソースについて分析したい。
連携されているAWSアカウントは複数ユーザにてシェアしており、厳しく運用ルールなどで統制していなかったため、タグ付けされていないものも多く、リソースも散乱しています。
現在、そのアカウントの従量課金が高額になってきており、コスト削減が必要となります。

手間をかけずにNew Relic上にあるリソース情報から、FinOps的な形で無駄なリソースを見つけ出したいです。
具体的に以下の観点でアドバイスをください。

・無駄なリソースを見つけるためのFinOps的なステップについて
・現時点における無駄なリソーストップ10(長時間利用されていない、またはリソースが余っているなど)
・無駄だと思われるリソーストップ10はどのユーザが作成したものか教えてほしい

AWS 上のリソースはかなりあり、情報を分析するにあたってもクエリしまくる必要があるので、生成系 AI も回答までに少々時間がかかりましたが、結果は以下となります。

New Relic AI MCP Chat1.png

やはり、FinOps 的なステップとしてタグ付けろって言われてますね:joy:
コスト削減の対象としても高額になりやすいものが優先されているのでいい感じです。

実際に「無駄」だと判断するポイントとして、EBS なんかは過去30日の I/O をベースに容量が多く、あまり使われていないのに放置されている対象として洗い出してくれた点なんかは、AWS Cost Explorer や Trusted Advisor なんかより優秀じゃないかなと感じました。

S3 や ALB もリクエスト数ベースで見てくれているので放置リソースの洗い出しとしては完璧!!!

New Relic AI MCP Chat2.png

$\color{red}{\large \textsf{な、な、なんと!!!}}$
想定では、CloudTrail や Attiribute 情報からリソースの作成者を割り出してくれるのかと思いきや、リソースの名前や Tag 情報からもユーザを推測してくれるようです!

New Relic AI MCP Chat3.png

しかし、EBS はリソース自体に Name をつけることもないため、オーナー不明が多いですね。。。
一部に owner タグが付いていたり、リソース名から判断されたものがありました。何をベースに判断したのかを結果に付けてくれているのもかなり嬉しいですね。

また、対象となる New Relic の Entity に対するリンクもついているので回答結果から直接 New Relic 側へ見に行くこともできてグッド:thumbsup:


今回、コスト削減を思い立ってから AWS Integration しましたが、過去ログなどは連携していないため、逆に New Relic へ連携された CloudTrail 情報には過去のリソース作成や操作などのログは入っておらず、そこからは確認できませんでした。。。

しかし、さすがは AI !
その辺をくみ取ってくれたのか、以下の通り AWS 側にて CloudTrail 上で確認するためのコマンド例を出力してくれました!先読みがすごい!

New Relic AI MCP Chat4.png

他にも ElasticIP は、昔、リソースに紐づいていれば無償でしたが今は有償であるため、リソースには紐づいているもののアクセスがなくアイドル状態であるものは、無駄だなと思い以下も聞いてみます。

プロンプト
ちなみにアイドル状態となっているElasticIpをおしえてください。

結果↓
New Relic AI MCP Chat5.png

ENI へのトラフィックベースで洗い出してくれました!
ただ、回答結果の注意にもあるように New Relic 側では ELB のものか EC2 のものかの区別がつかないようです。
今回は数も少なかったため、直接 AWS 側にて紐づきを確認します。

洗い出した対象を削除した際の削減額も聞いてみよう

ここもあーだこーだ前提とか細かく聞かずに以下で聞いてみると。。。

プロンプト
実際に回答いただいたトップ10のリソースやアイドル状態のElasticIPを削除した場合、概算でどれくらいのコストが月額で削減できますか?

結果、逆に前提を提示してくれて、その内容で計算してくれた:v:

New Relic AI MCP Chat6.png

New Relic AI MCP Chat7.png

ざっくりと今回のプロンプトでは $300 程度削減できそうです:raised_hands:

まとめ

実際にコスト削減のための分析にかかった時間は、30分もかかっていないです。
(むしろ、このブログ書く時間のほうがかかってますねw)

得られた効果

  • あまり人的リソースやスキルを使わなくとも FinOps できた
  • 短時間でのコスト削減に向けた分析が可能
  • AWS Cost Explorer や Trusted Advisor ではわからない実利用状況(I/O や RequestCount等)から放置されたリソースを洗い出せた
  • 対象リソースの利用者や作成者を様々な観点から推測したり、特定してくれる
  • New Relic 上で確認できない情報の確認方法も教えてくれる
  • 削減できる月額概算を算出してもらえる

微妙な点

  • AI は取りためたデータから分析するため、インテグレーション直後だとデータ不十分で十分な分析ができない
  • 環境規模にもよるが、雑な聞き方をすると分析範囲を絞れず、生成系 AI のクレジットを大量に消費する
  • CloudTrail の情報取得のため、API Polling で全情報を取得すると AWS 側への API のコストが嵩む

今までだと、なんとなく CostExproler などからコスト割合が多そうだったり、利用料金の説明がつかないリソースから調査していく、人のカンに頼った洗い出しをせざるを得ない状態だったが、そこは AI が網羅的にやって回答としてサマリしてくれるのは、人を選ばずに見られるので、経験が浅いエンジニアの勉強にもなりそうだなと感じました。

今後も継続して利用すれば、ログなどからも判断できる部分も増えるため、分析の解像度が上がり、より実用的になると考えられますね。

また、都度、AI に聞くのではなく、今後は AI が分析につかった NRQL を駆使して、常時確認可能な無駄観測ダッシュボードなんかを作成するのもありですね。


では、本記事で少しでも読んでいただいたエンジニアの睡眠時間が増えますように♪

Tomorrow is in your hands...:open_hands:

では、Good night & have a good holiday:santa_tone1::gift:

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?