AWSのApplication Composerのデモを触ってみた
この記事では、「AWS Community Builders Advent Calendar 2023」の5日目についての内容が紹介されています。2022年のre:inventで発表された「Application Composer」について、ホーム画面からデモを開いて使い方を学ぶことができます。Application Composerを使用すると、ビジュアルエディタで設定を行い、SAMテンプレートに反映させることができます。また、リソースの追加や変更、差分の確認なども行うことができます。開発フローには、テンプレート構築、ローカルのIDEへの反映、テストとデプロイの実行が含まれています。VS CodeでApplication Composerを使用できることもアナウンスされており、今後の記事でその使い方についても触れていく予定です。
目次
この記事は、「AWS Community Builders Advent Calendar 2023」5日目の記事です。
ここ最近新しいAWSサービスを触れていなかったので、この機会に2022年のre:inventで発表された、「Application Composer」をちゃんとみようと思い、カレンダー駆動で触ってみました。
ホーム画面から、デモが開ける
「Application Composerでどんなものが作れるか」を知りたい場合、ホーム画面の[デモを開く]ボタンからデモをみることができます。

デモでは、5つのパス・メソッドを持つAPIと1つのDynamoDB、そしてAPIごとにAWS Lambdaを作成する構成が開きます。

ビジュアルエディタでの設定は、SAM用のYAMLテンプレートで出力できる
Application Composerで設定・変更した構成は、SAMテンプレートに反映されます。

LambdaとAPI GWの関連付けを変更したり、外したりもできました。

リソースごとの設定もGUIから行える
各リソースの設定もApplication Composerで行えます。Lambda関数のコードについては、Source path
として設定するみたいでした。

DLしたSAMテンプレートを配置したディレクトリとの相対パスで設定することになりそうです。
Application Composerで、リソースを追加してみる
せっかくなので、少し構成を触ってみましょう。今回はS3バケットを追加してみました。

SAMテンプレートを見ると、S3バケットに関するリソース(AWS::S3::Bucket
やAWS::S3::BucketPolicy
など)が追加されていました。

Change Inspectorで差分を確認できる
SAMで差分を手動で確認する必要があるのかなと思ったのですが、UIをよく見ると、下部に[Change Inspector]がありました。これを開くと、元のテンプレートとの差分だけを見ることができます。

IAM周りの権限がどうなっているかの確認にも使えそうですし、「はじめて触るリソースをIaC化するとどうなるか」を調べる用途にも使えそうです。
Application Composerを使ったフローはどうなるのか
ホーム画面に書かれている開発フローはこの4ステップです。Application Composerで「テンプレートを構築」し、「ローカルのIDEに変更を反映」そして「SAM Accelerateを利用したテスト」と「SAMを利用したデプロイ」を行うとのことです。

SAM Accelerateの存在を初めて知ったので、これはまた後ほど触ってみたいと思います。
提示されている開発フロー以外にも、Application Composerへのテンプレートファイルインポートや、YAMLファイルのDLもできる様子です。

ローカルでApplication Composerさわれたらいいのに・・・ -> 触れるようになった!
ざっと見るた印象として、IDEとブラウザ(Chrome)の2つでServerlessアプリケーションを開発するフローになると認識しました。となると、ビジュアライズは難しいもののTypeScriptの静的型検証系が使えるのとIDEだけで完結するメリットのあるAWS CDKの方がよいのでは・・・?と思っていました。
しかしそこはさすがAWS、下書きを書いて一晩寝かせたところ、「あればいいのに」と思っていたものど真ん中がアナウンスされました。
VS Code上でApplication Composerを使えるとなると、これはCDK と Application Composerを使い分けてやっていこうかなという気持ちになりそうです。
こちらはまた触ってみた記事を後ほど出したいと思います。