Well-Architected IaC Analyzerを知っていますか? 進化したWell-Architected IaC Analyzerの新機能とプロンプトの仕組みを解説します!

モブキャラ指定の日々は騒がしすぎて次世代AIコードエディター大戦争です。(←謎)

GitHubのaws-samplesで公開されている 「Well-Architected IaC (Infrastructure as Code) Analyzer」 がアップデートによって大きく進化していましたので、推しポイントの紹介と、機能について深掘りしていきます!特に、ワークロードの分析がどのように行われているかについて、そのシステムプロンプトの内容について詳しく解説します。

Well-Architected IaC (Infrastructure as Code) Analyzer とは

Well-Architected IaC (Infrastructure as Code) Analyzerは、 生成AIを使用してIaC (Infrastructure as Code) をベストプラクティスに沿って評価する方法を示すアプリケーションです。 このアプリケーションは、IaCがAWSのベストプラクティスにどの程度準拠しているか、あるいは逸脱しているかの洞察をユーザーに提供し、アーキテクチャ設計を改善するための提案を提供します。

github.com

アップデートによって大きく進化していました!

このWell-Architected IaC Analyzerですが、2025年4月頃にアップデートによって大きく進化していました!特にインパクトが強いアップデート内容をご紹介します。

Cloudscape Design System

フロントエンドは、アップデート前はStreamlitが利用されていたのですが、このUIが完全に刷新されています。StreamlitではなくReact + Cloudscape Design Systemになりました!

cloudscape.design

Cloudscape Design Systemは、簡単に言いますと 「AWSのマネージメントコンソールのようなフロントエンドが作れるコンポーネント」 です!AWSの製品およびサービス向けに開発され、現在も利用されているオープンソースのデザインシステムになります。とても見た目がリッチで魅力的なUIになっています!

GitHubページで紹介されているWell-Architected IaC Analyzerの一部画面を紹介します。

Cloudscape Design SystemのWell-Architected IaC Analyzer サンプル画像①

Cloudscape Design SystemのWell-Architected IaC Analyzer サンプル画像②

いかがでしょうか。操作しているだけでワクワクします!素敵です!

アシスタントチャットボット機能

インタラクティブなアシスタントチャットボット機能が追加されました!ワークロードの分析結果について質問することができ、アーキテクチャ設計を改善するための個別ガイダンスを受け取ることができます!

アシスタントチャットボット機能

Well-Architected IaC Analyzer が提供する分析機能について深掘りする

とても魅力的なOSSアプリケーションですので、その分析機能がどのような仕組みで動作しているのか気になりましたので深掘りしてみました。

3つの分析方法

Well-Architected IaC Analyzerには3つの分析方法があります。下表に示します。

分析方法 説明
画像分析 アーキテクチャ図(画像ファイル)を分析する。
コード分析 IaCテンプレートを分析する。
プロジェクト分析 プロジェクト(複数のファイルまたはzip)を分析する。

Well-Architected IaC Analyzerの使用状況(画像、単一ファイル、複数ファイル)によって最適なプロンプトを提供している、ということになります。ちなみに、 全てマルチモーダルです。 本アプリケーションは補助ドキュメントとしてPDFファイルなどを指定できるため、 画像とテキストの組み合わせはもちろん、複数のテキストを使用したマルチモーダルもあります。

分析で利用される生成AIのプロンプト

本アプリケーションの生成AIのプロンプトはたくさんあるのですが、主に分析で利用されているプロンプトについて下表に示します。

プロンプトの種類 説明
システムプロンプト Well-Architected IaC AnalyzerがどのようにWell-Architected FrameworkのBest Practiceを評価するのかを指定するシステムプロンプト。
解析プロンプト テキスト指定でマルチモーダルで受け渡される。Well-Architected Frameworkの質問内容や、サポートドキュメントのコンテキストが埋め込まれる。

例えば、アーキテクチャ図(画像ファイル)を分析する時は下図のような処理シーケンスになりまして、順番にプロンプトフォーマットが構築された後にAmazon Bedrockに受け渡します。 マルチモーダルですので、Bedrockに受け渡す時のJSON構造が分析方法によって変わります。

画像解析のシーケンス図(クリックして拡大)

分析用のシステムプロンプトの詳細

分析用のシステムプロンプトは生成AIに以下の指示を与えています。

  1. Amazon Bedrock Knowledge basesから取得したWell-Architected Frameworkのベストプラクティスに関連する情報を参照して、提供されたIaCファイルがWell-Architected Frameworkのベストプラクティスを満たしているかを判定するSolution Architectとしての役割を果たす。また、Knowledge basesから取得した情報の「Relevancy」のスコアを確認し、技術的に関連があるかもチェックする。
  2. 各ベストプラクティスについて、以下を含むJSON形式で回答を返す。
    • ベストプラクティスが適用されている、または適用されていない理由
    • 推奨事項

このように、LLMへの指示は100%、システムプロンプトで行っています。他のテキストや画像はマルチモーダルとして添付するだけです。

AWSのリソース構成について

AWSリソース構成については主に以下のようなリソースが作成されます。

  • Amazon VPC
    • NATゲートウェイと、2つのAZにまたがるサブネットを含む
  • Application Load Balancer(ALB)
  • Amazon ECS Cluster
    • Backend、Frontendの2つのECSサービスがFargateで起動
  • Amazon S3バケット
    • RAG用にWell-Architected ドキュメントが保存されるバケットと、解析結果を保存する2つのバケット
  • Amazon DynamoDB テーブル
    • 解析結果のメタデータとWell-Architectedのレンズのメタデータを保存する2つのテーブル
  • Amazon Bedrock Knowledge Base
    • Knowledge Baseのベクトルデータストアとして Amazon OpenSearch Service Serverless を利用
    • LLMモデルに Claude 、埋め込みモデルに Titan Text Embeddings v2 を利用

OpenSearchが結構いい値段しますので、この構成ですと $300前後の月間AWS利用料金ですかね。 ちょっとお高いので、使わない時はFargateで起動しているサービスのタスク数を減らしたりして倹約したいところですね。

まとめ

GitHubのaws-samplesで公開されている 「Well-Architected IaC (Infrastructure as Code) Analyzer」 がアップデートによって大きく進化していましたので、推しポイントの紹介と、機能について深掘りしました。特に、ワークロードの分析がどのように行われているかについて、そのシステムプロンプトの内容について詳しく解説しました。

とても素晴らしいアプリケーションですよね! IaCで構築する文化があるプロジェクトであれば、IaCコードを本アプリケーションに渡すだけであっという間に分析できてしまいますね!このアプリケーションはWell-Architected Toolとの連携やIaCコードの生成など、機能がとても多いので、実際にデプロイして利用していただくとよいのではないかと思います。

オープンソースソフトウェアですので、分析結果の内容をローカライズして利用するのもありですし、気になる箇所があれば自分で修正できることも魅力的です。

この記事以外に、「AWS Well-Architected Review (WAFR) Acceleration with Generative AI (GenAI)」のOSSを紹介している記事もございます。こちらはまた別のOSSですが、ご興味があればご覧ください。

blog.supica.work

この記事が参考になれば幸いです。