Webシステム開発の際に負荷分散やセキュリティ要件を満たすために、自前でキャッシュサーバーを構築、運用した経験をされた方は多くいらっしゃると思います。
リバースプロキシを建て、キャッシュ機能を実装し、サーバーとして運用するは面倒ですよね。
今回そんな方々に、GCPのAPIサービスである、Apigeeをご紹介させて頂きます。
この記事を読めば、Apigeeで 早い(3分以内)!簡単(GUI操作)!楽ちん(サーバーレス)!にキャッシュサーバーを構築することができます。
Apigeeログイン後からキャッシュサーバーを立てて、キャッシュレスポンスを確認するところまでの、流れを一緒に進めていきましょう。
目次
Apigeeの概要
ApigeeとはWebAPIのあるある機能代行サービス!
Apigeeは一言で言うとAPI管理プラットフォームです。
Apigeeは、認証機能や利用回数制限等Web APIを公開するにあたって必要となる煩雑な機能を開発者に提供します。また、WebAPIのトラフィック・レスポンス時間・エラー率をトラッキングして問題を特定する機能も提供します。ApigeeはまさにWebAPIあるある機能の代行サービスと言えます。
Apigeeにできること
Apigeeが持っている機能例は以下の通りです。
- キャッシュ機能
- マッシュアップ機能(複数のAPIのレスポンスを組み合わせて1つのレスポンスを返す機能)
- 認証機能
- 利用制限機能
- 課金機能
- インターフェイス変換(SOAP->REST等)機能
他にも多くの機能を持ちこれからも新たな機能が追加されていくと思います。
今回はその中からキャッシュ機能の利用方法について説明します。
Apigeeのキャッシュ機能は2種類ある!
Apigeeのキャッシュ機能には以下2種類があり、要件に応じてユーザはキャッシュ機能を選択することができます。
- 共有キャッシュ: デフォルトで、プロキシは各環境にある 共有キャッシュです。
- 環境キャッシュ: データの分離のために、環境をスコープとするキャッシュを作成できます。本番環境と開発環境でキャッシュを分けたいときに利用します。
今回は「環境キャッシュ」を利用したキャッシュサーバの構築手順について説明します。
実際に構築してみよう!
今回の流れを確認!
今回一緒に進めていく作業の流れになります。
- リバースプロキシ構築
- プロキシ作成
- プロキシタイプの選択
- プロキシ概要設定
- プロキシセキュリティ設定
- VirtualHosts設定
- デプロイ設定
- プロキシ詳細設定
- 環境キャッシュの設定
- 環境キャッシュの作成
- 環境キャッシュの設定
- プロキシと環境キャッシュの紐づけ
- Policy追加
- Policy設定
- Policy有効化
- 環境キャッシュの設定
- キャッシュ機能確認
今回は、構築したリバースプロキシに対して環境キャッシュを適用し、最終的にレスポンスがキャッシュサーバーから返ってくるところまでを確認します。
リバースプロキシ構築
プロキシ作成
右上の +Proxy
ボタンをクリックし、プロキシの作成を始めます
プロキシタイプの選択
プロキシ作成を開始すると、最初にプロキシタイプの選択画面が表示されます。プロキシタイプには6種類ありますが、今回は ReverseProxy を選択し Next ボタンで次画面に遷移します。
プロキシ概要設定
次にプロキシの概要を入力します。
フォーム上の3つの 入力必須項目の意味は以下の通りです。
- proxy Name: プロキシ名
- proxy Base Path: プロキシのパス
- Existing API: 対象のサービスエンドポイントURL
本項目については任意の情報を入力してください。
※以下参考画像では、クラウドエース株式会社の会社ホームページをExisting APIとしたプロキシ概要を入力しました。
Next
ボタンで次に行きます。
プロキシセキュリティ設定
セキュリティ設定画面です。
この画面では認証方式の選択とCORSの設定を行います。
認証方式は以下の3パターンから選択出来ます。
- Pass through(認証なし)
- API Key
- OAuth 2.0
今回は最低限のキャッシュサーバーをたてるので、Pass through
を選択。
Next
ボタンで次に行きます。
VirtualHosts設定
次に、Virtual Hostsの設定です。
ここでHTTPとHTTPSの各環境ごとのエイリアスの有効無効の設定を行います。
必要な環境及びプロトコルにチェックを入れてください。
今回は全てのエイリアスを有効にしています。
Next
ボタンで次に行きます。
デプロイ設定
デプロイする環境の設定をします。今回はtest環境のみデプロイします。
左下の Build and Deploy
ボタンを押すとプロキシがデプロイされます。
今回は以下のプロキシが出来上がりました。
Base Path
は プロキシ詳細設定のProxy Base Pathで設定したapigee-cacheとなっており、
Target Endpoints
のURLは プロキシ詳細設定のExisting APIで設定したクラウドエース株式会社の会社ホームページのURLとなっております。
次はページを変えて、キャッシュリソースの作成に移ります。
環境キャッシュの設定
環境キャッシュの作成
右上の +Cache
ボタンをクリックし、環境キャッシュの作成を始めます
環境キャッシュの設定
名前とExpire(キャッシュ有効期限)設定を行います。
Expiresは以下の設定が可能です。
- After:指定した時間(秒、分、時間)後に削除
- Time of day: 日次で指定の時間に削除
- Expiration date: 月次で指定の日にちに削除
今回はapigee-cache-resourceという名前でAfter 5 minを選択し、5分間キャッシュを保持する設定としました。
左下の Add Cache
ボタンを押すと環境キャッシュが作成され、以下の画面で確認ができます。
プロキシと環境キャッシュの紐づけ
プロキシ開発画面に遷移
先程作成したAPI Proxy の画面に戻り、DEVELOPタブをクリックし開発画面に遷移します。
Policy追加
PolicyとはApigeeの機能群のことです。
課金機能や、大量アクセスのフィルター、インターフェースの変換機能などを持った書くPolicyをリクエストのフローの適切な場所に設置することで、有効になるため、GUIで簡単に機能がアタッチ出来ます。
今回はキャッシュ機能のPolicyであるResponse Cacheを追加します。
左のナビゲーションメニューのPolicesの右にある +
ボタンをクリックして、ポリシー追加画面に遷移します。
その後Response Cacheを選択し Add
ボタンを押し、ポリシーを追加します。
Policy設定
PolicyはXMLの記法で書かれており、Policyに応じて様々な設定が可能となっております。Response Cacheで環境キャッシュを利用するには
Policyのコードに先程作成した環境キャッシュを紐づけます。
/
Policyを有効化
作成したPolicyはナビゲーション欄に追加されたPolicyをコードの上にあるFlow図にドラッグアンドドロップで持っていくことで有効化されます。
Response CacheはRequestのFlowとResponseのFlowの両方にセットする必要が有るのでご注意ください。
設置後 左上のSave
ボタンを押すことをお忘れなく。
これにてキャッシュサーバー作成完了です。
キャッシュ機能確認
TRACEタブに移動して、確認してみましょう。
Start Trace Session
ボタンを押して、通信をトレースします。
その後 Send
ボタンをクリックしてHTTP通信を実行します。
初回の通信は1505msかかっていて、 Transaction Map からサービス(工場のアイコン)からレスポンスが返って来ていることが確認できます。
二回目のレスポンスは81msで返ってきています。明らかにキャッシュが効いている速度になってます。
Transaction Map にもサービス(工場のアイコン)マークが消えており、サービスを経由していないことが分かります。
キャッシュ使用率等は Alalyze の Chace Perfomanceで確認できます。
最後に
ほとんど手間もかからずキャッシュサーバーが出来上がってしまいました。
Apigee のUIに慣れるまでは、どこに何が有るのか戸惑うことも有ると思いますが、慣れてしまえば一瞬でプロキシサーバーの構築が出来てしまいます。
ちなみに上記工程をタイムアタック的にやってみたところ、2分を余裕で切るくらいで、作成からキャッシュレスポンスの確認までできました。
サーバーレスキャッシュサーバーをGUI操作のみですぐに出来ちゃうApigeeほんとスゴイ!!!