AWS Application Composer を試してみた
Application Composer とは
AWSが2023年3月に一般提供を開始したサービスです。LambdaやDynamoDBを利用したサーバレスアーキテクチャを、GUIを用いて視覚的・感覚的に構築できます。百聞は一見に如かずということで、さっそく触れてみます。
デモ構成
AWSマネジメントコンソールからApplication Composerへアクセスし、「デモを開く」を選択します。
ローカル上に構成ファイルを作成するようなので、「AppComposer」フォルダを作成し選択しました。するとこのようにGUIが展開されました。
APIからLambdaを通じてDynamoDBにCRUDをたたく、テンプレ構成ですね。どんなアプリなのか一目でわかります。
Templateを開くと、図に対応したCloudFormationテンプレートが記述されています。
そしてローカル上にも同様のtemplate.yamlと、srcファイルが構成されています。
実際にこちらのテンプレートをデプロイして動かしてみます。
ありがたいことに、README.md の中に手順がすべてガイドされています。(英語ですが)
こちらの指示に従い、パワーシェルでビルド、デプロイを実行します。(デプロイの画面撮り忘れ......)
デプロイされたアプリケーションをAWS上で確認します。
しっかり構築されていますね。ガイドに従った動作確認もばっちりです。
デモ構成を編集してみる
次に今まで触っていたデモ構成を編集してみます。
もう一度Application Composerにアクセスし、今度は「プロジェクトの作成」を選択します。
既存のプロジェクトを読み込むほうを選択、ローカル上のAppComposerフォルダを読み込みます。
今回は試しに、一定間隔でLambdaを叩いてDynamoDBバックアップをS3に作成するような構成をつくってみます。
こんな感じになるでしょうか?
やったことは、ページ左側からアイコンをドラッグしてキャンバス上に配置し、名前と一部パラメータをいじって線を引いただけです。
この際、連携できないサービス間で線を引くと怒られます。
また、配置した時点でtemplateは更新され、それがローカルにも反映されます。
今までなかったS3バケットとそのポリシーがテンプレート上に記述されていますね。これが勝手に追加されるのはありがたい。
こちらを新たにデプロイすると、しっかりアプリが更新されています。追加された関数がこちらです。
トリガーとしてEventBridgeを想定していましたが、Lambda上では反映されていないようです。
EventBridge自体はちゃんと作成されているようです。設定が不足しているのかも?
また、当然ながらこれだけではLambdaの中身はほとんど空っぽです。
ローカルのsrcフォルダ内を編集して、ちゃんとアプリケーションの中身を構成する必要があります。
このように、コードレスになんでもできるわけではありませんが、大まかな骨組みを視覚的に構成するのには大変役立つサービスだと思われます。