概要
Well-Architected IaC (Infrastructure as Code) Analyzer(以下、W-A可視化ツールと記載します) を使用してみます。
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に準拠しているか自動で評価できるので感動しました。
正確性については分からないため人間の目は必要ですが、たたき台を素早く作れるところが良いと感じました。