A comprehensive guide to exporting your AWS workloads and deploying them on RamNode's cloud infrastructure.
Migrating from AWS to RamNode can provide significant cost savings while maintaining performance and reliability. This guide walks you through the complete process of exporting an EC2 instance, converting it to a compatible format, and deploying it on RamNode's cloud platform.
RamNode supports multiple image formats including RAW, QCOW2, VMDK, VDI, and VHD/VHDX, making migration from virtually any hypervisor straightforward.
Your AWS IAM user or role needs the following permissions for the VM Export feature:
Additionally, you'll need to create a service role that allows AWS to write to your S3 bucket. See the AWS documentation for creating the vmimport service role.
Before exporting, you should prepare your instance to ensure a clean migration. This involves generalizing the system and ensuring compatibility with RamNode's infrastructure.
RamNode's cloud platform uses virtio drivers for optimal performance. Most modern Linux distributions include these by default, but you should verify they're available:
lsmod | grep virtioIf virtio modules aren't loaded, install them:
Ubuntu/Debian:
sudo apt update && sudo apt install linux-modules-extra-$(uname -r)CentOS/Rocky/AlmaLinux:
sudo yum install kernel-modulescloud-init enables RamNode's platform to inject SSH keys, configure networking, and apply user data during instance boot.
Ubuntu/Debian:
sudo apt update && sudo apt install cloud-initCentOS/Rocky/AlmaLinux:
sudo yum install cloud-initConfigure cloud-init to enable DHCP networking by editing /etc/cloud/cloud.cfg.d/99-ramnode.cfg:
network: {config: disabled}Remove instance-specific configuration to ensure the image works properly when deployed:
sudo cloud-init clean --logs
sudo rm -rf /var/lib/cloud/instances/*
sudo rm -f /etc/ssh/ssh_host_*
sudo rm -f /etc/machine-id && sudo touch /etc/machine-idImportant: After running these commands, the instance may behave unexpectedly on reboot. Only run these immediately before creating your export.
AWS provides the VM Export feature to create disk images from running or stopped instances. The export process creates a VMDK file stored in your S3 bucket.
For a consistent export, stop the instance first:
aws ec2 stop-instances --instance-ids i-1234567890abcdef0Wait for the instance to fully stop:
aws ec2 wait instance-stopped --instance-ids i-1234567890abcdef0Create an export task specifying your S3 bucket and the desired output format:
aws ec2 create-instance-export-task \
--instance-id i-1234567890abcdef0 \
--target-environment vmware \
--export-to-s3-task file-format=vmdk,s3-bucket=your-bucket-name,s3-prefix=exports/This command returns an export task ID. Record this for monitoring progress.
Check the status of your export task:
aws ec2 describe-export-tasks --export-task-ids export-i-1234567890abcdef0The export may take 30 minutes to several hours depending on the instance size. The task status will change from 'active' to 'completed' when finished.
Note: AWS charges for the S3 storage used by the exported image. Delete the image from S3 after successfully uploading to RamNode to avoid ongoing storage costs.
While RamNode accepts VMDK files directly, converting to QCOW2 format offers several advantages: better compression, copy-on-write efficiency, and native support in RamNode's KVM-based infrastructure.
First, download the VMDK from your S3 bucket:
aws s3 cp s3://your-bucket-name/exports/export-i-1234567890abcdef0.vmdk ./Install the QEMU utilities if not already present:
Ubuntu/Debian:
sudo apt update && sudo apt install qemu-utilsCentOS/Rocky/AlmaLinux:
sudo yum install qemu-imgmacOS (with Homebrew):
brew install qemuConvert the image with compression enabled:
qemu-img convert -f vmdk -O qcow2 -c export-i-1234567890abcdef0.vmdk ramnode-image.qcow2The -c flag enables compression, which significantly reduces file size and upload time.
Check the image information to ensure conversion succeeded:
qemu-img info ramnode-image.qcow2The output shows the virtual size, actual disk usage, and format. Note the virtual size—you'll need this when creating your RamNode instance.
| Format | Description | Best For |
|---|---|---|
| QCOW2 | QEMU Copy-On-Write | Recommended - best efficiency |
| RAW | Uncompressed disk image | Maximum compatibility |
| VMDK | VMware virtual disk | Direct AWS exports |
| VDI | VirtualBox disk image | VirtualBox migrations |
| VHD/VHDX | Microsoft Hyper-V format | Azure/Hyper-V migrations |
With your image prepared, you can now upload it to RamNode's cloud platform.
For images under 2GB, use the web interface:
For images larger than 2GB, the web upload may be unreliable. Contact RamNode support to arrange alternative upload methods:
Tip: Keep your original AWS export in S3 until you've verified the migration is successful. This allows you to retry the process if needed.
Once your image is uploaded and shows as 'Active' in the Images list, you can launch instances from it.
Connect to your new instance via SSH:
ssh -i your-key.pem user@your-instance-ipVerify the system is functioning correctly:
# Check system information
uname -a
cat /etc/os-release
# Verify networking
ip addr show
ping -c 3 google.com
# Check disk space
df -h
# Verify services are running
systemctl statusIf your instance fails to boot, check the VNC console in the Cloud Control Panel for error messages. Common causes include:
If the instance boots but has no network connectivity:
If you can't SSH into the instance:
Need Help? Contact RamNode support if you encounter issues with image uploads or boot problems. The support team can assist with large uploads and troubleshooting.
After successfully migrating and verifying your instance, complete these final tasks:
Point your domain names to the new RamNode IP address. Consider using a short TTL initially to facilitate quick rollback if needed.
Set up backup procedures using RamNode's snapshot functionality accessible from the instance details page.
Update external monitoring services with the new IP addresses. Reconfigure any cloud-specific integrations tied to AWS.
After verifying the migration is stable (wait at least one week), terminate the EC2 instance, delete exported images from S3, and release unused Elastic IPs.
Migrating from AWS to RamNode is a straightforward process once you understand the export and conversion workflow. By following this guide, you've successfully transferred your workload to RamNode's infrastructure while maintaining all your application data and configurations.
RamNode's competitive pricing and flexible infrastructure make it an excellent choice for developers and businesses looking to optimize their cloud spending without sacrificing performance or reliability.