AWS App Runner のアイコン

AWS App Runner 人気2021年〜

コンテナ化された Web アプリケーションと API をフルマネージドにデプロイ・実行するサービス

何ができるか

AWS App Runner は、コンテナイメージまたはソースコードから Web アプリケーションや API を自動的にビルド・デプロイ・スケーリングするフルマネージドサービスです。ロードバランサー、TLS 証明書、オートスケーリングの設定が自動で行われるため、インフラの知識がなくてもコンテナアプリを本番運用できます。トラフィックがないときは最小構成にスケールダウンし、コストを抑えられます。

どのような場面で使うか

Web API やマイクロサービスの迅速なデプロイ、プロトタイプや MVP (最小限の製品) の素早い公開、コンテナ化された既存アプリケーションの簡単な AWS 移行などに利用されています。ECSEKS の設定が複雑に感じる場合の、よりシンプルな選択肢として活用されます。

身近な例え

フードトラックの出店サービスに例えるとわかりやすいでしょう。レストラン (アプリ) を開業するには、物件探し、内装工事、設備導入 (インフラ構築) が必要です。フードトラックサービス (App Runner) なら、レシピ (ソースコード) を渡すだけで、調理設備付きのトラック (コンテナ環境) が用意され、お客さんの数 (トラフィック) に応じてトラックの台数が自動調整されます。

App Runner とは

AWS App Runner は、コンテナ化された Web アプリケーションを最も簡単にデプロイできるサービスです。ECSEKS ではクラスター、タスク定義、サービス、ロードバランサーなど多くの設定が必要ですが、App Runner ではコンテナイメージまたはソースコードリポジトリを指定するだけで、HTTPS 対応の Web アプリが数分で公開されます。

デプロイ方法

App Runner には 2 つのデプロイ方法があります。1 つ目はコンテナイメージを ECR (Elastic Container Registry) から指定する方法で、既にコンテナ化されたアプリに適しています。2 つ目はソースコードリポジトリ (GitHub) を接続する方法で、App Runner がビルドからデプロイまでを自動的に行います。どちらの方法でも、コードの更新時に自動デプロイを有効にできます。

オートスケーリング

App Runner は、受信リクエスト数に基づいて自動的にスケーリングします。トラフィックが増えるとインスタンス数が自動的に増加し、トラフィックが減ると縮小します。最小インスタンス数を 1 に設定すれば、トラフィックがないときのコストを最小限に抑えられます。スケーリングの設定は、同時リクエスト数の閾値を指定するだけのシンプルな仕組みです。 オートスケーリングについて体系的に学びたい方は、専門書籍 (Amazon) も参考になります。

はじめかた

App Runner コンソールで「サービスの作成」をクリックし、ソースとしてコンテナイメージまたは GitHub リポジトリを選択します。CPU とメモリのサイズを選び、ポート番号を指定して「作成とデプロイ」をクリックします。数分で HTTPS 対応の URL が発行され、アプリにアクセスできるようになります。カスタムドメインの設定もコンソールから簡単に行えます。

注意点

  • App Runner はアクティブなインスタンスと一時停止中のインスタンスで料金が異なり、一時停止中はメモリ料金のみが課金される
  • VPC 内のリソース (RDS、ElastiCache など) にアクセスするには VPC コネクタの設定が必要
  • WebSocket やグ RPC には対応していないため、これらが必要な場合は ECS や EKS を検討すること
共有するXB!