Cloud Service
AWS Application Composer (Infrastructure Composer)
サーバーレス構成をキャンバス上でドラッグ&ドロップで設計し、CloudFormation/SAM テンプレートを自動生成。インフラ初心者でも構成図とコードを同時に作れるビジュアル設計ツール。
- 1.リソースをキャンバスに並べて線でつなぐと、対応する CloudFormation/SAM テンプレートが自動生成される
- 2.図とテンプレートが双方向に同期し、コードを書いても図に、図を変えてもコードに反映される
- 3.ブラウザのコンソールでも、ローカルの VS Code 拡張でもオフラインで設計できる
AWS Application Composer(現在は Infrastructure Composer へ名称が変わりつつあります)は、サーバーレスを中心とした AWS アプリケーションの構成を、ブラウザ上のキャンバスでビジュアルに設計するためのツールです。Lambda・API Gateway・DynamoDB などのリソースをドラッグ&ドロップで並べてつなぐだけで、対応する CloudFormation または AWS SAM のテンプレートが自動生成されます。図とコードが双方向に同期するため、構成図とインフラのコード(IaC)を別々に保守する必要がなくなります。
解決する課題
- CloudFormation や SAM のテンプレートを ゼロから手書き するのは初心者にとって難しく、リソース間の参照や IAM 権限の書き方でつまずきやすい → 視覚的に組み立てて自動生成したい
- 設計時に描いた 構成図と実際のテンプレートがすぐ食い違う → 図とコードを常に同期させたい
- どのリソースが何を呼び出しているかが、テンプレートの記述だけでは 全体像が把握しづらい → 関係を線で見えるようにしたい
- サーバーレス特有の IAM ポリシーやイベントソースの結線 を毎回調べて書くのが面倒 → よくある接続は自動で補完してほしい
主要概念と用語
- キャンバス(Canvas): リソースを配置して線でつなぐビジュアル設計領域。ここでの操作がそのままテンプレートに反映される
- カード(Card): キャンバス上に置く個々のリソース。Lambda 関数・API・データベース・キューなどがカードとして表現される
- 拡張カード(Enhanced component card): Application Composer が IAM 権限やイベント設定などの定型部分を補完してくれる、よく使うサーバーレス向けの高機能カード
- 標準カード(Standard IaC resource): 拡張カードが用意されていないリソースを、CloudFormation の生のリソース定義として扱うカード
- コネクション(Connection): カード同士を結ぶ線。接続すると、必要な参照や IAM 権限、イベントソースマッピングなどがテンプレートに自動的に書き加えられる
- テンプレート(Template): 自動生成される CloudFormation/SAM の定義(YAML)。キャンバスと双方向に同期する
- ローカル同期(Local sync): ローカルのプロジェクトフォルダとキャンバスをつなぎ、編集を即座にファイルへ書き出す機能
- Infrastructure Composer: Application Composer の新名称で、サーバーレス以外も含めた幅広い構成設計をうたう。VS Code 拡張としても提供される
仕様・制限・クォータ
- 出力されるテンプレートは CloudFormation または AWS SAM(YAML)。実際のデプロイは CloudFormation や SAM CLI、CI/CD パイプラインなど別の仕組みで行う
- ブラウザ(AWS マネジメントコンソール) と VS Code 拡張(ローカル) の2つの利用形態がある。ローカルではインターネット接続なしでも設計できる
- 拡張カード(自動で権限や結線を補完する高機能カード)が用意されているのは主にサーバーレス系リソース。それ以外は標準の IaC リソースカードとして扱う
- 既存の CloudFormation/SAM テンプレートを 読み込んで可視化 することもでき、ゼロからの新規設計だけでなく既存構成の編集にも使える
- ツール自体は 設計・生成 が役割で、状態管理やデプロイのオーケストレーションは行わない
具体的な対応リソースや機能は拡張されていくため、最新の対応範囲は公式ドキュメントで確認してください。
内部の仕組み
Application Composer はキャンバス上の操作を、内部で保持する テンプレートのモデル に逐次反映します。カードを置くと対応するリソース定義が追加され、カード同士をつなぐと、片方のリソースを参照する記述(Ref や GetAtt 相当)、呼び出しに必要な IAM ポリシー、イベントを受け取るための イベントソース設定 などがまとめて書き込まれます。
逆に、テンプレートのコードを直接編集すると、その変更がキャンバスの図にも反映されます。この 双方向同期 により、図とコードのどちらを正としても破綻しません。
- ブラウザ利用時: 設計データはブラウザ内で扱われ、保存先としてローカルファイルへの書き出しや、プロジェクトフォルダとの同期を選べる
- ローカル同期: プロジェクトフォルダを接続すると、キャンバスの変更がそのままファイルに書き込まれ、Git でのバージョン管理や他ツールとの併用がしやすくなる
- VS Code 拡張: エディタ内に同じキャンバスを表示し、テンプレートファイルを開いた状態で図と往復しながら編集できる
キャンバスで線をつなぐ操作は、単に図を描くだけでなく、参照・IAM 権限・イベント設定といった「面倒な配線」をテンプレートに自動で書き込む操作です。生成された YAML を読み返すと、何が補完されたかを学べます。
設計パターン / ベストプラクティス
- 拡張カードを優先して使う: Lambda・API・DynamoDB など拡張カードが用意されているリソースは、IAM 権限やイベント結線の自動補完を活かせる
- 既存テンプレートの可視化に使う: 引き継いだ SAM/CloudFormation テンプレートを読み込み、全体像の把握やレビューの補助に使う
- 生成物は必ずレビューする: 自動生成された IAM 権限が広すぎないか、最小権限になっているかを確認してから採用する
- ローカル同期で IaC 管理下に置く: 生成テンプレートをプロジェクトフォルダに同期し、Git でバージョン管理して CI/CD から SAM/CloudFormation でデプロイする
- 設計とデプロイを分ける: Application Composer は設計・生成までを担い、デプロイはパイプラインに任せる責務分担にする
コネクションが補完する IAM 権限は便利ですが、用途によっては必要以上に広いことがあります。本番に進める前に、生成されたポリシーを最小権限の観点で必ず見直してください。
運用・監視
- Application Composer 自体は設計ツールのため、実行時のメトリクスやログを持ちません。監視対象は 生成・デプロイされたリソース側(Lambda・API Gateway など)になります
- デプロイ後の挙動は CloudWatch のメトリクス・ログや X-Ray のトレースで追跡し、設計の妥当性をフィードバックします
- デプロイそのものの履歴やロールバックは CloudFormation のスタックイベント で確認します
- 設計の変更履歴は、生成テンプレートを Git でバージョン管理 することで追跡・レビューします
コスト
Application Composer(Infrastructure Composer)の利用そのものに追加料金はかかりません。課金が発生するのは、生成したテンプレートから 実際にデプロイしたリソース(Lambda の実行、API Gateway のリクエスト、DynamoDB のキャパシティなど)の利用料です。設計・可視化の段階ではリソースを作成しないため費用は発生せず、デプロイ後に各サービスの料金体系に従って課金されます。最新の料金は各サービスの公式料金ページで確認してください。
セキュリティ
- ブラウザのコンソールから利用する場合、操作には実行者の IAM 権限 が前提になります。設計・生成自体はテンプレートの編集が中心です
- 生成テンプレートには パスワードや鍵を直書きしない。機密値は Secrets Manager や SSM パラメータストアを参照するように手直しします
- コネクションが自動付与する IAM 権限を、最小権限になるよう必ず見直します
- ローカル同期で書き出したテンプレートを Git や共有ストレージに置く際は、機密が含まれていないかを確認します
キャンバスから書き出したテンプレートは Git などで共有されます。設定値として機密を直書きすると漏洩源になります。機密は Secrets Manager や SSM の動的参照に置き換えてください。
関連サービス・比較
サーバーレスの IaC を扱う AWS SAM(および SAM CLI)とよく併用・比較されます。Application Composer は ビジュアルでテンプレートを設計・生成 する役割、SAM CLI は そのテンプレートをビルドしてデプロイ する役割と整理できます。
| 観点 | Application Composer | AWS SAM CLI |
|---|---|---|
| 主な役割 | ビジュアル設計とテンプレート生成 | ビルドとデプロイの実行 |
| 操作方法 | キャンバスのドラッグ&ドロップ | コマンドライン |
| 出力・対象 | CloudFormation/SAM テンプレート | テンプレートからのデプロイ |
| 双方向同期 | 図とコードを相互に同期 | 持たない |
| 典型用途 | 構成設計と可視化 | CI/CD でのデプロイ自動化 |
ハンズオン / CLI例
Application Composer の設計操作自体はビジュアルな GUI/VS Code 拡張で行います。生成したテンプレートは、次のように SAM CLI でビルド・デプロイするのが定番の流れです。
# Application Composer で生成・同期した SAM テンプレートをビルド
sam build --template-file template.yaml
# 対話形式でデプロイ設定を作りつつデプロイ(初回はガイド付き)
sam deploy --guided
# 生成テンプレートが CloudFormation として正しいか検証する場合
aws cloudformation validate-template \
--template-body file://template.yaml
AWS Service
AWS Application Composer (Infrastructure Composer)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
管理・ガバナンス
比較で見る軸
クラウド: AWS / カテゴリ: 管理・ガバナンス / 難易度: basic
導入後に効く点
図とテンプレートが双方向に同期し、コードを書いても図に、図を変えてもコードに反映される
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- AWS
- カテゴリ
- 管理・ガバナンス
- 難易度
- basic
- 関連資格
- DVA-C02 / SAA-C03 / DOP-C02
- 設計柱
- operational
判断チェックリスト
- 自社の用途が「管理・ガバナンス / operational」に近いか確認する。
- 強みである「リソースをキャンバスに並べて線でつなぐと、対応する CloudFormation/SAM テンプレートが自動生成される」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。