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が実現できます!

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

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のベストプラクティスをどのように評価するかを指定するシステムプロンプト。
分析プロンプト マルチモーダルとして渡される。Well-Architected Frameworkの質問内容やサポートドキュメントのコンテキストが埋め込まれる。

例えば、アーキテクチャ図(画像ファイル)を分析する場合は以下のような処理シーケンスになり、分析プロンプト、システムプロンプトの順にプロンプトが構築された後、Amazon Bedrockに渡されます。マルチモーダルのため、Bedrockに渡す際のJSON構造が分析方法によってテキストのみかマルチモーダルかで異なります。

画像分析のシーケンス図

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

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

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

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

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 を使用
  • AWS Lambda
    • Knowledge Base同期用のLambda関数

OpenSearchはコストがかかるため、この構成では東京リージョンにおける月間AWS利用料金は$550前後になります。 やや高めなので、使用しない時は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

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