Cloud Service
Apigee API Management
API をプロキシ・ポリシー・プロダクト・開発者ポータルで製品として管理する本格的な API 管理基盤。
- 1.API プロキシの前後にポリシーを差し込み認証や流量を集中制御する。
- 2.プロダクトと開発者ポータルで API を製品化しセルフサービスで提供できる。
- 3.AWS API Gateway の上位に近く大規模なライフサイクル管理に向く。
解決する課題
- 多数の API を全社共通の流儀で公開・認可・流量制御し、入口を一元管理したい
- 社外・パートナー向けに API を製品(プロダクト)として提供し、利用申請・キー発行・利用状況の可視化までセルフサービス化したい
- 既存のバックエンドに手を入れずに、変換・キャッシュ・認可・脅威防御などの横断機能をプロキシ層で追加したい
- API の**バージョン管理・段階的リリース・廃止(デプリケーション)**といったライフサイクルを統制したい
- API 利用を**収益化(マネタイゼーション)**し、レート制限とクォータで品質を担保したい
主要概念と用語
- API プロキシ: クライアントとバックエンド(ターゲット)の間に立つ仮想的な API。Apigee が公開するのはこのプロキシで、実体のバックエンドは隠蔽される
- ProxyEndpoint と TargetEndpoint: プロキシは入口側のリクエスト処理(ProxyEndpoint)と、出口側のバックエンド接続(TargetEndpoint)の2段で構成される
- ポリシー: プロキシのフローに差し込む処理部品。認証、Quota(クォータ)、Spike Arrest(瞬間流量の平準化)、OAuth トークン発行、JSON とXML の変換、キャッシュ、メッセージ脅威防御などを宣言的に設定する
- フロー: リクエストとレスポンスがポリシーを順番に通過するパイプライン。条件分岐で特定の経路だけにポリシーを適用できる
- プロダクト(API プロダクト): 複数の API プロキシをまとめ、アクセス範囲やレート上限を束ねた公開単位。開発者にはこのプロダクト単位で API を提供する
- 開発者ポータル: API 利用者が登録し、アプリを作成し、APIキーを発行し、ドキュメントを閲覧できるセルフサービスのサイト
- Environment と Environment Group: プロキシのデプロイ先(test や prod など)と、それらにホスト名を割り当てる単位
- マネタイゼーション: 利用量に応じた課金プランを設定し、API を収益化する機能
仕様・制限・クォータ
- Apigee は本格的な API 管理基盤で、プロビジョニングして使う。提供形態として、Google 管理のホスト型と、自社環境寄りのApigee hybrid(コントロールプレーンは Google、ランタイムは自前の Kubernetes)がある
- 課金には従量課金(Pay-as-you-go)とサブスクリプションの体系があり、規模やSLA要件に応じて選ぶ。小さく始めるなら従量課金、大規模・エンタープライズ用途はサブスクリプションが一般的
- プロキシのデプロイは Environment 単位で行い、リビジョンを切り替えて段階的にリリース・ロールバックできる
- 各種クォータ(プロキシ数、Environment 数、リクエストレートなど)は提供形態やプランに依存する。具体的な数値は変動しうるため、公式ドキュメントで最新値を確認する
- ポリシーの種類や設定可能なフロー段は豊富だが、過剰なポリシー連結はレイテンシ増につながるため必要最小限にとどめる
内部の仕組み
クライアントからのリクエストは、まず Apigee の**ランタイム(メッセージプロセッサ)**が受け取り、API プロキシのフローに沿って一連のポリシーを順に適用します。入口側の ProxyEndpoint で認証・流量制御・変換を行い、TargetEndpoint からバックエンドへ転送し、レスポンスにも同様にポリシーを適用してからクライアントへ返します。
- 設定や分析データを司るコントロールプレーンと、実際にトラフィックを処理する**ランタイム(データプレーン)**が分離している
- ポリシーは宣言的に定義され、フローのどの段に差し込むかを指定できる。これによりバックエンドのコードを変えずに横断的な機能を追加できる
- リクエスト・レスポンスのメトリクスはAnalyticsに集約され、トラフィック量・レイテンシ・エラー率・デベロッパー別利用などを後から分析できる
- バックエンドへの接続では、相互TLSやサービスアカウントによる認証を用いて安全に呼び出す
シンプルにサーバーレス API を1つ出すだけなら、安価で軽量な Cloud API Gateway で十分なことも多いです。Apigee は、収益化・開発者ポータル・高度なポリシー・大規模なライフサイクル管理が必要なときに真価を発揮する本格基盤です。両者は別プロダクトで価格帯も大きく異なります。
設計パターン / ベストプラクティス
- 認証・認可・流量制御をプロキシ層に集約し、バックエンドは業務ロジックに専念させる
- 外部アプリの識別にはAPIキー、利用者認可にはOAuth 2.0 / JWTを使い分ける
- 瞬間的なバーストにはSpike Arrestで平準化し、契約上の上限はQuotaで管理する、という役割分担を徹底する
- 公開はプロダクト単位で設計し、社内向け・パートナー向け・公開向けでアクセス範囲とレート上限を分ける
- Environment を test と prod に分け、リビジョンの段階的デプロイとロールバックでリスクを抑える
- バックエンドの所在やスキーマ変更はプロキシで吸収し、利用者に影響を与えずに内部を進化させる
便利だからとポリシーを多段に連結すると、その分だけレイテンシが増えます。各リクエストに本当に必要なポリシーだけを、適切なフロー段に配置してください。
運用・監視
- Analytics ダッシュボードでトラフィック・エラー・レイテンシ・デベロッパー別利用を継続的に観察する
- メトリクスとログは Cloud Monitoring / Cloud Logging とも連携でき、しきい値超過時のアラートを設定する
- レート制限超過は**429(Too Many Requests)**として返るため、Quota や Spike Arrest の設定値を見直す
- 認証エラー(401 / 403)は、APIキーの有効状態、OAuth トークンや JWT の発行者・有効期限、プロダクトのアクセス範囲を点検する
- プロキシの不具合切り分けには**トレース(デバッグセッション)**を使い、どのポリシー段で想定外の挙動が起きたかを段ごとに確認する
コスト
Apigee は本格的な API 管理基盤のため、軽量な API Gateway とは価格帯が大きく異なります。利用規模とSLA要件に応じて課金体系を選び、コストを最適化します。
| 課金体系 | 考え方 | 向いている用途 |
|---|---|---|
| 従量課金 | 処理した API コール量に応じた課金 | 本格的な API 管理を小さく始める |
| サブスクリプション | 容量とSLAでプランを選ぶ年間契約 | 大規模・収益化・エンタープライズ |
| hybrid | ランタイムを自社環境で運用する形態 | データを自社管理下に置きたい場合 |
キャッシュポリシーでバックエンド呼び出しを減らし、Quota で過剰な利用を抑えることは、品質だけでなくバックエンド側のコスト抑制にもつながります。
セキュリティ
- APIキーで呼び出し元アプリを識別し、OAuth 2.0 / JWTで利用者の認可を行う
- Spike Arrest と Quotaで流量を制御し、過負荷や乱用からバックエンドを守る
- メッセージ脅威防御ポリシーで、過大なペイロードや不正な構造のリクエストを入口で弾く
- 通信はTLSで保護し、バックエンドへの接続も相互TLSやサービスアカウントで認証する
- 前段にグローバル配信やWAFが必要な場合は、外部ロードバランサと Cloud Armor を併用してDDoS緩和やIP制限を加える
バックエンドを誰でも直接叩ける状態のまま Apigee を前に置くのは危険です。プロキシを迂回されると、せっかくの認証・流量制御がすべて無効になります。バックエンドはネットワークやIAM、相互TLSで閉じ、Apigee 経由でのみ到達できるようにしてください。
Well-Architected の観点
- 運用上の優秀性(operational): API のライフサイクル(バージョン管理・段階リリース・廃止)をプロダクトと Environment で統制でき、Analytics で利用実態を把握して継続的に改善できる
- セキュリティ(security): 認証・認可・流量制御・脅威防御をプロキシ層に集約し、バックエンドを直接公開せずに守れる。横断的なセキュリティ方針を全 API に一貫して適用できる
試験で問われるポイント
- Apigee は本格的な API 管理基盤で、軽量な Cloud API Gateway とは別プロダクト。AWS の API Gateway(とくに高機能なREST API系)の上位に近い位置づけ
- API プロキシがクライアントとバックエンドの間に立ち、フローにポリシーを差し込んで認証・流量・変換を制御するパイプライン型である点
- Spike Arrest は瞬間流量の平準化、Quota は契約上の総量制限、という役割の違い
- プロダクトは複数プロキシをまとめた公開単位で、開発者ポータルでセルフサービス提供・キー発行を行うこと
- 収益化が要る、開発者ポータルが要る、高度なポリシーやライフサイクル管理が要る、という条件が出たら Apigee を選ぶ
関連サービス・比較
| 観点 | GCP(Apigee) | AWS |
|---|---|---|
| 位置づけ | 本格的な API 管理基盤 | API Gateway(REST API)と周辺 |
| 軽量な代替 | Cloud API Gateway | API Gateway(HTTP API) |
| プロキシ制御 | ポリシーをフローに差し込む | 統合・オーソライザーで構成 |
| 流量制御 | Spike Arrest と Quota | スロットリングと使用量プラン |
| 利用者認可 | OAuth 2.0 / JWT | Cognito / Lambda オーソライザー |
| 呼び出し元識別 | APIキー | APIキー / 使用量プラン |
| 製品化・公開 | プロダクトと開発者ポータル | 使用量プランとデベロッパーポータル |
| 前段のWAF・配信 | 外部ロードバランサと Cloud Armor | CloudFront と WAF |
ハンズオン / CLI例
# 前提: gcloud にログイン済みで、対象プロジェクトに Apigee が有効化されていること
# 1) 組織(Apigee の最上位コンテナ)の一覧を確認
gcloud apigee organizations list
# 2) Environment(デプロイ先)の一覧を確認
gcloud apigee environments list --organization=ORG_NAME
# 3) API プロキシを作成(バンドル zip から登録)
gcloud apigee apis create orders-proxy \
--organization=ORG_NAME \
--bundle-source=orders-proxy.zip
# 4) 作成したプロキシのリビジョンを prod 環境へデプロイ
gcloud apigee apis deploy \
--organization=ORG_NAME \
--environment=prod \
--api=orders-proxy \
--revision=1
# 5) デプロイ状況を確認
gcloud apigee deployments list \
--organization=ORG_NAME \
--environment=prod
Google Cloud Service
Apigee API Managementを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
アプリ統合
比較で見る軸
クラウド: Google Cloud / カテゴリ: アプリ統合 / 難易度: intermediate
導入後に効く点
プロダクトと開発者ポータルで API を製品化しセルフサービスで提供できる。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Google Cloud
- カテゴリ
- アプリ統合
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- operational / security
判断チェックリスト
- 自社の用途が「アプリ統合 / operational」に近いか確認する。
- 強みである「API プロキシの前後にポリシーを差し込み認証や流量を集中制御する。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。