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

App Runner によるソースコードまたはコンテナイメージからの自動デプロイ、オートスケーリング、VPC 接続の設定を解説します。

App Runner の位置づけ

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

この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

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

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

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

VPC コネクタを設定すると、App Runner のサービスから VPC 内のリソース (RDS、ElastiCache、OpenSearch) にプライベートネットワーク経由でアクセスできます。セキュリティグループでアクセスを制御し、データベースへの接続を App Runner のサービスからのみ許可する構成が推奨されます。カスタムドメインの設定はコンソールからドメイン名を入力し、DNS に CNAME レコードを追加するだけで完了します。TLS 証明書は自動的に発行・更新されます。App Runner の料金はアクティブなインスタンスの vCPU 時間とメモリ GB 時間に基づく従量課金で、一時停止中のサービスはメモリ料金のみが発生します。

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。

まとめ

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

AWS の優位点

  • GitHub リポジトリまたは ECR イメージを指定するだけで、ビルド・デプロイ・HTTPS エンドポイントの設定が自動完了する
  • リクエスト数に応じた自動スケーリングで、トラフィックがない時間帯はインスタンス数を最小に抑えコストを最適化できる
  • VPC コネクタで RDS、ElastiCache、DynamoDB などの VPC 内リソースにプライベートアクセスできる
  • 自動デプロイで GitHub へのプッシュをトリガーにビルドとデプロイが自動実行され、CI/CD パイプラインの構築が不要
  • ECS や EKS と比較してインフラの設定項目が大幅に少なく、コンテナ運用の学習コストを最小化できる

同じテーマの記事

コンテナデプロイの簡素化 - AWS App Runner で実現するゼロ設定デプロイ AWS App Runner を使ったコンテナ Web アプリケーションのデプロイ方法を解説。ECS/Fargate との使い分け、自動スケーリング、VPC 統合、CI/CD パイプラインとの連携まで実践的に紹介します。 AWS App Runner でコンテナ Web アプリを即座にデプロイ - ソースコードからの自動ビルドと HTTPS 公開 App Runner によるコンテナアプリケーションのデプロイ、自動スケーリング、カスタムドメインの設定を解説します。 AWS App2Container で既存アプリをコンテナ化 - Java/.NET アプリの ECS/EKS 移行 App2Container による既存アプリケーションの分析、Dockerfile 生成、ECS/EKS へのデプロイを解説します。 コンテナ最適化 OS - Bottlerocket でコンテナホストのセキュリティと運用を強化する AWS Bottlerocket を使ったコンテナホストの最適化を解説。最小限の OS 設計、自動更新、不変インフラ、ECS/EKS との統合を紹介します。 Amazon ECR のコンテナイメージ管理 - ライフサイクルポリシーとイメージスキャン ECR のプライベートリポジトリ管理、ライフサイクルポリシーによるイメージクリーンアップ、イメージスキャンの運用を解説します。 コンテナオーケストレーション - Amazon EKS で実現する Kubernetes 運用の最適化 Amazon EKS を活用した Kubernetes のマネージド運用を解説します。 AWS Fargate によるサーバーレスコンテナ運用 - ECS と EKS での活用パターン Fargate によるサーバーレスコンテナの運用、ECS と EKS での使い分け、タスクサイジングとコスト最適化の手法を解説します。