Cloud RunとApp Runner、結局どっちを選ぶべき?料金と実用性から徹底比較してみた
こんにちは!
サーバーレスなコンテナ実行環境を選ぶとき、「Cloud RunとApp Runnerって何が違うの?」と悩んだことはありませんか?
どちらも「コンテナをデプロイするだけで動く」サービスなので、一見すると似ているように見えます。ですが、詳しく調べてみると、料金体系や運用のしやすさに大きな違いがあることが分かりました。
特に気になるのが料金面。
「Cloud Runにデプロイできたら、どれほどよかったでしょう...」と思うほど、料金差が大きいんです。
そこで今回は、実際の料金計算と運用面の違いを詳しく比較してみました!
基本的にAWSにインフラを集中させたい派の私でも、「料金だけ見たらCloud Run一択だな...」と思うほどの差があります。
それでもApp Runnerを選ぶ理由や、実際の選択指針をお伝えします。
初心者の方でもわかりやすいよう、実際の計算過程も含めて丁寧に解説していきます!
忙しい人のために要約
- 料金面: Cloud Runが圧倒的に安い(特に短時間利用)
- AWS集約: App RunnerはAWSエコシステムとの親和性が高い
- スケール: Cloud Runは完全なスケールtoゼロ、App Runnerはメモリ常時確保
-
選択指針:
- Cloud Run → コスト重視、短時間利用
- App Runner → AWS統一、VPC連携重視
この記事を読むと得られるメリット
- 料金体系の違いを具体的な数字で理解できる
- どちらのサービスを選ぶべきか判断基準が明確になる
- 実際の運用での注意点がわかる
- 将来的なコスト見積もりができるようになる
それでは、早速本題に入ります!
各サービスの特徴と基本アーキテクチャ
Google Cloud Run - 真のサーバーレス体験
Cloud Runは、Knativeをベースとしたフルマネージドサーバーレスプラットフォームです。
アーキテクチャ上の特徴:
- リクエスト駆動型の完全スケールtoゼロ実装
- 秒単位での精密な課金システム
- 充実した無料利用枠の提供
- コールドスタート発生の可能性
AWS App Runner - ハイブリッドアプローチ
AWS App Runnerは、AWSが提供するマネージドコンテナ実行環境です。
アーキテクチャ上の特徴:
- メモリ常時プロビジョニング + CPU従量課金のハイブリッド方式
- 処理実行時のみCPUリソース課金
- AWSネイティブサービスとの深い統合
- 安定したレスポンス性能の提供
料金比較の結論(詳細計算は後述)
まず先に結論をお示しします。以下の条件での月額料金比較です:
前提条件:
- CPU: 1 vCPU
- メモリ: 2GB
- リージョン: 東京
料金比較結果
| 稼働時間 | Cloud Run | App Runner | 差額 |
|---|---|---|---|
| 1日2時間 | $1.04 (157円) | $17.82 (2,673円) | 17.1倍の差 |
| 1日4時間 | $7.31 (1,096円) | $22.68 (3,402円) | 3.1倍の差 |
| 1日8時間 | $24.62 (3,693円) | $32.40 (4,860円) | 1.3倍の差 |
| 1日12時間 | $39.93 (5,990円) | $42.12 (6,318円) | 1.05倍の差 |
| 1日24時間 | $85.07 (12,761円) | $71.28 (10,692円) | App Runnerが安い |
重要なポイント:
- 短時間利用: Cloud Runが圧倒的に安い
- 長時間利用: 24時間稼働ならApp Runnerが安くなる
- 境界点: 約20時間/日でコストが逆転
この料金差の理由と詳細な計算過程を、次の章で解説します。
詳細な料金比較(実際に計算してみた)
前提条件
比較のため、以下のミニマム構成で計算します:
- CPU: 1 vCPU
- メモリ: 2GB
- リージョン: 東京(asia-northeast1 / ap-northeast-1)
- 稼働時間: 1日2時間 / 1日4時間
Cloud Run(リクエスト課金モード)詳細計算
公式料金表を参照
無料枠(月次):
- vCPU時間: 180,000 vCPU-sec
- メモリ時間: 360,000 GiB-sec
- リクエスト数: 2,000,000回
課金単価(asia-northeast1):
- vCPU: $0.000024/vCPU-sec
- メモリ: $0.0000025/GiB-sec
1日2時間稼働の場合
月間稼働時間: 2時間 × 30日 = 60時間 = 216,000秒
必要リソース:
- vCPU: 1 vCPU × 216,000秒 = 216,000 vCPU-sec
- メモリ: 2 GiB × 216,000秒 = 432,000 GiB-sec
無料枠との比較:
- vCPU超過: 216,000 - 180,000 = 36,000 vCPU-sec
- メモリ超過: 432,000 - 360,000 = 72,000 GiB-sec
課金額:
- vCPU課金: 36,000 × $0.000024 = $0.864
- メモリ課金: 72,000 × $0.0000025 = $0.18
- 合計: $1.044 ≈ $1.04
日本円換算(1ドル=150円): 約157円/月
1日4時間稼働の場合
月間稼働時間: 4時間 × 30日 = 120時間 = 432,000秒
必要リソース:
- vCPU: 1 vCPU × 432,000秒 = 432,000 vCPU-sec
- メモリ: 2 GiB × 432,000秒 = 864,000 GiB-sec
無料枠との比較:
- vCPU超過: 432,000 - 180,000 = 252,000 vCPU-sec
- メモリ超過: 864,000 - 360,000 = 504,000 GiB-sec
課金額:
- vCPU課金: 252,000 × $0.000024 = $6.048
- メモリ課金: 504,000 × $0.0000025 = $1.26
- 合計: $7.308 ≈ $7.31
日本円換算: 約1,096円/月
App Runner 詳細計算
公式料金表を参照
課金構成:
- プロビジョンドコンテナ(メモリ): $0.009/GB-hour
- アクティブコンテナ(CPU): $0.081/vCPU-hour
固定費(メモリ常時プロビジョン)
月間メモリ課金: 2GB × $0.009/GB-hour × 24時間 × 30日 = $12.96
1日2時間稼働の場合
月間CPU稼働時間: 2時間 × 30日 = 60時間
CPU課金: 1 vCPU × 60時間 × $0.081/vCPU-hour = $4.86
合計: $12.96 + $4.86 = $17.82
日本円換算: 約2,673円/月
1日4時間稼働の場合
月間CPU稼働時間: 4時間 × 30日 = 120時間
CPU課金: 1 vCPU × 120時間 × $0.081/vCPU-hour = $9.72
合計: $12.96 + $9.72 = $22.68
日本円換算: 約3,402円/月
App Runnerを選ぶべき6つのケース
コスト面でのCloud Run優位性は明確ですが、総合的な判断では以下の要因が重要になります。
1. インフラストラクチャ統合による運用最適化
主要AWSサービスとのネイティブ連携
AWS中心のインフラ戦略では、以下の利点が得られます:
# App Runnerの設定例
services:
api:
image: your-app:latest
environment:
- DATABASE_URL=postgresql://rds-endpoint
- S3_BUCKET=your-bucket
- AWS_REGION=ap-northeast-1
# IAMロールで自動認証
instance_role: arn:aws:iam::account:role/AppRunnerRole
具体的なメリット:
- IAMロールによるシームレスな認証
- VPC内リソースへの直接アクセス
- CloudWatch Logsでの統一ログ管理
- Route 53でのDNS管理
運用コスト削減効果:
マルチクラウド運用のオーバーヘッドを考慮すると、月数千円の料金差は相殺される可能性があります。
2. VPC統合による高いセキュリティ
App RunnerはVPCコネクタにより、プライベートサブネット内のRDSやElastiCacheに直接接続できます。
App Runner ← VPCコネクタ → プライベートサブネット → RDS
Cloud Runの場合:
Cloud Run → インターネット → Cloud SQL Proxy → Cloud SQL
またはVPCコネクタが必要になり、設定の複雑さが増します。
3. 予測可能なパフォーマンス
App Runnerはメモリが常時プロビジョンされているため:
- コールドスタート問題なし
- 一定のメモリ使用量を前提とした設計が可能
- レスポンス時間の予測が容易
リアルタイム性が重要なAPIや、SLAが厳しいサービスでは重要な要素です。
4. 組織レベルでのクラウド戦略整合性
統制とガバナンス:
- 単一プロバイダー戦略による管理効率化
- 統一されたセキュリティフレームワーク
- 調達・課金プロセスの一本化
- 技術スタックの専門性向上
5. 自動スケーリングの設定が簡単
App Runnerの自動スケーリング設定:
auto_scaling_configuration:
max_concurrency: 100
max_size: 10
min_size: 1
Cloud Runの場合、より詳細な設定が必要:
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/maxScale: "10"
autoscaling.knative.dev/minScale: "0"
run.googleapis.com/cpu-throttling: "false"
6. 長時間稼働での料金差縮小
稼働時間が長くなると料金差が縮まります:
| 1日稼働時間 | Cloud Run | App Runner | 料金差 |
|---|---|---|---|
| 8時間 | $24.62 | $32.40 | 1.3倍 |
| 12時間 | $39.93 | $42.12 | 1.05倍 |
| 24時間 | $85.07 | $71.28 | App Runnerが安い |
24時間稼働なら、App Runnerの方が安くなります!
Cloud Runを選ぶべき4つのケース
1. コスト最優先プロジェクト
スタートアップや個人プロジェクトなど、とにかくコストを抑えたい場合はCloud Run一択です。
特に開発初期やMVP段階では、月157円 vs 2,673円の差は大きいでしょう。
2. トラフィックが不規則・低頻度
使用パターン:
- バッチ処理(1日数回実行)
- Webhookエンドポイント(不定期実行)
- 開発・テスト環境
- デモアプリケーション
完全なスケールtoゼロにより、使わない時間のコストが0になります。
3. Googleサービスとの連携重視
Google Workspace、Firebase、BigQuery等との連携が必要な場合
4. 地理的分散が必要
Cloud Runは多数のリージョンで利用可能で、グローバル展開が容易です。
よくある質問と回答
Q: コールドスタートはどの程度影響しますか?
A: Cloud Runの場合、以下の要因で変わります:
- 軽量なNode.js: 500ms-1s
- 重いJavaアプリ: 3-5s
- 最小インスタンス設定で軽減可能
App Runnerは常時プロビジョンのため、コールドスタートはほぼありません。
Q: どちらがより安全か?
A: セキュリティレベルは同等ですが、アプローチが異なります:
- Cloud Run: Google Cloudのゼロトラストアーキテクチャ
- App Runner: AWS VPCによる境界防御
既存のセキュリティポリシーに合わせて選択しましょう。
Q: 将来的にKubernetesに移行予定ですが...?
A: Cloud RunはKnative基盤のため、GKEへの移行が比較的容易です。
App RunnerからEKSへの移行には、より多くの調整が必要になります。
最終判断 - 各サービスの適用領域
コスト分析の結果、Cloud Runの価格優位性は否定できない事実です。特に短時間利用では最大17倍の差が生じます...
ただし、技術選択では以下の観点もしっかり検討したいところです:
- インフラ統合戦略との整合性
- 組織の技術的成熟度
- コンプライアンス・セキュリティ要件
- 中長期的な拡張性計画
AWS統一戦略を採用する組織では、短期的なコスト差よりも運用効率性を重視してApp Runnerを選択するのが戦略的に合理的な場合があります。
一方、新規事業や個人プロジェクトでは、Cloud Runのコスト効率性が大きなメリットがありそうですね。
実際の運用経験や追加の比較観点がありましたら、ぜひ議論に参加していただければと思います。
参考リンク
株式会社StellarCreate(stellar-create.co.jp)のエンジニアブログです。 プロダクト指向のフルスタックエンジニアを目指す方募集中です! カジュアル面談で気軽に雑談しましょう!→ recruit.stellar-create.co.jp/
Discussion