Contents
1. Google Cloud アカウントの作成とサンドボックス登録
1‑1. アカウント取得の流れ(導入)
Google Cloud のアカウントは無料で作成できます。サンドボックス利用に必要なのは Billing アカウントとのリンク だけで、実際に課金が発生することはありません(2024 年 10 月時点の情報)。
1‑2. 手順
| 手順 | 内容 |
|---|---|
| ① メールアドレスでサインアップ | Gmail 以外でも可。Google アカウントを取得します。 |
| ② 本人確認情報入力 | クレジットカードは課金上限を設定すれば無料枠で使用できます。 |
| ③ プロジェクト作成 | 「新しいプロジェクト」を選び、名前とリージョンを指定します。 |
ポイント:サンドボックスは Billing アカウントのリンクだけが必須です。課金は行われません。
1‑3. サンドボックスの作成手順
- Google Cloud コンソール左メニュー → API とサービス > Apigee を選択。
- 「Apigee の開始」画面で 「サンドボックスを作成」 をクリックし、組織名・環境名(例:
sandbox-org,test-env)を入力。 - 利用規約に同意して 作成開始 → 数分でプロビジョン完了。
注意:サンドボックスは自動的に 60 日間有効です。期限切れ前に本番環境への移行計画を立てることを推奨します。
2. 組織・環境設定と API プロキシ作成の基本フロー
2‑1. 組織と環境の役割(導入)
Apigee の 組織 と 環境 は管理単位です。ここで設定したポリシーやトラフィック制御は、配下のすべての API プロキシに継承されます。
2‑2. 組織と環境の作成手順
| 手順 | 操作 |
|---|---|
| ① Apigee コンソール → 組織 タブ | 「新規組織」ボタンをクリック。 |
| ② 必要情報入力 | 組織名、リージョンを設定し「保存」。 |
| ③ 環境追加 | 作成した組織の 環境 タブから「新規環境」を作成(例:dev, prod)。 |
理由:開発・検証・本番を環境ごとに分離でき、ポリシーやバックエンド設定を個別管理できます。
2‑3. RESTful API プロキックスの構築
手順概要
- プロキシ作成 → 「Reverse Proxy」テンプレート選択。
- バックエンド URL とベースパスを入力(例:
https://api.example.com/v1、/v1/orders)。 - 生成されたフローに
PreFlow・PostFlowが自動追加されるので、認証や変換のポリシーを配置。
コードスニペット(コメントと空行で可読性向上)
|
1 2 3 4 5 6 7 8 |
<!-- OAuth2 アクセストークン検証ポリシー --> <OAuthV2 name="Verify-Token"> <Operation>VerifyAccessToken</Operation> <!-- Authorization ヘッダーからトークンを取得 --> <AccessToken ref="request.header.authorization"/> </OAuthV2> |
2‑4. GraphQL プロキシの構築ポイント
| 項目 | 内容 |
|---|---|
| テンプレート選択 | 「API Proxy」 → GraphQL を使用。 |
| スキーマ取得 | バックエンドへ introspection クエリを投げ、JSON 形式で取得しインポート。 |
| リクエスト抽出 | ExtractVariables ポリシーで query フィールドを変数化できる。 |
コード例
|
1 2 3 4 5 6 7 8 9 |
<ExtractVariables name="Extract-Query"> <Source>request</Source> <!-- GraphQL の query 部分を文字列として取得 --> <JSONPayload> <Variable name="graphql.query" type="string">$.query</Variable> </JSONPayload> </ExtractVariables> |
ポイント:GraphQL は単一エンドポイントで多様な操作が可能なため、クエリタイプ別に条件分岐させると管理が楽です。
3. ポリシー適用例 ― セキュリティ・トラフィック制御
3‑1. OAuth 2.0 認証ポリシー(導入)
Apigee が提供する Authorization Server を利用すれば、バックエンド側に認証ロジックを実装する必要がなくなります。
実装手順
- コンソール 「セキュリティ > OAuth」 でクライアント ID/シークレットを登録。
PreFlowに以下のポリシーを配置。
|
1 2 3 4 5 |
<OAuthV2 name="Validate-AccessToken"> <Operation>VerifyAccessToken</Operation> <AccessToken ref="request.header.authorization"/> </OAuthV2> |
3‑2. API キー認証(導入)
簡易的なアクセス制御として有効です。
|
1 2 3 4 5 |
<VerifyAPIKey name="Check-API-Key"> <!-- クエリパラメータ apikey を参照 --> <APIKey ref="request.queryparam.apikey"/> </VerifyAPIKey> |
ポイント:キーは
Developerアカウントに紐付けて発行し、必要に応じてローテーションします。
3‑3. レートリミット(SpikeArrest + Quota)
|
1 2 3 4 5 6 7 8 9 10 11 |
<!-- 瞬間的なスパイクを抑制 --> <SpikeArrest name="Prevent-Spike"> <Rate>10ps</Rate> </SpikeArrest> <!-- 日次上限を設定 --> <Quota name="Daily-Quota"> <Allow count="1000"/> <Interval>1 day</Interval> </Quota> |
配置場所: PreFlow
期待されるレスポンス: 超過時は 429 Too Many Requests が返ります。
3‑4. IP アクセス制御
|
1 2 3 4 5 6 7 |
<IPAccessControl name="Allow-Only-Trusted"> <AllowedIPs> <IP>203.0.113.0/24</IP> <IP>198.51.100.25</IP> </AllowedIPs> </IPAccessControl> |
まとめ:上記4つのポリシーを組み合わせるだけで、認証・認可・レート制御・アクセス制限が一括実装できます。
4. 最新機能活用ガイド(2024 年情報)
以下の機能は 2024 年に追加された 機能です。公式ドキュメントで詳細を必ず確認し、リリースノートやベータ版ステータスに注意してください。
| 機能 | 主な利用シーン | 設定上の留意点 |
|---|---|---|
| Gemini Code Assist(LLM 補助) | ポリシー XML の自動生成・デバッグ支援 | コンソール 「開発者ツール > Gemini」 で有効化。生成コードは必ず Trace で検証すること。 |
| ユニバーサルカタログ | API アセットの一元管理と再利用 | 「カタログ」→「新規エントリー」で OpenAPI 定義を登録。CI/CD と連携可能。 |
| ML Analytics(異常検知・トラフィック予測) | リアルタイムでの異常検知、将来トラフィック予測 | コンソール 「分析 > 機械学習」 から有効化し、対象環境を選択。Cloud Monitoring と連携してアラートを設定することが推奨されます。 |
注意:上記機能はベータまたはプレビュー版として提供されている場合があります。実装前に公式リファレンス(
https://cloud.google.com/apigee/docs/)で最新情報をご確認ください。
5. 運用自動化・モニタリングのベストプラクティス
5‑1. Management API の認証と主要エンドポイント(導入)
Apigee の管理操作は OAuth2 アクセストークン が必須です。CI/CD パイプラインから安全に呼び出す方法を示します。
認証フロー
|
1 2 3 4 5 |
# 1. アクセストークン取得(client_credentials フロー) curl -X POST \ -d "client_id=YOUR_CLIENT_ID&client_secret=YOUR_SECRET&grant_type=client_credentials" \ https://login.googleapis.com/oauth2/v4/token |
取得したトークンは Authorization: Bearer <token> ヘッダーで API 呼び出しに使用します。
主なエンドポイント例
| 用途 | HTTP メソッド & URL |
|---|---|
| 組織一覧取得 | GET https://apigee.googleapis.com/v1/organizations |
| 環境取得 | GET https://apigee.googleapis.com/v1/organizations/{org}/environments |
| プロキシデプロイ | POST https://apigee.googleapis.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/deployments |
ベストプラクティス:トークンは 1 時間で失効するため、ジョブ実行時に都度取得しキャッシュしないようにします。
5‑2. CI/CD パイプラインへのデプロイ自動化
Cloud Build の例(yaml)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# cloudbuild.yaml steps: - name: 'gcr.io/cloud-builders/gcloud' args: [ 'apigee', 'apis', 'import', '--org=$PROJECT_ID', '--name=my-api', '--file=api-proxy.zip' ] - name: 'gcr.io/cloud-builders/gcloud' args: [ 'apigee', 'apis', 'deploy', '--org=$PROJECT_ID', '--env=prod', '--api=my-api', '--rev=1' ] images: [] |
GitHub Actions の例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
name: Deploy to Apigee on: push: branches: [ main ] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Authenticate to GCP uses: google-github-actions/auth@v2 with: credentials_json: ${{ secrets.GCP_SA_KEY }} - name: Deploy API proxy run: | gcloud apigee apis import \ --org=$PROJECT_ID \ --name=my-api \ --file=api-proxy.zip gcloud apigee apis deploy \ --org=$PROJECT_ID \ --env=prod \ --api=my-api \ --rev=1 |
ポイント:
gcloudコマンドは内部で Management API を呼び出します。サービスアカウントには最小権限(Apigee Admin)を付与してください。
5‑3. モニタリング・トラブルシューティング
| 手法 | 内容 |
|---|---|
| Trace | コンソールの Trace ビューでリクエストフローとポリシー実行結果を可視化。 |
| Cloud Logging | resource.type="apigee_proxy" でフィルタリングし、severity=ERROR を検索すると障害箇所が抽出できる。 |
| Cloud Monitoring アラート | response_time, error_count などの指標に閾値を設定し、メール/Slack に通知。 |
アラートポリシー例(YAML)
|
1 2 3 4 5 6 7 8 9 |
conditions: - displayName: "Apigee Anomaly Alert" conditionThreshold: filter: 'resource.type="apigee_proxy" metric.type="apigee.googleapis.com/traffic/anomaly_score"' comparison: COMPARISON_GT thresholdValue: 0.8 notificationChannels: - name: projects/<PROJECT_ID>/notificationChannels/<CHANNEL_ID> |
ベストプラクティスまとめ
1. Trace + Logging で根本原因を迅速に特定。
2. KPI(レイテンシ、トラフィック、エラー率)をダッシュボード化し、一目で健康状態を把握。
3. 障害時は Cloud Functions 等で自動ロールバックスクリプトを呼び出す 自動リカバリ フローを構築。
6. 本ガイドのまとめ
- Google Cloud アカウントと Billing のリンクだけで、60 日間無料の Apigee サンドボックスが利用可能です。
- 組織・環境設定は開発・本番を分離する基盤となり、REST と GraphQL それぞれに最適なプロキシテンプレートがあります。
- OAuth、API キー、レートリミット、IP 制御といった代表的ポリシーを組み合わせるだけで、堅牢な API ガードが実装できます。
- 2024 年に追加された Gemini Code Assist・ユニバーサルカタログ・ML Analytics は便利ですが、ベータ版の可能性があるため公式ドキュメントで最新情報を必ず確認してください。
- Management API と CI/CD(Cloud Build / GitHub Actions)を活用すれば、デプロイ作業を完全自動化できます。
- Trace・Logging・Monitoring を組み合わせた observability が、運用の安定性と迅速な障害復旧に直結します。
以上を実践すれば、Apigee の導入から本番運用までスムーズに進められるはずです。ぜひ本ガイドを手元に置きながら、実際のハンズオンで確認してみてください。