Apigee

Apigee Edge と Cloud Run の統合手順と必須設定ガイド

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

Contents

スポンサードリンク

統合前提条件と必須 API の有効化

Apigee Edge と Cloud Run をシームレスに連携させるには、まず Google Cloud の基盤サービスをすべて有効化 し、適切な IAM ロールを付与しておくことが不可欠です。これにより、デプロイ時の権限エラーやネットワーク接続不良といった障害を未然に防げます。本セクションでは、必要な API と推奨される有効化手順を具体的に示します。

必要な Google Cloud サービス

以下の API は Apigee Edge と Cloud Run の統合で必ず有効化しておくべきサービスです。表は各 API の主な役割と、無効化した場合に起こり得る影響を併記しています。

API 主な役割 無効化時の影響
apigee.googleapis.com Apigee Edge 管理機能(組織・環境作成、プロキシ管理) 組織や環境が作れず、API プロキシをデプロイできない
run.googleapis.com Cloud Run(フルマネージド) コンテナ化したバックエンドが起動しない
serviceusage.googleapis.com API の有効化・利用状況管理 他サービスの有効化操作が失敗する
cloudlogging.googleapis.com ログ収集と可視化 Cloud Run と Apigee の実行ログが取得できず、トラブルシューティングが困難になる
iam.googleapis.com IAM ポリシー管理 権限付与・ロール設定ができない

有効化手順(gcloud CLI)

コンソールからも 「API とサービス」→「ライブラリ」 で同様に有効化できます。

詳細は公式ドキュメントの [統合の前提条件](https://cloud.google.com/apigee/docs/api-platform/integrations/prerequisites)をご参照ください。


IAM ロールと権限設定

適切なロール付与は 最小特権の原則 に沿って行う必要があります。本節では、Apigee‑Cloud Run 連携に最低限必要なロールと、その中身(個別権限)を明示します。

必要ロール一覧

ロール 用途・対象
roles/apigee.admin Apigee 組織・環境の作成・削除、プロキシの管理全般
roles/run.developer Cloud Run サービスの作成・更新・削除
roles/iam.serviceAccountUser 任意のサービスアカウントを代行実行(Adapter や Cloud Run の SA で必要)
roles/apigee.runtimeAgent Apigee Adapter が Runtime API を呼び出す際に最低限必要な権限

roles/apigee.runtimeAgent の最小権限

権限 説明
apigee.environments.invoke 指定環境のプロキシへリクエストを転送できる
apigee.developers.get 開発者情報取得(トラフィック認証に利用)
apigee.apis.get API プロキシ設定の参照
apigee.deployments.get デプロイ状態の確認
serviceusage.services.use Apigee Runtime API の呼び出しを許可

これら以外の権限は不要です。過剰なロール(例: roles/editor)は付与しないようにしてください。

ロール付与コマンド例


Google Cloud プロジェクトと Apigee Edge 環境のセットアップ

このセクションでは、Apigee の組織・環境を 同一 GCP プロジェクト に作成し、Cloud Run と相互に参照できるようにする手順を解説します。正しい構成であれば、API 管理画面から Cloud Run エンドポイントへ直接リンクできます。

Apigee Edge 組織・環境の作成手順

  1. Apigee コンソール(https://cloud.google.com/apigee)にログイン
  2. 左側メニューの 「組織」「新規組織」 をクリックし、対象プロジェクトを選択
  3. 組織 ID は自動生成されますが、変更不可です。覚えやすい文字列(例: myorg)でメモしておきましょう
  4. デフォルト環境 testprod が自動作成されます。エンドポイントは次の形式になります

例: https://myorg-test.apigee.net

VPC 設定と Hybrid との違い

項目 Apigee Edge(パブリック) Apigee Hybrid
エンドポイントの公開範囲 インターネット上に公開された URL が利用可能 プライベート VPC 内でのみアクセスできる
必要なネットワーク構成 基本的に不要。内部サービスへは VPC Connector 経由で呼び出す 完全にプライベートネットワーク上にデプロイし、GKE クラスタが VPC に所属
セキュリティ管理 IAM と Apigee のポリシーで制御 追加で VPC Service Controls 等の GCP ネットワークセキュリティを適用

Edge 環境で内部 Cloud Run 呼び出しが必要な場合

  1. VPC ネットワーク作成(サブネットは Cloud Run と同一リージョン)
    bash
    gcloud compute networks create apigee-vpc --subnet-mode=custom
  2. サブネット作成(例: asia-northeast1
    bash
    gcloud compute networks subnets create apigee-subnet \
    --network=apigee-vpc \
    --region=asia-northeast1 \
    --range=10.0.0.0/24
  3. VPC Access Connector の作成(Cloud Run 側)
    bash
    gcloud compute networks vpc-access connectors create apigee-connector \
    --network=apigee-vpc \
    --region=asia-northeast1 \
    --range=10.8.0.0/28
  4. Cloud Run デプロイ時に --vpc-connector=apigee-connector を付与

Hybrid では 上記 VPC が必須であり、Apigee のコントロールプレーンが GKE にデプロイされる点が大きく異なります。Edge 環境の場合は「オプション」扱いです。


Cloud Run サービスの作成・デプロイ

本節では、シンプルな Python Flask アプリを例に Cloud Build → Artifact Registry → Cloud Run のフローを実装します。コードと設定ファイルはすべてローカルで管理し、CI/CD パイプラインから自動デプロイできる構成です。

1. ソースコード(main.py

2. requirements.txt

3. Dockerfile

4. Cloud Build 設定(cloudbuild.yaml

Artifact Registry リポジトリ作成

ビルド実行

5. Cloud Run デプロイ(認証必須)

ベストプラクティス

  • リージョンは asia-northeast1(東京) または同一アジアリージョンに統一し、レイテンシとデータ所在地要件を満たす
  • メモリは 512 MiB、CPU は自動スケーリングで十分。トラフィックが増える場合は手動で --cpu オプションを調整

Apigee Adapter for Envoy のインストールと構成(最新安定版)

Apigee Adapter は Envoy と連携し、Apigee が発行したポリシーを Cloud Run のサイドカーとして適用できるコンポーネントです。2024 年 10 月時点での 最新版 (v2.0.1) を使用する例を示します(将来的なバージョンは公式リリースページをご確認ください)。

⚠️ 本稿では「2026/02/17 更新版」という情報が未確認だったため、公式に公開されている最新安定版 に置き換えました。実装時は必ずリリースノートを参照し、バージョン番号を合わせてください。

バイナリ取得手順

Envoy 設定(envoy.yaml

以下は Cloud Run のサイドカーとして動作させる最小構成です。Apigee 組織・環境情報サービスアカウントファイル を必ず設定してください。

Service Account の作成と最小権限付与

作成したキーは Secret Manager に格納し、コンテナ起動時に /var/run/secrets/google/service-account.json としてマウントしてください。


API プロキシ作成・認証設定

この章では Apigee Edge の UI(または Management API)を使って API プロキシ を作成し、先ほどデプロイした Cloud Run エンドポイントへリクエストを転送する手順と、Google ID Token を用いた認証フローを紹介します。

1. ターゲットエンドポイントに Cloud Run URL を設定

導入文:Apigee のプロキシはバックエンド URL(Target Endpoint)を正確に指定しないと、リクエストが届かず 404 エラーになることがあります。以下の手順で間違いなく設定しましょう。

  1. Apigee コンソール → 「API プロキシ」「作成」
  2. プロキシ名(例: run-proxy)とベースパス(例: /api/v1/)を入力
  3. Target Endpoint に Cloud Run の URL を貼り付け(例:https://flask-app-abcdefg-uc.a.run.app
  4. 保存後、「Deploy」 ボタンで test 環境へデプロイ

2. Google ID Token の検証ポリシー(Verify JWT)

Apigee が受け取った Authorization ヘッダーに含まれる ID Token を検証し、正当な呼び出し元かどうかを判断します。

3. ヘッダー付与ポリシー(AssignMessage)

Apigee が検証したトークンを Cloud Run に転送する際は、正しい変数名 を使用します。Apigee の JWT フィールドは jwt.id_token ではなく jwt.idToken です(実装例は ${jwt.idToken})。以下のように設定してください。

ポイントVerify-ID-Token ポリシーで検証したトークンは jwt.idToken に格納されます。変数名が合っていないと空ヘッダーが送られ、Cloud Run 側で 401 エラーになるので注意してください。


プロキシのデプロイ・テストとトラブルシューティング

本節では、作成した API プロキスを prod 環境へデプロイし、実際にリクエストを送って動作確認する手順と、代表的なエラーへの対処法をまとめます。

1. デプロイ手順

  1. Apigee コンソールで対象プロキシ(例: run-proxy)を選択
  2. 「Deploy Revision」 → 環境 prod を選んでデプロイ
  3. デプロイ完了後、「Revision」 タブで最新リビジョン番号をメモ

2. テスト実行(curl)

期待されるレスポンス:

3. 代表的エラーと対処法

ステータス 主な原因 確認ポイント
401 Unauthorized トークンが無効、または Verify-ID-Token が失敗 - トークンの有効期限
- Issuer が https://accounts.google.com か確認
- JWKS URL にアクセスできるか
404 Not Found Cloud Run のサービス URL が間違っている - gcloud run services describe ... --format='value(status.url)' で最新 URL を取得
- リージョンが一致しているか
502 Bad Gateway Adapter/Envoy と Cloud Run 間の接続失敗 - サイドカーコンテナのログ (docker logs <container-id>) に connection refused が出ていないか
- VPC Connector が必要かどうか(内部 API 呼び出しの場合)
503 Service Unavailable Cloud Run のインスタンスがスケールアウト中 - Cloud Run の 「リクエスト数」 メトリクスを確認し、CPU/メモリの上限に達していないか

URL 変更時の手順

  1. 新しい Cloud Run URL を取得
    bash
    gcloud run services describe flask-app \
    --region=asia-northeast1 \
    --format='value(status.url)'
  2. Apigee コンソール → 該当プロキシ → Target Endpoint を編集し、URL を貼り付けて保存
  3. Deploy Revisionprod に再デプロイ

監視・ロギング設定と CI/CD パイプライン例

本章では、運用フェーズに必須となる ログの一元管理自動デプロイフロー を具体的に示します。Cloud Logging と Apigee Analytics の連携はすでにデフォルトで有効化されていますが、カスタムロギングや GitHub Actions との組み合わせで更なる可観測性を実現できます。

1. Cloud Logging と Apigee Analytics の連携

項目 設定方法 主な活用シーン
Cloud Run ログ 自動的に projects/<PROJECT_ID>/logs/run.googleapis.com%2Frequest_log に送信 リクエストトレース、エラーレートの可視化
Apigee Analytics Edge コンソール > Analytics タブで閲覧 トラフィック、レイテンシ、ステータスコード別集計
カスタムログ(Python) logging.info("msg", extra={"trace": os.getenv('TRACE_ID')}) で構造化データを出力 Cloud Logging の Log Explorer で検索・フィルタリングが容易

Python アプリ側のサンプルコード

2. CI/CD パイプライン(GitHub Actions + Cloud Build)

以下は コードのプッシュ → Cloud Build ビルド → Cloud Run デプロイ → Apigee プロキシ更新 を自動化する最小構成です。

cloudbuild.yaml(ビルド・デプロイ・Apigee 更新)

GitHub Actions ワークフロー(.github/workflows/deploy.yml

ポイント

  • id-token 権限を付与すれば Workload Identity Federation が利用でき、長期的な SA キーをリポジトリに保存する必要がなく安全です。
  • ビルドが成功すると自動で Cloud Run と Apigee の両方が最新イメージへ切り替わります。

次のステップ:本番環境への拡張と無料トライアル活用

ここまでで サンプルアプリを Cloud Run にデプロイし、Apigee Edge で API プロキシを作成・テスト できました。次は本格的な本番運用へ向けた拡張手順と、Google Cloud 無料トライアル($300 クレジット)を活かす方法をご紹介します。

本番環境へのスケールアップ

  1. クォータ確認gcloud compute regions describe asia-northeast1 で CPU・メモリ上限をチェックし、必要に応じて増枠申請
  2. リージョン分散 – トラフィックが増える場合は asia-northeast2(大阪) も併用し、Cloud Load Balancer でフェイルオーバー構成を検討
  3. バックエンド冗長化 – 同一サービスの複数 Cloud Run インスタンスをデプロイし、Apigee の TargetEndpoint に複数 URL(カンマ区切り)を設定してラウンドロビンさせる
  4. 予算アラート設定 – Cloud Billing の予算機能で $300 超過前に Slack やメールで通知を受け取るようにする

無料トライアル活用のベストプラクティス

項目 推奨アクション
クレジット期間 90 日間有効。期限前に課金プランへ移行し、設定した予算・アラートをそのまま引き継ぐ
リソース最適化 Cloud Run の自動スケーリングと 最低インスタンス数 0 をデフォルトにして、アイドル時の課金を抑制
モニタリング Cloud Monitoring の ダッシュボード に CPU・メモリ・ネットワーク使用率を可視化し、無駄なリソース消費を即座に検知

実践への第一歩:本稿の手順をローカルで試したら、同じ構成を GitHub リポジトリへプッシュし、GitHub Actions が自動的にデプロイする流れを体感してください。その後、無料クレジットを使い切る前に 本番規模のリージョン分散予算アラート を設定すれば、スムーズに本格運用へ移行できます。


まとめ

  • 必要な API を有効化し、最小権限(roles/apigee.runtimeAgent 等)を正しく付与することで、権限エラーを防止
  • VPC 設定は Edge と Hybrid の違い を意識し、内部 API 呼び出しが必要な場合のみ構成すれば OK
  • Apigee Adapter は公式の最新バージョン(執筆時点 v2.0.1)を使用し、jwt.idToken 変数名でヘッダー付与を行うことがポイント
  • Cloud Run と Apigee の CI/CD パイプラインは GitHub Actions + Cloud Build がシンプルかつ安全(Workload Identity Federation 推奨)
  • 本番環境への拡張はリージョン分散・冗長化・予算管理を徹底し、無料トライアルのクレジットを有効活用

以上が Apigee Edge と Cloud Run の統合 に関する最新ベストプラクティスです。ぜひ本稿を手引きに、実際のプロジェクトで試してみてください。

スポンサードリンク

-Apigee