Application Load Balancer (ALB) Extensible Edition を使用すると、統一されたエンドポイントを通じて複数の大規模言語モデル (LLM) サービスを統合できます。AI サービスサーバーグループと、リクエスト本文のモデル名に基づく転送ルールを構成すると、ALB はリクエストを対応するバックエンド AI サービスに自動的にルーティングし、統一されたエントリポイントを提供してクライアントの統合を簡素化します。
シナリオ
AI アプリケーションを構築している企業が、Alibaba Cloud Model Studio の qwen-turbo モデルと DeepSeek の deepseek-chat モデルを呼び出す必要があるとします。ALB Extensible Edition は AI サービスサーバーグループを提供し、クライアントが OpenAI 互換のリクエストを ALB に送信できるようにします。リクエスト本文でモデル名を指定すると、ALB 転送ルールがリクエストを対応するバックエンド LLM サービスにルーティングし、統一されたエンドポイントを作成してビジネスの複雑性やメンテナンスコストを削減します。
前提条件
ALB Extensible Edition パブリックプレビューアクセスを取得していること。
中国 (ウランチャブ) リージョンに Virtual Private Cloud (VPC) を作成し、ゾーン A とゾーン B に vSwitch を作成していること。また、vSwitch に パブリック SNAT が構成されていること (AI サービスサーバーグループがパブリック LLM サービスを呼び出すために必要)。
Alibaba Cloud Model Studio と DeepSeek を有効化し、両方の API キーを取得していること。
カスタムドメイン名を登録していること。このチュートリアルでは ALB インスタンスを中国 (ウランチャブ) リージョンにデプロイするため、ドメインの ICP 登録が完了していること。
カスタムドメイン名に一致するサーバー証明書を準備していること。Alibaba Cloud 以外で購入した証明書は、Alibaba Cloud SSL Certificate にアップロードする必要があります。
操作手順
1. ALB Extensible Edition インスタンスの作成
ALB コンソールにログインし、中国 (ウランチャブ) リージョンを選択して、ALB の作成 をクリックします。
購入ページで、以下の設定を完了し、今すぐ作成 をクリックします。
[リージョン]: [中国 (ウランチャブ)] がデフォルトで選択されています。
[ネットワークタイプ]: [インターネット] を選択します。
[VPC] と [ゾーン]: 対象の VPC を選択し、[ウランチャブゾーン A] と [ウランチャブゾーン B] を選択し、利用可能な vSwitch を選択して、[EIP を自動的に割り当てる] を選択します。
[IP バージョン]: [IPv4] を選択します。
[エディション]: [Extensible] を選択します。
注文確認 ページで、インスタンス構成を確認し、今すぐ有効化 をクリックします。
2. AI サービスサーバーグループの作成
Alibaba Cloud Model Studio と DeepSeek にそれぞれ接続するために、2 つの AI サービスサーバーグループを作成します。
Alibaba Cloud Model Studio サーバーグループの作成
ALB コンソール - サーバーグループページで、サーバーグループの作成 をクリックします。サーバーグループタイプ を Ai に設定します。わかりやすい名前を指定します。このチュートリアルでは、
sgp-ai-qwenを使用します。作成 をクリックします。サーバーグループが作成されました ダイアログボックスで、バックエンドサーバーの追加 をクリックします。
AI サービスの追加 パネルで、次の設定を完了し、OK をクリックします。
[モデルプロバイダ]: Alibaba Cloud Model Studio を選択します。
[エンドポイント]: モデルプロバイダ を選択すると、このフィールドは自動的に入力されます。
[API Key]:Alibaba Cloud Model Studio 用の API キーを入力します。
DeepSeek サーバーグループの作成
上記の手順を繰り返して、
sgp-ai-deepseekという名前の 2 つ目の Ai サーバーグループを作成します。バックエンドサーバーの追加 の際、モデルプロバイダ を DeepSeek に設定し、DeepSeek の API キーを入力してから OK をクリックします。
3. リスナーの作成
ALB コンソールで、対象のインスタンス ID をクリックして インスタンスの詳細 ページに移動します。 リスナー タブをクリックし、リスナーの作成 をクリックします。
リスナーの設定 ステップで、リスナープロトコルの選択 を HTTPS に、リスニングポート を
443に設定し、次へ をクリックします。SSL 証明書の設定 ステップで、カスタムドメイン名に一致するサーバー証明書を選択し、次へ をクリックします。
サーバーグループの選択 ステップで、 Ai タイプと Alibaba Cloud Model Studio サーバーグループ
sgp-ai-qwenを選択し、次へ をクリックします。ここで選択するサーバーグループは、リスナーのデフォルトルールに使用されます。このルールは、他の転送ルールに一致しないリクエストを処理します。ニーズに応じて設定を調整してください。
設定の確認 ステップで、設定を確認し、送信 をクリックします。
4. 転送ルールの構成
リクエストは、優先度の昇順で転送ルールと照合されます。リクエストがルールに一致すると、対応するアクションが実行され、後続のルールは照合されません。リクエストボディのモデル名に基づいてリクエストを適切なバックエンド AI サービスにルーティングするには、AI モデル 条件で転送ルールを作成します。
Alibaba Cloud Model Studio 転送ルールの構成
インスタンス詳細ページのリスナータブで、対象のリスナー ID をクリックします。リスナーの詳細ページで、転送ルールタブをクリックします。
新しいルールの追加 をクリックして以下の設定を行い、OK をクリックします。
転送条件 には、AI モデル を選択します。
[モデル名]:
qwen-turboを入力します。[転送操作]: 転送先
sgp-ai-qwenサーバーグループへ。
DeepSeek 転送ルールの構成
前述の手順を繰り返して、2 つ目の転送ルールを追加します。
モデル名 を
deepseek-chatに設定し、転送先 にはsgp-ai-deepseekサーバーグループを選択します。
モデル名 はオプションのパラメーターです。 AI モデル 転送条件は、パスが/v1/completions、/v1/chat/completions、または/v1/embeddingsであり、リクエストコンテンツが OpenAI 互換プロトコルに準拠しているすべてのリクエストに一致します。 モデル名 を指定した場合、リクエストボディのmodelフィールドも指定されたモデル名と一致する必要があります。
5. DNS 名前解決の構成
CNAME レコードを使用して、カスタムドメイン名が ALB インスタンスの DNS 名を指すように設定します。クライアントは、カスタムドメイン名を通じて ALB にアクセスします。
このチュートリアルでは、Alibaba Cloud DNS を例として使用します。Alibaba Cloud に登録されていないドメイン名の場合は、まず Alibaba Cloud DNS コンソールにドメイン名を追加する必要があります。
ALB コンソールで、対象のインスタンスの ドメイン名 をコピーします。
Alibaba Cloud DNS コンソールにログインします。 対象のドメイン名のActions 列で、解決設定 をクリックします。 解決設定 ページで、Add Record をクリックします。
以下の情報で CNAME レコードを追加し、OK をクリックします。
[Record Type]: CNAME を選択します。
[Hostname]:
aiなどのドメインプレフィックスを入力します。 ルートドメインがexample.comの場合、ALB にアクセスするためのドメインはai.example.comになります。Query Source と TTL は、デフォルト値のままにします。
[Record Value]: ALB インスタンスの DNS 名を入力します。
Change Resource Record Confirmationダイアログボックスで、DNS 情報を確認し、OKをクリックします。
6. 構成の検証
curl コマンドを使用して、リクエストが対応する LLM サービスに正しくルーティングされることを確認します。
ai.example.comを、実際に設定したドメイン名に置き換えてください。DNS 名前解決が反映されていることを確認してください。クライアントリクエストは、OpenAI 互換プロトコルに準拠する必要があります。リクエストパスは
/v1/completions、/v1/chat/completions、または/v1/embeddingsである必要があり、リクエストボディにはmodelフィールドを含める必要があります。転送ルールは、modelフィールドの値に基づいてリクエストをルーティングします。
Alibaba Cloud Model Studio (qwen-turbo モデル) のテスト
curl -v \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-turbo",
"messages": [
{
"role": "user",
"content": "Who are you"
}
]
}' \
https://ai.example.com/v1/chat/completionsリクエストが成功すると、次のようなレスポンスが返されます。 model フィールドは qwen-turbo で、content フィールドには Qwen からの自己紹介が含まれており、リクエストが Alibaba Cloud Model Studio に正しくルーティングされたことを示しています。
{
"choices": [
{
"message": {
"role": "assistant",
"content": "I am Qwen, a large-scale language model developed by the Tongyi Lab of Alibaba Group. My Chinese name is Tongyi Qianwen, and my English name is Qwen. I can perform various tasks such as answering questions, creating text, logical reasoning, and programming. You can call me Qwen or Tongyi Qianwen. How can I help you?"
},
"finish_reason": "stop",
"index": 0
}
],
"object": "chat.completion",
"model": "qwen-turbo"
}DeepSeek (deepseek-chat モデル) のテスト
curl -v \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-chat",
"messages": [
{
"role": "user",
"content": "Who are you"
}
]
}' \
https://ai.example.com/v1/chat/completionsリクエストが成功すると、次のようなレスポンスが返されます。model フィールドは deepseek-chat で、content フィールドには DeepSeek からの自己紹介が含まれており、リクエストが DeepSeek に正しくルーティングされたことを示しています。
{
"object": "chat.completion",
"model": "deepseek-chat",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! I am DeepSeek, an AI assistant created by DeepSeek company!\n\nI am a plain text model. Although I do not support multi-modal recognition, I have a file upload feature that can help you process images, txt, pdf, ppt, word, excel and other files, and read text information from them for analysis and processing.\n\nSome of my features:\n- Completely free to use, with no paid plans\n- Context length of up to 128K, allowing for very long conversations\n- Supports web search (needs to be enabled manually)\n- Can be used by downloading the app from the official app store\n- Knowledge cutoff is July 2024\n\nI am happy to help you answer questions, assist with thinking, process documents, or engage in various conversations! Is there anything I can help you with? ✨"
},
"logprobs": null,
"finish_reason": "stop"
}
]
}Resource cleanup
After testing, if you no longer need the resources, follow these steps to release them and avoid unnecessary charges.
In the Alibaba Cloud DNS console, delete the CNAME record you added.
Clean up ALB resources
In the ALB console, find the target instance and click [リリース] in the [操作] column.
In the Server Group console, find the target server group and click [削除] in the [操作] column.
Clean up VPC resources (optional)
If the VPC and vSwitches were created specifically for this tutorial, you can delete them in the VPC console.
Additional information
Billing
ALB Extensible Edition: Currently in public preview and free to use.
Public network access fees: Internet NAT Gateway charges instance fees and Capacity Unit (CU) fees. The EIPs bound to the NAT gateway and the ALB Extensible Edition instance have their own billing rules, and fees are charged by EIP.
Domain name and DNS resolution fees: In addition to domain registration fees charged by your domain provider, configuring DNS resolution on Alibaba Cloud requires paying public authoritative DNS resolution fees.
Certificate fees: Purchasing certificates from Alibaba Cloud or uploading certificates to Alibaba Cloud requires paying server certificate fees.
Model fees: Calling the LLM APIs of Alibaba Cloud Model Studio and DeepSeek incurs charges.
Regions where ALB Extensible Edition is available
エリア | リージョン | ゾーン |
中国 | China (Ulanqab) | ゾーンA、ゾーンB、ゾーンC |
China (Hangzhou) | ゾーンJ、ゾーンK | |
China (Beijing) | ゾーンI、ゾーンK、ゾーンL | |
China (Shanghai) | ゾーンB、ゾーンF | |
China (Hong Kong) | ゾーンB、ゾーンC、ゾーンD | |
アジアパシフィック | Singapore | ゾーンA、ゾーンB、ゾーンC |
Japan (Tokyo) | ゾーンB、ゾーンC、ゾーンE | |
ヨーロッパおよびアメリカ | Germany (Frankfurt) | ゾーンA、ゾーンB |
US (Silicon Valley) | ゾーンA、ゾーンB | |
中東 | UAE (Dubai) | ゾーンA、ゾーンB |