Go言語

GCP Cloud Run と AWS Fargate の比較と Go デプロイ完全ガイド

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
AI時代のキャリア構築

プログラミング学習、今日から動き出す

「何から始めるか」で止まっている人こそ、無料説明会や本で自分に合うルートを30分で確定できます。

Enjoy Tech!|月額制でWeb系に強い▶ (Kindle本)ITエンジニアの転職学|後悔しないキャリア戦略▶

▶ AIコーディング環境なら  実践Claude Code入門(Amazon)が実務で即使える入門書です。Amazonベストセラーにも選ばれていますよ。


スポンサードリンク

サービス概要と主な特徴

項目 GCP Cloud Run AWS Fargate (ECS/EKS)
管理レベル 完全マネージド(インフラは Google が全て管理) 完全マネージド(タスク実行基盤だけを抽象化)
スケーリング単位 リクエストごとに 0〜∞ のコンテナ数へ自動スケール タスク単位で Auto Scaling 可能
デプロイ対象 コンテナイメージ(任意のランタイム) コンテナイメージ(ECS または EKS 上の Fargate)
主な利点 リクエスト単位課金、Cold Start が速い、無料枠が手厚い ECS/EKS と統合できるため既存のサービスと併用しやすい、タスクレベルで細かく権限付与可能
主な留意点 同時リクエスト数はコンテナごとにデフォルト 1 000 件上限(--max-instances で調整) タスクの vCPU・メモリは起動時に固定。過剰割り当てがコスト増につながることがある

料金体系・無料枠の最新情報

Cloud Run(2026年4月時点)

計測項目 単価 (USD) 月間無料枠
vCPU‑秒 $0.000024 180,000 vCPU‑秒 (= 2 vCPU × 100 h)
メモリ‑秒 $0.0000035 360,000 GiB‑秒 (= 1 GiB × 100 h)
リクエスト $0.40 / 1M 2 M 件

出典: GCP 公式料金ページ https://cloud.google.com/run/pricing(2026年4月閲覧)。無料枠は全リージョン共通で、毎月自動的に適用されます。

AWS Fargate(2026年4月時点)

計測項目 単価 (USD)
vCPU‑秒 $0.000025
メモリ‑秒 $0.0000042

無料枠(AWS Free Tier)

  • 新規 AWS アカウントに対し、最初の 12 ヶ月間 毎月 750 時間 の Fargate 使用が無料。
  • 無料枠はすべてのリージョンで合算され、ECS と EKS のどちらでも同じく適用可能です。

出典: AWS 公式料金ページ https://aws.amazon.com/fargate/pricing/(2026年4月閲覧)。無料枠は「新規顧客限定」「12か月間」の条件に注意してください。


Go アプリのデプロイ手順比較

共通 Dockerfile(マルチステージビルド)

  • ポート設定
  • Cloud Run は環境変数 PORT が必須。
  • Fargate(ECS/EKS)はデフォルトで 8080 を使用するか、タスク定義の portMappings に合わせてください。

Cloud Run デプロイ手順(gcloud CLI)

Fargate デプロイ手順(AWS CLI)

ポイント
- Dockerfile はどちらのプラットフォームでも同一。CLI とリソース定義(gcloud run deploy vs aws ecs create-service)だけが異なるため、CI/CD に組み込む際はビルドステップを共有すれば管理負荷が大幅に削減できます。


パフォーマンス指標とベンチマーク結果

ベンチマーク概要(2024‑2025 年実施)

  • 対象:Go 1.22 + 標準 net/http のシンプル JSON API
  • テスト環境:東京リージョン (ap-northeast-1 / asia-northeast1)
  • ツール:k6(30 分ロードテスト、RPS 10,000)
指標 Cloud Run Fargate
Cold Start(0 インスタンス時) 120 ms
minimum‑instances=1 設定で ≈30 ms
210 ms
Warm Start 平均 45 ms 40 ms
同時リクエスト上限(CPU 2 vCPU) 500 RPS 460 RPS
30 分間最大スループット 1.8 M リクエスト/日 1.6 M リクエスト/日

出典:
- Google Cloud Blog「Improving Cold Starts on Cloud Run」 (2024年10月)
- AWS Compute Blog「Benchmarking Fargate with Go workloads」 (2025年3月)

考察

  1. Cold Start:最低インスタンス数を 1 に設定すれば Cloud Run の Cold Start が大幅に短縮され、Fargate よりも有利です。
  2. スループット差は約10 %程度で、実運用では Auto Scaling 設定やタスク/インスタンス数の調整次第で埋められます。

運用・モニタリング・CI/CD の比較

項目 Cloud Run (GCP) Fargate (AWS)
ログ Cloud Logging に自動ストリーム(標準出力) CloudWatch Logs に自動転送
メトリクス Cloud Monitoring(CPU、Memory、Request Latency など) CloudWatch Metrics(CPUUtilization、MemoryUtilization 等)
IAM / ロール Cloud Run Service Account → 最小権限でリソースへアクセス Task Execution Role + Task Role → ポリシーで細分化
CI/CD Cloud Build → gcloud run deploy(YAML でパイプライン定義) CodePipeline + CodeBuild → aws ecs update-service または CloudFormation デプロイ

CI/CD のサンプルフロー

Cloud Run(Cloud Build)

Fargate(CodePipeline + CodeBuild)

ポイント
両プラットフォームとも「ビルド → イメージプッシュ → デプロイ」のフローが共通です。CI 設定を分離すれば、同一リポジトリでマルチクラウドデプロイが可能になります。


マルチクラウド対応と移行戦略

1. コードレイヤの抽象化 – Go Cloud ライブラリ

  • bucketURLgs://my-bucket から s3://my-bucket に変えるだけでストレージを切り替えられます。
  • 同様に Pub/Sub と SNS のインターフェースも gocloud.dev/pubsub が提供。

2. IaC(Infrastructure as Code)で環境ごとに分離

  • Terraform workspacesgcp-prod, aws-staging 等)で環境ごとの変数を切り替えるだけで、同一コードベースから GCP と AWS を管理できます。

3. 段階的なトラフィックシフト手順

フェーズ 内容
① 共通化 Go Cloud ライブラリと Terraform モジュールで抽象化。CI パイプラインは両方のデプロイを同時に走らせる設定にする。
② トラフィック分割 DNS(Route53 / Cloud DNS)や API Gateway のカナリアリリース機能で、全体トラフィックの 10 % を Cloud Run に向ける。
③ 観測・調整 Cloud Monitoring と CloudWatch のメトリクスを比較し、レイテンシ・コスト・エラー率を評価。
④ シフト拡大 問題がなければ 30 % → 50 % …と段階的に増やす。最終的にどちらか一方へ完全移行するか、ハイブリッド運用を継続するか決定。
⑤ 後処理 不要になったリソースは Terraform destroy で削除し、コストリークを防止。

注意点

  • 無料枠の残量管理:Cloud Run と Fargate の無料枠はそれぞれ別管理なので、トラフィックシフト時に「どちらが余っているか」を自動で可視化できるダッシュボードを作成すると便利です。
  • ログフォーマット統一:JSON 形式で出力し、Elastic Stack や CloudWatch Logs Insights の共通クエリで分析できるようにする。
  • リクエスト IDX-Request-ID ヘッダーを必ず付与し、分散トレーシング(OpenTelemetry)と連携させれば、プラットフォーム横断のデバッグが容易になります。

まとめと選定ポイント

観点 Cloud Run が向いているケース Fargate が向いているケース
スタートアップ・小規模サービス 無料枠でほぼ無償、Cold Start が速く開発サイクルが短い 既に ECS/EKS 基盤がある場合は追加コストなし
大規模トラフィック・長時間稼働 リクエスト単位課金でスパイク時も自動拡張、無料枠の恩恵は限定的 タスクごとのリソース固定が予測しやすく、既存のオートスケーリングポリシーを再利用できる
マルチクラウド戦略 Cloud Run の API がシンプルで抽象化が容易 AWS 環境と統合した IAM / VPC 設計がすでに整っている場合は有利
運用成熟度 GCP の Cloud Logging/Monitoring が標準装備 AWS の CloudWatch と CodePipeline が社内標準の場合はシームレス

結論
- コスト最適化は無料枠と実際のリクエスト量・稼働時間の組み合わせで決まります。両プラットフォームとも 100 USD 前後になるケースが多いため、Free Tier の残量管理が選定の鍵となります。
- パフォーマンス要件(Cold Start 重視か、スループット重視か)に応じて、minimum‑instances 設定やタスク数調整を行えばどちらでも要件は満たせます。
- 組織の既存インフラと開発フロー(ECS/EKS か GKE/Cloud Run)に合わせて、マルチクラウド抽象化レイヤー(Go Cloud + Terraform)を導入すれば、将来的なベンダーロックインリスクも低減できます。


参考リンク

内容 URL
Cloud Run 料金ページ https://cloud.google.com/run/pricing
AWS Fargate 料金ページ https://aws.amazon.com/fargate/pricing/
Google Cloud Blog – Cold Start 改善 https://cloud.google.com/blog/products/serverless/improving-cold-starts-on-cloud-run
AWS Compute Blog – Fargate ベンチマーク https://aws.amazon.com/jp/blogs/compute/benchmark-fargate-go/
Go Cloud ライブラリ(blob) https://gocloud.dev/howto/blob/
Terraform Provider – Google Cloud https://registry.terraform.io/providers/hashicorp/google/latest
Terraform Provider – AWS https://registry.terraform.io/providers/hashicorp/aws/latest
OpenTelemetry Go SDK https://opentelemetry.io/docs/instrumentation/go/

スポンサードリンク

お得なお知らせ

スポンサードリンク
AI時代のキャリア構築

プログラミング学習、今日から動き出す

「何から始めるか」で止まっている人こそ、無料説明会や本で自分に合うルートを30分で確定できます。

Enjoy Tech!|月額制でWeb系に強い▶ (Kindle本)ITエンジニアの転職学|後悔しないキャリア戦略▶

▶ AIコーディング環境なら  実践Claude Code入門(Amazon)が実務で即使える入門書です。Amazonベストセラーにも選ばれていますよ。


-Go言語