Featured image of post Application Composerを使ってみた

Application Composerを使ってみた

reinvent 2022で発表されたApplicaton Composerを使ってみます。サーバーレスアプリケーションを楽に開発できるようになるのか実際に動かして確認します。

Appication Composerとは

Appication ComposerはブラウザベースのGUIでAWSサービスを組み込んだサーバレスアプリケーションを簡単に構築できるように作られたツールです。 CloudFormationやAWS SAMのテンプレートを利用した開発も可能なため、新規も既存もどちらでも有効な手段になる可能性があります。

ホーム

マネージメントコンソールからApplication Composerを検索しホーム画面を表示します。

ホーム画面には、サービス概要と、構築を開始する3つの方法が表示されます。

  • デモプロジェクトを開く
  • 空白のプロジェクトを新規に作成する
  • CloudFormationテンプレートを読み込む

少し下には、開発フローの説明がわかりやすく記載されています。 テストとデプロイもツールに含まれており、開発がしやすくなりような工夫がありそうです。

デモプロジェクト

今回は空白のプロジェクトではなく、デモプロジェクトを使います。

デモを開いたところ、ポップアップの画面が表示されました。 作成完了したテンプレートをダウンロードするには、ChromeかEdgeを使用した方が良いみたいです。 今回はSafariを使用していたのですが、Chromeに切り替えます。

Chromeに切り替えてデモを開き直すと、ポップアップの内容が変わりました。 ローカルのフォルダを指定してあげると良いようです。

フォルダを指定するとチェックがつきます。

やっとCreateに到達できました。 ボタンを押すと、一気に構築された状態のキャンバスが表示されます。

3つのサービスから構成されているようで、API Gateway、LambdaとDynamoDBによる典型的なサーバーレスアプリケーションが作られました。 画面右上のComposerのクイックツアーも試してみます。

クイックツアーは5つのステップで構成されており、GUI操作の基本的な説明をしてくれます。 ここでは写真になっているのですが、実際にはGifのような動くイメージで説明してくれます。

画面上部のボタンにより、Canvas表示とTemplate表示を選択でき、瞬時に切り替えることができます。

Canvas表示に戻し、サービスの詳細を見ていきます。

API Gateway

まずはAPI Gatewayです。 論理ID、オーソライザ、メソッド、CORSの設定が並んでいます。 メソッドは選択するとリストが表示されます。

Lambda

次はLambdaです。5つのLambdaがグループになっています。 ListItemsのLambdaの詳細を見ていきます。

Lambdaを作成する際に必要な項目が並んでおり、デモでは全てセットアップされています。

ここで、そういえばコードはどこに存在するのかと思いGUIで少し探していたのですが、デモをCreateする際にローカルのフォルダを指定しておりましたね。 確認したところそのフォルダにソースなどが格納されています。

DynamoDB

最後はDynamoDBです。論理IDとPartition keyやSort Keyなどが選択できます。

デプロイ

編集ができることはわかったのですが、次にどのようにテストやデプロイをするのかわからなかったので、GUIからヒントを探します。

画面右上のMenuを開くと、リンクがありました。

説明から察するに、Application Composerからはデプロイするものではなく、作成・編集したものはCloudFormationのテンプレート形式なので、 その形式に準拠したAWSサービスを使ってデプロイすることになるようです。AWS SAMが推奨されているようです。

わかったこと

Application ComposerはGUIベースで構成の作成ができるツールで、複雑なIasCの可視化に役立つと感じました。 ゼロからの構築にこのサービスを使うかというと、そうではないと感じています。Application Composerというツールに慣れていくことで、初動を早くすることはできると感じました。

一言で言うと、CloudFormationデザイナーのサーバーレス版というような印象でした。

サーバーレスのサービスが今度も増えていき、開発が楽になっていくことを期待したいと思います。

Licensed under CC BY-NC-SA 4.0