Moving a VM to a different cloud
While directly moving a VM to a different cloud is not supported, you can create an image from its boot disk and then create a VM from this image in a different cloud.
-
Use the boot disk of your VM to create an image.
-
Get the boot disk image ID:
Management consoleCLIAPI- In the management console
, select the folder the disk image is in. - Select Compute Cloud.
- In the left-hand panel, select
Images. - Copy the value from the ID column for the image in question.
If you do not have the Yandex Cloud CLI yet, install and initialize it.
The folder specified in the CLI profile is used by default. You can specify a different folder through the
--folder-name
or--folder-id
parameter.Get a list of disk images in the default folder:
yc compute image list
Result:
+----------------------+----------------+--------+-------------+--------+ | ID | NAME | FAMILY | PRODUCT IDS | STATUS | +----------------------+----------------+--------+-------------+--------+ | xc8n3spmksqm******** | original-image | | | READY | +----------------------+----------------+--------+-------------+--------+
Use the list REST API method for the Image resource or the ImageService/List gRPC API call.
- In the management console
-
Get the ID of the target cloud you plan to move your VM to (next:
<target_cloud_ID>
):Management consoleCLIAPI- In the management console
, click the cloud in the list on the left. - On the Overview tab, copy the ID value.
Get a list of clouds with their IDs:
yc resource-manager cloud list
Result:
+----------------------+------------+--------------------------+ | ID | NAME | ORGANIZATION ID | +----------------------+------------+--------------------------+ | b1g66mft1vop******** | my-cloud-1 | | | b1gd129pp9ha******** | my-cloud-2 | | +----------------------+------------+--------------------------+
To get a list of clouds with their IDs, use the list REST API method for the Cloud resource or the CloudService/List gRPC API call.
- In the management console
-
Add a user from the target cloud (where you want to move your VM) to the cloud hosting the folder with the source image.
-
Assign the target cloud user the
resource-manager.clouds.member
andcompute.images.user
roles for the cloud hosting the folder with the source image. -
Create a new image in the target cloud:
CLIAPIyc compute image create \ --name <new_image_name> \ --source-image-id <source_image_ID> \ --cloud-id <target_cloud_ID> \ --folder-id <target_folder_ID>
Use the create REST API method for the Image resource or the ImageService/Create gRPC API call. Specify the image ID in your request.
-
In the target cloud, create a VM from the image you created.