AWS App Runner
コンテナイメージまたはソースコードから Web アプリケーションと API を自動的にビルド・デプロイ・スケーリングするフルマネージドサービス
概要
AWS App Runner は、コンテナ化された Web アプリケーションや API を、インフラの知識なしにデプロイ・運用できるフルマネージドサービスです。ECR のコンテナイメージまたは GitHub リポジトリのソースコードを指定するだけで、ビルド、デプロイ、TLS 終端、ロードバランシング、オートスケーリングが自動的に構成されます。トラフィックがゼロのときはインスタンスを最小数まで縮小し、リクエスト増加時に自動でスケールアウトします。
ECS Fargate や Lambda との選定基準
App Runner、ECSFargate、Lambda はいずれもサーバーレスにコンテナやコードを実行できますが、抽象度と制御性のトレードオフが異なります。App Runner は最も抽象度が高く、VPC 設定、ロードバランサー構成、タスク定義、サービスディスカバリといった概念をほとんど意識する必要がありません。Web アプリケーションや REST API を素早くデプロイしたい場合に適しています。ECS Fargate は App Runner より制御性が高く、タスク定義でコンテナの CPU/メモリ、サイドカーコンテナ、ボリュームマウント、ヘルスチェックを細かく設定できます。サービス間通信の制御 (ECS Service Connect)、サービスディスカバリ (Cloud Map)、Blue/Green デプロイ (CodeDeploy 連携) など、本番運用に必要な機能が揃っています。マイクロサービスアーキテクチャや複雑なネットワーク要件がある場合は Fargate を選択します。Lambda はイベント駆動の関数実行に特化しており、HTTP リクエスト以外のトリガー (S3 イベント、SQS メッセージ、スケジュール) にも対応します。ただし実行時間の上限が 15 分 (2026 年 9 月時点) で、長時間の接続を保持し続ける処理には向きません。選定の目安として、シンプルな Web アプリなら App Runner、本格的なマイクロサービスなら Fargate、イベント駆動処理なら Lambda という棲み分けで使われてきました。ただし AWS は App Runner の新規顧客向け受付を終了しており (2026 年 9 月時点・既存顧客は継続利用可)、これから新規に構築する場合は ECS Fargate や Lambda が現実的な選択肢になります。
デプロイパイプラインと自動スケーリングの仕組み
App Runner のデプロイソースは、ECR のコンテナイメージと、GitHub や Bitbucket などのソースコードリポジトリの 2 系統です。ECR ソースでは、イメージの push をトリガーに自動デプロイする設定が可能で、CI/CD パイプラインで ECR にイメージを push するだけでデプロイが完了します。GitHub ソースでは、App Runner がソースコードを自動的にビルドしてデプロイします。複数の言語向けのマネージドランタイムに対応しており (対応言語は公式ドキュメント参照)、apprunner.yaml でビルドコマンドと起動コマンドを定義します。オートスケーリングは同時リクエスト数に基づいて動作し、1 インスタンスあたりの最大同時リクエスト数 (既定値 100・2026 年 9 月時点) を超えるとスケールアウトします。最小インスタンス数を 1 に設定すると、トラフィックがゼロでも 1 インスタンスが常時稼働するため、コールドスタートを回避できます。最小インスタンス数を 0 にはできないため、完全なゼロスケールが必要な場合は Lambda を検討してください。デプロイ時はローリングアップデートが自動的に行われ、ヘルスチェックに合格した新バージョンにトラフィックが切り替わります。
VPC 接続とプライベートリソースへのアクセス
App Runner はデフォルトでパブリックなエンドポイントを持ちますが、VPC コネクタを設定することで VPC 内のプライベートリソース (RDS、ElastiCache、DocumentDB など) にアクセスできます。VPC コネクタは App Runner サービスと VPC の間にネットワーク接続を確立し、指定したサブネットとセキュリティグループを通じてプライベートリソースに到達します。注意点として、VPC コネクタを設定すると、App Runner からのアウトバウンド通信はすべて VPC を経由するため、インターネットへのアクセスには NAT Gateway が必要になります。これは追加コストが発生するため、外部 API を呼び出すアプリケーションでは事前にコスト試算が必要です。受信トラフィックについては、App Runner のプライベートエンドポイント機能を使うことで、VPC 内からのみアクセス可能な内部サービスを構築できます。社内向けの管理画面やマイクロサービス間の通信で、インターネットに公開したくないサービスに適しています。料金はインスタンスの vCPU とメモリに対する時間従量制で、アクティブなリクエスト処理中とアイドル時で課金対象が異なるため、詳細は AWS 公式料金ページを参照してください。
参考資料 (AWS 公式)
本ページの一次情報は AWS 公式サイトおよび公式ドキュメントです。最新の仕様 / 料金は次の公式ページで確認できます。
本ページと公式ドキュメントの記述が食い違う場合は、公式ドキュメントを正としてください。