はじめに
この記事は Japan AWS Top Engineers Advent Calendar 2025 の 2 日目の記事です。
今回の記事ではAWS InfrastructureComposer を紹介します。
AWS InfrastructureComposerはCloudFormationテンプレートを視覚的に理解しやすい形で表示してくれたり、AWS Serverless Application Model (AWS SAM)テンプレートをより容易に定義することが可能になります。
以前にもInfrastructureComposerの記事を投稿していますが、今回はSAMの操作方法についても紹介している記事になっています。
↓ Japan AWS Top Engineers Advent Calendar 2025 はこちら
↓ AWS InfrastructureComposerに関する過去の記事
InfrastructureComposerの特徴
CloudFormationテンプレートの構成を視覚的に表示可能
表示の例としてAPIGatewayとLambdaを利用したAPIの構成を定義したCloudFormationテンプレートを作成しました。
これをInfrastructureComposerで表紙することでテンプレート全体のAWSサービスの構成を文字の羅列だけではなくカードと呼ばれる単位のつながりで視覚的に理解しやすい形で表示してくれます。
カードはAWSサービス単体での表示ではなく、ロールなどの関連リソースもグループ化された状態で表示されます。

拡張コンポーネントで定義変更が容易
サーバレス関連のサービスを対象にした拡張コンポーネントと呼ばれるカードを使った定義ではIaCコードのプロパティの名前と値を手作業ですべて定義する必要はありません。
InfrastructureComposerの画面に表示されるリソースプロパティに値を設定することで定義が可能になります。

AWSコンソールでもローカルPCのVSCodeでも操作可能
AWSコンソールから操作
AWS CloudFormationのコンソール画面でスタックの詳細画面を開き、テンプレートタブを開くと「InfrastructureComposerで表示」のボタンがあります。
これを選択することで選択したテンプレートの内容をInfrastructureComposerで視覚的に確認することやテンプレートを更新することが可能です。


スタックの新規作成時にもInfrastructureComposerを選択することも可能です

ローカルPCのVSCodeで操作
詳細は後述しますが、VSCodeに拡張機能をインストールすることでInfrastructureComposerを利用可能になります。
↓他の特徴については過去の記事も参考にしてください
VSCodeでのInfrastructureComposerの使用
VSCodeの拡張機能のインストール
VSCodeの拡張機能でAWS Toolkitをインストールします。
これにより、VSCpde上でCloudFormationテンプレートをInfrastructureComposerで開くことができます。

yamlファイルをInfrastructureComposerで開く
VSCode上でyamlファイルを右クリックして「Open with Infrastructure Composer」を選択することでそのファイルをInfrastructureComposerで開くことができます。

AWS Serverless Application Model (AWS SAM) を使用してサーバレス構成を定義/デプロイする
AWS Serverless Application Model (AWS SAM) とは
AWS SAMはIaCを使用してサーバレスアプリケーションを構築するためのオープンソースフレームワークです。
InfrastructureComposerではサーバレス系のサービス以外のサービスも扱えますが、サーバレス系サービスの一部は拡張コンポーネントと呼ばれるカードを利用してより容易に定義が可能になります。
AWS SAM の環境構築
AWS SAM CLIのインストール
AWS公式ドキュメントにお使いのPCの環境ごとにインストール方法が紹介されています。
↓ 公式ドキュメント
私の環境はWindowsなのでインストーラーによりインストールを行いました。
以下のコマンドによりバージョンが表示されればインストールは完了です。
sam --version
SAMアプリケーションの初期化
以下のコマンドを実行してアプリケーションの初期化を行います。
sam init
今回はすでに初期の構成が定義されているHelloWorldExampleを利用します

SAMアプリケーションのビルド
以下のコマンドを実行してアプリケーションのビルドを行います。
コマンド実行時にはSAMアプリケーションのフォルダ内で実行します(今回の例ではsam-appフォルダ)
sam build
認証情報の設定
以下のコマンドを実行してAWS環境への認証情報設定を行います
aws configure sso
AWS access portalで取得できるアクセスキー(AWSアクセスキーID, AWS シークレットアクセスキー,AWSセッショントークン)の値を設定してください。
AWS access portalのURLはIAM Identity Centerのダッシュボードから確認可能です。
SAMアプリケーションのデプロイ
以下のコマンドを実行してアプリケーションをデプロイします
sam deploy --guided
デプロイ時に各種設定を求められますが、AWS公式ドキュメントを参照してください
デプロイが完了するとAWSのCloudFormationコンソール画面でスタックが作成されているのが確認できます

今回はAPIGatewayとLambdaを作成しましたが、作成したリソースもコンソール画面から確認できました。

AWS SAM テンプレートを AWS InfrastructureComposerで変更してデプロイする
AWS InfrastructureComposer から定義変更
今回は変更の例としてAWS Lambdaのタイムアウト時間を変更します。
元の設定は30秒にしていましたが、これを10秒に変更して保存ボタンを選択します。

これでIaCコードにも反映されました。
AWS SAM でデプロイする
デプロイの手順は初回のデプロイと同様にビルドとデプロイのコマンドを実行します。
sam build
sam deploy --guided
デプロイの結果、AWS Lambdaのコンソール画面でもタイムアウト時間が反映されていることを確認しました。

さいごに
今回紹介したようにAWS InfrastructureComposerは文字列のみでメンテナンスに手間がかかるIaCコードを視覚的に理解しやすくメンテナンスしやすい形にしてくれます。
AWS InfrastructureComposerはSAMでその真価を発揮しますが、SAMテンプレートではなくとも、複雑な構成で文章量が多く可読性が悪くなったCloudFormationテンプレートに記載されたインフラ構成を視覚的に理解しやすくしたりする際にも有効利用可能かと思います。
参考
↓ AWS Serverless Application Model の公式ドキュメント

