本記事は2022/12/13時点の情報です。
こんにちは。アプリケーションサービス部の渡辺です。AWS re:Invent 2022にてAWS Application Composer (プレビュー版)が発表されました。サービスの概要と使い方についてご紹介します。
- AWS Application Composerの概要
- AWS Application ComposerとAWS SAM Accelerateで開発を加速させる
- これからのAWS Application Composer
- 終わりに
AWS Application Composerの概要
AWS Application Composerは、視覚的にサーバーレスアプリケーションの設計、設定、構築をWebブラウザベースのGUIを用いて行い、CloudFormationテンプレートを出力することができるサービスです。
AWS Application Composer上で新規プロジェクトを作成することも、既存CloudFormationテンプレートをAWS Application Composerに読み込んでアーキテクチャを可視化することもできます。
また、基となるCloudFormationテンプレートはローカル端末とAWS Application Composerとの間で同期することが可能です。AWS Application Composerで加えた変更がローカル端末上の同期されているCloudFormationテンプレートに反映されます。双方向同期によってローカル端末上でCloudFormationテンプレートに加えた変更もAWS Application Composerに反映されます。
補足ですが、AWS Application Composerとローカル端末とのCloudFormationテンプレートの双方向同期はFile System Access APIを用いることで実現されています。
現時点でAWS Application Composerからの編集に対応しているAWSリソースは以下になります。
- API Gateway
- Cognito UserPool
- Cognito UserPoolClient
- DynamoDB Table
- EventBridge Event rule
- EventBridge Schedule
- Kinesis Stream
- Lambda Function
- Lambda Layer
- S3 Bucket
- SNS Topic
- SQS Queue
- Step Functions State machine
上記以外のAWSリソースはRead-onlyと表示されAWS Application Composerでの操作に対応していません。(ローカル端末上で編集することは可能)
AWS Application Composerでの操作に対応していないAWSリソースが含まれるCloudFormationテンプレートをAWS Application Composerで表示すると以下のようになります。
AWS Application ComposerとAWS SAM Accelerateで開発を加速させる
AWS Application Composerの視覚的なサーバーレスアプリケーションの構築、設定、構築、およびCloudFormationテンプレートの出力機能とAWS SAM Accelerateを組み合わせることで、AWS Application ComposerのGUIを用いたサーバーレスアプリケーションの構築からデプロイまでを迅速に実施することができます。
AWS Application Composerで視覚的に追加したAWSリソースがAWS SAM Accelerateの機能を通して実際にAWS上にデプロイされるということです!
そのために以下の手順を踏む必要があります。
- AWS Application Composerとローカル端末を同期させたプロジェクトを作成する
- ローカル端末でwatchフラグを付けたSAM syncの利用(
sam sync --watch
コマンド)
AWS Application Composerとローカル端末を同期させたプロジェクトを作成する
AWS Application Composerでプロジェクトを作成します。Type of project (New blank projectとLoad existing project)の選択肢に関わらず、Local file system connection modeはConnectedを選択します。
ローカル端末でwatchフラグを付けたSAM syncの利用(sam sync --watch
コマンド)
上記手順でAWS Application Composerと同期させたフォルダをローカル端末の任意のIDEで開きます。
ターミナルでsam sync --watch
コマンドを実行します。(コマンドの実行にはAWS SAM CLIがインストールされている必要があります)
AWS Application ComposerでS3 Bucketを追加してみます。
するとAWS SAM Accelerate (sam sync --watch
コマンド)が動作し、実際にS3 Bucketがデプロイされました!
この仕組みを用いることでサーバーレスアプリケーションの設計からデプロイまでを迅速に、かつローコードで実現できます!
これからのAWS Application Composer
AWS Application Composerの現状はプレビューとなります。画期的なサービスですが、まだできないことも多くあります。
以下2点、これからのAWS Application Composer関連情報を提供させていただきます。
- 対応リソースを増やすためにフィードバックを送りましょう
- 各IDE (Visual Studio Codeなど)向けのエクステンション提供が計画されています
終わりに
AWS Application Composerは視覚的にサーバーレスアプリケーションの設計、設定、および構築することができます。また、AWS SAM Accelerateと組み合わせることで開発を加速させることができました。
作図 + Infrastructure as Codeツールという印象を受けました。まだ、AWS Application Composer側で編集できるリソースは少ないですが、今後のアップデートに期待です。
本記事の作成にあたり以下の資料を参考にさせていただきました。