Elastic Algorithm service (EAS) でサービスをデプロイするときに単一のインスタンスタイプのみを指定した場合、このタイプのリソースが不足し、サービスを作成できない可能性があります。 この問題に対処するために、EASでは、サービスの作成時に複数のインスタンスタイプを指定できます。 次に、システムは設定ファイルで指定したインスタンスタイプに基づいてリソースを準備します。 この方法では、単一のインスタンスタイプのみを指定するシナリオでリソースが不足する可能性を減らします。 このトピックでは、複数のインスタンスタイプを指定する方法について説明します。
前提条件
クライアントを使用して複数のインスタンスタイプを指定する場合は、EASCMDクライアントがインストールされており、ID認証が完了していることを確認してください。 詳細については、「EASCMDクライアントのダウンロードとID認証の完了」をご参照ください。
制限事項
パブリックリソースグループにデプロイされたEASサービスに対してのみ、複数のインスタンスタイプを指定できます。
サービスのデプロイ時に複数のインスタンスタイプを指定する
サービスの作成時に複数のインスタンスタイプを指定できます。 既存のサービスを更新して、複数のインスタンスタイプを設定することもできます。
次の例では、Platform for AI (PAI) コンソールとEASCMDクライアントで複数のインスタンスタイプを設定する方法について説明します。
リソースタイプ | 機械モデル | インスタンスタイプ | 入札価格 |
Spot | 8 vCPU + 16 GB | ecs.c8i.2xlarge | 1 |
Common | 4 vCPU + 8 GB | ecs.c8i.xlarge | なし |
PAIコンソールで複数のインスタンスタイプを設定する
PAI コンソールにログインします。 左側のナビゲーションウィンドウで、[モデル展開]> [Elastic Algorithm Service (EAS)] を選択します。 複数のワークスペースがある場合は、操作を実行するワークスペースを選択します。
サービスの作成: [推論サービス] タブで、[サービスのデプロイ] をクリックします。 [サービスのデプロイ] ページで、[カスタムモデルのデプロイ] セクションの [カスタムデプロイ] をクリックします。
サービスの更新: [推論サービス] タブで目的のサービスを見つけ、[操作] 列の [更新] をクリックします。
表示されるページの [リソース配置情報] セクションで、次の表に示す主要なパラメーターを設定します。 その他のパラメーターについては、「PAIコンソールでのモデルサービスのデプロイ」をご参照ください。
パラメーター
説明
リソースグループタイプ
[パブリックリソースグループ (従量課金)] を選択します。
リソース設定モード
[費用対効果の高いリソース設定] を選択します。
スポットインスタンス保護期間
設定は、[リソースタイプ] を [スポット] に設定した場合にのみ有効になります。 有効な値:
1時間の保護期間: プリエンプティブルインスタンスに1時間の保護期間を指定できます。 保護期間中、システムはインスタンスへのアクセスを保証します。
保護期間なし: プリエンプティブルインスタンスに保護期間がありません。 リソースの使用を保証するために、固定時間範囲の保護期間は提供されない。
プリエンプティブルインスタンスの詳細については、「プリエンプティブルインスタンスの作成と使用」をご参照ください。
デプロイ
リソースタイプ: スポットと共通がサポートされています。
ノードタイプ: ビジネス要件に基づいてノードタイプを選択します。
入札価格: プリエンプティブルインスタンスに対してのみ入札価格を設定する必要があります。 システムは、入札価格に基づいてプリエンプティブルインスタンスに自動的に入札します。
インスタンスの作成に必要なリソースが十分で、入札価格がインスタンスの市場価格以上の場合、インスタンスを作成できます。
複数のインスタンスタイプを指定:
アイコンをクリックすると、複数のインスタンスタイプを設定できます。 最大5つのインスタンスタイプを追加できます。 リソースは、インスタンスタイプが設定されているシーケンスに基づいて開始されます。
[デプロイ] または [更新] をクリックします。 [サービスステータス] パラメーターの値が [実行中] に変更されると、サービスがデプロイされます。
EASCMDクライアントで複数のインスタンスタイプを設定する
service.json
という名前のサービス構成ファイルを作成します。 サンプルコード:{ "name": "service_name", "model_path": "http://examplebucket.aliyuncs.com/models%2Fmnist_saved_model.tar.gz", "processor": "tensorflow_cpu_1.12", "metadata": { "instance": 1 }, "cloud": { "computing": { "instances": [ { "type": "ecs.c8i.2xlarge", "spot_price_limit": 1 }, { "type": "ecs.c8i.xlarge" } ], "disable_spot_protection_period": false } } }
次の表に、ファイルで必要な主要なパラメーターを示します。 その他のパラメーターについては、「EASCMDクライアントを使用するコマンドの実行」をご参照ください。
パラメーター
説明
インスタンス
サービスインスタンスの数。 この例では、JSON設定ファイルで1つのインスタンスが指定されています。
インスタンス
指定できる1つ以上のインスタンスタイプ。 最初のインスタンスタイプのリソースが不足している場合、システムは次のインスタンスタイプのリソースを準備します。
type: インスタンスタイプ。
spot_price_limit: プリエンプティブルインスタンスの最高入札価格。 このパラメーターはオプションです。
このパラメーターを設定すると、インスタンスタイプは、このパラメーターで指定された値よりも低い価格のプリエンプティブルインスタンスを示します。 単位:
USD 従量課金方式のみサポートされています。
このパラメーターを設定しない場合、インスタンスタイプは標準の従量課金インスタンスを示します。
disable_spot_protection_期間
インスタンス保護期間を無効にするかどうかを指定します。 デフォルト値:false 有効な値:
false: プリエンプティブルインスタンスの作成後、1時間の保護期間があります。 保護期間中、市場価格が入札価格よりも高くても、インスタンスをリリースすることはできません。
true: プリエンプティブインスタンスには保護期間がありません。 保護期間のないインスタンスは、保護期間のあるインスタンスよりも10% に安価です。
JSONファイルが配置されているディレクトリで次のコマンドを実行します。 詳細については、「EASCMDクライアントを使用するコマンドの実行」をご参照ください。
この例では、Windows 64サーバーが使用されます。
サービスの作成
eascmdwin64.exe create <service.json>
<service.json>: 作成したJSONファイルの名前。
サービスの更新
eascmdwin64.exe modify <service_name> -s <service.json>
次のパラメータに注意してください。
<service_name>: 管理するEASサービスの名前。
<service.json>: 作成したJSONファイルの名前。