👋

【Bedrock】Diagram Generatorの環境構築+テキスト入力でAWS構成図を作ってみた

に公開

本記事の伝えたいこと

AWS構成図(Draw.io形式)を自動作成できないか模索していた時、Bedrockを用いたDiagram Generator(Bedrock Engineer)を見つけた。
Diagram GeneratorでAWS構成図を生成するまでの環境構築を細かく記載する。

https://dev.classmethod.jp/articles/aws-samples-bedrock-engineer/
を参考にさせていただきましたが、端末にGitやnpmのインストール及びAWS側の設定が必要だったりしたので+αを本記事で記載します。

余談 ChatGPT(4oエンジン)

ちなみChatGPTで

画像生成ツールでALB、ECS、Auroraを使ったAWSの構成を作図お願いします

を指示した結果が↓です。

なんともいえない…

やりたいこと(ゴール)

シンプルにローカル端末(Windows11)にDiagram GeneratorをインストールおよびAWS構成をテキスト入力で作図をする。

事前準備(Windows端末)

Githubのソースをビルドするためにもろもろのツールをローカル端末にインストール

Gitのインストール

  1. https://gitforwindows.org/
    のDownloadからリンク先のサイトからGit-x.xx.xx-64-bit.exeをDL
  2. DLしたexeファイルを起動し、すべてデフォルトのままでインストール
    Gitインストール時の選択肢についての解説サイトは↓
    https://qiita.com/takeru-hirai/items/4fbe6593d42f9a844b1c
  3. Windowsのコマンドプロンプトから下記コマンドを実行し、gitのバージョン返って来たらOK
    git --version
    

npmのインストール

  1. https://nodejs.org/en
    からDownload Node.js (LTS)を押下し、exeをDL
  2. Gitと同様(DLしたexeファイルを起動し、すべてデフォルトのままでインストール)
  3. Windowsのコマンドプロンプトから下記コマンドを実行し、npmのバージョン返って来たらOK
    npm --version
    

AWS CLIのインストール

  1. https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html
    からWindows版インストーラーをDL
  2. Gitと同様(DLしたexeファイルを起動し、すべてデフォルトのままでインストール)
  3. Windowsのコマンドプロンプトから下記コマンドを実行し、npmのバージョン返って来たらOK
    aws --version
    

AWSの認証情報発行

こちらのあとIAMユーザ、権限が終わった後の実施

aws configureコマンドでローカル端末からAWSに接続する際のIAMユーザを指定。
私の場合、bedrock-userというIAMユーザでアクセスするため、--profile bedrock-userを付与。


キャプチャのリージョンは”ap-northeast-1”となっているが正しくは”us-east-1”

事前準備(AWSコンソール画面)

IAMユーザの作成とアクセスキー/シークレットキーの発行

本項目の実施は任意です

IAMユーザの権限

Bedrock Engineerで推奨されている下記IAMポリシーをIAMユーザにアタッチ

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "bedrock:InvokeModel",
        "bedrock:GetFoundationModel",
        "bedrock:ListFoundationModels",
        "bedrock:InvokeModelWithResponseStream",
        "bedrock:Retrieve",
        "bedrock:ListPromptRouters",
        "bedrock:RetrieveAndGenerate"
      ],
      "Resource": "*"
    }
  ]
}

Bedrockモデルの有効化

キャプチャのリージョンはソウルになっているがバージニア北部に読み替えてください
Bedrock configurations>モデルアクセスから特定のモデルを有効化にするを押下し、モデルをAmazonのみチェック

2点補足)

  1. モデルをAmazonのみにした理由は、それ以外のモデルは会社名や使用用途を記載する必要あったから

  2. バージニア北部のBedrockモデルを有効化した理由は、Bedrock Engineerが動かなかったから
     ※使用モデルがクロスリージョン推論型が原因ですが、バージニア北部で問題なく動いているので特に対策はとっていないです

東京リージョンをしていた場合のCloudTrailのエラー

"errorMessage": "Invocation of model ID anthropic.claude-3-5-sonnet-20241022-v2:0 with on-demand throughput isn’t supported. Retry your request with the ID or ARN of an inference profile that contains this model

Diagram Generator(Bedrock Engineer)の環境構築

https://dev.classmethod.jp/articles/aws-samples-bedrock-engineer/
の構築に従う。

  • npm run build:win実行時、下記エラーはmacOS用のシンボリックリンクを作成しようとしたエラーのため、 Bedrock Engineer.exeが起動すればOKとした

    build時のエラー

    errorOut=ERROR: Cannot create symbolic link

  • Bedrock Engineer.exeを起動後、以下を実施

    1. Languageを日本語に選択
    2. AWS Settingsで「AWS プロファイルを使用する」にチェック
    3. AWSプロファイル名は[事前に準備した名前](# AWSの認証情報発行)
    4. AWS ResionはUS East (N. Virginia) (us-east-1)
    5. Amazon Bedrockは個人で使用できるAmazon Nova Lite (US cross-region)

Diagram GeneratorでAWS構成を作図

ALB、ECS、Auroraを使ったシーケンス図をPNG形式で作成お願いします

の結果が、下記の通り。

ALB→ECS→Auroraの処理フローが出てくると思ったら、ちょっと違う…。
手動で作図する稼働を減らすためにも、他のパターンを検証中。
最低限VPC、サブネットあたりは自動生成してもらいたい…

Discussion