Migrate from GCP and Azure to AWS using CloudEndure Migration
UPDATE (7/16/2021): This blog post describes CloudEndure Migration. AWS Application Migration Service, the next generation of CloudEndure Migration, is now the recommended service for lift-and-shift migrations to AWS.
Sometimes the first cloud provider a company chooses is not the best long-term fit. Choosing a cloud provider is typically based on a number of business factors, such as cost, reliability, security, compatibility, or a specific feature. But business environments are always changing. It may be that the business needs and priorities have changed, and a new platform, or additional platform, is now a better fit.
Companies with prior experience migrating to the cloud know it is often not as simple as it seems. Cloud migrations can be complicated, time-consuming, and costly. Whether your goal is to take advantage of cloud infrastructure, platforms, or software services, you need solutions to help you successfully navigate the migration process.
For those moving to the AWS Cloud, CloudEndure Migration helps migrate IT infrastructure from on-premises data centers or any other cloud provider. CloudEndure Migration simplifies, expedites, and reduces the cost of cloud migration by offering a highly automated, lift-and-shift solution.
This blog post covers one way to migrate virtual machines from Google Cloud Platform (GCP) and Microsoft Azure to AWS, using CloudEndure Migration.
CloudEndure Migration architecture
CloudEndure Migration simplifies the migration of applications from physical, virtual, and cloud-based infrastructure, and ensures they are fully operational in AWS without compatibility issues. The source infrastructure can be an on-premises data center, an AWS Region, or in this case, another cloud provider.
The replication is performed by a lightweight agent installed on each source instance that is to be replicated. This CloudEndure Migration agent communicates securely over port 443 using TLS, scans the source instance for all attached disks, and performs a block-level replication of disks in the target Region. After the initial replication is completed, the CloudEndure Migration agent monitors any changes to the source instance and replicates those changes. This ensures the data stored in the target Region is up to date.
Once the source and target are fully synced and in continuous data replication mode, you can initiate the cutover or a cutover test. Once the cutover or test is initiated, CloudEndure Migration uses Amazon Elastic Compute Cloud (Amazon EC2) API operations to launch target instances and attach new Amazon Elastic Block Store (Amazon EBS) volumes.
Use CloudEndure Migration to migrate virtual machines (VMs) from on-premises data centers or other cloud providers to AWS no matter the application or workload. Use another method if migrating to another PaaS-type services.
Advantages of using CloudEndure Migration
- Automate and quickly lift-and-shift your physical, virtual, or cloud servers to AWS without compatibility issues, performance impact, or long cutover windows.
- The low-cost “staging area” enables pre-migration replication to occur without performance disruption or data loss.
- Allows near-zero performance impact at source as it operates in the background, copying your source servers without taking snapshots or writing data to disks.
- CloudEndure’s continuous data replication engine provides asynchronous, block-level replication for live migration and disaster recovery (DR).
- CloudEndure replication is done at the block level (rather than hypervisor or SAN level), enabling support of any type of source infrastructure:
- Physical machines, including both on-premises and colocation data centers
- Virtual machines, including VMware, Microsoft Hyper-V, and others
- Cloud-based machines, including AWS, Microsoft Azure, Google Cloud Platform, Oracle Cloud, OpenStack, and others
- With CloudEndure’s continuous replication, there is no need to wait for your servers to update; they also do not require a reboot. They are ready to launch at any time.
For this tutorial, I launched a virtual machine in GCP hosting a sample WordPress website with user comments on the blog page. CloudEndure migrates these virtual machines to Amazon EC2. It also validates that the application data is synced and the comments copied to the target server.
I launched a virtual machine on Azure with a similar setup.
This post assumes that you have virtual machines running in GCP and Azure with an application and data to migrate to AWS.
This tutorial covers the following steps:
- Setting up the CloudEndure environment.
- Installing CloudEndure agents on Azure and GCP virtual machines.
- Configuring the CloudEndure Migration blueprints used to launch the target environment.
- Testing and initiating cutover to Amazon EC2 in the specified AWS Region.
Make sure to complete the following steps as prerequisites:
- Register for a CloudEndure Migration account with a free license for 90 days. For instructions, see the CloudEndure documentation.
- IAM user with credentials for CloudEndure. For instructions, see the documentation on using AWS credentials.
- Set up a custom VPC with at least one public subnet to launch our target servers.
- Enable communication on port 443 and 1500 between the source server, staging server, and the CloudEndure service manager.
Step 1: Setting up the CloudEndure environment
Once you have set up the prerequisites, you can start by creating a new CloudEndure Migration project.
- Log in to the CloudEndure console and create a new migration project. Enter the Project Name, choose Project Type as Migration, and then choose Create Project
- To set up the newly created project, navigate to the Setup & Info Choose AWS credentials and enter IAM user credentials created as part of the prerequisites
- Proceed to the Replication Settings and do the following:
- Choose Migration Source as Other Infrastructure
- Choose Migration Target as the AWS Region
- Choose a specific instance type for your replication server and the convertor server. For this tutorial, I use the t3.small instance type for both instances.
- Specify security and network-related configuration like subnet, security group, VPN, etc. For this tutorial, keep the default values for all the other options. Save them and proceed.
Step 2: Installing CloudEndure agents on Azure and GCP virtual machines
As the next step, we start by installing the CloudEndure agent on our GCP virtual machine.
1. After saving the changes from the previous step, instructions to download and install the CloudEndure agent on your Windows or Linux Servers appear. Alternatively, you can navigate to the Machines Tab and choose the Add Machine option.
2. Secure Shell (SSH) or Remote Desktop Protocol (RDP) into your GCP virtual machine. Follow the instructions to download and install the CloudEndure agent. Once the agent is installed, it automatically scans all of the disks attached to the source instance. It begins replicating the data for all discovered disks, using the configuration defined earlier in Replication settings.
3. Once the CloudEndure Migration agent is ready to replicate, the CloudEndure Migration SaaS application launches and configures the replication instances in the staging area.
4. CloudEndure Migration initiates replication from the source instance to the replication instance. You can track the replication progress in the Machines page of the CloudEndure console.
Repeat the same steps to download and install the CloudEndure agent on the Azure Virtual Machine. Upon successful completion, two servers are added in your Machines page with progress bar status.
Step 3: Configuring the CloudEndure Migration Blueprints
This section covers the steps to configure the CloudEndure Migration blueprint. The blueprint defines where each machine should launch and how it should be provisioned at the time of test or cutover.
Click on machine name and start configuring the blueprint for each target machine.
- For Machine Type, choose the instance type for the target machine.
- For Launch type, choose On demand.
- Choose the subnet where the target machine will be launched. For this tutorial, choose the public subnet created as a part of the prerequisites.
- Choose the security groups that will be associated with the target machines. For this tutorial, choose the default value, which creates a new security group.
- For Private IP, choose Copy source if you are migrating over the CIDR range as well. For this tutorial, configure this setting as Create new.
- Configure Elastic IP as Create new and Public IP (ephemeral) to Yes.
- For the IAM Role, specify a role if the target server requires some permissions.
- For Tags, enter a key and value.
- Keep the default values for all the other options, and choose Save Blueprint.
Step 4: Test and initiate cutover to the Amazon EC2 in the specified Region
Before initiating test/cutover, verify that the instances are in Continuous Data Replication state and there is no LAG as shown in the following screenshot.
Perform multiple test launches before you perform an actual migration cutover to verify that your applications are running as expected. To initiate the cutover, choose the machines you want to launch in the target environment and click on Launch Target Machines. For this tutorial, we directly perform an actual migration cutover. You can monitor the job progress by navigating to the Job Progress page.
CloudEndure also launches a Machine Convertor instance to modify the target machine to boot and run on AWS.
Once the job is completed, you can view both the instances under the EC2 console. Also, the machine convertor is a temporary resource and it is automatically deleted once the instances have launched successfully.
For the GCP target server, use the public DNS or IP address to access your WordPress website and verify if the changes have persisted.
Follow the same steps to confirm that the server is migrated successfully and the comments persisted.
if you followed along with this blog post and want to avoid incurring future charges, please complete the following steps to clean up the resources used in the solution:
- Choose Machine Actions.
- Choose Remove Machines from the console.
- When all of the agents are uninstalled, delete the VPC. This deletes all AWS resources that you created for replication.
This post covered how CloudEndure Migration can be used to migrate virtual machines from other cloud providers to AWS. We demonstrated setting up the CloudEndure Migration environment, installing CloudEndure agents on virtual machines, and configuring CloudEndure Migration blueprints to migrate virtual machines from other cloud providers to AWS.
There are plenty of reasons why your company might want to migrate from one public cloud platform to another. A different service provider might be a better match in terms of the services, service-level agreements (SLAs), and pricing. Or perhaps you recently went through a merger or acquisition, and are looking to standardize on a single cloud provider. With CloudEndure Migration, you can quickly migrate a large number of machines to AWS without worrying about compatibility, performance disruption, or long cutover windows. If any re-architecture is needed, it can be easily performed after the migration to AWS. All in all, migrating to the right cloud provider can be simple, efficient, and beneficial in terms of cost and performance. For a more in-depth look, take the CloudEndure Migration technical training.
Thanks for reading this post on migrating from GCP and Azure to AWS using CloudEndure Migration! If you have any comments or questions, don’t hesitate to leave them in the comments section.