Well-Architected IaC Analyzer を使用してみる

記事タイトルとURLをコピーする

概要

Well-Architected IaC (Infrastructure as Code) Analyzer(以下、W-A可視化ツールと記載します) を使用してみます。

github.com

W-A可視化ツールは、IaCファイルがWell-Architected Framework に準拠しているかを確認することができます。
仕組みとしては、生成AIサービスであるBedrockを用いて、IaCファイルのコードとWell-Architectedに記載された内容を比較/評価します。

手順

GitHubのサイトにも手順は記載されていますが、おおまかな記載になっています。
分かりずらい方は、以下の手順を参考にして頂くと良いかと思います。

①EC2を構築

以下要件を満たすようにEC2を構築します。(リージョンはどこでも良いです)
・OSは Amazon Linux 2023
・ローカル端末からSSH等でアクセス可能

※ 今回は作業端末として、EC2を使用します。

②CDK CLIインストール

以下のコマンドを実行し、nvmをインストールします。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

以下のコマンドを実行し、nvmを読み込みます。

source ~/.bashrc

以下のコマンドを実行し、npmをインストールします。

nvm install v22.12.0

以下のコマンドを実行し、CDK CLIをインストールします。

npm install -g aws-cdk

③Dockerインストール

以下のコマンドを実行し、Dockerをインストールします。

sudo yum install -y docker

以下のコマンドを実行し、Dockerを起動します。

sudo systemctl start docker

以下のコマンドを実行し、Dockerの操作権限をec2-userへ付与します。

sudo usermod -a -G docker ec2-user

④Pythonインストール(不要)

EC2には元々Pythonがインストールされています。

以下のコマンドを実行するとPythonのバージョンが表示され、インストールされていることが確認できます。

python3 -V

⑤Bedrock有効化

バージニア北部のBedrockで、以下を有効化する。
・Titan Text Embeddings V2
・Claude 3.5 Sonnet

⑥AWS CLI設定

以下のコマンドを実行し、アクセスキーとリージョンを設定します。

aws configure
AWS Access Key ID [None]: <IAMユーザのアクセスキー>
AWS Secret Access Key [None]: <IAMユーザのシークレットキー>
Default region name [None]: us-east-1
Default output format [None]:

⑦EC2再起動

EC2を再起動します。

⑦Gitクローン

以下のコマンドを実行し、gitコマンドを使用できるようにします。

sudo yum install git

以下のコマンドを実行するとgitのバージョンが表示され、インストールされていることが確認できます。

git version

以下のコマンドを実行し、Gitクローンをします。

git clone https://github.com/aws-samples/well-architected-iac-analyzer

以下のコマンドを実行し、「well-architected-iac-analyzer」へ移動します。

cd well-architected-iac-analyzer

⑧virtualenv有効化

以下のコマンドを実行し、virtualenvを有効化します。

python3 -m venv .venv
source .venv/bin/activate

⑨Pythonライブラリインストール

以下のコマンドを実行し、Pythonライブラリをインストールします。

pip install -r requirements.txt

⑩デプロイリージョンの設定

以下のコマンドを実行し、デプロイするリージョンを設定します。

export CDK_DEPLOY_REGION=us-east-1

⑪CDK実行

以下のコマンドを実行し、CDKを実行します。

cdk bootstrap
cdk synth
cdk deploy

アクセスしてみる

①EC2を構築

CDKで構築したW-A可視化ツールへアクセスするため、以下要件を満たすようにEC2を構築します。
・OSは Windows Server 2022
・ローカル端末からRDP等でアクセス可能
・リージョンはバージニア北部(us-east-1)
・VPCは上記手順内のCDKで構築したStreamlitECSVpc
・サブネットは上記手順内のCDKで構築したpublicSubnet1

②W-A可視化ツールへアクセス

構築したEC2のブラウザから、ALBのDNS名へアクセスします。

③値の入力

以下項目を入力し、「Review Upload Document」を押下します。
Drag and drop file here:評価したいIaCファイルをアップロード
Type below your Well-Architected Tool Workload Id:Workload Id を入力(CDKでWell-Architected Toolが作成されています)

④可視化の結果を確認

準拠及び非準拠の項目が表示されます。

⑤Well-Architected Toolへの反映

「Complete Well-Architected Review」を押下すると、Well-Architected Toolへ反映されます。


まとめ

IaCファイルがWell-Architected Frameworkに準拠しているか自動で評価できるので感動しました。
正確性については分からないため人間の目は必要ですが、たたき台を素早く作れるところが良いと感じました。

"; doc.innerHTML = entry_notice + doc.innerHTML; }
' } }) e.innerHTML = codeBlock; });