AWS Application Composer
CloudFormation や SAM のテンプレートをビジュアルキャンバス上でドラッグ&ドロップ操作により設計し、IaC コードとリアルタイムに双方向同期できる開発ツール
概要
AWS Application Composer は、サーバーレスアプリケーションのアーキテクチャをビジュアルに設計するためのツールです。キャンバス上に Lambda、DynamoDB、S3、API Gateway などのリソースをドラッグ&ドロップで配置し、リソース間の接続線を引くだけで、必要な IAM ポリシーや環境変数が自動生成されます。設計したアーキテクチャは CloudFormation テンプレートや SAM テンプレートとしてリアルタイムに出力され、逆にテキストエディタでテンプレートを編集するとキャンバス側にも即座に反映される双方向同期が特徴です。VS Code 拡張機能としても提供されており、ローカル開発環境でテンプレートファイルを開くだけでビジュアルエディタが起動します。
ビジュアルキャンバスとリソース接続
Application Composer のキャンバスは、AWS リソースをカード形式で表示し、カード間を線で結ぶことでリソースの依存関係を定義します。たとえば API Gateway と Lambda を接続すると、API のルート定義と Lambda の Events セクションが自動的にテンプレートに追記されます。Lambda と DynamoDB を接続すれば、テーブル名の環境変数と読み書き権限の IAM ポリシーが自動付与されます。この自動配線により、手作業で IAM ポリシーの JSON を記述する手間が大幅に削減されます。各リソースカードにはプロパティパネルがあり、Lambda のランタイムやメモリサイズ、DynamoDB のパーティションキーなどをフォーム形式で設定できます。グループ機能を使えば、マイクロサービス単位でリソースをまとめて視覚的に整理することも可能です。キャンバスは読み取り専用モードでも利用でき、既存テンプレートの構造を把握するドキュメント代わりにもなります。チームメンバーへのアーキテクチャ説明や、レビュー時の全体像の共有に有効です。
IaC テンプレートとの双方向同期
Application Composer の最大の特徴は、ビジュアル表現とテンプレートコードの双方向同期です。キャンバス上でリソースを追加・変更すると、対応する YAML テンプレートがリアルタイムに更新されます。逆にテンプレートファイルをテキストエディタで直接編集すると、キャンバスのレイアウトも即座に追従します。この仕組みにより、ビジュアル操作で大枠を設計してからテキストで細部を調整するワークフローが自然に成立します。出力されるテンプレートは標準的な SAM テンプレートであり、sam build や sam deploy でそのままデプロイ可能です。CloudFormation の組み込み関数 (!Ref、!Sub、!GetAtt) もキャンバス上の接続線として視覚化されるため、テンプレートの参照関係を直感的に把握できます。既存の大規模テンプレートをインポートした場合、Application Composer がリソース間の依存関係を解析し、自動的にレイアウトを生成します。数百行のテンプレートでも全体構造を一目で確認できるため、引き継ぎや監査の場面で特に威力を発揮します。
VS Code 拡張とローカル開発統合
Application Composer は VS Code の拡張機能として提供されており、ローカル環境で SAM テンプレートファイルを開くとエディタ内にビジュアルキャンバスが表示されます。ブラウザの AWS コンソールに切り替える必要がなく、コーディングとアーキテクチャ設計をシームレスに行き来できます。VS Code 拡張では、テンプレートファイルの保存と同時にキャンバスが更新され、Git でのバージョン管理とも自然に統合されます。SAM CLI との連携により、キャンバスで設計したアーキテクチャを sam local invoke でローカルテストし、動作確認後に sam deploy でクラウドにデプロイする一連のフローが完結します。実務上の活用パターンとして、新規プロジェクトの立ち上げ時にキャンバスでプロトタイプを素早く組み立て、チームレビューを経てからテンプレートを精緻化する進め方が効率的です。テンプレートの構文エラーはキャンバス上で視覚的にハイライトされるため、デプロイ前の段階で問題を発見しやすくなります。