Launching an NVIDIA GPU Cloud Virtual Machine Image Using Alibaba CLI

Using Example Python Scripts

A comprehensive set of example Python scripts for automating the CLI are provided at https://github.com/nvidia/ngc-examples/tree/master/ncsp. You can download the scripts and modify them to meet your requirements. The code examples that follow use similar environment variables and structure as the scripts.

Using the Instructions in this Chapter

This flow and the code snippets in this section are for Linux or Mac OS X. If you are using Windows, you can use the Windows Subsystem for Linux and use the bash shell (where you will be in Ubuntu Linux).

Many of these CLI command can have significant delays.

For complete CLI documentation and sample scripts visit the Alibaba Documentation Center.

Getting the NGC VMI Image ID

Once started, you can SSH into your instance using the SSH key for the root user. If you followed the setup in this tutorial, your key is in ~/.ssh/.

You need to specify a source ImageID when creating an instance. Use this command to find the latest ImageID of the NVIDIA-GPU-Cloud-Machine-Image:

aliyuncli ecs DescribeImages --RegionId us-west-1 \

  --ImageName "NVIDIA-GPU-Cloud-Virtual-Machine" \

  --output json --filter Images.Image[0].ImageId
It will output the Image ID such as "m-rj9iy0xjiod3ghkyhz4p"

Creating Your VM Instance

Creating an instance with the CLI is done using the `aliyuncli ecs CreateInstance` command.

Full syntax documentation - https://www.alibabacloud.com/help/doc-detail/25499.htm

Recommended Instance Options

  • "--InternetMaxBandwidthOut 10" sets the peak outbound network bandwidth to 10 Mbps. The valid range is [1, 200].
  • "--InstanceChargeType PostPaid" sets the billing method to pay-as-you-go. Change this to "PrePaid" to set it to a subscription billing.

Other Notable Create Instance Options

  • The inbound network bandwidth defaults to 200 Mbps. Use "--InternetMaxBandwidthIn" to change this. The valid range is [1, 200].
  • To change the size of the system disk (default is 40 GB), use the "--SystemDiskSize" option. Valid values are [40, 500].
  • To add a data disk (up to 16), use the "--DataDiskNSize" and "--DataDiskNCategory" options where "N" is [1, 16]. Valid values are:
    DataDiskNCategory DataDiskNSize Description
    cloud [5, 2000] (default) Basic cloud disk
    cloud_efficiency [20, 32768] Ultra cloud disk
    cloud_ssd [20, 32768] Cloud SSD
    ephemeral_ssd [5, 800] Ephemeral SSD

Launch Example

Launch the instance and capture the resulting JSON:
aliyuncli ecs CreateInstance \
  --RegionId us-west-1 \
  --ImageId "m-rj9iy0xjiod3ghkyhz4p" \
  --SecurityGroupId "sg-rj94krsusal2k5l6gnnz" \
  --InstanceType ecs.gn5-c4g1.xlarge \
  --InstanceName "my-instance" \
  --InternetMaxBandwidthOut 10 \
  --InstanceChargeType PostPaid \
  --KeyPairName alibaba-key

The output shows the instance ID.

{
  "InstanceId": "i-rj9a0iw25hryafj0fm4v",
  "RequestId": "440ECC70-09F9-492C-AB9E-21AA9C4E0531"
}

Assigning a Public IP Address

Instances created via CLI are not automatically given a public IP address.

To assign a public IP address to the instance you just created, run:


aliyuncli ecs AllocatePublicIpAddress --RegionId us-west-1 \
  --InstanceId "i-rj9a0iw25hryafj0fm4v"

Successful completion of the command will return the IP address:

{
  "IpAddress": "47.89.248.188",
  "RequestId": "65EB59AE-FA75-446F-B5C7-2BA0F9A77CDC"
}

Starting the Instance

Instances created via CLI are not started automatically.

To start the instance you just created, run:


aliyuncli ecs StartInstance --InstanceId "i-rj9a0iw25hryafj0fm4v"

Connecting to the VM Instance with SSH

Once started, you can SSH into your instance using the SSH key for the root user. If you followed the setup in this tutorial, your key is in ~/.ssh/.

Command syntax:

ssh -i <KEYPATH> root@<IP>

Example:

ssh -i ~/.ssh/alibaba-key.pem root@47.89.248.188
Refer to Connect to a Linux Instance for more instructions on connecting to your instance.

Starting, Stopping, or Deleting Your VM Instance

Once an instance is running, you can stop, (re)start, or delete your instance.

Stop:

aliyuncli ecs StopInstance --InstanceId INSTANCE_ID

Start or Restart:

aliyuncli ecs StartInstance --InstanceId INSTANCE_ID

Delete:

aliyuncli ecs DeleteInstance --InstanceId INSTANCE_ID