AWS Application Composerで開発を加速させる

記事タイトルとURLをコピーする

本記事は2022/12/13時点の情報です。

こんにちは。アプリケーションサービス部の渡辺です。AWS re:Invent 2022にてAWS Application Composer (プレビュー版)が発表されました。サービスの概要と使い方についてご紹介します。

AWS Application Composerの概要

AWS Application Composerは、視覚的にサーバーレスアプリケーションの設計、設定、構築をWebブラウザベースのGUIを用いて行い、CloudFormationテンプレートを出力することができるサービスです。

AWS Application Composer

AWS Application Composerによって出力された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リソースは以下になります。

  1. API Gateway
  2. Cognito UserPool
  3. Cognito UserPoolClient
  4. DynamoDB Table
  5. EventBridge Event rule
  6. EventBridge Schedule
  7. Kinesis Stream
  8. Lambda Function
  9. Lambda Layer
  10. S3 Bucket
  11. SNS Topic
  12. SQS Queue
  13. Step Functions State machine

上記以外のAWSリソースはRead-onlyと表示されAWS Application Composerでの操作に対応していません。(ローカル端末上で編集することは可能)

AWS Application Composerでの操作に対応していないAWSリソースが含まれるCloudFormationテンプレートをAWS Application Composerで表示すると以下のようになります。

AWS Application Composerで編集できないRead-onlyリソースの表示

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上にデプロイされるということです!

そのために以下の手順を踏む必要があります。

  1. AWS Application Composerとローカル端末を同期させたプロジェクトを作成する
  2. ローカル端末で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を選択します。

Local file system connection modeはConnectedを選択しましょう

Connected modeになっていることを確認しましょう

ローカル端末でwatchフラグを付けたSAM syncの利用(sam sync --watchコマンド)

上記手順でAWS Application Composerと同期させたフォルダをローカル端末の任意のIDEで開きます。

ターミナルでsam sync --watchコマンドを実行します。(コマンドの実行にはAWS SAM CLIがインストールされている必要があります)

Visual Studio Codeでsam sync --watchコマンドを実行

AWS Application ComposerでS3 Bucketを追加してみます。

AWS Application ComposerでS3 Bucketを追加する

するとAWS SAM Accelerate (sam sync --watchコマンド)が動作し、実際にS3 Bucketがデプロイされました!

追加されたS3 Bucketがsam sync --watchコマンドで検知、デプロイされる

この仕組みを用いることでサーバーレスアプリケーションの設計からデプロイまでを迅速に、かつローコードで実現できます!

これからの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側で編集できるリソースは少ないですが、今後のアップデートに期待です。

本記事の作成にあたり以下の資料を参考にさせていただきました。

aws.amazon.com

aws.amazon.com

youtu.be