Azure API Management とは
まず、Azure API Management とその主要な機能の概要を簡単に説明します。 この概要は、Azure API Management が会社の API の複雑さを軽減するための適切なソリューションであるかどうかを判断するのに役立ちます。
API ライフサイクル管理とは
"API ライフサイクル管理" とは、API の設計と作成から陳腐化と廃止までの期間全体を通して管理するプロセスです。 このモジュールでは、API が既に設計、コーディング、デプロイされた後から説明します。 次のような残りの API ライフサイクル管理タスクに集中しましょう。
- API のドキュメント、テスト、コード サンプルの提供。
- ユーザーのオンボードとオフボード。
- API のサブスクリプションとサブスクリプション キーの配布の管理。
- 制御された安全な方法での API のリビジョンの実装。
- API の複数のバージョンの管理。
- 認証や呼び出しレートの制限など、API のアクセス制御の実装。
- 使用状況やエラーなどの API レポートの提供。
- 会社と API を使用する開発者の両方を対象とする分析の管理。
Azure API Management の定義
Azure API Management は、会社のすべての API を公開、セキュリティ保護、保守、分析するためのプラットフォームを提供するクラウド サービスです。 これらのタスクを実行するため、次の 3 つの主要なコンポーネントが Azure API Management によって提供されます。
- Gateway
- 管理インターフェイス
- 開発者ポータル
重要
Azure API Management によって実際の API がホストされることは "ありません"。API は最初にデプロイされた場所に留まっています。 Azure API Management は、代わりに、API に対する一種のファサードまたは "フロント ドア" として機能します。 このように、Azure API Management を使用すると、Azure で API ポリシーや他の管理オプションを設定しながら、デプロイされたバックエンド API はそのまま残すことができるので、API が "分離" されます。
Gateway
"Azure API Management ゲートウェイ" は、すべての API からのすべての呼び出しを受け入れる Azure エンドポイントです。 ゲートウェイには次の機能があります。
- API のサブスクリプション キーと他の資格情報を検証します。
- 使用量クォータとレート制限を適用します。
- バックエンドとの互換性のために必要に応じて API を変換します。
- 各呼び出しを適切なバックエンド サーバーにルーティングします。
- バックエンドの応答をキャッシュします。
- 分析ワークロード用に呼び出しメタデータを収集します。
管理インターフェイス
"Azure API Management 管理インターフェイス" は、お使いのサービスと API を管理できる一連の Azure portal ページおよびツールです。 サービスのプロビジョニング、スケーリング、監視に加えて、次の場合は管理インターフェイスを使用します。
- API 仕様の定義またはインポート
- クォータやレート制限などの使用ポリシーの実装
- セキュリティ ポリシーの設定
- ユーザーの管理
- API の製品へのパッケージ化
- API の変換の定義
- API のリビジョンとバージョンの管理
- API メタデータに対する分析の実行
開発者ポータル
"Azure API Management 開発者ポータル" は、開発者が次の方法で API を対話操作でき、完全にカスタマイズできる Web サイトです。
- 各 API のドキュメントの確認。
- 対話型コンソールを使用した API の試用。
- さまざまなプログラミング言語でのコード サンプルの確認。
- API のサブスクライブと、API サブスクリプション キーの取得。
- 開発者の使用状況に対する分析の実行。
Azure API Management のレベル
Azure API Management には複数のサービス レベルがあり、それぞれで異なる機能、容量、価格のセットが提供されています。 次の表に、最も低いものから最高のレベルの順に価格を一覧表示し、いくつかの主要な機能を比較しています。
条件 | 従量課金プラン | 開発者 | Basic | Standard | Premium |
---|---|---|---|---|---|
対象 | 軽量の使用 | 評価、テスト、その他の非運用環境での使用 | エントリ レベルの運用環境での使用 | 中程度のボリュームの運用環境での使用 | 高ボリュームまたはエンタープライズの運用環境での使用 |
Cache | 外部のみ | 10 メガバイト (MB) | 50 MB | 1 GB | 5 GB |
サービス レベル アグリーメント (SLA) | 99.95% | なし | 99.95% | 99.95% | 99.99% |
開発者ポータル | いいえ | 有 | 有 | 有 | はい |
ビルトイン分析 | いいえ | 有 | 有 | 有 | はい |
スループット (推定要求数/秒) | 該当なし | 500 | 1,000 | 2,500 | 4,000 |
Note
従量課金レベルの価格は、API 呼び出し当たりです。最初の 100 万呼び出しは無料で、それ以上は 10,000 呼び出しごとに固定レートで課金されます。 他のすべてのレベルの価格は、1 時間当たりです。
API 要求と応答へのポリシーの適用方法
複数の API を公開するときの最大の問題の 1 つは、各 API に個別のポリシー セットが必要なことです。 ここでの "ポリシー" とは、API の動作を制御する設定またはアクションです。 たとえば、"レート制限" (特定の期間に 1 つのソースから許可される API 呼び出しの最大数) を適用する場合は、API に対するポリシーの一部としてその制限を含めます。 レート上限はほんの一例ですが、適用できるポリシーは数多くあります。 それを複数の異なる API と掛け合わせると、管理は悪夢のようになります。
Azure API Management を使用すると、1 か所ですべての API のポリシーを設定でき、API ポリシーの問題が解決されます。その場所は、Azure API Management 管理インターフェイスです。 Azure API Management では、数多くのカテゴリのポリシーを設定できます。 部分的なリストは次のとおりです。
- アクセス制限。 これらのポリシーでは、ゲートウェイを介して API 要求が許可されるタイミングを決定します。 たとえば、レート制限と使用量クォータを適用し、呼び出し元の IP をフィルター処理し、有効な JSON Web Token (JWT) をチェックします。
- [認証] : たとえば、基本認証、クライアント証明書、またはマネージド ID を使用して、API 呼び出しを認証できます。
- キャッシュ。 キャッシュに応答を格納して取得することで、API のパフォーマンスを向上させることができます。
- 検証。 特定のパラメーターを API 仕様のパラメーターと比較することで API 呼び出しを検証するために使用されます。 たとえば、要求または応答の本文、要求ヘッダーのパラメーター、応答ヘッダーを検証します。
"ポリシー定義" は、ポリシーとそのパラメーターを表す一連のステートメントで構成される XML 文書であり、ポリシーを柔軟に組み合わせることができます。 ポリシー定義を使用すると、API 要求/応答パイプラインのさまざまなステージで個別のポリシーを構成できます。