Go言語

Go アプリを GCP にデプロイする完全ガイド【App Engine・Cloud Run・GKE】

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

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

前提条件とローカル環境の構築

このセクションでは、デプロイに必須なツールのインストール手順と認証設定方法を紹介します。
正しいバージョン管理と認証情報の設定は、以降のデプロイ作業で 「Permission denied」 エラーやビルド失敗を防ぐ鍵となります。

必要ツール

ツール 推奨バージョン インストール方法
Go 1.22 以上 https://go.dev/dl/ から OS に合わせて取得し、go version で確認
Google Cloud SDK (gcloud) 常に最新(2026‑07‑06 時点で 456.0.0 推奨は公式インストーラ curl https://sdk.cloud.google.com | bash
インタラクティブに最新版が取得され、将来的なバージョン固定のリスクを回避できます。公式インストール手順 を参照

ポイントgcloud components update で随時最新コンポーネントへ更新できます。

認証設定とプロジェクトの選択

CI/CD ではサービスアカウント、ローカル開発ではユーザー認証のどちらでも構いませんが、権限は最小限に絞ることを推奨します。

gcloud projects describe $PROJECT_ID が正常に情報を返せば認証・設定は完了です。


デプロイパターン① App Engine(標準・フレキシブル)

App Engine は マネージド PaaS で、インフラ管理が不要な点が最大の魅力です。
本節では「標準環境」と「フレキシブル環境」の違いと、それぞれに最適なデプロイ手順を示します。

App Engine 標準環境

概要:Google が提供するランタイム(Go 1.22)をそのまま利用でき、コンテナ化は不要です。
無料枠は 28 h/日(F1 インスタンス) ですが、2026 年 7 月時点の公式料金ページで最新情報をご確認ください。App Engine 標準 の料金表

デプロイ手順

  • ポイント
  • runtime: go122 が公式にサポートされていることを確認(2026‑07‑06 時点)。
  • 無料枠の上限はインスタンス時間で計測されるため、トラフィックが少ないアプリは コストゼロ で運用可能です。

冷启动 (Cold Start) の実測

標準環境はコンテナではなく「ランタイム」なので、Cold Start は概ね 数秒 程度です。Google のベンチマーク(2025 年リリース)によると、F1 インスタンスの初回起動時間は 2.3 〜 4.1 秒 となっています。公式ドキュメント を参照してください。


App Engine フレキシブル環境

概要:カスタム Docker コンテナを使用でき、メモリやファイルサイズの上限が緩和されます。
課金は インスタンス時間 + 使用したリソース で、無料枠はありません(2026 年時点)。

デプロイ手順

  • ポイント
  • runtime: custom とすることで、任意の Dockerfile を利用できる。
  • フレキシブル環境は常時起動しているインスタンスがあるため、Cold Start はほぼ 0 秒 に近い。

参考リンク


デプロイパターン② Cloud Run(マネージド)

Cloud Run は 完全マネージドなコンテナ実行基盤 で、リクエスト単位の自動スケーリングが特徴です。
本節では最適化された Docker イメージと CI/CD パイプラインを構築する手順を示します。

冷启动時間の根拠

公式ベンチマーク(2025‑12‑01 公開)によると、30 MB 以下の Distroless コンテナasia-northeast1 リージョンでデプロイした場合の Cold Start は 約 400 ms です。
Cloud Run のパフォーマンスガイド を参照してください。

マルチステージ Dockerfile(30 MB 未満)

  • ポイント
  • -ldflags="-s -w" によりシンボル情報を除去し、イメージサイズを削減。
  • Distroless イメージはセキュリティ面でも推奨されます。

Cloud Build 設定 (cloudbuild.yaml)

手動デプロイ(クイックスタート)

  • 無料枠:2026‑07‑06 時点で 月間 2 GiB メモリ・2 vCPU(約 180 h/日) が無料です。詳細は Cloud Run の料金ページ を確認してください。

デプロイパターン③ GKE(Autopilot)

Kubernetes クラスタが必要な場合は GKE Autopilot が管理負荷を最小化します。
本節では Helm によるデプロイと、シンプルな kubectl マニフェストの例を示します。

Helm チャート作成

主要な変更点(go-app/values.yaml

デプロイコマンド

kubectl マニフェスト(シングルファイル)

  • 無料枠:GKE Autopilot は無料枠がなく、使用したノードリソースに対して従量課金されます。2026 年の料金は GKE Autopilot の価格ページ を参照。

CI/CD パイプラインとモニタリング

自動化と可視化が整備されていれば、デプロイは ボタン一つ で完了し、障害発生時も迅速に対応できます。ここでは GitHub Actions + Cloud Build の連携例と、主要なモニタリングサービスの有効化手順を示します。

GitHub Actions → Cloud Build トリガー

  1. Cloud Build トリガー作成(GitHub リポジトリを紐付け)
  2. ビルド構成は先述の cloudbuild.yaml を使用。
  3. GitHub Actions ワークフロー (.github/workflows/deploy.yml)

  • ポイント
  • 環境変数 _ENV によってステージング/本番の設定を分岐させられる。
  • gcloud builds submit はコード変更時に自動でコンテナビルド・デプロイを実行。

ステージングと本番の分離戦略

方法 説明
サービス名で分割 例: go-app-stggo-app-prod を別々にデプロイ。Cloud Run のトラフィックシフト機能で段階的リリースが可能。
Revision 利用 Cloud Run は自動的に Revision を作成。--revision-suffix=stg などで明示的に名前付けし、トラフィック比率を調整できる。
プロジェクト分離(大型組織向け) 本番と開発用に別々の GCP プロジェクトを作成し、IAM ポリシーでアクセス制御。

ロギング・エラーレポート・Profiler の有効化

サービス 有効化手順 目的
Cloud Logging Go の標準 log パッケージだけで自動収集。必要に応じて google-cloud-logging-go ライブラリで構造化ログを出力。 ログ検索・分析
Error Reporting runtime/debug と組み合わせ、パニック情報を自動送信。cloud.google.com/go/errorreporting をインポートし、errorreporting.NewClient で初期化。 エラー集計とアラート
Cloud Profiler デプロイ時に環境変数 GOOGLE_CLOUD_PROFILER=enabled を設定(App Engine: --enable-profiler オプション、Cloud Run/GKE は env で指定)。 パフォーマンスボトルネックの可視化


コストとスケーラビリティ比較(2026‑07‑06 時点)

項目 App Engine 標準 Cloud Run (マネージド) GKE Autopilot
課金モデル インスタンス時間+使用 CPU/メモリ リクエスト数 + vCPU・メモリ秒 ノード単位の従量課金(CPU/メモリ)
無料枠 28 h/日(F1 インスタンス)※2026‑07‑06 時点 月間 2 GiB メモリ・2 vCPU(約 180 h/日) 無料枠なし
オートスケール リクエストベースの自動インスタンス増減 リクエスト単位で即時スケール、0‑1 秒以内に起動可能(小イメージの場合) Horizontal Pod Autoscaler (HPA) によりポッド数制御
Cold Start 数秒程度(F1) 400 ms 前後(30 MB 以下のイメージ) 常駐ポッドのためなし
適用シーン 小規模・低トラフィック、無料枠活用したい場合 瞬発的なピークやマイクロサービス向け 大規模・長期間稼働、カスタムネットワークが必要

各料金は 2026‑07‑06 の公式価格ページを基にしています。最新情報は必ず各サービスの「Pricing」ページをご確認ください。


よくあるエラーと対処法

エラー 主な原因 推奨対応
PERMISSION_DENIED (App Engine デプロイ) サービスアカウントにロール不足 IAM で App Engine Deployer(または Editor)ロール付与
Docker ビルド失敗 (could not resolve) ベースイメージがプライベート、またはネットワーク制限 パブリックレジストリ使用か、gcloud auth configure-docker で認証設定
API 呼び出し throttled クォータ超過 リトライロジック追加・クォータ増加申請
コンテナヘルスチェック失敗 アプリ起動前に /health が呼ばれる readinessProbe の遅延 (initialDelaySeconds) を調整

まとめ

  • ローカル環境は Go 1.22+ と公式インストーラで取得した最新 Google Cloud SDK を使用し、認証は最小権限のサービスアカウントで行う。
  • App Engine 標準は設定がシンプルで無料枠を活用できるが、Cold Start は数秒程度。フレキシブルはカスタム Docker が必須だが、起動遅延はほぼなし。
  • Cloud Runはマルチステージ Docker でイメージサイズ < 30 MB に抑えると Cold Start が約400 ms と高速。公式無料枠も利用可能。
  • GKE Autopilotは高度なカスタマイズが必要な大規模サービス向け。Helm による再利用性の高いデプロイが推奨される。
  • CI/CDは GitHub Actions → Cloud Build のフローで一元管理し、環境変数や Revision を使ってステージング/本番を分離できる。
  • モニタリングは Cloud Logging・Error Reporting・Profiler を有効化すれば、障害検知とパフォーマンス改善が容易になる。

上記手順とベストプラクティスに沿って実装すれば、Go アプリを GCP 上で 安全かつコスト効率よく デプロイできるはずです。公式ドキュメントのリンク先は随時確認し、2026 年以降も最新情報へアップデートしてください。

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Go言語