すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:プライベートネットワーク経由での Model Studio API へのアクセス

最終更新日:Oct 11, 2026

VPC からパブリックインターネットを経由せずに Model Studio API を呼び出すには、Model Studio コンソールで PrivateLink 接続を追加し、ワークスペースに関連付けます。

仕組み

Model Studio ゲートウェイは、次の 2 つのアクセス方法をサポートします。

  • パブリックネットワークアクセス:パブリック MaaS ドメイン名 {WorkspaceId}.{RegionId}.maas.aliyuncs.com を使用して Model Studio API を呼び出します。トラフィックはパブリックインターネットを経由します。
  • PrivateLink プライベート接続:Model Studio コンソールで VPC に PrivateLink 接続を追加し、プライベートドメイン名を使用して Model Studio API を呼び出します。トラフィックは Alibaba Cloud ネットワーク内に留まり、パブリックインターネットを経由しません。

Model Studio コンソールで PrivateLink 接続を追加すると、PrivateLink により VPC と Model Studio の間にプライベート接続(エンドポイント接続)が確立されます。この接続は片方向です。VPC 内のリソースは Model Studio にアクセスできますが、Model Studio がこの接続を介して VPC 内のリソースにアクセスすることはありません。

VPC 内のコンピューティングリソースがプライベートドメイン名にアクセスすると、PrivateLink はパブリックインターネットを経由せずにトラフィックを Model Studio に転送します。

Model Studio は次のリージョンで利用できます。

  • パブリッククラウド:中国 (北京)、中国 (香港)。

    その他のリージョンでは、現在プライベートネットワークアクセスはサポートされていません。

  1. Model Studio コンソールにログインし、左側のナビゲーションペインで Settings > Network configuration を選択します。

  2. 初回使用時は、Add PrivateLink パネルで次の準備を完了します。

    • Authorize service-linked role for PrivateLink:Authorize Now をクリックし、Confirm Authorization をクリックして、サービスリンクロール AliyunServiceRoleForBackrouterAccessNet を作成します。
    • Activate PrivateLink:Enable Now をクリックして、PrivateLink サービスを有効化します。
  3. VPC private network access セクションで Add をクリックし、次のパラメーターを設定します。その他のパラメーターはデフォルト値のままにします。

    • Region:Model Studio サービスのリージョンを選択します。例:中国 (香港)。
    • VPC:Model Studio へのアクセスに使用する VPC を選択します。PrivateLink 接続はこの VPC 内に作成され、この VPC 内の ECS インスタンスやコンテナなどのリソースのみがプライベートドメイン名を介して Model Studio にアクセスできます。利用可能な VPC がない場合は、Create VPC をクリックして VPC コンソールで作成します。
    • Zones and Switches:Model Studio がサポートし、vSwitch を含むアベイラビリティーゾーンとその vSwitch を選択します。PrivateLink 接続は、選択した各ゾーンで vSwitch の内部 IP アドレスを 1 つ使用し、プライベートドメイン名の内部 DNS 解決アドレスとします。ゾーンと vSwitch の組み合わせは最大 2 つまで追加できます。高可用性のために 2 つ追加することを推奨します。1 つのゾーンで障害が発生した場合、トラフィックを別のゾーンへ自動的に切り替えてサービス中断を回避できます。利用可能な vSwitch がない場合は、Create Switch をクリックして VPC コンソールで作成します。
    • Security Group:PrivateLink 接続に関連付けるセキュリティグループを選択します。セキュリティグループは、この接続にアクセスできるリソースを制御します。インバウンドトラフィックでポート 443 (HTTPS) が許可されていることを確認してください。利用可能なセキュリティグループがない場合は、Create Security Group をクリックして ECS コンソールで作成します。
  4. Confirm をクリックし、接続の Status が Created に変わるまで待ちます。接続は約 1~3 分で有効になります。有効になった後、VPC 内の任意のクラウドサーバーからプライベートドメイン名を使用して Model Studio にアクセスできます。

プライベートネットワークを介して Model Studio にアクセスするワークスペースは、PrivateLink 接続に関連付ける必要があります。

  1. Model Studio コンソールの左側のナビゲーションペインで Workspaces を選択し、ワークスペースを新規作成するか、対象のワークスペースを編集します。
  2. Advanced Configuration で、PrivateLink を対象の PrivateLink 接続に設定します。各選択肢にはエンドポイント ID とそのリージョン、VPC が表示されます。対象の接続が一覧にない場合は、ドロップダウンリストの Create PrivateLink をクリックして作成します。関連付け後、そのワークスペースは対応する VPC の PrivateLink 接続を介して Model Studio にアクセスできます。
  3. 関連付けを解除するには、ワークスペースを編集して PrivateLink をクリアし、保存します。または、Network configuration ページで対象の PrivateLink 接続の行を展開し、Associated workspace 列の Unbind をクリックして、該当するワークスペース側で処理します。ワークスペースに関連付けられた PrivateLink 接続は、関連付けを解除するまで削除できません。

ステップ 3:プライベートドメイン名の取得

ステップ 2 の関連付けが完了すると、関連付けられた各ワークスペースに対してプライベートドメイン名が生成されます。Network configuration ページの VPC private network access 一覧で対象の PrivateLink 接続の行を展開し、Endpoint 列のプライベートドメイン名をコピーします。Associated workspace 列には、そのドメイン名が属するワークスペースの ID が表示されます。プライベートドメイン名の形式は {WorkspaceId}-{VpcId}.{region-id}.maas.aliyuncs.com です。WorkspaceId はワークスペース ID、VpcId は PrivateLink 接続が属する VPC の ID です。

Workspaces ページで対象ワークスペースの API Host 列からもプライベートドメイン名を確認できます。関連付け後、この列にはパブリックとプライベートの両方のドメイン名が表示されます。

プライベートドメイン名は、選択した VPC 内でのみ名前解決およびアクセスが可能です。Model Studio API の呼び出しには HTTPS(ポート 443)を使用します。ワークスペースが関連付けられていない場合、展開された行の Endpoint 列は空です。

ステップ 4:接続の確認

API リクエストの base_url のドメイン名を、前のステップで取得したプライベートドメイン名に置き換え、VPC 内から呼び出しを行います。

例えば、OpenAI 互換モードで Qwen テキストモデルを呼び出す場合:

  • 置き換え前:https://{WorkspaceId}.{RegionId}.maas.aliyuncs.com/compatible-mode/v1/chat/completions
  • 置き換え後:https://{WorkspaceId}-{VpcId}.{RegionId}.maas.aliyuncs.com/compatible-mode/v1/chat/completions

呼び出し例:

# 元のドメイン名を前のステップで取得したプライベートドメイン名に置き換えます。
curl -X POST https://{WorkspaceId}-{VpcId}.{RegionId}.maas.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen-flash",
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "Who are you?"
        }
    ]
}'
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 元のドメイン名を前のステップで取得したプライベートドメイン名に置き換えます。
    base_url="https://{WorkspaceId}-{VpcId}.{RegionId}.maas.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-flash",
    messages=[
        {'role': 'system', 'content': 'You are a helpful assistant.'},
        {'role': 'user', 'content': 'Who are you?'}],
)
print(completion.model_dump_json())
import os
from http import HTTPStatus
# DashScope SDK v1.14.0 以降の使用を推奨します。
import dashscope
from dashscope import Generation

# 元のドメイン名を前のステップで取得したプライベートドメイン名に置き換えます。
dashscope.base_http_api_url = "https://{WorkspaceId}-{VpcId}.{RegionId}.maas.aliyuncs.com/api/v1"
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")
messages = [{
    'role': 'user', 'content': 'Who are you?'
}]
response = Generation.call(
    model="qwen-flash",
    messages=messages,
    result_format='message'
)
if response.status_code == HTTPStatus.OK:
    print(response)
else:
    print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
        response.request_id, response.status_code,
        response.code, response.message
    ))
// DashScope SDK v2.12.0 以降の使用を推奨します。
import java.util.Arrays;

import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;
import com.alibaba.dashscope.utils.JsonUtils;

public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        // 元のドメイン名を前のステップで取得したプライベートドメイン名に置き換えます。
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}-{VpcId}.{RegionId}.maas.aliyuncs.com/api/v1");
        Message systemMsg = Message.builder()
                .role(Role.SYSTEM.getValue())
                .content("You are a helpful assistant.")
                .build();
        Message userMsg = Message.builder()
                .role(Role.USER.getValue())
                .content("Who are you?")
                .build();
        GenerationParam param = GenerationParam.builder()
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-flash")
                .messages(Arrays.asList(systemMsg, userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .build();
        return gen.call(param);
    }
    public static void main(String[] args) {
        try {
            GenerationResult result = callWithMessage();
            System.out.println(JsonUtils.toJson(result));
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            // エラーメッセージを出力します。
            System.err.println("An error occurred while calling the generation service: " + e.getMessage());
        }
    }
}

呼び出しを行う前に、API キーを取得する必要があります。コード内で API キーを直接渡すには、$DASHSCOPE_API_KEY をご利用の API キーに置き換えてください。

課金

PrivateLink を使用すると追加料金が発生します。詳細は、PrivateLink の課金をご参照ください。

よくある質問

  1. ECS インスタンスがプライベートネットワーク経由で Model Studio API にアクセスできないのはなぜですか?

    以下の項目を確認してください。

    1. ECS インスタンスと PrivateLink 接続が同じ VPC 内にあることを確認します。

      ECS インスタンスが異なる VPC にある場合は、プライベートネットワーク経由で Model Studio にアクセスできません。まず VPC 接続を設定します。

    2. PrivateLink 接続に関連付けられたセキュリティグループで、送信元 ECS インスタンスの CIDR ブロックからのポート 443 (HTTPS) のインバウンドトラフィックを許可するルールが追加されていることを確認します。

    3. PrivateLink 接続のステータスを確認します。

      接続ステータスが Created になり、接続が有効化されてから(作成後約 1~3 分)、プライベートドメイン名を使用できます。

    4. ワークスペースが関連付けられていることを確認します。

      プライベートドメイン名は、ワークスペースが PrivateLink 接続に関連付けられた後にのみ生成されます。展開された行の Endpoint 列が空の場合は、ステップ 2 の手順でワークスペースを関連付けてください。

  2. エンドポイントはパブリックインターネットからアクセスできますか?

    いいえ。PrivateLink は Alibaba Cloud 内部ネットワーク内でのみプライベート接続を確立します。エンドポイントはパブリックインターネットからアクセスできず、EIP をエンドポイント ENI に関連付けることはできません。

  3. 旧方式で作成した既存の PrivateLink 接続は、ワークスペースに関連付ける必要がありますか?

    必要ありません。以前 PrivateLink(VPC)コンソールでインターフェイスエンドポイントとして作成された既存の PrivateLink 接続は、デフォルトですべてのワークスペースに関連付けられています。ステップ 2 を実施しなくても、プライベートネットワーク経由で Model Studio API にアクセスできます。

    Network configuration ページで既存の接続を展開すると、Endpoint 列には vpc-{region-id}.dashscope.aliyuncs.com(例:vpc-ap-southeast-1.dashscope.aliyuncs.com)が表示され、Associated workspace 列にはすべてのワークスペースに関連付けられていることが示されます。これは、関連付けられたワークスペースごとに {WorkspaceId}-{VpcId}.{region-id}.maas.aliyuncs.com を表示する現在の流れとは異なります。

    この方式で新しい PrivateLink 接続を作成することはできなくなりました。追加する場合は、ステップ 1 に従って Model Studio コンソールで作成し、ステップ 2 に従ってプライベートネットワークアクセスが必要なワークスペースを関連付けてください。