このエントリはQiita Advent Calendar 2017 Microsoft Azureサービスいちから紹介 の20日目です。
ナレッジコミュニケーションの大柳です(@oyngtmhr)。
20日目はAzure API Managementです。
概要
Azure API Managementは、フロントとバックエンドをつなぐAPIゲートウェイがクラウド上で提供されるとともに、キー認証やIPアドレスフィルタリング、リクエスト結果のキャッシュなどAPIに関連する様々な機能も使うことができます。
機能
・レベルとスケーリング
Developer、Standard、Premiumの3つのレベルから選択できます。
各レベルごとにユニットと呼ばれる単位で帯域、スループット、キャッシュ容量が定義されています。
たとえば、Standardレベルでは、1ユニットで、月に2億回のAPIコール、1テラバイトの帯域幅、1,000リクエスト/秒のスループットが提供されます。ユニットを追加して2ユニットにすれば毎月4億回のAPIコール、2テラバイトの帯域幅、2,000リクエスト/秒が提供されます。
Developerレベルは、その名の通り開発用です。SLAもありません。1ユニットだけ使えます。追加はできません。
StandardレベルになるとSLAもあり、スループットが向上、ユニットも4つまで使用できます。
Premiumレベルになると各リージョンで10ユニットまで使用でき、さらにプライマリリージョンに加えて他のリージョンにもユニットを追加することができます。
https://azure.microsoft.com/ja-jp/pricing/details/api-management/ から引用
・キャッシュ
API Managementでは、レスポンスデータをのキャッシュとして保管、再利用ができます。キャッシュを行うことで、レスポンスを速くしたり、バックエンドの負荷が減少したりするメリットがあります。
・セキュリティ
クライアント証明書認証を使用してバックエンドにアクセスする、キーやトークンでAPIを保護するといったことができます。
・変換ポリシー
変換ポリシーと呼ばれるルールを使ってAPIに投げられたリクエストのメッセージを変換できます。JSONからXML、XMLからJSON、メッセージ中の文字列の置換、URLの書き換えなどのポリシーが利用可能dス。
https://docs.microsoft.com/ja-jp/azure/api-management/api-management-transformation-policies から引用
その他
・レベル間でアップグレードまたはダウングレードを実行できるが、ダウングレードすると機能が使えなくなる場合がある。
・APIは、デフォルトではサブドメイン apim-service-name.azure-api.netに割り当てられる。独自ドメインを割り当てることも可能。
・APIへアクセスするための複数の言語向けのサンプルコード、API仕様書も自動生成されます。
料金
・利用したユニット数に応じて時間単位で課金されます。
まとめ
APIを利用することでシステム間を疎結合にして連携しやすくするとともに、API Managementのようなマネージドサービスを使うことで開発のコストも下げることができます。API Managementはセブン銀行のAPI連携でも利用されており、権限管理などの手間を削減しては開発期間の短縮や運用負荷軽減につながったいう事例も出てきており、Fintechはじめとした各種APIの基盤として今後も活用が増えていきそうです。