AWS Application Composer のアイコン

AWS Application Composer

サーバーレスアプリケーションのアーキテクチャをビジュアルに設計し、IaC テンプレートを自動生成するサービス

何ができるか

AWS Application Composer は、サーバーレスアプリケーションのアーキテクチャをドラッグ & ドロップで視覚的に設計し、対応する SAM (Serverless Application Model) テンプレートを自動生成するサービスです。Lambda、API Gateway、DynamoDB、S3 などのリソースをキャンバス上に配置して接続するだけで、デプロイ可能な IaC テンプレートが完成します。VS Code 拡張機能としても利用できます。

どのような場面で使うか

サーバーレスアプリケーションの設計・プロトタイピング、既存の CloudFormation/SAM テンプレートの可視化と理解、チームメンバーへのアーキテクチャ説明、IaC テンプレートの学習ツールとして活用されています。YAML の記述に不慣れな開発者でも、視覚的にインフラを設計できます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

身近な例え

間取り設計ソフトに例えるとわかりやすいでしょう。家 (アプリケーション) を建てるとき、設計図 (IaC テンプレート) を手書きするのは大変です。間取り設計ソフト (Application Composer) なら、部屋 (Lambda、DynamoDB など) をドラッグ & ドロップで配置し、ドアや廊下 (接続) を引くだけで、正確な設計図が自動的に出来上がります。

Application Composer とは

この記事は約 2 分で読めます。 AWS Application Composer は、サーバーレスアプリケーションのアーキテクチャを視覚的に設計するツールです。通常、AWS のインフラを構築するには CloudFormation や SAM の YAML テンプレートを手書きする必要があります。Application Composer を使えば、GUI 上でリソースを配置・接続するだけで、正しい YAML テンプレートが自動生成されます。

ビジュアル設計

Application Composer のキャンバスには、Lambda 関数、API Gateway、DynamoDB テーブル、S3 バケット、SQS キュー、SNS トピックなどの AWS リソースをドラッグ & ドロップで配置できます。リソース間を線で接続すると、必要な IAM 権限や環境変数が自動的に設定されます。たとえば、API Gateway と Lambda を接続すると、API のルートと Lambda の統合が自動的にテンプレートに反映されます。

テンプレートとの双方向同期

Application Composer の大きな特徴は、ビジュアル設計と YAML テンプレートが双方向に同期することです。キャンバス上でリソースを追加すると YAML に反映され、YAML を直接編集するとキャンバスにも反映されます。既存の SAM/CloudFormation テンプレートをインポートして可視化することも可能で、複雑なテンプレートの理解に役立ちます。

はじめかた

AWS コンソールで Application Composer を開くか、VS Code に AWS Toolkit 拡張機能をインストールして利用します。新規プロジェクトを作成するか、既存の SAM テンプレートをドラッグ & ドロップで読み込みます。キャンバス上でリソースを配置・接続し、生成されたテンプレートを sam deploy コマンドでデプロイします。VS Code 版ではローカルファイルとリアルタイムに同期できます。

Azure・オンプレミスとの比較

Azure の対応サービス Azure Resource Visualizer / Bicep Visual Editor
オンプレミスでの対応手段 Lucidchart や draw.io でのアーキテクチャ図作成 + 手動での IaC テンプレート記述

AWS の優位点

  • ビジュアル設計と SAM テンプレートが双方向にリアルタイム同期するため、設計図とコードの乖離が発生しない
  • リソース間の接続時に IAM 権限や環境変数が自動設定されるため、権限設定の漏れや誤りを防止できる
  • VS Code 拡張機能としてローカル開発環境に統合でき、既存の開発ワークフローを変更せずに利用できる

注意点

  • Application Composer 自体は無料で利用でき、生成されたテンプレートでデプロイしたリソースに対してのみ料金が発生する
  • 対応するリソースタイプはサーバーレス関連が中心で、EC2 や RDS などの一部リソースはキャンバス上で設計できない
  • 生成されるテンプレートは SAM 形式のため、デプロイには SAM CLI のインストールが必要

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。