Microsoft Azure API Management Service

はじめに

この記事ではよくあるシナリオと重要なAzure API Managementのコンポーネントについて概観します。Azure API Managementは、あらゆる環境のAPIに対するハイブリッド、マルチクラウド管理ツールです。プラットフォームとしてのAPI Managementは、APIライフサイクル全体を提供します。
APIは、データとサービスを再利用可能で広くアクセスしやすくするもので、アプリケーション統合を簡素化し、新しいデジタル製品をサポートし、デジタル体験を可能にします。APIの成長と依存が増しているため、企業はそれらをライフサイクル全体を通じて第一級の資産として管理する必要があります。

Azure API Managementでこれらの難題を克服する

1.API利用者からバックエンドアーキテクチャの多様性と複雑さを抽象化する
2.Azure内外でホストされているサービスをAPIとして安全に公開する
3.APIを保護、高速化、観察する
4.内部及び外部のユーザーにAPIの発見と利用を促進する

典型的なケース

レガシー資産の活用

新しいクラウドサービスや最先端のアプリからレガシーバックエンドにアクセス可能にするために、APIはそれらを抽象化し、近代化するために使用されます。APIは、移行のリスクやコスト、遅延なくイノベーションを可能にします。

API中心のアプリ統合

アプリケーション、データ、プロセスを公開し、アクセスするために、APIはシンプルで標準化され、自己記述的な手法です。それらはアプリ統合の手間とコストを削減します。

マルチチャネルユーザー体験

ウェブ、モバイル、ウェアラブル、IoTアプリケーションなどのユーザー体験は一般的にAPIを使用して可能になります。APIの再利用により、開発とROIを加速します。

B2B統合

パートナーやクライアントに提供されるAPIは、企業間のオペレーション統合とデータ転送の障壁を減らします。APIはポイントツーポイント統合の複雑さを取り除きます。自己サービスの発見とオンボーディングが可能にされた場合、特にB2B統合においてAPIは可視性の主要なツールとなります。

API Management コンポーネント

Azure API Managementは、開発者ポータル、管理プレーン、APIゲートウェイで構成されています。これらの要素はデフォルトでAzureによって完全に管理・ホスティングされます。異なるレベルのAPI管理が利用可能で、能力と機能が異なります。

APIゲートウェイ

APIゲートウェイは、クライアントアプリからの全てのリクエストを受け取り、適切なバックエンドサービスにルーティングします。バックエンドサービスの前面に立つAPIゲートウェイにより、API提供者はAPIの実装を抽象化し、API利用者に影響を与えることなくバックエンドアーキテクチャを変更することができます。ゲートウェイを通じて、ルーティング、セキュリティ、スロットル、キャッシュ、観測性が一貫して設定できます。
具体的には、ゲートウェイは
・バックエンドサービスの前面に立ち、適切なバックエンドにAPIコールをルーティングします。
・リクエスト時に提示されたAPIキーやその他の資格情報、例えば証明書やJWTトークンを確認します。
・レートキャップや使用制限を強制します。
・ポリシーステートメントに従って、オプションでリクエストとレスポンスを変換します。
・指定された場合、レスポンスをキャッシュし、バックエンドサービスの負荷を減らし、レスポンスの遅延を改善します。
・モニタリング、レポーティング、トラブルシューティングのためのデータを発行します。これには、ログ、メトリックス、トレースが含まれます。

独立したゲートウェイ

APIトラフィックを最大化し、地域の法律や規制に則した遵守を保証するためには、セルフホステッドゲートウェイを使用して、APIホスト環境と同じ設定にAPIゲートウェイをデプロイできます。ハイブリッドITインフラを持つ顧客は、セルフホステッドゲートウェイを使って、Azureの単一のAPI ManagementサービスからオンプレミスおよびクラウドホステッドのAPIを管理できます。
セルフホステッドゲートウェイは、Linux上で動作するDockerコンテナとしてパッケージ化されており、Azure Kubernetes ServiceやAzure Arc対応のKubernetesを含むKubernetesへのデプロイが一般的です。

管理平面

API提供者は、API Managementサービスの機能にフルアクセスするための管理プレーンを通じてサービスと対話します。
顧客は、Azureポータル、Azure PowerShell、Azure CLI、Visual Studio Codeエクステンション、または様々な一般的なプログラミング言語のクライアントSDKを含むAzureツールを通じて管理プレーンと交流します。
管理方法を使用して
1.API Managementサービス設定をプロビジョニングおよび構成する
2.OpenAPI仕様、Azureコンピュートサービス、WebSocketsまたはGraphQLバックエンドなど、幅広いソースからAPIスキーマを定義またはインポートする
3.製品にAPIをパッケージ化する
4.APIに対してクォータや変換などのポリシーを設定する
5.分析からの洞察を得る
6.ユーザー管理する

Azureサービスとの統合

API Managementは、エンタープライズソリューションを構築するために、他の補完的なAzureサービスとインターフェイスしています。例えば、
1.Azure Key Vaultを使用して、クライアント証明書や秘密を安全に管理・保存する
2.Azure Monitorを利用して、管理操作、システムイベント、APIコールについてログ、レポート、アラートを行う
3.エンドツーエンドのトレース、ライブアナリティクス、トラブルシューティングのためのApplication Insights
4.ネットワークセキュリティのためのApplication Gateway、仮想ネットワーク、プライベートエンドポイント
5.開発者識別とリクエスト承認のためのAzure Active Directory
6.ストリームイベントをハブ化する
7.APIを構築およびホスティングするために、Functions、Logic Apps、Web Apps、Service Fabricなど、複数のAzureコンピュート製品が一般的に利用される。

API管理についての核となるコンセプト

APIs

API ManagementサービスインスタンスはAPIをベースに構築されています。各APIはアプリ開発者に一連のオペレーションを表します。各APIは、バックエンドオペレーションへの操作のマッピングとAPIを実装するバックエンドサービスへの参照を持ちます。
API Management操作はURLマッピング、クエリーとパスパラメータ、リクエストおよびレスポンスコンテンツ、操作応答キャッシングといった制御を可能にし、非常にカスタマイズが可能です。

製品

APIは製品を通じて開発者に公開されます。API管理内の製品は、オープンかセキュアのいずれかであり、1つ以上のAPIを持つことができます。オープン製品はサブスクリプションキーなしで利用できますが、保護された製品はそうではありません。
製品が開発者の利用に供する準備ができたら、それを公開することができます。公開された後、開発者はそれを閲覧したり、サブスクライブしたりすることができます。製品レベルでサブスクリプションの承認は自動承認か、管理者の許可が必要かを設定できます。

グループ

グループは、製品の開発者の可視性を管理するために使用されます。以下のビルトイングループがAPI Managementにはあります。

管理者

API、活動、製品を作成し、API Managementサービスインスタンスを管理します。
Azureサブスクリプションの管理者はこのグループに含まれます。

開発者

開発者ポータルの認証済みユーザーで、APIを使ったアプリケーションを作成します。開発者は開発者ポータルにアクセスし、API機能を使用したアプリケーションを作成することができます。

ゲスト

サインインしていない開発者ポータルの訪問者で、例えば見込み客など。限定されたリードオンリーアクセスを与えることができ、APIを見ることはできますが使用することはできません。

開発者

API Managementサービスインスタンス内のユーザーアカウントは開発者によって表されます。管理者は新しい開発者を作成したり、参加を招待したり、または開発者が開発者ポータルを通じて登録することを許可することができます。各開発者は一つ以上のグループに属し、それらのグループの可視性を提供する製品をサブスクライブするオプションを持ちます。
製品にサブスクライブした開発者は、その製品のAPIを呼び出す際に使用する主なキーと副キーへのアクセスを与えられます。

ポリシー

ポリシーによって、API出版者はAPIの振る舞いを変更するよう設定できます。ポリシーは、APIのリクエストやレスポンスに順次適用される一連のステートメントです。XMLからJSON形式への変換やデベロッパーからの着信コールの数を制限するコールレートリミティングなどのステートメントが一般的です。API Managementポリシーで完全なリストを見てください。
ポリシー表現は任意のAPI Managementポリシーのテキスト値や属性値で使用できます。一部のポリシーは、変数設定や制御フローポリシーなど、ポリシー表現を使って構築されています。
必要に応じて、ポリシーを複数のスコープで実施できます。その範囲には、全体(全API)、製品、特定のAPI、APIアクションなどがあります。

API Managementのいくつかの主要機能

統一されたAPI管理でより迅速に動く

先進的な企業は今日、成長を加速するためにAPIデザインを使用しています。ハイブリッドおよびマルチクラウド環境において作業を合理化するため、全てのAPIを一か所で行うことができます。

インハウスとクラウドAPI管理

Azure、その他のクラウド、オンプレミスでホストされているAPIに沿ってAPIゲートウェイをデプロイすることで、APIトラフィックフローを最適化します。セキュリティと規制基準を満たしながら、内部と外部の全APIを統一した管理インターフェースと全体像を保ちます。

リソース保護に貢献する

認証、認可、使用制限を適用し、従業員、パートナー、および顧客がデータおよびサービスへのアクセスを制限します。

あなたのビジネスを加速する

APIファースト戦略を使用して、アプリケーションをより速く開発し、顧客に即時の価値を提供します。APIモック、APIリビジョンとバージョニング、自動化されたAPIドキュメント化を使用して、フロントエンドとバックエンドのチームを分離します。スーパーマーケットのWegmansが8週間未満で新しいモバイルアプリケーションを開発した方法を調べてください。

APIディスカバリーを増

こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/sardarmudassaralikhan/microsoft-azure-api-management-service-1ndo