All Products
Search
Document Center

Platform For AI:Specify preemptible instances

Last Updated:Dec 04, 2024

Elastic Algorithm Service (EAS) provides public resource groups and exclusive resource groups. When you use a public resource group to deploy a service to EAS, you can specify preemptible instances for the service to reduce costs. This topic describes how to specify preemptible instances for an EAS service.

Background information

  • Preemptible instances

    Compared with standard instances, preemptible instances have lower costs. You can specify preemptible instances when you deploy a service to EAS to reduce costs. To specify preemptible instances, you must specify your highest bidding price to compete for the instances. For more information about preemptible instances, see What are preemptible instances?

    Preemptible instances are more cost-effective than pay-as-you-go instances of the public resource group. The prices of preemptible instances fluctuate in real time based on the changes in supply and demand. You can configure a protection period for preemptible instances. Compared with instances without a protection period, instances with a protection period have higher costs. The following section provides the prices of instances in ascending order:

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

    Preemptible instances may be released when the market price or stock changes. If a preemptible instance of a service is released, EAS scans the instance types configured for the service in the configuration file and selects the type with the highest priority to create another instance.

  • How to create preemptible instances

    When you deploy a service, you can specify whether to use preemptible instances for the service and specify the highest bidding price for preemptible instances in the service configuration file. Then, the system bids for preemptible instances based on the service configuration file.

    If you want to create preemptible instances, the following requirements must be met:

    • The resources required to create the preemptible instances are sufficient.

    • The highest bidding price is greater than or equal to the market price of the preemptible instances.

  • Usage notes for preemptible instances

    • By default, a new preemptible instance provides services for at least 1 hour. Therefore, the instance has a 1-hour protection period. During the protection period, the system ensures your access to the instance.

    • After the 1-hour protection period ends, you can continue to use the instance when the resources required to create the instance are sufficient and the previous bidding price that you specify is greater than or equal to the market price of the instance.

      If the preceding requirements are not met, your instance may be released after the protection period ends.

  • Releasing preemptible instances

    • A preemptible instance is released when the 1-hour protection period ends and the resources required to create the instance are insufficient.

    • A preemptible instance is released when the 1-hour protection period ends and your previous bidding price is less than the market price of the instance.

    • A preemptible instance is released when the instance does not have a protection period and the resources required to create the instance are insufficient or your previous bidding price is lower than the market price of the instance.

  • Billing

    Preemptible instances are billed based on the pay-as-you-go billing method. You are charged based on the market price.

  • Order in which preemptible instances are used

    When you create or update a service by using a service configuration file, you can specify multiple instance types in the file, including preemptible instance types and standard instance types. The system selects the first instance type to create or update the service. If the bidding price that you specify is less than the market price of the instance type or if the resources required to create instances of the instance type are insufficient, the second instance type is used.

Prerequisites

If you use a client to specify preemptible instances, make sure that the EASCMD client is installed and identity authentication is complete. For more information, see Download the EASCMD client and complete identity authentication.

Specify preemptible instances when you create a service

Use the console to specify preemptible instances

  1. Log on to the PAI console. Select a region and a workspace. Then, click Enter Elastic Algorithm Service (EAS).

  2. Click Deploy Service and select Custom Deployment in the Custom Model Deployment section.

  3. On the Custom Deployment page, configure the parameters described in the following table. For information about other parameters, see Deploy a model service in the PAI console.image

    Parameter

    Description

    Resource Type

    Select Public Resources.

    Deployment Resources

    • Resource Type: Select an instance type that supports bidding.

    • Bidding: If you turn on Bidding, you can use preemptible instances.

    • Bid Price: Specify a bidding price to bid for preemptible instances. If the resources required to create a preemptible instance are sufficient and the bidding price that you specify is greater than or equal to the market price of the instance, you can use the instance.

    • Specify multiple instance types:

      You can click Add to add multiple instance types. You can add up to 10 instance types. For more information about how to specify multiple instance types, see Specify multiple instance types.

      Note

      We recommend that you select common instance types at the same time to ensure that resources are sufficient for service deployment.

    Preemptible Instance Protection Period

    The following configuration methods are supported:

    • 1-Hour Protection Period: You can specify a 1-hour protection period for a preemptible instance. During the protection period, the system ensures your access to the instance.

    • No Fixed Protection Period: The preemptible instance does not have a protection period.

  4. Click Deploy. When the value of the Service Status parameter changes to Running, the service is deployed.

Use a client to specify preemptible instances

  1. Download the EASCMD client and complete identity authentication. In this example, Windows 64 is used.

  2. Create a service configuration file named service.json in the directory in which the client is located. Sample content:

    {
      "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
        }
      }
    }

    The following table describes the parameters that are required in the service configuration file. For information about other parameters, see Run commands to use the EASCMD client.

    Parameter

    Description

    instance

    The number of service instances. In this example, one instance is specified in the JSON configuration file.

    instances

    The instance types. You can specify one or more instance types. If resources are insufficient for the first instance type, the system prepares resources for the next instance type.

    • type: the instance type.

    • spot_price_limit: the highest bidding price for preemptible instances. This parameter is optional.

      • If you configure this parameter, preemptible instances whose prices are less than the value specified by this parameter are used. Unit: USD. The pay-as-you-go billing method is supported.

      • If you do not configure this parameter, standard pay-as-you-go instances are used.

    disable_spot_protection_period

    Specifies whether to disable the instance protection period. Default value: false. Valid values:

    • false: The preemptible instance has a 1-hour protection period after the instance is created. During the protection period, the instance provides services even if the market price is higher than the bidding price.

    • true: The preemptible instance does not have a protection period. Instances without a protection period are 10% cheaper than instances that have a protection period.

  3. Run the following command in the directory in which the JSON file is located to create the service. For more information, see Run commands to use the EASCMD client.

    eascmdwin64.exe create <service.json>

    Replace <service.json> with the name of the JSON file that you created.

Specify preemptible instances when you modify the settings of a service

Use the console to modify service settings and specify preemptible instances

  1. Go to the Resource Configuration page.

    1. On the Elastic Algorithm Service (EAS) page, click the name of the service that you want to modify.

    2. On the Overview tab of the service details page, click Modify Configuration in the Resource Information section.

  2. In the Resource Configuration panel, set the Resource Configuration Mode parameter to Cost-effective Resource Configuration, configure the Spot Instance Protection Period parameter, specify preemptible instance types, and then click OK.

    Note

    We recommend that you select common instance types at the same time to ensure that resources are sufficient for service deployment.

    image

    For information about other parameters, see Use the console to specify preemptible instances.

Use a client to modify service settings and specify preemptible instances

  1. Download the EASCMD client and complete identity authentication. In this example, Windows 64 is used.

  2. Create a file named instances.json in the directory in which the client is located. Sample content:

    {
      "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
        }
      }
    }

    For information about the parameters, see Specify preemptible instances when you create a service.

  3. Run the following command in the directory in which the JSON file is located to modify the service settings and specify preemptible instances: For more information, see Run commands to use the EASCMD client.

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

    Replace <service_name> with the name of the EAS service and <instances.json> with the name of the JSON file that you created.

References