0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

1人日で実現!Amazon Q DeveloperによるLambdaを使ったコスト監視システム構築事例

Posted at

AI要約

この記事ではこんな内容が読めます!

  • Amazon Q Developerで5人日→1人日(80%削減)を実現したコスト監視システム構築事例
  • Lambda + EventBridge + SNSで、trial環境のコストを週次自動通知
  • 要件定義・設計・実装・デバッグの全フェーズでAI活用したプロセスを紹介
  • Pythonの知識がなくても日本語指示だけでコード生成、若手でも独力で完遂可能に

目次

  1. はじめに
  2. 取り組みの概要
  3. Amazon Q Developerを活用した開発プロセス
  4. 完成したシステム
  5. AI活用の効果
  6. おわりに
  7. 参考リンク

はじめに

こんにちは!株式会社ゼンリンデータコムの安井です。
新卒2年目でAWSインフラの構築・運用をやっています。

前回の記事ではAmazon Q Developerの環境構築について書きましたが、今回はAmazon Q Developer Proを活用して、従来なら5人日かかる作業を約1人日で完了させた体験談をお話しします。

今回のテーマはコスト監視ですが、「Amazon Q Developerでツールを作るということ自体を試してみたかった」という背景があり、AWS Budgetをはじめとした既存サービスを使わず、あえてAmazon Q Developerを活用してLambdaを使ったカスタムツールを作成しました

結果として、設計から実装まで約1人日で完成させることができました。

この記事では、「AI(Amazon Q Developer)に相談すれば、経験が浅くても時間をかけずに開発ができるのでは?」という疑問に対する一つの答えを、実際の開発体験を通じてお伝えします。ぜひ最後までご覧ください!

取り組みの概要

目標: 実機検証のためのテスト用AWSアカウント(以下trial環境)にかかっているコストを定期的に計測して通知する仕組みを作る
使用ツール: Amazon Q Developer Pro(20$/月)
実施者: インフラエンジニア(設計経験浅)
期間: 約1人日

事前準備

  • Amazon Q Developerの認証
  • VSCode + Amazon Q 拡張のインストール
  • AWSアカウントへのアクセス権限(Lambda作成・実行用)

※Amazon Q Developerの認証とVSCode + Amazon Q 拡張のインストールについて、導入方法は前回の記事をご覧ください

Amazon Q Developerを活用した開発プロセス

設計~実装まで、各フェーズでAIを活用できました。

フェーズ1:要件定義

AIの活用方法
AIに相談しながら要件を下記のように整理しました

  • trial環境にかかっているコストを定期的に計測して通知する仕組みを作る
  • 金額ベースでtrial環境のリソースを定期的に確認できる
  • 自動的にコストを取得して通知
  • リソース種別毎にコストがわかると尚良い

フェーズ2:設計案のアイデア出し

AIの活用方法
要件を基に設計案を複数提案させ、各案を実装難易度・コストの面から比較検討:

  1. Lambdaを定期発火させるだけのシンプル案
  2. ダッシュボードを付けられるQuickSight利用案
  3. 高度な分析ができるAthena利用案

それぞれのコスト見積と併せて提案させ、AWS Budgetなどの既存マネージドサービスとの比較でメリット・デメリットも整理させました。

実際のやり取り例:設計案のアイデア出しではじめに投げたプロンプト

trialアカウントにおいて、発生しているコストの定期的な観測を実行したいです。
下記の条件に沿ってAWSのサービスを使ってコストを定点観測できるような仕組みの案を考えてください。

■やること
・trial環境にかかっているコストを定期的に計測して通知する仕組みを作る

■背景
・利用後に削除されていないリソースがコスト的な課題
・今までリソースベースのみで、金額ベースで管理していなかった

■目的
・金額ベースでtrial環境のリソースを定期的に確認
・自動的にコストを取得して、通知したい

■ゴール
・AWSアカウントでコストがどのくらいかかっているかわかる
・リソース種別毎にコストがわかると尚良い

フェーズ3:実装

AIの活用方法
Lambdaを利用する設計を選択したため、以下を実施:

  • EventBridgeやSNSなど各リソースの細かい設定値をAIに提案させる
  • LambdaのPythonコードをAmazon Q Developerに作成させる
  • リソース作成、設定の手順を整理

なお、実際のEventBridge、SNSの設定やIAMの作成は、リソース毎に設定値などに社内規定があったため、今回は手動で作成しました。
リソース作成が可能な権限でAmazon Q Developerからログインすれば、作成までやってもらうことが可能です。

フェーズ4:動作確認・修正

AIの活用方法
実装した仕組みを実際に動かし、修正箇所があればAmazon Q Developerに相談しながら修正。

実装で生成されたコード例

Amazon Q Developerが生成したLambda関数の一部:

def lambda_handler(event, context):
    ce = boto3.client('ce')
    sns = boto3.client('sns')
    
    # 今週と先週の期間設定
    today = datetime.now()
    end_date = today.strftime('%Y-%m-%d')
    start_date_this_week = (today - timedelta(days=7)).strftime('%Y-%m-%d')
    start_date_last_week = (today - timedelta(days=14)).strftime('%Y-%m-%d')
    
    # Cost Explorer APIでコスト取得
    response_this_week = ce.get_cost_and_usage(
        TimePeriod={'Start': start_date_this_week, 'End': end_date},
        Granularity='DAILY',
        Metrics=['BlendedCost'],
        GroupBy=[{'Type': 'DIMENSION', 'Key': 'SERVICE'}]
    )
    
    # サービス別増加分計算とメール通知
    # (詳細なロジックは省略)

このようなコードがAmazon Q Developerに要件を伝えたうえで、「Lambda関数を作成」と日本語で入力するだけで、pythonの知識がほとんどない人間でも作ることができます。

完成したシステム

機能

  • コストを週1回自動的にチェック
  • メールで通知
  • 何のリソースが増えたのかも詳細表示

コスト通知メール.png
実際に送信されるコスト通知メールの例

アーキテクチャ
EventBridge(定期実行) → Lambda(コスト取得・計算) → SNS(メール通知)
構成図.png
完成したコスト監視システムの構成図

AI活用の効果

定量面

  • AI無しで設計+製造の見積: 約5人日
  • AI有りで設計+製造の実績: 約1人日
  • 削減効果: 80%の工数削減

定性面

  1. スキルレベルの壁を突破

    • 設計の経験が浅い若手でも、ほぼ独力で設計から実装まで完遂できた
    • 自分が知らないAWSサービスを活用した方法も提案してもらえる
    • 設計の調査時間を大幅短縮
  2. 業務範囲の拡大

    • 従来は手作業で確認していたコスト管理をAIで自動化できただけでなく、全く新しいツールを作ることにAIが利用できることが分かった
    • 設計経験が浅く、知識が無くても、新しいツールを一から作れるようになった

おわりに

今回の開発では、以下のような学びがありました:

  • AIの出力は必ず検証: 知識が無いとAIの誤りを見抜けないため、技術的詳細は自分で調べるか有識者にレビュー依頼
  • 段階的な質問が効果的: 曖昧な質問より、具体的で段階的な質問の方が有用な回答を得られる
  • 実装後の動作確認は必須: AIの提案も必ず実際の動作で確認する習慣が重要

Amazon Q Developer Proを活用することで、2年目のエンジニアでも一人で素早く新規ツールを構築できました。
今回の記事を参考に、ツール構築はもちろん、様々なAIの使い方を試してみてください!!

参考リンク

公式ドキュメント・サイト

関連記事

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?