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

Platform For AI:カナリアリリース

最終更新日:Aug 29, 2025

サービスグループは、主にビジネストラフィックを処理する複数のサブサービスを管理するために使用され、統合されたトラフィック エントリ ポイントを提供します。システムは、トラフィック割り当てポリシーに基づいて受信トラフィックを個々のサービスに分散するため、カナリアリリース、エラスティック スケーリング、異種リソース スケジューリングなどのさまざまなビジネス シナリオに適しています。このドキュメントでは、サービスグループの作成、トラフィック エントリ ポイントの表示、およびトラフィック割り当てポリシーの変更方法について説明します。

シナリオ

  • カナリアリリース

    カナリアリリースでは、本番サービスとカナリアサービスの両方が同じグループに追加され、カナリアサービスはトラフィックのごく一部を受け取ります。新しいバージョンがリリースされると、最初にカナリアサービスにデプロイされて監視されます。問題が発生した場合は、カナリアサービスをロールバックするか、カナリアサービスを停止して、トラフィックを本番サービスにリダイレクトします。すべてがスムーズに実行されたら、本番サービス全体を更新し、カナリアサービスをゼロにスケールダウンするか、少量のトラフィックを保持します。

  • 従量課金およびサブスクリプション リソースグループの自動スケーリング

    同じグループでは、サブスクリプション サービスは、基本的なニーズをサポートするために固定数のインスタンスを持つ専用リソースグループにデプロイされます。従量課金サービスはパブリック リソースグループにデプロイされ、オンデマンド スケーリングを提供してコストを削減します。

  • 異種ハードウェアリソースの使用

    GPU アクセラレーション シナリオでは、サービスデプロイメント後、特定の GPU タイプでダウンタイムが発生したり、一部のリージョンでインベントリが不足したりして、サービスの通常のスケーリングが妨げられる場合があります。同じサービスグループ内で異なる GPU タイプのサービスを動的に作成し、さまざまな CUDA 環境に適応させることができます。これにより、複数のサービスが異種リソースを使用して同じビジネス シナリオをサポートできます。サービスグループのトラフィック エントリ ポイントは変更されないため、フロントエンドはこれらの変更を認識しません。

サービスグループを作成する

サービスを作成するときに、サービスが属するサービスグループを指定できます。

説明

指定されたサービスグループが存在しない場合、システムは自動的にサービスグループを作成します。指定されたサービスグループが存在する場合、システムは新しいサービスをサービスグループに追加します。サービスグループ内のすべてのサービスが削除されると、サービスグループは自動的に削除されます。

次の例は、pmml という名前のサービスグループを作成し、pmml_prod サービスと pmml_grey サービスをサービスグループに追加する方法を示しています。

PAI コンソール

  1. PAI コンソール にログインします。ページ上部でリージョンを選択します。次に、目的のワークスペースを選択し、[エラスティック アルゴリズム サービス (EAS)] をクリックします。

  2. エラスティック アルゴリズム サービス (EAS) ページで、[カナリアリリース] タブをクリックします。表示されるタブで、[グループとサービスの作成] をクリックします。

  3. [カスタムデプロイメント] ページで、パラメーターを構成し、[デプロイ] をクリックします。

    パラメーター:

    • サービス名: 画面の指示に従って、有効なサービス名を指定します。例: pmml_prod

    • グループ: サービスが属するサービスグループ。この例では、[新規グループ] が使用され、新しいグループ名は pmml に設定されています。

    その他のパラメーターについては、「PAI コンソールでモデル サービスをデプロイする」をご参照ください。

手順 2 と 3 を繰り返して、pmml_grey という名前のサービスを作成し、pmml サービスグループに属するようにします。

サービスを作成したら、[カナリアリリース] タブの pmml をクリックしてグループ詳細ページに移動し、グループに属するサービスを表示します。image

重要

新しく追加されたサービスは、デフォルトではトラフィックを受信しません。トラフィック分散ポリシー を参照して調整してください。

EASCMD クライアント

  1. service.json という名前のサービス構成ファイルを準備します。

    • pmml_prod サービスの構成ファイルをクリックして表示します

      {
        "name":"pmml_prod",
        "model_path":"http://examplebucket.oss-cn-shanghai.aliyuncs.com/models/lr_xxxx.pmml",
        "processor":"pmml",
        "metadata":{
          "cpu":1,
          "instance":4,
          "group":"pmml" // サービスが属するグループを指定
        }
      }

      pmml_grey サービスの構成ファイルをクリックして表示します

      {
        "name":"pmml_grey",
        "model_path":"http://examplebucket.oss-cn-shanghai.aliyuncs.com/models/lr_xxxx.pmml",
        "processor":"pmml",
        "metadata":{
          "cpu":1,
          "instance":1,
          "group":"pmml" // サービスが属するグループを指定
        }
      }

    group パラメーターは、サービスが属するサービスグループ、つまり、作成されたサービスグループの名前を指定します。その他のパラメーターについては、「その他のパラメーターの詳細」をご参照ください。

  2. 2 つのサービスとサービスグループを作成します。

    EASCMD クライアントにログインし、create コマンドを実行して、2 つのサービスとサービスグループを作成します。「EASCMD クライアントをダウンロードして身元認証を完了する」をご参照ください。サンプルコード:

    $ eascmd create service.json
  3. サービスとサービスグループに関する情報を表示します。

    次の ls コマンドを実行して、サービスとサービスグループに関する情報を表示します。

    $ eascmd ls

    次の情報が返されます。

    [RequestId]: 716BEBFC-E8A4-51FD-A3F7-56376B167923
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+
    |        SERVICENAME        | INSTANCE | CPU | MEMORY |      CREATETIME      |      UPDATETIME      | STATUS  | WEIGHT | TRAFFICSTATE |       SERVICEGROUP        |
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+
    | pmml_prod                 |        4 |   1 | 1000M  | 2022-06-05T14:30:49Z | 2022-06-05T14:30:49Z | Running |     80 | grouping     | pmml                      |
    | pmml_grey                 |        1 |   1 | 1000M  | 2022-06-05T14:31:38Z | 2022-06-05T14:31:38Z | Running |     20 | grouping     | pmml                      |
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+

    パラメーター:

    • pmmlSERVICEGROUP 列に表示されます。これは、2 つのサービスが pmml サービスグループに属していることを示します。

    • groupingTRAFFICSTATE 列に表示されます。これは、両方のサービスがトラフィックを受信していることを示します。サービス間のトラフィック分散は 80% と 20% で、サービス インスタンスの数に基づいて計算されます。

データ入力の表示

サービスグループには一元化されたデータ入力があります。サービスグループ内の各サービスには、個別のデータ入力があります。データ入力は次の形式です。

サービスグループのデータ入力

<endpoint>/api/predict/<group_name>

例:

http://182848887922****.vpc.cn-shanghai.pai-eas.aliyuncs.com/api/predict/pmml

[カナリアリリース] タブで、サービスグループのトラフィック入力ビューを表示します。この入力へのトラフィックは、ポリシーに基づいて異なるサービスに割り当てられます。サービスグループ内のサービスは作成または削除できますが、エントリ アドレスは変更されないため、オンライン デバッグが可能です。image

サービスのデータ入力

<endpoint>/api/predict/<group_name>.<service_name>

例:

http://182848887922****.vpc.cn-shanghai.pai-eas.aliyuncs.com/api/predict/pmml.pmml_prod

[推論サービス] タブで、単一サービスのトラフィック入力ビューを表示します。この入力は、サービスの特定のライフサイクルに関連付けられており、トラフィックが指定されたサービスに確実に流れるようにします。サービスが削除されると、入力は破棄されます。グループ内でトラフィック リダイレクトを完了した後も、この入力アドレスを使用してサービスにアクセスし、オンライン デバッグを行う必要があります。

image

トラフィック分散ポリシーを変更する

エラスティック アルゴリズム サービス (EAS) は現在、2 つのトラフィック割り当て方法をサポートしています。

  • インスタンスベースの割り当て: トラフィックは、各サービスの推論インスタンスの数に基づいて動的に分散されます。例: サービス A に 1 つのインスタンスがあり、サービス B に 3 つのインスタンスがある場合、サービス A はトラフィックの 25% を受信し、サービス B は 75% を受信します。

  • カスタムの重みベースの割り当て: トラフィックは、各サービスに割り当てられた重みに従って割り当てられます。例: サービス A の重みが 100、サービス B の重みが 400 の場合、サービス A はトラフィックの 20% を受信し、サービス B は 80% を受信します。

重要

サービスがトラフィック割り当て機能を無効にすると、グループベースのトラフィック分散には参加しなくなりますが、個別にアクセスして呼び出すことはできます。これは両方の割り当て方法に適用されます。

具体的な変更方法は次のとおりです。

説明

API を使用して、サービストラフィックの重みとトラフィック ステータスを調整できます。詳細については、ReleaseService - ReleaseService - サービス トラフィックの重みとトラフィック ステータスの調整 をご参照ください。

インスタンスベースの割り当て

コンソールの使用

対応する列のトラフィック割り当てスイッチをオンにすると、サービスがトラフィックを処理できるようになります。オフにすると、サービスのトラフィックが無効になります。

image

EASCMD の使用

方法 2: EASCMD の使用

次の release コマンドを実行して、トラフィック分散ポリシーを変更します。EASCMD クライアントへのログイン方法については、「EASCMD クライアントをダウンロードして身元認証を完了する」をご参照ください。

$ eascmd release <service_name> -s grouping|standalone

パラメーター:

  • <service_name>: サービスの名前。トラフィック分散ポリシーを変更するサービスの名前に値を変更します。

  • grouping|standalone: 変更後のステータス。有効な値: grouping (トラフィックを受信する) および standalone (トラフィックを受信しない)。

例:

  • 次のコマンドを実行して、pmml_grey サービスのステータスを standalone に変更します。これにより、pmml_grey サービスはトラフィックを受信しません。

    $ eascmd release pmml_grey -s standalone

    次の出力が返されます。

    Confirmed to release service [pmml_grey] to group traffic [Y/n]yes
    [RequestId]: 40C787DF-8900-5F7A-8A01-30F7D5A8BF3B
    [OK] Service [pmml_grey] has entered the traffic state: standalone

    eascmd ls コマンドを実行して、サービスのステータスを表示します。次の出力が返されます。

    [RequestId]: 83BE3FBB-8CE2-5008-B435-1938A20B13AA
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+
    |        SERVICENAME        | INSTANCE | CPU | MEMORY |      CREATETIME      |      UPDATETIME      | STATUS  | WEIGHT | TRAFFICSTATE |       SERVICEGROUP        |
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+
    | pmml_prod                 |        4 |   1 | 1000M  | 2022-06-05T14:30:49Z | 2022-06-05T14:30:49Z | Running |    100 | grouping     | pmml                      |
    | pmml_grey                 |        1 |   1 | 1000M  | 2022-06-05T14:42:41Z | 2022-06-05T14:42:41Z | Running |     0  | standalone   | pmml                      |
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+

    pmml_grey サービスの TRAFFICSTATEstandalone に変更されます。WEIGHT パラメーターの値は 0 で、これはすべてのトラフィックが pmml_prod サービスによって受信されることを示します。

  • 次のコマンドを実行して、pmml_grey サービスのステータスを grouping に変更します。これにより、pmml_grey サービスはトラフィックを受信できます。

    $ eascmd release pmml_grey -s grouping

    次の出力が返されます。

    Confirmed to release service [pmml_grey] to group traffic [Y/n]yes
    [RequestId]: 40C787DF-8900-5F7A-8A01-30F7D5A8BF3B
    [OK] Service [pmml_grey] has entered the traffic state: grouping

    eascmd ls コマンドを実行して、サービスのステータスを表示します。次の出力が返されます。

    [RequestId]: 83BE3FBB-8CE2-5008-B435-1938A20B13AA
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+
    |        SERVICENAME        | INSTANCE | CPU | MEMORY |      CREATETIME      |      UPDATETIME      | STATUS  | WEIGHT | TRAFFICSTATE |       SERVICEGROUP        |
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+
    | pmml_prod                 |        4 |   1 | 1000M  | 2022-06-05T14:30:49Z | 2022-06-05T14:30:49Z | Running |     80 | grouping     | pmml                      |
    | pmml_grey                 |        1 |   1 | 1000M  | 2022-06-05T14:42:41Z | 2022-06-05T14:42:41Z | Running |     20 | grouping     | pmml                      |
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+

    pmml_grey サービスの TRAFFICSTATEgrouping に変更されます。サービスが受信するトラフィックの割合は 20% です。

カスタムの重みベースの割り当て

[トラフィックの重み] 列で直接編集します。

image