App Runner

【VPC外リージョンサービス / ENIでVPC接続】

App Runner は、ソースコードやコンテナイメージからWebアプリケーションやAPIを簡単に公開できる コンテナアプリケーション実行サービス / PaaS です。

ソースコード / コンテナイメージ / GitHub / ECR 連携 に対応しており、リポジトリから自動的にビルド・デプロイ・運用までを実行します。主要な言語である Python / Node.js / Java / Go / .NET / Ruby に対応し、幅広い開発スタックをサポートします。

App Runner は、リクエスト数に基づくスケーリング / オートスケール / ゼロスケーリング によってトラフィック変動に自動対応し、インフラ管理を意識せずにスケーラブルなアプリを運用できます。

VPC接続 / ロードバランシング / HTTPS / カスタムドメイン / TLS証明書自動管理 に対応しており、安全で信頼性の高い通信環境を提供します。

CodePipeline / CodeBuild / ECR / CloudFormation / CDK / AppConfig 連携 により、DevOpsやIaC環境との統合も容易です。

重要用語

オートスケール
ゼロスケーリング

ユースケース

ソースコードからの簡単Webアプリ公開Gitリポジトリやコンテナイメージを指定するだけで、ビルド・デプロイ・スケーリングが自動化されたWebアプリケーションを公開する。
小〜中規模APIサービスのホスティングインフラ設定を細かく行わずに、シンプルなバックエンドAPIを自動スケールするコンテナサービスとして提供する。
PoCや開発用の素早い環境立ち上げ短期間で検証したいアプリケーションを、最小限の設定でインターネット公開し、開発チームや顧客と共有する。

ベストプラクティス

コンテナイメージの最適化不要な依存を減らしイメージサイズを小さく保つ。
オートスケーリング設定同時リクエスト数などに基づいてインスタンス数を自動調整する。
環境変数とシークレット管理機密情報はSecrets ManagerやSSMから参照する。

高可用性・バックアップ・リトライ

高可用性・バックアップ・リトライ設計のポイント
【デフォルト】AWS内部で冗長化
 ・コントロールプレーン
 ・アプリ実行環境
 ・サービスエンドポイント
 ・コンテナインフラの自動置換
 ・デプロイ基盤(CI/CD パイプライン)
 ・ビルド環境

セキュリティ

関連サービス設定内容
WAF(アプリケーション層の脅威に対する防御)-
Shield(DDoS攻撃からのリソース保護)Shield Standardは常時有効
【CloudFrontを使用しない場合】
 Shield Advancedの有効化を推奨
ACM(SSL/TLS証明書の自動管理)HTTPS利用時はACM証明書が必須
リージョン:VPCのあるリージョン
KMS(データの暗号化と鍵の安全管理)-
Secrets Manager(機密情報の安全管理)シークレット(秘密情報)の作成が推奨
 環境変数として外部APIキーやDB認証情報
SSM Parameter Store(設定情報の一元管理)-
CloudTrail(操作履歴の記録・監査・追跡)【自動記録】
作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI)
データ操作は追跡できない(データプレーンAPI)
Config(リソースの構成状態・設定変更を記録)-
GuardDuty(脅威を自動検出)【GuardDutyが有効な場合】
アプリ設定変更のAPI異常検知

ログ・監視

ログ出力先ログの種類
CloudWatch Logsアプリケーションログ
CloudWatch Logs優先の原則
標準メトリクス
メトリクス名説明

制限値(固定値/ハードリミット/ソフトリミット)

ハードリミット制限値
サービスあたりの同時実行数200
最大CPU4 vCPU
最大メモリ12 GB
ヘルスチェックのタイムアウト最大20秒

AWS CLIのサンプルコード

CloudFormationのサンプルコード

Terraformのサンプルコード

料金計算

課金項目説明
コンピューティングvCPUとメモリの使用時間
リクエスト数処理したリクエスト数
ビルド時間ソースコードからのビルド時間
データ転送アウトバウンドデータ転送量
料金計算ツール

公式ページ

AWSドキュメント App Runner