Slide 1

Slide 1 text

⽣成AI×AWS コスト最適化のススメ 荒平 祐次 / arap クラスメソッド株式会社 コンサルティング部

Slide 2

Slide 2 text

荒平 祐次 (Arahira Yuji) クラスメソッド株式会社 クラウド事業本部 コンサルティング部 ソリューションアーキテクト - 業務内容 ○ AWS全般のインテグレーション ○ ブログ執筆 - 趣味 ○ Twitter (@eiraces)

Slide 3

Slide 3 text

このセッションでは 3 ⽬的 - 本⽇時点(2025年9⽉)で⽣成AIを使ったコスト最適化⼿法について紹介 - 持ち帰って「すぐに試せそう!」な範囲を知っていただくことを ⽬的にしています

Slide 4

Slide 4 text

このセッションでは 4 話すこと - ⽣成AIを使ったAWSコスト最適化について、⼿法の紹介(2025年9⽉時点) - Amazon Q(コンソール) - AWS Pricing MCP - Billing and Cost Management MCP - Amazon Q in QuickSight

Slide 5

Slide 5 text

コスト最適化の話

Slide 6

Slide 6 text

そもそもコスト最適化とは 6 - 利⽤したいクラウドリソースに対して過⼩‧過⼤なコストとなっている部分を 矯正すること - 必ずしもコスト削減だけが最適化ではないことに注意 - 必要に応じて投資を⾏い、システムのパフォーマンスを上げたり、可⽤性 をアップさせることで適切な収⽀を⽬指す⾏為 - 法則については “THE FRUGAL ARCHITECT”を参照

Slide 7

Slide 7 text

コスト最適化の⼯程 7    可視化    現状分析    改善    計画

Slide 8

Slide 8 text

どの⼯程にもAIが使えそう? 8    可視化    現状分析    改善    計画

Slide 9

Slide 9 text

Amazon Q

Slide 10

Slide 10 text

Amazon Q 10 - コンソールにいるコレのこと - クリックするとアシスタントが 登場して⾊々話してくれる - 2025/4より正式に⽇本語サポート

Slide 11

Slide 11 text

Amazon Q × 現状分析 11 - Amazon Qはログインしたユーザーの権限を使って環境内のリソース情報を 引っ張ってきてくれます(超うれしい) - 「2025/8のコストを確認して、 ⼀番利⽤の割合が⼤きいサービスを教えて」 と聞いてみます

Slide 12

Slide 12 text

Amazon Q × 現状分析 12 - GetCostAndUsage など必要なAPIを⾃動で叩いて情報収集 - 追加の質問ももちろん可能

Slide 13

Slide 13 text

Amazon Q × 現状分析 13 - たまに間違ったことを⾔っているので注意 - (指摘するとナレッジを取得して正しい情報を取り直してくれる)

Slide 14

Slide 14 text

Amazon Q × 現状分析 14 - 取得した数値は合致していました

Slide 15

Slide 15 text

Amazon Q × 計画 15 - Amazon Qは必要に応じて単⼀ だけでなく複数のクエリも可能

Slide 16

Slide 16 text

Amazon Q × 計画 16 - 改善案を出してもらいました - 各サービスでコストが掛かっている 部分に対して最適化できそうな事項を まとめてくれています

Slide 17

Slide 17 text

Amazon Q × 改善 17 - どうやらIAM Access Analyzerで予想以上のコストが掛かっていたので、 IAMリソース数の⾒直しをします

Slide 18

Slide 18 text

Amazon Q × 改善 18 - ⾯倒なIAMロールの棚卸し。 時間短縮が図れそうです

Slide 19

Slide 19 text

Amazon Q × 改善 19 - Amazon Qから⾃然⾔語のみで削除 することはできませんが、 ⼿順やコマンドを教えてくれます

Slide 20

Slide 20 text

Amazon Q × 改善 20 - CloudShellが起動し、不要なロールを削除することができました - ※ なお、操作者には相応の権限が必要

Slide 21

Slide 21 text

Amazon Q の使いどころ 21 ローカルのインストールが全く必要ないことが強み - とにかくクラウドだけで完結させたい - APIキーや権限周りで追加の考慮を必要としたくない ⼀⽅で‧‧‧ - 複雑なタスクには向いていない - できないこともないが、ツールサイドでのタスク管理がリッチではない

Slide 22

Slide 22 text

AWS Pricing MCP

Slide 23

Slide 23 text

AWS Pricing MCP 23 - 2025年7⽉に登場 - AWS Price List APIを使って、AWSの料⾦表から各サービスの 料⾦取得を補助するMCPサーバ - ⾃然⾔語からクエリを叩いてくれます - 参考:[アップデート] AWS Pricing MCP Server が利⽤可能になりました - https://dev.classmethod.jp/articles/model-context-protocol-server-price-list/

Slide 24

Slide 24 text

AWS Pricing MCP × 計画 24 - 主に新規構築やコスト最適化に利⽤ - 単⼀の調べ物はもちろん、 多少複雑なクエリも◎

Slide 25

Slide 25 text

AWS Pricing MCP × 計画 25 - 例えばインスタンスタイプを 指定して各購⼊オプションを⽐較 - 企業内で最適なRI/SP購⼊計画も ※ Saving Plansの料⾦は取得できない  が、RIと割引率は同様

Slide 26

Slide 26 text

ちょっとだけデモ 26 - よくあるWEB3層アーキテクチャのTerraform構成を読み込み、 コストを試算してもらいます - コピー⽤ - 「Desktop/main.tfで定義されたリソースを AWS Pricing MCP Serverで利⽤費計算して」 # --- Web層 (ALB & オートスケーリング) --- resource "aws_lb" "web_alb" { name = "${local.project_name}-web-alb", internal = false, load_balancer_type = "application" security_groups = [aws_security_group.web_sg.id], subnets = local.public_subnet_ids tags = {Name = "${local.project_name}-web-alb"} } resource "aws_lb_target_group" "web_tg" { name = "${local.project_name}-web-tg", port = 80, protocol = "HTTP", vpc_id = local.vpc_id } resource "aws_lb_listener" "web_http" { load_balancer_arn = aws_lb.web_alb.arn, port = 80, protocol = "HTTP" default_action {type = "forward", target_group_arn = aws_lb_target_group.web_tg.arn} } resource "aws_launch_template" "web_lt" { name_prefix = "${local.project_name}-web-", image_id = local.ami_id instance_type = "m5.large", key_name = local.key_name vpc_security_group_ids = [aws_security_group.web_sg.id] } resource "aws_autoscaling_group" "web_asg" { name = "${local.project_name}-web-asg", vpc_zone_identifier = local.public_subnet_ids desired_capacity = 2, max_size = 4, min_size = 2 target_group_arns = [aws_lb_target_group.web_tg.arn] launch_template {id = aws_launch_template.web_lt.id, version = "$$Latest"} } # --- App層 (オートスケーリング) --- resource "aws_launch_template" "app_lt" { name_prefix = "${local.project_name}-app-", image_id = local.ami_id instance_type = "c5.xlarge", key_name = local.key_name vpc_security_group_ids = [aws_security_group.app_sg.id] } resource "aws_autoscaling_group" "app_asg" { name = "${local.project_name}-app-asg", vpc_zone_identifier = local.private_app_subnet_ids desired_capacity = 2, max_size = 4, min_size = 2 launch_template {id = aws_launch_template.app_lt.id, version = "$$Latest"} } # --- DB層 (RDS) --- resource "aws_db_subnet_group" "main" { name = "${local.project_name}-db-subnet-group", subnet_ids = local.private_db_subnet_ids } resource "aws_db_instance" "main" { allocated_storage = 100, storage_type = "gp3", engine = "mysql", engine_version = "8.0" instance_class = "db.r5.large", identifier = "${local.project_name}-db-instance" username = local.db_username, password = local.db_password db_subnet_group_name = aws_db_subnet_group.main.name multi_az = true, skip_final_snapshot = true, publicly_accessible = false vpc_security_group_ids = [aws_security_group.db_sg.id] tags = {Name = "${local.project_name}-db-instance"} }

Slide 27

Slide 27 text

AWS Pricing MCP の使いどころ 27 AWS Pricing Calculator を⼈⼒で叩く時間が減る - LLM単体が回答するよりも遥かに精度が⾼い - 試算のためのオプションも適切なもので指定してくれる ⼀⽅で‧‧‧ - 正しさの保証がない - 渡すプロンプトにもよるが、いつの間にかMCPではなくLLMとして回答し てくることがある - 違うセッションで正当性を確かめるのもひとつの⼿

Slide 28

Slide 28 text

Billing and Cost Management MCP

Slide 29

Slide 29 text

Billing and Cost Management MCP 29 - 2025年8⽉22⽇に登場 - AWSアカウントのBilling, CostOptimization Hubなどの APIに対してのリクエストを補助するMCPサーバ - ⾃然⾔語によるコスト最適化が捗ります - 参考:Billing and Cost Management MCP サーバーの発表 - https://aws.amazon.com/jp/blogs/news/aws-announces-billing-and-cost-management -mcp-server/

Slide 30

Slide 30 text

Billing and Cost Management MCP× 現状分析 - getCostAndUsage を 正しくリクエストできています (Amazon Qと同様) 30

Slide 31

Slide 31 text

Billing and Cost Management MCP× 現状分析 - 体感、Amazon Qで起こった勘違いはなさそうでした(*Case by Case) 31

Slide 32

Slide 32 text

Billing and Cost Management MCP× 計画 - 「AWS Billing and Cost Management MCPを使って、ComputeOptimizerで の推奨事項をまとめて」 - 推奨のアクションや 作業計画についても有り - 改善レポートはMarpに してスライド化しても ⾯⽩そう 32

Slide 33

Slide 33 text

Billing and Cost Management MCP の使いどころ 33 欲しいクエリがすぐ⼿に⼊り、すぐ実⾏できる - LLM単体が回答するよりもコマンドの精度が⾼い(≒トークン消費が軽減) - Cost Explorer ⾃体を⾒る必要が減りそう ⼀⽅で‧‧‧ - Cost Explorer APIを叩く場合は 0.01USD/回 掛かる - LLMで数百〜数万回コールするかもしれないときは注意が必要 (Amazon Qにも⾔える)

Slide 34

Slide 34 text

Amazon Q in QuickSight

Slide 35

Slide 35 text

Amazon Q in QuickSight 35 - 2025年7⽉に東京リージョンでGA - Amazon Q が QuickSight上で表⽰され、 データセットとチャットができるイメージ - ⾃然⾔語によるインタラクティブなコスト最適化が捗ります - 参考:Amazon Q in QuickSight ハンズオンのご紹介 - https://dev.classmethod.jp/articles/amazon-q-in-quicksight/

Slide 36

Slide 36 text

- 「Amazon Elastic Compute Cloudの利⽤費推移」 - 適切なビジュアルを推奨 してくれる - 推移を確認することで異常値 の発⾒にも◎ Amazon Q in QuickSight × 可視化 36

Slide 37

Slide 37 text

ちょっとだけデモ 37 - サンプルCURを読み込ませたトピックに対してQ&Aを実施してみます - 以下も是⾮: Amazon Q in QuickSight からメンバーズ CUR に対して使えそうな トピックへのQ&Aを考えてみた - https://dev.classmethod.jp/articles/amazon-q-in-quicksight-mcur-qa/

Slide 38

Slide 38 text

Amazon Q in QuickSight の使いどころ 38 組織内のコストを「⾒える化」したい - 読み込んだデータセットを使って数秒でビジュアルが作れる(最⾼) - コスト⽤ダッシュボードを作ったり、更に⾼品質にしたり ⼀⽅で‧‧‧ - あくまでダッシュボードのため、インサイトには限界が - 「パターンの違いはありますか?」「得られることは?」など聞けない - 前述のツール群と使い分けが必要

Slide 39

Slide 39 text

さいごに

Slide 40

Slide 40 text

コスト最適化の⼯程(再掲) 40    可視化    現状分析    改善    計画

Slide 41

Slide 41 text

コスト最適化は昔から叫ばれていたが‧‧‧ - 円⾼による影響 - リフト&シフトが終わり、最適化フェーズに - 不況、業績の悪化 様々な理由でコスト最適化に取り組む企業が増えています → 近年の便利ツールを使いこなして、効率良くコスト最適化‧再投資しよう! ⽣成AI×AWSコスト最適化のススメ 41

Slide 42

Slide 42 text

No content