本記事はこちらのブログを参考にしています。
翻訳にはアリババクラウドのModelStudio(Qwen)を使用しております。
APIゲートウェイは新しい概念ではありませんが、DeepSeekの普及トレンドにより、APIゲートウェイに新たな興奮をもたらしています。この記事では、関連する概念、APIゲートウェイの進化と分類、コア機能、そしてDeepSeekがAPIゲートウェイとどのように統合されるかについて議論することで、APIゲートウェイに関するより包括的な理解を提供することを目指します。
目次
- はじめに
- APIゲートウェイに関連する概念
- APIゲートウェイの進化と分類
- APIゲートウェイのコア機能と適用シナリオ
- DeepSeekをAlibaba Cloud Native API Gatewayと統合する方法
1. はじめに
APIゲートウェイは、APIを管理するための中核コンポーネントであり、全体のアーキテクチャシステムにおいて重要な役割を果たします。それは、知能的な交通ハブのようなもので、さまざまなAPIリクエストを調整し管理し、安全性と安定性を確保しながら効率的かつスムーズな応答を可能にします。大規模モデルアプリケーションからの多くの硬直した要件が、APIゲートウェイを通じて満たされています。例えば:
- バックエンドで複数の大規模モデルをサポート:製品体験の考慮だけでなく、安定性の懸念もあり、これは対話型やコード関連のアプリケーションに関わらず大規模モデルアプリケーションの標準となっています。
- ネットワーク検索機能の有無:大規模モデルの生成品質には大きなばらつきがあるため、フロントエンドではネットワーク検索のオプションを公開する必要があります。
- コンテンツ出力の安全性とコンプライアンスの確保:コンテンツ生成前に制御を実施します。
- セマンティックキャッシュ:APIレスポンス結果を一時的にキャッシュサーバーに保存し、同じリクエストが到着した場合にキャッシュから直接レスポンスを取得できるようにして、公式API呼び出しコストを削減します。
- クォータとレート制限:一定時間内における各呼び出し元(例:ユーザー、アプリケーション、IPアドレス)に対するAPI呼び出し数、トラフィック量、またはリソース使用量を制限する仕組みです。
- バックエンド保護のレート制限:APIへのトラフィックフローを管理し、負荷分散、レート制限、劣化、サーキットブレーカーなどの機能を含む安定かつ効率的な運用を確保します。
2. APIゲートウェイに関連する概念
2.1 API
API(Application Programming Interface)は、異なるソフトウェアアプリケーションやコンポーネント間の通信および相互作用を定義するための一連の仕様やプロトコルです。APIはミドルウェアと見なすことができ、開発者が基盤の実装詳細を理解することなく特定の機能やデータにアクセスして利用できます。例えば、Alibaba Cloud APIは開発者にクラウドリソース、データ、サービスを管理するための一連のアプリケーションインターフェースを提供します。APIの分類には以下が含まれます:
Alibaba Cloud Native API GatewayコンソールでのAPI作成のエントリインターフェース
- HTTP API:HTTPプロトコルに基づくインターフェースで、ルーティングを中心に構築されます。K8s Ingress、マイクロサービスアーキテクチャ、AI(SSE)など、インターフェースに統一された標準がないシナリオに適しており、外部サービスを迅速に公開できます。
- REST API:リソース指向のRESTfulスタイルのHTTPインターフェースで、標準的なHTTPメソッド(GET、POSTなど)を使用して操作し、すべてのインターフェースが統一されたOpenAPI仕様に準拠しています。APIファースト、クロステームコラボレーション、洗練されたAPIガバナンスに適しています。
- WebSocketプロトコルインターフェース:双方向リアルタイム通信に適しており、AI、IoT、インスタントメッセージングなどで使用されます。WebSocketsはHTTP APIと比較してリアルタイムデータ転送能力と組み込みの長時間接続デフォルト設定を提供します。
- AI API:AIゲートウェイ向けに最適化されたAPIで、より使いやすいAIゲートウェイ設定とデバッグ機能を提供し、AIプロキシ、AIモニタリング、消費者認証、コンテンツセーフティ保護などのプリセット機能を備えています。
2.2 APIゲートウェイ
APIゲートウェイ(APIG)は、APIホスティングサービスを提供するミドルウェアです。クライアントとバックエンドサービスの間に位置し、クライアントがバックエンドサービスにアクセスするための唯一のエントリーポイントとして機能します。すべてのクライアントからのリクエストは最初にAPIゲートウェイを通過し、その後バックエンドサービスにルーティングされます。門番のように動作し、ID検証、権限チェック、フロー制御などのアクションを担当し、APIリクエストのセキュリティと安定性を確保します。
2.3 その他の概念
- ドメイン:ブラウザ内のアドレスで、クライアントリクエストの起点です(例:www.xxx.com)。
- DNS:ドメインネームシステムで、ドメイン名を対応するIPアドレスに解決し、ネットワーク上のコンピュータ間の相互認識と通信を促進します。
- IPアドレス:インターネット上の各デバイス(コンピュータ、携帯電話、ルーターなど)に論理アドレスを提供し、データパケットが正確に送信元から宛先デバイスに送られるようにします。
- ルーティング:ネットワーク上でデータパケットが送信元アドレスから宛先アドレスに移動する際の経路選択プロセスを指します。ルーティングの作成時には、リクエストパス、メソッド、パラメータ、その他のルールを定義して、リクエストを対応するバックエンドサービスに分配できます。
- ソースとサービス:リクエストがAPIゲートウェイに到達した後、バックエンドサービスリストを動的に取得してサービスへのアクセスを継続する必要があります。これには、コンテナサービス、Nacos、固定アドレス、DNSドメイン、サーバーレスコンピューティングなどのさまざまな形式に対応する必要があります。
- 環境:APIライフサイクル管理プロセス中の異なる状態を定義し、APIを異なるカスタム環境(開発、テスト、本番など)に公開して、さまざまな段階でのAPIのテストと管理を可能にします。
- APIグループ化:同じビジネスに関連するAPIの集合で、サービスとして見ることができます(例:信用照会サービス)。API開発者はグループ内のすべてのAPIを管理し、類似のビジネスAPIの一元管理と保守を容易にします。
- 消費者:クライアントがAPIにアクセスするための資格情報です。消費者を有効にするには、対応するインターフェース/ルートで消費者認証を有効にする必要があり、消費者とインターフェース/ルート間の承認関係が作成されます。消費者認証が有効になると、承認されたインターフェース/ルートのみが対応する資格情報でアクセスできます。
3. APIゲートウェイの進化と分類
APIゲートウェイは独立した存在ではなく、ソフトウェアアーキテクチャの進化とともに発展してきました。ソフトウェアアーキテクチャはモノリシック、垂直、SOA、マイクロサービス、クラウドネイティブアーキテクチャへと移行してきました。大規模モデルの普及により、AIネイティブアーキテクチャへの進化が続き、その過程でAPIゲートウェイの形態も反復され、さまざまなソフトウェアアーキ
APIを直接定義せずにコーディングするのとは異なり、API Firstはアプリケーションを構築する前にAPIインターフェースの設計と開発を重視し、APIをシステムのコアとなるアーキテクチャコンポーネントとして扱い、明確に定義されたインターフェース仕様を通じてモジュール化を実現します。例えば、パブリッククラウド製品ではAPI呼び出し方法が提供され、WeChatミニプログラムやDingTalkオープンプラットフォームは開発者向けにAPIインターフェースを提供しています。これは、標準的なインターフェースを通じてサービス間の柔軟な組み合わせを可能にするLEGOシステムのようなもので、システムの拡張性と保守性を向上させ、エコシステムの効率を高めます。開発シナリオにおいて、APIゲートウェイはAPIを中心としたライフサイクル全体をカバーできます。これには、設計、開発、テスト、公開、販売、運用監視、セキュリティ管理、およびAPIの廃止が含まれます。
4.2 API供給シナリオ
API供給シナリオとは、APIプロバイダ(企業、プラットフォーム、またはサービスなど)が標準化されたインターフェースを通じて外部にデータや機能を公開するプロセスを指します。その中核は、APIの作成、管理、および維持を行い、利用可能性、セキュリティ、効率性を確保することです。コア能力には以下が含まれます:
- APIセキュリティ:認証、承認管理、データの暗号化/復号化、攻撃対策メカニズムなどを通じて、APIをさまざまなセキュリティ脅威から保護し、許可されたユーザーとアプリケーションのみがAPIにアクセスできるようにし、データの機密性、完全性、可用性を保証します。
- グレーリリース:新しいAPIバージョンまたは機能を段階的に本番環境に導入する戦略で、一部のユーザーまたはリクエストトラフィックを新しいバージョンのAPIに誘導しつつ、残りは古いバージョンを使用し続けます。これにより、新APIのテストと検証をシステム全体の安定性やユーザーエクスペリエンスに影響を与えることなく行うことができます。
- キャッシュ:API応答結果を一時的にキャッシュサーバーに保存し、同一のリクエストが再度到着した際にバックエンドサーバーに再アクセスすることなくキャッシュから応答結果を取得することで、API応答速度とシステム性能を向上させます。
4.3 API消費シナリオ
API消費シナリオとは、呼び出し元(アプリケーションや開発者など)が外部APIを統合して迅速に機能を実装したりデータを取得するプロセスを指します。その中核は、プラットフォームが提供する機能やデータを利用してビジネスニーズを満たすことです。
- コール監査:APIコール活動を包括的に記録、監視、分析するプロセスです。各APIコールに関する詳細情報(コール時間、呼び出し元のID、呼び出されたAPIインターフェース、リクエストパラメータ、応答結果、応答時間など)を記録します。
- クォータとレート制限:APIゲートウェイが事前設定されたルールに基づいて一定期間内に各呼び出し元(ユーザー、アプリケーション、IPアドレスなど)に対するAPI呼び出し数、トラフィックサイズ、またはリソース使用量を制限する仕組みです。
- バックエンド保護型レート制限:APIへのトラフィックを管理・制御し、過剰または異常なトラフィックによるシステムクラッシュやパフォーマンス低下を回避しながら、APIの安定かつ効率的な動作を確保します。これには、負荷分散、レート制限、劣化、サーキットブレイカーなどの機能が含まれます。
5. DeepSeekをAlibaba Cloud Native API Gatewayと統合する方法
5.1 前提条件
パブリックNATゲートウェイがバインドされたパブリックElastic IPを持つ仮想プライベートクラウド(VPC)が作成されています。具体的な操作については、「仮想プライベートクラウドの作成と管理」および「パブリックNATゲートウェイSNAT機能を使用してインターネットにアクセス」を参照してください。このVPCに基づき、クラウドネイティブAPIゲートウェイインスタンスを作成します。具体的な操作については、「ゲートウェイインスタンスの作成」を参照してください。以下のデモンストレーションでは、次の3つのシナリオを参考として提供します:
- 統合モデルがAIゲートウェイにアクセス
- 一般モデルがAIゲートウェイにアクセス
- AIゲートウェイがマルチモデルプロキシを実現
5.2 シナリオ1: 統合モデルがAIゲートウェイにアクセス
一部の大規模モデルプロバイダはすでにAlibaba Cloud Native API Gatewayに統合されており、これらのモデルはプロバイダを選択しAPI-KEYを設定することで直接アクセスできます。これらには以下が含まれます:
Alibaba Cloud Bailian, DeepSeek, OpenAI, Azure, Claude, Dark Side of the Moon, Baichuan Intelligence, Zero One Everything, Zhipu AI, Hunyuan, Jueyue Star, Spark, Doubao (Volcano Engine), MiniMax, Gemini.
AIサービスの設定
ゲートウェイは以下の方法でサービスを通じてAIサービスを作成し、リクエストを送信します:
-
Cloud Native API Gatewayコンソールにログインします。左側のナビゲーションバーで「Instances」を選択し、上部メニューからリージョンを選択します。インスタンスページでターゲットゲートウェインスタンスの名前をクリックします。
-
左側のナビゲーションバーで「Services」を選択し、「Services」タブをクリックします。「Create Service」をクリックし、「Create Service」パネルで以下の情報を基にAIサービスを設定します:
- サービスソース: AIサービス
- 大規模モデルプロバイダ: 対応するモデルプロバイダを入力します。
- サービスアドレス: デフォルト設定を使用します。
- API-KEY: モデルプロバイダから取得したリクエスト資格情報API-KEYを入力します。
例: Alibaba Cloud Bailianの場合:
- 大規模モデルプロバイダ: Alibaba Cloud Bailian
- サービスアドレス: https://dashscope.aliyuncs.com/compatible-model/v1
- API-KEY: Alibaba Cloud Bailianから取得したAPI-KEYを入力します。
AI APIの設定
Cloud Native API Gatewayコンソールのホームページに戻り、左側のナビゲーションバーで「API」を選択します。「AI API」タブを選択し、「Create AI API」をクリックします。「Create AI API」コントロールパネルで、以下の基本情報を設定します:
- ドメイン名: ドメイン名を設定することをお勧めします(デフォルト環境ドメインではレート制限があります)。
- 関連インスタンス: 作成したインスタンスを選択します。
- AIリクエスト監視: 有効にします。
- サービスタイプ: 単一モデルサービス
-
サービスリスト: 「Add」をクリックして前のステップで設定したDeepSeekサービスを追加し、
参考リンク:
[1] https://www.alibabacloud.com/help/en/vpc/user-guide/create-and-manage-a-vpc
[2] https://www.alibabacloud.com/help/en/vpc/user-guide/use-the-snat-feature-of-an-internet-nat-gateway-to-access-the-internet
[3] https://www.alibabacloud.com/help/en/api-gateway/cloud-native-api-gateway/user-guide/create-gateway
[4] https://www.alibabacloud.com/help/en/api-gateway/cloud-native-api-gateway/use-cases/pai-deployment-model-access-ai-gateway