0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】DevTools布教活動InfrastructureComposer編【アドカレ2025】

Posted at

はじめに

この記事は 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サービス単体での表示ではなく、ロールなどの関連リソースもグループ化された状態で表示されます。
image.png

拡張コンポーネントで定義変更が容易

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

AWSコンソールでもローカルPCのVSCodeでも操作可能

AWSコンソールから操作

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

ローカルPCのVSCodeで操作

詳細は後述しますが、VSCodeに拡張機能をインストールすることでInfrastructureComposerを利用可能になります。

↓他の特徴については過去の記事も参考にしてください

VSCodeでのInfrastructureComposerの使用

VSCodeの拡張機能のインストール

VSCodeの拡張機能でAWS Toolkitをインストールします。
これにより、VSCpde上でCloudFormationテンプレートをInfrastructureComposerで開くことができます。
image.png

yamlファイルをInfrastructureComposerで開く

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

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

image.png

SAMアプリケーションの初期化

以下のコマンドを実行してアプリケーションの初期化を行います。

sam init

今回はすでに初期の構成が定義されているHelloWorldExampleを利用します
image.png

SAMアプリケーションのビルド

以下のコマンドを実行してアプリケーションのビルドを行います。
コマンド実行時にはSAMアプリケーションのフォルダ内で実行します(今回の例ではsam-appフォルダ)

sam build

image.png

認証情報の設定

以下のコマンドを実行して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コンソール画面でスタックが作成されているのが確認できます
image.png
今回はAPIGatewayとLambdaを作成しましたが、作成したリソースもコンソール画面から確認できました。
image.png

AWS SAM テンプレートを AWS InfrastructureComposerで変更してデプロイする

AWS InfrastructureComposer から定義変更

今回は変更の例としてAWS Lambdaのタイムアウト時間を変更します。
元の設定は30秒にしていましたが、これを10秒に変更して保存ボタンを選択します。
image.png
これでIaCコードにも反映されました。

AWS SAM でデプロイする

デプロイの手順は初回のデプロイと同様にビルドとデプロイのコマンドを実行します。

sam build
sam deploy --guided

デプロイの結果、AWS Lambdaのコンソール画面でもタイムアウト時間が反映されていることを確認しました。
image.png

さいごに

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

参考

↓ AWS Serverless Application Model の公式ドキュメント

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?