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

Auto Scaling:スケーラブルで高可用な DeepSeek-R1-蒸留-Qwen-7B 推論サービスの迅速なデプロイ

最終更新日:Aug 21, 2026

Elastic Container Instance (ECI) のスケーリンググループと Application Load Balancer (ALB) を組み合わせて、クロスゾーンで高可用性な大規模言語モデル (LLM) 推論サービスをデプロイします。

ソリューション概要

このソリューションでは、ゾーンレベルのディザスタリカバリとして、1つのリージョン内の複数のゾーンにまたがって Elastic Container Instance (ECI) ベースの推論インスタンスをデプロイします。Application Load Balancer (ALB) がトラフィックを分散し、Object Storage Service (OSS) がモデルファイルを保存します。次の図にアーキテクチャを示します。

メリット

  • 高可用性:複数のサーバーに ワークロード を分散して単一障害点を排除し、サービスの中断を防止します。

  • 伸縮自在なスケーリング:スケーリンググループが推論クラスターを管理します。ECI インスタンス数を調整して迅速にスケールアウトできます。または、ワークロードに基づいてオンデマンドでリソースをプロビジョニングするように自動スケーリングを設定できます。

手順

  1. クラスターネットワークの計画:複数のゾーンに VPC と vSwitch を作成します。

  2. OSS バケットの作成:モデルの重みファイルを保存します。

  3. インスタンス RAM ロールの設定:手順 2 で作成した OSS バケットへのアクセス権限を ECI インスタンスに付与します。

  4. イメージキャッシュの準備:起動を高速化し、OSS からモデルの重みをダウンロードするためのイメージキャッシュを作成します。

  5. ALB インスタンスの作成:ALB インスタンスはサービスエンドポイントとして機能します。

  6. スケーリンググループの作成:ALB インスタンスに関連付けると、新しい ECI インスタンスがバックエンドサーバーグループに自動的に追加されます。

  7. サービスの起動:スケーリンググループで期待されるインスタンス数を設定して、サービスを起動します。

1. クラスターネットワークの計画

複数のゾーンにまたがって Virtual Private Cloud (VPC) と vSwitch を作成します。この例では、高可用性を実現するために、異なるゾーンにある 1 つの VPC と 2 つの vSwitch を使用します。

既存の VPC を再利用してこのステップをスキップできます。
  1. コンソールで、以下のステップに従って 1 つの VPC と 2 つの vSwitch を作成します。

    ①②: 左側のナビゲーションペインで、[Virtual Private Cloud] をクリックし、次に VPC の作成 をクリックします。

    ③: [リージョン]: China (Hangzhou)

    ④: [名前]: vpc-ess-hangzhou

    ⑤: [IPv4 CIDR ブロック]: 192.168.0.0/16 を選択します。

    vSwitch 1:

    ⑥: [名前]: vSwitch-j

    ⑦: [ゾーン]: ゾーン J

    ⑧: [IPv4 CIDR ブロック]: 192.168.0.0/24

    ⑨: 追加 をクリックして vSwitch 2 を作成します。

    vSwitch 2:

    ⑩: [名前]: vSwitch-k

    ⑪: [ゾーン]: ゾーン K

    ⑫: [IPv4 CIDR ブロック]: 192.168.1.0/24

  2. OK をクリックし、VPC が作成されるまで待ちます。

2. OSS バケットの作成

モデルの重みファイルを格納するために、Object Storage Service (OSS) バケットを作成します。ECI インスタンスはこのバケットからファイルを読み取ります。

既存の OSS バケットを再利用し、このステップをスキップすることも可能です。
  1. Object Storage Service コンソールで、バケットを作成します。

    以下の主要なパラメーターを設定します。その他はデフォルト設定のままにします。

    ①: バケットの作成 をクリックします。

    ②: バケット名。この名前は、後でストレージをマウントする際に必要です。

    ③: リージョン。特定のリージョンを選択し、ECI インスタンスと同一リージョンであることを確認します。このチュートリアルでは [中国東部1 (杭州)] を使用します。

    ECI から OSS への同一リージョン内アクセスでは内部ネットワークが使用され、データ転送料金は発生しません。詳細については、「ECS インスタンスから内部ネットワーク経由で OSS リソースにアクセスする」をご参照ください。
  2. 完全な作成 をクリックします。

3. インスタンス RAM ロールの作成

ECI インスタンスが OSS バケットからモデルの重みファイルを読み取れるように、インスタンス RAM ロールを作成します。

  1. コンソールで、以下の設定でインスタンス RAM ロールを作成します。

    ② ロールの作成 をクリックします。

    [RAM] コンソールの左側のナビゲーションペインで、[アイデンティティ] > [ロール] を選択します。

    ③ [信頼できるエンティティタイプ]: [Alibaba Cloud サービス] を選択します。

    ④ [プリンシパル名]: Ecsインスタンス を選択します。

    ⑤ OK をクリックし、プロンプトに従ってインスタンス RAM ロールの名前を設定します。

  2. コンソールで、次のポリシーを作成します。

    ① ポリシーの作成 をクリックします。

    ② JSON をクリックします。

    ③ 次のポリシードキュメントを使用します。このポリシーは、特定のバケットに完全な権限を付与します。

    重要

    このポリシーを設定する際、<bucket_name> を、作成したバケットの[バケット名]に置き換えてください。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "oss:*",
                "Resource": [
                    "acs:oss:*:*:<bucket_name>",
                    "acs:oss:*:*:<bucket_name>/*"
                ]
            }
        ]
    }

    [OK] OK をクリックし、プロンプトに従ってポリシーの名前を設定します。

  3. コンソールで、インスタンス RAM ロールに権限を付与します。

    ① 権限の付与 をクリックします。

    ③: [権限付与の対象]:作成したインスタンス RAM ロールを選択します。

    ④: [ポリシー]。作成したポリシーを選択します。

    [権限を付与] 権限を付与 をクリックします。

4. イメージキャッシュとモデルファイルの準備

ECI インスタンスの起動を高速化するために イメージキャッシュ を作成し、モデルファイルを OSS にダウンロードします。

  1. コンソールで、ECI イメージキャッシュを作成します。

    ①②: イメージキャッシュの作成 をクリックします。

    Elastic Container Instance コンソールの左側のナビゲーションペインで、[イメージキャッシュ] をクリックします。

    ③④: [リージョンとゾーン]。リージョンは ステップ 1 の VPC リージョンと、ゾーンは ステップ 1 の vSwitch のいずれかと一致している必要があります。

    ⑤⑥: [ネットワーク]。手順 1 で作成した VPC と vSwitch のいずれか 1 つを選択します。

    ⑦: [Elastic IP アドレス]。既存の EIP を選択します。存在しない場合は、[EIP コンソール] をクリックして作成し、戻って更新アイコン image をクリックしてから選択します。

    ⑧: [セキュリティグループ]。セキュリティグループを選択します。存在しない場合は、セキュリティグループの作成 をクリックして作成し、作成したセキュリティグループを選択します。

    ⑨: イメージキャッシュ名: vllm と入力します。

    ⑩: [キャッシュのサイズ]。100 GB。

    ⑪: [イメージ]。 egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm。

    ⑫: [バージョン]: 0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04.

    ⑬: [Elastic Container Instance ECI サービス規約] チェックボックスを選択します。⑭: OK をクリックします。

    イメージキャッシュが作成されるまで待ちます(約 15 分)。コンソールのイメージキャッシュページで進行状況を確認できます。

    イメージキャッシュが作成されると、[ステータス] 列に [準備中] と完了率 (0% など) が表示され、作成が進行中であることを示します。

  2. コンソールで、モデルファイルを OSS バケットにダウンロードするために、一時的な ECI インスタンスを起動します。

    ①②: 左側のナビゲーションペインで [コンテナグループ] をクリックし、次に エラスティックコンテナーグループの作成 をクリックします。

    ③: [支払いモード]:従量課金。

    ④: リージョン。ステップ 1 の VPC リージョンと一致している必要があります。このチュートリアルでは、中国 (杭州) を使用します。

    ⑤: [VPC]。ステップ 1 で作成した VPC を選択します。

    ⑥: [vSwitch]: ステップ 1 で作成した vSwitch を選択します。

    ⑦: [セキュリティグループ]。 ページのプロンプトに従ってパラメーターを設定します。

    コンテナグループの設定:

    ⑧: CPU: 2 vCPU。

    ⑨: [メモリ]。 4 GiB。

    ⑩: [コンテナーの実行と終了後]。 「失敗時」を選択します。

    詳細設定:

    ⑪: 高度な構成 を展開します。

    ⑫: ミラーキャッシュを自動的に一致させる をオンにします。

    ⑬: Oss永続ストレージ を選択して追加します。

    ⑭: [名前]: oss-data。

    ⑮: バケット: ステップ 2 で作成したバケットを選択します。

    ⑯: [RAM ロール]。手順 3 で作成したインスタンス RAM ロールを選択します。

    ⑰: 一時ストレージサイズ に 100 GiB を設定します。

    コンテナの設定:

    ⑱: [イメージ]。egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm。

    ⑲: イメージタグ: 0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04 と入力します。

    ⑳: 起動コマンド: 以下のコマンドを対応するフィールドにコピーします。

    /bin/bash
    -c
    git-lfs clone https://www.modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.git /oss-data/DeepSeek-R1-Distill-Qwen-7B
    このコマンドは、git-lfs を使用して ModelScope コミュニティリポジトリからモデルを /oss-data/DeepSeek-R1-Distill-Qwen-7B ディレクトリにクローンします。

    コンテナの詳細設定:

    ㉑: [container-1 詳細設定] を展開します。

    ㉒: CPU: 2 vCPU。

    ㉓: [メモリ]: 4 GiB。

    ㉔: [ストレージ] をオンにし、ボリュームマウントを追加します。

    ㉕: oss-data を選択します。

    ㉖: [コンテナーのマウントパス]。 /oss-data。

    ㉗: 次: その他の設定 をクリックします。

    ㉘: [Elastic IP アドレス]。 自動作成 を選択します。

    ㉙: 最大帯域幅。値を 200 Mbit/s に設定します。

    ㉚: 設定の確認 をクリックし、指示に従って ECI インスタンスの作成を完了します。

    ECI インスタンスの作成後、モデルファイルのダウンロードが自動的に開始されます。ダウンロード中に ステップ 5 と ステップ 6 を進めてください。

    ダウンロードが完了したかどうかを確認する方法

    ダウンロードが完了すると、[ECI コンソール]で ECI インスタンスのステータスが 正常に実行 に変わります。

    Object Storage Service コンソールで、バケット内に DeepSeek-R1-Distill-Qwen-7B という名前のフォルダが生成されます。

5. ALB インスタンスの作成

サービスエンドポイントとして Application Load Balancer (ALB) インスタンスを作成します。

  1. コンソールで、ALB インスタンスを作成します。

    ①②: [ALB の作成] をクリックします。

    左側のナビゲーションペインで、[ALB] > [インスタンス]を選択します。

    ③: [リージョン]。ステップ 1 で作成した VPC と一致するよう [中国東部1 (杭州)] を選択します。

    ④: [インスタンスネットワークタイプ]。インターネット経由でサービスを提供するため、[外部] を選択します。

    ⑤: [VPC]。ステップ 1 で作成した VPC を選択します。

    ⑥: [ゾーン] と [vSwitch]。ステップ 1 で作成した vSwitch を選択します。

    ⑦: [インスタンス名]。alb-eci-deepseek-7B。

    ⑧:今すぐ購入 をクリックし、画面の指示に従って ALB インスタンスの作成を完了します。

  2. コンソールで、ALB インスタンスのリスナーとバックエンドサーバーグループを作成します。

    ①②: 作成した ALB インスタンスを見つけ、操作 列の リスナーの作成 をクリックします。

    ALB インスタンスが見つからない場合は、ページの左上隅で別のリージョンに切り替えてください。

    ③: プロトコルに HTTP を選択します。

    ④: リスナーポートを 80 にセットします。

    ⑤: 次へをクリックします。

    ⑥: サーバーグループの作成 をクリックします。

    ⑦: [サーバーグループのタイプ]。サーバー を選択します。

    ⑧: サーバーグループ名。eci-deepseek-7B。

    ⑨: [VPC]。ステップ 1 で作成した VPC を選択します。このパラメーターは自動的に選択されます。

    ⑩: バックエンドサーバープロトコル。HTTP を選択します。

    ⑪⑫: [ヘルスチェック]を有効化します。

    ⑬: ヘルスチェック方法。GET を選択します。

    ⑭: ヘルスチェックパス。値を /health にセットします。推論サービスの起動後、ALB は /health パスを使用してサービスのステータスを判断します。

    ⑮⑯⑰: 作成 をクリックし、次へ をクリックして、送信 をクリックします。 作成が完了するまで待ちます。

6. スケーリンググループの作成

ALB インスタンスに関連付けられたスケーリンググループを作成します。このグループは ECI インスタンスを自動的に管理し、ALB のバックエンドサーバーグループに追加します。

  1. Auto Scaling コンソールで、スケーリンググループを作成し、ALB インスタンスに関連付けます。

    ①②③: スケーリンググループの作成 をクリックします。

    左側のナビゲーションペインで [スケーリンググループ] をクリックします。上部メニューで、対象のリージョン (例: [中国東部1 (杭州)]) を選択します。

    ④: [スケーリンググループ名]: deepseek-7B-servers。

    ⑤: [タイプ]: ECI を選択します。

    ⑥: [インスタンス設定ソース]: 新規作成 を選択します。

    ⑦: [最小インスタンス数]: 0 に設定します。スケーリンググループ内のインスタンスの最小数です。

    ⑧: [最大インスタンス数]: 10 に設定します。スケーリンググループ内のインスタンスの最大数です。

    ⑨: [VPC]: ステップ 1 で作成した VPC を選択します。

    ⑩: [vSwitch]: ステップ 1 で作成したすべての vSwitch を選択します。

    ⑪: 詳細設定を表示する をクリックします。

    詳細設定:

    ⑫⑬: 希望インスタンス数 を有効にして、値を 0 に設定します。これにより、空のスケーリンググループが作成されます。

    ⑭: サーバーグループの追加 をクリックし、[タイプ] を ALB に設定します。

    ⑮: [サーバーグループ]: ステップ 5 で作成したサーバーグループを選択します。

    ⑯: [ポート]: 30000 を選択します。ECI インスタンスにデプロイした推論サービスは、このポートを使用してサービスを提供します。

    ⑰: 作成 をクリックします。スケーリンググループが作成されるまで待ちます。その後、プロンプトに従ってスケーリング設定を作成できます。

  2. Auto Scaling コンソールで、スケーリング設定を作成します。

    スケーリング設定は、スケールアウトイベント中にインスタンスを作成するためのテンプレートです。

    ①②③: 作成したスケーリンググループを見つけて、その ID をクリックして詳細ページに移動します。

    左側のナビゲーションペインで [スケーリンググループ] をクリックします。上部メニューで 中国東部1 (杭州) を選択し、リストから対象のスケーリンググループを見つけます。

    ④⑤⑥: インスタンスの設定ソース > スケーリング構成 > スケーリング設定の作成 をクリックします。

    ⑦: [支払いモード]: [従量課金] を選択します。

    ⑧: [セキュリティグループ] を選択します。

    コンテナグループの設定:

    ⑨: タイプの指定 を選択します。

    ⑩: [インスタンスタイプ]: ecs.gn7i-c8g1.2xlarge。

    ⑪: ミラーキャッシュを自動的に一致させる を選択します。

    ⑫: 高度な構成 を展開します。

    ⑬~⑯: Oss永続ストレージ を選択します。次に、[バケット] (例: deepseek-vllm-bucket) とインスタンスの [RAM ロール] を設定します。

    ⑰: [一時ストレージサイズ]: 100 GiB。

    ⑱: [GPU ドライバのバージョン ]: tesla=550。

    OSS 永続化ストレージの [名前] を oss-data に設定し、[RAM ロール] を EciOssRole に設定します。

    コンテナの設定:

    ⑲: [イメージ]: egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm。

    ⑳: イメージタグ: 0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04。

    ㉑: [起動コマンド]: 次のコマンドを対応するフィールドにコピーします。

    /bin/bash
    -c
    vllm serve /oss-data/DeepSeek-R1-Distill-Qwen-7B --port 30000 --served-model-name DeepSeek-R1-Distill-Qwen-7B --tensor-parallel-size 1 --max-model-len=16384 --enforce-eager --dtype=half --api-key api-key-example-abc123
    このコマンドは OSS からモデルの重みファイルを読み取り、ポート 30000 で推論サービスを開始します。API キーは api-key-example-abc123 に設定されます。

    ㉒: [container-1 の詳細設定] を展開します。

    ㉓: CPU: 8 vCPU に設定します。

    ㉔: [メモリ]: 30 GiB に設定します。

    ㉕: GPU: 1 に設定します。

    ㉖㉗: [ストレージ] をオンにし、[追加] をクリックします。

    ㉘: マウントパス: /oss-data

    ㉙: 次: その他の設定 をクリックします。

    ㉚: [Elastic IP アドレス]: 自動作成 を選択します。

    ㉛: 最大帯域幅: 200 Mbit/s。

    ㉜: 設定の確認 をクリックし、プロンプトに従ってスケーリング設定の作成を完了します。

    ㉝~㉟: プロンプトに従ってスケーリング設定を有効にし、スケーリンググループを起動します。

7. サービスの開始

重要

先に進む前に、ステップ 4 のモデルの重みファイルが完全にダウンロードされていることを確認してください。

予想インスタンス数を設定してスケールアウトをトリガーします。この例では、5 つの ECI インスタンスにスケールします。

予想インスタンス数を調整した後、新しいインスタンスが作成されるまでに遅延があります。進捗状況は、スケーリングアクティビティ タブで監視できます。
  1. スケーリンググループの詳細ページの [基本情報] タブにある [インスタンスのスケーリング概要] セクションで、[予想インスタンス数] の値を変更します。

  2. [インスタンスのスケーリング概要の変更] ダイアログボックスで、[予想インスタンス数] スイッチをオンにし、[グループ内の予想インスタンス数] を 5 に設定し、次に OK をクリックします。

次のステップ

Dify との連携

  1. Dify にログインします。

  2. モデルプロバイダーの追加

    1. プロフィール画像をクリックし、[設定] を選択してから、[モデルプロバイダー] に移動します。OpenAI-API-compatible を見つけて、Add をクリックします。

      インストールされていない場合は、画面の指示に従ってモデルプロバイダーをインストールしてください。
    2. 次の設定を行い、保存 をクリックします。

      • [モデルタイプ]: LLM

      • [モデル名]: DeepSeek-R1-Distill-Qwen-7B

      • [API キー]: api-key-example-abc123。このキーは、ステップ 6 のコンテナグループの起動コマンドで設定した api-key と同じである必要があります。

      • [API エンドポイント URL]:

        重要

        <alb_domain_name> を、ALB インスタンスの ドメイン名 に置き換えてください。

        ALB インスタンスのドメイン名を確認する方法

        コンソール に移動し、ステップ 5 で作成した ALB インスタンスを見つけて、ドメイン名を確認します。

        インスタンス一覧の [DNS 名] 列で、ALB インスタンスのドメイン名を確認します。ドメイン名は alb-xxx.cn-hangzhou.alb.aliyuncsslb.com のようなフォーマットです。

        http://<alb_domain_name>/v1
  3. チャットアシスタントアプリケーションの作成と対話

    1. [Applications] ページで [Create Application] をクリックし、[Create Blank Application] を選択します。

    2. [Create Blank Application] ダイアログボックスで、アプリケーションタイプを [チャットボット] に設定します。

    3. [アプリケーション名] フィールドに DeepSeek-R1-Distill-Qwen-7B を入力します。

    4. [Create] をクリックします。

    5. [デバッグとプレビュー] パネルの上部で、現在のモデルが [DeepSeek-R1-Distill-Qwen-7B] であることを確認します。下部の [Chat with bot] 入力ボックスにメッセージ (例:「自己紹介してください」) を入力し、送信ボタンをクリックして会話をテストします。チャットボットが応答を返します。

リソースのクリーンアップ

課金の発生を停止するために、次のリソースをリリースしてください。

  1. スケーリンググループを削除します。ステップ 6 で作成したスケーリンググループを削除すると、そのグループによって自動的に作成されたインスタンスもリリースされます。

  2. ALB インスタンスをリリースします。また、サーバーグループを削除します。ステップ 5 で作成した ALB インスタンスとサーバーグループを削除してください。

  3. 従量課金 EIP をリリースします。ステップ 4 でイメージキャッシュを作成したときに作成された EIP を削除してください。

  4. イメージキャッシュを削除します。また、ECI インスタンスを削除します。ステップ 4 で作成したイメージキャッシュと一時的な ECI インスタンスを削除してください。

  5. インスタンス RAM ロールを削除します。また、ポリシーを削除します。ステップ 3 で作成したインスタンス RAM ロールとポリシーを削除してください。

  6. OSS バケットを削除します。ステップ 2 で作成した OSS バケットを削除してください。

  7. VPC を削除します。ステップ 1 で作成した VPC を削除してください。

本番環境に関する考慮事項

本番環境では、以下の改善を検討してください。