ナビゲーションをスキップする

サーバーレス アーキテクチャ向け Azure API Management の発表

12月 4, 2018 に投稿済み

Principal PM Manager, Microsoft Azure

Azure API Management は、お客様が API を発行、セキュリティ保護、変換、メンテナンス、および監視できるようにするフル マネージド サービスです。Azure portal 内で数回クリックするだけで、外部および内部アプリケーションがカスタムビルトのバックエンド サービスによって実装されたビジネス ロジックやデータにアクセスする際に、"フロント ドア" として機能する API ファサードを作成できます。このバックエンド サービスには、Azure で実行されているもの (App Service、Azure Kubernetes Service など) も、Azure の外部でホストされているもの (プライベート データセンターまたはオンプロミス) も含まれます。API Management では、API 呼び出しの仲介に関連するすべてのタスク (要求の認証と承認、レート制限とクォータ強制、要求と応答の変換、ログ記録とトレース、API のバージョン管理など) を処理します。

今後 Azure のお客様は、新しい API Management インスタンスを作成する際に、新たに Consumption レベルを選択できます。この Consumption レベルは、基本的にサーバーレスの原則に基づいて設計および実装される、API Management のバリアントであり、これによって、より多くのお客様が API Management の利点を活用できるようになります。また、サーバーレス テクノロジを使用して構築されている新しいタイプのアプリケーションに、さらに有機的に適合するものとなります。

APIM Consumption レベルによって、長らくお客様からの要望があった、次のような重要なユース ケースに対応できるようになります。

  • Functions や Logic Apps など、サーバーレス テクノロジを使用して実装されているマイクロサービス向けの API ゲートウェイ。
  • Service Bus キューおよびトピック、Azure Storage など、サーバーレスの Azure リソースに簡素で安全なファサードを提供する API ゲートウェイ。
  • 通常は API トラフィックが少ないが、急増することもある、従来型バックエンド向けの API ゲートウェイ。

上記のユース ケースのいずれかに該当する場合は、是非、新しいレベルをお試しになって、感想をお寄せください。

比較対象のレベル

新しいレベルの要点を理解するために、既存のレベルと比べてみましょう。

API Management は、Developer と Standard という 2 つのレベルのみで提供が開始されました。その後、エンタープライズ向けのハイエンド機能を備えた Premium レベルと、エントリレベルの運用環境レベルとして Basic レベルが追加されました。これらのレベルはすべて共通のアーキテクチャを備えており、各 API Management サービス インスタンスには独占的に使用できるよう予約された一連のリソースが割り当てられています。このアプローチの最大のベネフィットとしては、セキュリティ分離、即座にできる容量、ノイジー ネイバーからの保護などを挙げることができます。ただし、プロビジョニングとスケーリングの待機時間が比較的長く、価格が従量課金ベースではないといったマイナス面もいくつかあり、これはサーバーレス アプリケーション モデルに基づく新しいタイプのソリューションにはうまく適合しません。

Consumption レベルでは、基盤となるサービス コンポーネントにはこれまでのレベルと同じもの使用しますが、動的に割り当てられる共有リソースに基づく、まったく異なるアーキテクチャが採用されています。そのため、これはサーバーレス コンピューティング モデルと完全に協調します。つまり、管理対象のインフラストラクチャなし、アイドル状態の容量なし、使用量ベースの価格といった理由から、このレベルはサーバーレス リソースを API として公開することに関連するソリューションにとってとりわけ適した選択肢となっています。Consumption レベルを選択した場合には、いくつかのトレードオフもあります。最も重要な 2 つの点として、機能セットがキュレートされることと、使用制限が強制されることが挙げられます。次の表は、レベル間の重要な比較ポイントをまとめたものです。

Consumption 新規 Developer | Basic | Standard | Premium
プロビジョニング対象および管理対象のインフラストラクチャなし プロビジョニング対象および管理対象のインフラストラクチャなし
組み込みの高可用性 組み込みの高可用性1
組み込みの自動スケーリング (0 までスケールダウン) 手動または外部自動スケーリング2
使用量に基づく最小限の課金 予約容量に基づく課金
予約容量なし 予約容量あり
共有リソース 専用リソース
オンデマンドのアクティブ化 常時接続
キュレートされた機能セット フル機能セット3
使用制限 管理なし

1Developer レベルを除きます

2Standard および Premium レベルでは、Azure Monitor の自動スケーリングを利用できます

3レベルごとに利用できる機能は若干異なります

新機能

次の 2 つの新機能は、現在のところ Consumption レベルでのみ利用できますが、間もなく残りの API Management レベルでも利用できるようになる予定です。

独自のキャッシュ (BYOC):応答キャッシュは、API の待機時間を短縮し、API バックエンドの負荷を軽減するという両方の目的で広く使用されている効果的な手法です。この機能を使用すると、お客様は外部でプロビジョニングされた Redis 互換のキャッシュを使用するように API Management サービスを構成することができます。キャッシュ構成を完全に制御できること、キャッシュ コンテンツを事前読み込みおよび消去できること、API Management サービス インスタンスとは無関係にキャッシュ サイズをスケーリングできることが、BYOC の重要なベネフィットです。また、Consumption レベルでは他のレベルとは異なりビルトイン キャッシュを伴わないため、これは Consumption レベルで応答キャッシュを有効にするための唯一のオプションでもあります。Microsoft では、統合されているキャッシュ構成と外部のキャッシュ構成のいずれともシームレスに連携するように、既存のキャッシュ ポリシーを変更しました。

Consumption レベルでの独自のキャッシュ

サブスクリプションの柔軟化: サブスクリプションは、本来、ひと組の API キー (正確には、主キーと 2 次キーの 2 つ) を格納する名前付きコンテナーです。以前は、サブスクリプションはユーザーによって所有され、単一の API 製品スコープをサポートするものでなければなりませんでした。キー管理を簡素化するために、Microsoft ではいくつかの変更を行いました。今後は、ユーザーと関連付けられない "スタンドアロン" のサブスクリプションを使用できるようになります。また、すべての API と単一の API という 2 つのサブスクリプション スコープが追加されました。そのため、たとえば、最初に製品を作成して API (または API Management インスタンス内のすべての API) を追加することなく、1 つの API (またはすべての API) へのアクセスを許可するキーを作成できるようになりました。加えて、各 API Management インスタンスには不変の全 API サブスクリプションが付属しているため、テスト コンソール内での API のテストとデバッグがさらに容易になりました。

サブスクリプションのオプション

残存作業

昨春以来取り組んできた Consumption レベルを、ようやく皆様にお届けできることを心から嬉しく思います。ただし、完了と言えるまでには、まだ必要な作業が残っています。今後数か月のうちに発表予定の重要な機能と改善の一部は、以下のとおりです。

  • カスタムのホスト名と証明書
  • 上位の API Management レベルへの"ワンクリック" アップグレード
  • プロビジョニング時間の短縮 (既に、以前のレベルよりもはるかに高速になっていますが、さらなる改善を目指しています)
  • "コールド スタート" の待機時間の短縮 (この領域ではあまり進捗がなく、必要なレベルとはほど遠い状況にあります)
  • 広範なパブリック Azure リージョンでの提供 (API Management が利用可能なすべてのリージョンで Consumption レベルを完全に提供できるように計画中です)
  • その他のサーバーレスおよび PaaS リソースに対応した "API の追加" エクスペリエンス ("API の追加" ページに新しいタイルが表示される予定です)

可用性

プレビュー段階の Consumption レベルは、米国中北部、米国西部、西ヨーロッパ、北ヨーロッパ、東南アジア、オーストラリア東部の各リージョンで、今すぐご利用いただけます。

是非お試しください – 新しいサービスを作成し、Function または Logic App をインポートすることによって、API の発行がどれほど容易かをご確認ください。

サーバーレス API を構築する方法の詳細については、ウェビナー「Build Serverless APIs with Node.js on Azure Functions (Azure Functions で Node.js を使用してサーバーレス API を構築する)」をご覧ください。

ご意見をお寄せください