AWS App Runner で最速のコンテナデプロイ - ソースコードから本番環境まで数分で

ソースコードまたはコンテナイメージを指定するだけで HTTPS エンドポイントが構築される。ECS/Fargate との違いと、VPC コネクタによるプライベートリソース接続を紹介します。

App Runner の位置づけ

App Runner は Web アプリケーションと API を最小の設定でデプロイするサービスです。ECS/Fargate がタスク定義、サービス、クラスタ、ALB の設定を必要とするのに対し、App Runner はソースコードまたはコンテナイメージを指定するだけでデプロイが完了します。HTTPS エンドポイント、TLS 証明書、ロードバランシング、オートスケーリングが自動的に構成されます。Web API、マイクロサービス、内部ツールなど、シンプルな Web アプリケーションを素早くデプロイしたい場合に最適です。

デプロイとオートスケーリング

ソースベースデプロイでは GitHub リポジトリを接続し、ランタイム (Python、Node.js、Java、Go、.NET) とビルドコマンドを指定します。プッシュのたびに自動ビルド・デプロイが実行されます。イメージベースデプロイでは ECR のイメージ URI を指定し、イメージの更新を自動検知してデプロイします。オートスケーリングはリクエスト数に基づき、同時リクエスト数の閾値 (デフォルト 100) を超えるとインスタンスが追加されます。最小インスタンス数を 1 に設定すると、トラフィックがない時間帯でも 1 インスタンスが常時稼働し、コールドスタートを回避できます。

VPC 接続とカスタムドメイン

VPC コネクタを設定すると、 App Runner のサービスから VPC 内のリソース (RDSElastiCache 、 OpenSearch) にプライベートネットワーク経由でアクセスできます。セキュリティグループでアクセスを制御し、データベースへの接続を App Runner のサービスからのみ許可する構成が推奨されます。カスタムドメインの設定はコンソールからドメイン名を入力し、 DNS に CNAME レコードを追加するだけで完了します。 TLS 証明書は自動的に発行・更新されます。 コンテナデプロイに関する詳しい解説はAmazon の関連書籍でも確認できます。

App Runner の料金

App Runner の料金はアクティブなインスタンスのコンピューティングリソースに基づく従量課金です。プロビジョンドインスタンスは vCPU 時間あたり約 0.007 ドル、メモリ GB 時間あたり約 0.007 ドルで、トラフィックがない時間帯もメモリ料金が発生します。アクティブインスタンス (リクエスト処理中) は vCPU 時間あたり約 0.064 ドル、メモリ GB 時間あたり約 0.007 ドルです。自動ビルドの料金は 1 分あたり約 0.005 ドルです。最小インスタンス数を 1 に設定した場合、月額約 5 ドルのプロビジョンドコストが常時発生します。ECS/Fargate と比較すると、ALB の固定費 (月額約 16 ドル) が不要な分、小規模なサービスではコスト優位性があります。

まとめ

App Runner はコンテナデプロイの複雑さを極限まで簡素化するサービスです。ソースコードまたはイメージを指定するだけで本番環境が構築され、オートスケーリングと HTTPS が自動設定されます。VPC コネクタでプライベートリソースにもアクセスでき、ECS/EKS の柔軟性が不要なシンプルな Web アプリケーションに最適です。