Oleg Blokhin - Getty Images


How to migrate VMware VMs to AWS with ease

You can complete a VMware to AWS migration with Amazon's CLI tool and a few commands, but a migration with large data sets requires preparation and testing.

There are many ways to migrate local corporate servers to a cloud instance. The safest and most straightforward method to migrate a VMware VM to AWS is to use the Import/Export command-line interface feature in AWS.

A VMware to AWS migration isn't for those afraid to type at the command line, but it also shouldn't intimidate a seasoned IT professional. A complex workload migration with multiple VMs and storage volumes requires a plan and in-depth knowledge of the underlying architecture. Migration also relies on scripting, as opposed to typing commands at the console. Thorough tests in a sandboxed environment is an absolute must to ensure a successful VMware to AWS migration.

A brief look at the VMware to AWS migration process

One way to migrate an on-premises VMware workload to the cloud is to clone the target VM and use the clone file as the source to migrate the VM to AWS. This method works well for a few VMs but might be tedious for complex workloads. This is because multiple VMs could have on-premises dependencies through network and storage setups that pose an issue for migration to the cloud.

VMware's hybrid cloud approach makes it possible to manage VMs that run either on premises or in AWS through the same management interface. Still, there are some features AWS does not support. This includes VMs with connections to external block storage or if the VM performs raw logical unit numbers or logical disk mapping. AWS also doesn't support Payment Card Industry passthrough devices.

You can use Amazon's AWS Server Migration Service to migrate VMware workloads to AWS. The Server Migration Service uses a preconfigured FreeBSD VM to facilitate migrations from the vCenter management console. The FreeBSD VM is an OVA download, which you must install in the data center that hosts the VMs targeted for migration. Amazon provides complete instructions on the AWS documentation page, which also includes security and account management best practices to mitigate risks.

Cloud migration strategy checklist

VMware to AWS migration benefits and disadvantages

Scalability is one of the most well-known advantages of a VMware to AWS migration. Any workload with performance bottlenecks, such as high I/O throughput or considerable CPU resource requirements, could see improvements once migrated to AWS.

The caveat with scalability is the underlying software architecture. Workloads that execute in a linear fashion won't receive significant performance improvements compared to workloads with parallel paths. Still, access to large amounts of elastic compute resources can help speed up the time it takes to perform specific tasks. One example is a database task that must run a query against many rows and perform statistical analysis on the result.

AWS also opens the door to machine learning, especially if you must train a model using a large data set. The disadvantage to this approach is the possible need to move large amounts of data to the cloud to accomplish your task, a process that can cause unnecessary bottlenecks, downtime and increased costs.

There are negatives to evaluate. Any organization with data sovereignty concerns must take extra precautions when they move workloads to AWS. Amazon does have data centers in specific regions of the world to address data sovereignty.

How to migrate VMware VMs to AWS

Test all VM migration processes in a sandboxed environment using production VM images before enacting the real thing. The first step is to download and install the AWS command-line interface (CLI) on a local computer that's connected to the internet and has access to the VM images you plan to migrate.

Then use either vCenter or the CLI to clone a VM to a file, which can then migrate to AWS. AWS supports a number of file formats for imports, such as OVA and VMDK. The import to AWS requires a single command-line instruction, which relies on a file in JSON format that describes components such as the file name and format. The command line should look similar to the following, which AWS provides as an example in its documentation:

aws ec2 import-image --description "My server VM" --disk-containers file://C:\import\containers.json

Also included is the following example container.json file:

    "Description": "My Server OVA",
    "Format": "ova",
    "UserBucket": {
        "S3Bucket": "my-import-bucket",
        "S3Key": "vms/my-server-vm.ova"

You can also use a few CLI commands to export an existing Elastic Cloud Compute (EC2) instance from AWS to run on premises. The actual command line should look like the following:

aws ec2 create-instance-export-task --instance-id instance-id --target-environment vmware --export-to-s3-task file://C:\file.json

Similarly, the file.json would contain these lines:

    "ContainerFormat": "ova",
    "DiskImageFormat": "VMDK",
    "S3Bucket": "my-export-bucket",
    "S3Prefix": "vms/"

To export an EC2 instant from AWS to on premises does require an Amazon Simple Storage Service (S3) bucket to store the exported instance. AWS also supports OVA and VMDK for exported VM images, unless the image contains any third-party software provided by AWS.

Any EC2 instance with more than one virtual disk or network interface is an exception. AWS also restricts exporting image volumes larger than 1 TB of storage.

Dig Deeper on VMware cloud

Virtual Desktop
Data Center
Cloud Computing