AWS App Runner
コンテナ化された Web アプリケーションと API をフルマネージドにデプロイ・実行するサービス
何ができるか
AWS App Runner は、コンテナイメージまたはソースコードから Web アプリケーションや API を自動的にビルド・デプロイ・スケーリングするフルマネージドサービスです。ロードバランサー、TLS 証明書、オートスケーリングの設定が自動で行われるため、インフラの知識がなくてもコンテナアプリを本番運用できます。トラフィックがないときは最小構成にスケールダウンし、コストを抑えられます。
どのような場面で使うか
Web API やマイクロサービスの迅速なデプロイ、プロトタイプや MVP (最小限の製品) の素早い公開、コンテナ化された既存アプリケーションの簡単な AWS 移行などに利用されています。ECS や EKS の設定が複雑に感じる場合の、よりシンプルな選択肢として活用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
フードトラックの出店サービスに例えるとわかりやすいでしょう。レストラン (アプリ) を開業するには、物件探し、内装工事、設備導入 (インフラ構築) が必要です。フードトラックサービス (App Runner) なら、レシピ (ソースコード) を渡すだけで、調理設備付きのトラック (コンテナ環境) が用意され、お客さんの数 (トラフィック) に応じてトラックの台数が自動調整されます。
App Runner とは
この記事は約 2 分で読めます。 AWS App Runner は、コンテナ化された Web アプリケーションを最も簡単にデプロイできるサービスです。ECS や EKS ではクラスター、タスク定義、サービス、ロードバランサーなど多くの設定が必要ですが、App Runner ではコンテナイメージまたはソースコードリポジトリを指定するだけで、HTTPS 対応の Web アプリが数分で公開されます。
デプロイ方法
App Runner には 2 つのデプロイ方法があります。1 つ目はコンテナイメージを ECR (Elastic Container Registry) から指定する方法で、既にコンテナ化されたアプリに適しています。2 つ目はソースコードリポジトリ (GitHub) を接続する方法で、App Runner がビルドからデプロイまでを自動的に行います。どちらの方法でも、コードの更新時に自動デプロイを有効にできます。
オートスケーリング
App Runner は、受信リクエスト数に基づいて自動的にスケーリングします。トラフィックが増えるとインスタンス数が自動的に増加し、トラフィックが減ると縮小します。最小インスタンス数を 1 に設定すれば、トラフィックがないときのコストを最小限に抑えられます。スケーリングの設定は、同時リクエスト数の閾値を指定するだけのシンプルな仕組みです。
はじめかた
App Runner コンソールで「サービスの作成」をクリックし、ソースとしてコンテナイメージまたは GitHub リポジトリを選択します。CPU とメモリのサイズを選び、ポート番号を指定して「作成とデプロイ」をクリックします。数分で HTTPS 対応の URL が発行され、アプリにアクセスできるようになります。カスタムドメインの設定もコンソールから簡単に行えます。
Azure・オンプレミスとの比較
AWS の優位点
- コンテナイメージまたはソースコードを指定するだけで、ロードバランサー、TLS、オートスケーリングが自動設定され、インフラ設定がほぼ不要
- トラフィックがないときはインスタンスが一時停止し、メモリ料金のみの課金となるため、低トラフィックなアプリのコストを大幅に削減できる
- ECR との統合により、プライベートコンテナイメージからのデプロイが IAM ロールベースで安全に行える
注意点
- App Runner はアクティブなインスタンスと一時停止中のインスタンスで料金が異なり、一時停止中はメモリ料金のみが課金される
- VPC 内のリソース (RDS、ElastiCache など) にアクセスするには VPC コネクタの設定が必要
- WebSocket やグRPC には対応していないため、これらが必要な場合は ECS や EKS を検討すること
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。