AWS App RunnerでExpressで作ったAPIを公開してみる

2 min read読了の目安(約1800字

AWS App Runner とは

AWS App Runnerとは、つい最近、2021/05/19に発表されたAWSの新しいサービスです。

https://aws.amazon.com/jp/blogs/news/introducing-aws-app-runner/

「AWS上でコンテナ化された Web アプリケーションをビルド、および実行するための最も簡単な方法」だそうです。

さっそく試してみた

デプロイするアプリを用意

とりあえずアプリはなんでもよかったので、適当にNode.js+TypeScript+ExpressでHelloWorldするAPIを用意して、githubに置きました。

https://github.com/k-ibaraki/sample-app-runner

コンソールからApp Runner サービスを作る

  • こちらのリンクから「App Runner サービスを作成」
    https://ap-northeast-1.console.aws.amazon.com/apprunner/home?region=ap-northeast-1#/welcome

  • ソースは「コンテナレジストリ」と「ソースコードリポジトリ」が選べます
    今回はgithubなので「ソースコードリポジトリ」を選択

  • githubとの連携にConnectorが必要なので、連携させる

  • Node.js 12Python 3に対応しているみたいです
    今回はNode.jsを選択

  • 構築コマンドと開始コマンドとポートを設定
    yamlファイルでも設定ができるようですが、今回はコンソールで設定

  • 後は、とりあえずデフォルト設定のままで、サービス作成!!

  • 10分弱待って、deployが完了しました。

  • URLに接続すると無事に動作していました

所感

  • 本当に簡単にWebアプリやAPIが公開できます。ドキュメント類を全く読まずに使えました。これはすごい。
  • 試せてないですがオートスケールもしてくれるらしいです。すごい。
  • コンテナですがコンテナっぽいことを何も書かなくてもdeployできるので、コンテナ知識ない人でも安心して使えます。
  • githubから自動でdeployできるので、自分でCDを構築する必要がないので楽です。
  • Amplifyのフロントエンド機能のバックエンド版って感じがしました。
    • フロントエンドがAmplify、バックエンドがApp Runnerがこれからの主流になるのか?
    • 一方でAmplifyのAPI機能との使い分けをどうするべきかが気になります。
      以前記事を書きましたが、Amplifyもコンテナに対応してますし。
      https://zenn.dev/ibaraki/articles/0d3db66e08c5f9
  • 簡単に公開できる反面、細かいところのカスタマイズがどこまでできるかは気になります。
    • (ドキュメント読んでないので、何ができるか把握していない)

この後ドキュメント読んで、何ができるのかを調べてもう少し遊んでみます。