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

Platform For AI:プリエンプティブルインスタンスの作成と使用

最終更新日:Aug 12, 2024

Elastic Algorithm Service (EAS) は、パブリックリソースグループと専用リソースグループを提供します。 パブリックリソースグループを使用してサービスをEASにデプロイする場合、サービスのプリエンプティブルインスタンスを指定してコストを削減できます。 このトピックでは、EASサービスのプリエンプティブルインスタンスを指定する方法について説明します。

背景情報

  • プリエンプティブルインスタンス

    プリエンプティブルインスタンスのコストは標準インスタンスよりも低くなります。 コストを削減するために、サービスをEASにデプロイするときにプリエンプティブルインスタンスを指定できます。 プリエンプティブルインスタンスを指定するには、インスタンスを競うために最高の入札価格を提供する必要があります。 プリエンプティブルインスタンスの詳細については、「概要」をご参照ください。

    プリエンプティブルインスタンスは、パブリックリソースグループの従量課金インスタンスよりも費用対効果が高くなります。 プリエンプティブルインスタンスの価格は、需要と供給の変化に基づいてリアルタイムで変動します。 プリエンプティブルインスタンスの保護期間を設定できます。 保護期間のあるインスタンスは、保護期間のないインスタンスよりもコストがかかります。 次のセクションでは、インスタンスの価格を昇順で示します。

    preemptible instances without a protection period < preemptible instances with a protection period < standard instances

    .

    説明

    プリエンプティブルインスタンスは、市場価格または株価が変化したときにリリースされます。 サービスのプリエンプティブルインスタンスがリリースされた場合、EASは構成ファイル内のサービスに対して構成されたインスタンスタイプをスキャンし、優先度が最も高いタイプを選択して別のインスタンスを作成します。

  • プリエンプティブルインスタンスの作成方法

    サービスをデプロイするときに、サービスにプリエンプティブルインスタンスを使用するかどうかを指定し、サービス構成ファイルでプリエンプティブルインスタンスの最高入札価格を指定できます。 次に、システムは、サービス構成ファイルに基づいてプリエンプティブルインスタンスを入札する。

    プリエンプティブルインスタンスを作成する場合は、次の要件を満たす必要があります。

    • プリエンプティブルインスタンスの作成に必要なリソースは十分です。

    • 最も高い入札価格は、プリエンプティブルインスタンスの市場価格以上です。

  • プリエンプティブルインスタンスの使用に関する注意事項

    • デフォルトでは、新しいプリエンプティブインスタンスは少なくとも1時間サービスを提供します。 つまり、インスタンスには1時間の保護期間があり、その間、システムはインスタンスへのアクセスを保証します。

    • 1時間の保護期間が終了した後、インスタンスの作成に必要なリソースが十分であり、以前の入札価格がインスタンスの市場価格以上である場合、インスタンスを引き続き使用できます。

      上記の要件を満たしていない場合、保護期間の終了後にインスタンスがリリースされる可能性があります。

  • プリエンプティブルインスタンスのリリース

    • プリエンプティブルインスタンスは、1時間の保護期間が終了し、インスタンスの作成に必要なリソースが不足するとリリースされます。

    • プリエンプティブルインスタンスは、1時間の保護期間が終了し、以前の入札価格がインスタンスの市場価格を下回った場合にリリースされます。

    • プリエンプティブルインスタンスに保護期間がなく、インスタンスの作成に必要なリソースが不足している場合、または以前の入札価格がインスタンスの市場価格よりも低い場合、プリエンプティブルインスタンスはリリースされます。

  • 課金

    プリエンプティブルインスタンスは、従量課金に基づいて課金されます。 スポット価格に基づいて請求されます。

  • プリエンプティブルインスタンスが使用される順序

    サービス設定ファイルを使用してサービスを作成または更新する場合、プリエンプティブルインスタンスや標準インスタンスなど、複数のインスタンスタイプをファイルに指定できます。 システムは最初のインスタンスタイプを選択してサービスを作成または更新します。 入札価格がインスタンスタイプの市場価格よりも低い場合、またはインスタンスタイプのインスタンスの作成に必要なリソースが不十分な場合は、2番目のインスタンスタイプが使用されます。

前提条件

クライアントを使用してプリエンプティブルインスタンスを指定する場合は、EASCMDクライアントがインストールされ、ID認証が完了していることを確認してください。 詳細については、「EASCMDクライアントのダウンロードとID認証の完了」をご参照ください。

サービス作成時のプリエンプティブルインスタンスの指定

コンソールを使用したプリエンプティブルインスタンスの指定

  1. [サービスのデプロイ] ページに移動します。 詳細については、「PAIコンソールでのモデルサービスのデプロイ」をご参照ください。

  2. [サービスのデプロイ] ページで、次のパラメーターを設定します。 その他のパラメーターの詳細については、「PAIコンソールでのモデルサービスのデプロイ」をご参照ください。 image

    パラメーター

    説明

    リソースグループタイプ

    [パブリックリソースグループ] を選択します。

    リソース設定モード

    [費用対効果の高いリソース設定] を選択します。

    プリエンプティブルインスタンス保護期間

    有効な値:

    • 1時間の保護期間: プリエンプティブルインスタンスに1時間の保護期間を指定できます。 保護期間中、システムはインスタンスへのアクセスを保証します。

    • 保護期間なし: プリエンプティブルインスタンスには保護期間がありません。

    デプロイ

    • リソースタイプ: スポットを選択します。

    • ノードタイプ: 適切なノードタイプを選択します。

    • 入札価格: プリエンプティブルインスタンスの入札価格を指定します。

      インスタンスの作成に必要なリソースが十分で、入札価格がインスタンスの市場価格以上の場合、インスタンスを作成できます。

    • 複数のインスタンスタイプを指定します。

      アイコンをクリックするとimage..png、複数のプリエンプティブルインスタンスを指定できます。 最大5つのリソースタイプを追加できます。 複数のインスタンスを指定する方法の詳細については、「複数のインスタンスタイプの指定」をご参照ください。

      説明

      サービスのデプロイに十分なリソースを確保するために、共通インスタンスを同時に選択することを推奨します。

  3. [デプロイ] をクリックします。 [サービスステータス][実行中] に変わると、サービスがデプロイされます。

クライアントを使用したプリエンプティブルインスタンスの指定

  1. EASCMDクライアントをダウンロードし、ID認証を完了します。 この例では、Windows 64が使用されています。

  2. クライアントが配置されているディレクトリに、service.jsonという名前のサービス構成ファイルを作成します。 サンプル内容:

    {
      "name": "service_example",
      "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.g7.2xlarge", "spot_price_limit": 2.00},
            {"type": "ecs.g7.4xlarge", "spot_price_limit": 4.00},
            {"type": "ecs.g7.2xlarge"},
            {"type": "ecs.g7.4xlarge"}
          ],
          "disable_spot_protection_period": true
        }
      }
    }

    次の表に、ファイルで必要な主要なパラメーターを示します。 その他のパラメーターの詳細については、「EASCMDクライアントを使用するコマンドの実行」をご参照ください。

    パラメーター

    説明

    インスタンス

    サービスインスタンスの数。 この例では、JSON設定ファイルで1つのインスタンスが指定されています。

    インスタンス

    インスタンスタイプ。 1つ以上のインスタンスタイプを指定できます。 最初のインスタンスタイプのリソースが不足している場合、システムは次のインスタンスタイプのリソースを準備します。

    • type: インスタンスタイプ。

    • spot_price_limit: プリエンプティブルインスタンスの最高入札価格。 このフィールドはオプションです。

      • このフィールドを設定すると、このフィールドで指定された値よりも低い価格のプリエンプティブインスタンスが使用されます。 単位: USD 従量課金の課金方法がサポートされています。

      • このフィールドを設定しない場合、標準の従量課金インスタンスが使用されます。

    disable_spot_protection_期間

    インスタンス保護期間を無効にするかどうかを指定します。 デフォルト値:false 有効な値:

    • false: プリエンプティブルインスタンスの作成後、1時間の保護期間があります。 保護期間中、市場価格が入札価格よりも高い場合でも、インスタンスはサービスを提供します。

    • true: プリエンプティブインスタンスには保護期間がありません。 保護期間のないインスタンスは、保護期間のあるインスタンスよりも10% に安価です。

  3. JSONファイルが配置されているディレクトリで次のコマンドを実行して、サービスを作成します。詳細については、「EASCMDクライアントを使用するコマンドの実行」をご参照ください。

    eascmdwin64.exe create <service.json>

    <service.json> を、作成したJSONファイルの名前に置き換えます。

サービスの設定を変更するときのプリエンプティブルインスタンスの指定

コンソールを使用してサービス設定を変更し、プリエンプティブルインスタンスを指定する

  1. [リソース設定] ダイアログボックスに移動します。 詳細については、「複数のインスタンスタイプの指定」トピックの「コンソールでの変更」セクションをご参照ください。

  2. [費用対効果の高いリソース設定] タブで、[プリエンプティブインスタンス保護期間] パラメーターを設定し、[プリエンプティブインスタンス] インスタンスタイプを指定して、[OK] をクリックします。

    説明

    サービスのデプロイに十分なリソースを確保するために、共通インスタンスも同時に選択することをお勧めします。

    image

    他のパラメーターを設定する方法の詳細については、「コンソールを使用したプリエンプティブルインスタンスの指定」をご参照ください。

クライアントを使用したサービス設定の変更とプリエンプティブルインスタンスの指定

  1. EASCMDクライアントをダウンロードし、ID認証を完了します。 この例では、Windows 64が使用されています。

  2. クライアントが配置されているディレクトリに、instances.jsonという名前のファイルを作成します。 サンプル内容:

    {
      "cloud": {
        "computing": {
          "instances": [
            {"type": "ecs.g7.2xlarge", "spot_price_limit": 2.00},
            {"type": "ecs.g7.4xlarge", "spot_price_limit": 4.00},
            {"type": "ecs.g7.2xlarge"},
            {"type": "ecs.g7.4xlarge"}
          ],
          "disable_spot_protection_period": true
        }
      }
    }

    重要なパラメーターの詳細については、このトピックの「サービスを作成するときのプリエンプティブルインスタンスの指定」をご参照ください。

  3. JSONファイルが配置されているディレクトリで次のコマンドを実行して、サービス設定を変更し、プリエンプティブルインスタンスを指定します。詳細については、「EASCMDクライアントを使用するコマンドの実行」をご参照ください。

    eascmdwin64.exe modify <service_name> -s <instances.json>

    <service_name> をEASサービスの名前に置き換え、<instances.json> を作成したJSONファイルの名前に置き換えます。

関連ドキュメント