We can deploy AWS SMS Connector directly in Azure Subscription to migrate Azure Virtual Machines to AWS Cloud seamlessly. Initially we need to download Azure VM’s VHD locally (on-prem) then use AWS VM Import/Export tool to import the VHDs to AWS account manually which is time consuming process and it’s kind of offline migration. When using AWS SMS Connector deployed in Azure Subscription it replicates selected Azure Virtual Machines and fundamentally it works as deployed in Hyper-V or VMWare environment.
High Level steps for this lab:
1. Deploy two Azure Virtual Machines which will be migrated to AWS cloud.
2. Deploy AWS SMS Connector Appliance in same region as Azure Virtual Machines.
3. Configure SMS Connector via its web interface.
4. Configure SMS Replication Jobs from AWS Web Console
Step by Step Lab deployment:
1. Deploy Azure Virtual Machines:
Initially two Azure Virtual Machines are already provisioned with “Windows Server 2016” OS in “West US” Azure region, Just to save time and efforts. Here we will be testing migration of both Azure VMs to AWS cloud using AWS SMS Azure Connector.
Below are disks details that are attached to my Azure Virtual Machines “AWS-Migration1” and “AWS-Migration2” respectively.
2. Deploy AWS SMS Connector Appliance in same region as Azure Virtual Machines.
(A). Now I’m going to deploy AWS SMS Connector in my Azure Subscription. Please note than you need to deploy SMS Connector in same region as your Azure Virtual Machines because at the moment SMS Connector can’t migrate the Azure VMs located across different Azure regions. In my case, Azure VMs are located on “West-US” Azure region so I will be deploying SMS Connector in same region.
(B). If you have Azure Virtual Machines spread across different Azure regions then you would need to deploy SMS Connector in each of those Azure regions.
(C). You can deploy SMS Connector in Azure either manually or using PowerShell script. I’m using automated deployment method using PowerShell script provided in below official AWS documentation.
AWS SMS Connector for Azure documentation:
(D). AWS SMS Connector VHD is located in one of the Azure Blob Storage and when you run the PowerShell script it downloads from below Azure Blob storage and deploys your SMS Connector after validating few prerequisites.
SMS Azure Connector VHD Location:
(E). Download and Run the PowerShell script provided in above documentation link, once you execute it will ask for “Storage Account Name” and “Azure Vnet Name” which is mandatory parameters. If your local machine where you are running this script doesn’t Azure PS Modules installed then it will download and install that for you and then will prompt you to login to your Azure Subscription.
(F). Once you are logged into your Azure Subscription, it will ask you confirm to proceed with deployment.
(G). Now it will start copying the VHD from Azure Blog Storage to the storage account you have specified initially to deploy the SMS Connector into. Wait for few minutes here, its 60 GB VHD file, in my case it took around 10 mins to complete.
(H). Now I have AWS SMS Connector deployed in my Azure Subscription.
(I). Go to this connector VM overview and note the Public IP it has been assigned.
(J). Before we move ahead we need to allow HTTPS port 443 inbound against this SMS Connector VM in NSG (Network Security Group) rule. Please refer below screenshot how to do it.
3. Configure SMS Connector via its web interface:
(A). Now access the SMS Connector appliance using its public IP address noted above, you will see console like this.
(B). Click on “Get started now” and will take you to initial configuration page of SMS Connector, Click on “Accept License Agreement” and proceed ahead.
(C). Here you need to specify the SMS Connector password that you would be using to access it via web interface.
(D). On this page, it is providing details about how we can access this SMS Connector appliance using SSH from another box and configure network details. I skip this and proceed further.
(E). If you wish, you can enable this option to upload the logs to AWS Support automatically.
(F). Now specify the AWS Region where you would be using this connector and migrated Azure VM’s images will be located in that AWS region. Additionally, specify the credentials that this SMS Connector will be using to connect to AWS.
(G). Now provide the Object ID of the SMS Connector, you can find this from the summary of this connector deployment.
(H). Click on “Next” to finish SMS Connector configuration, once the configuration completed connector console will look like this. This is kind of administrator console for the SMS Connector. You can modify any required settings from here.
4. Configure SMS Replication Jobs from AWS Web Console:
(A). Now login to your AWS Console and switch to “Oregon” region and then navigate to “Server Migration Service”, you will be seeing configuration like below in the console.
(B). Click on “Connectors” and it’s showing that our SMS Connector in Azure is reporting to AWS and its status is “Healthy”.
(C). Now go to “Servers” option and it will be showing blank because we need to import catalog. Click on “Import server catalog” it might take few seconds to import information about the Azure VMs here.
Note: If the connector is not reporting healthy for some reason then import server catalog operation will not work.
(D). Now I have my Azure VMs information imported here. Including SMS Connector I have total three Azure VMs in my subscription.
(E). I’m selecting both Azure VM except connector one to create SMS Replication job to migrate them to AWS Cloud.
(F). Create replication job wizard will start now.
(G). Configure replication job settings as per your requirement and provide IAM service role that has all the permissions outlined in the AWS documentation. I have selected option to trigger replication job as soon as it gets created for initial replication.
(H). I have created an IAM role “sms” with all the required permissions as per AWS documentations, this is the IAM role that will be used by SMS Replication jobs. You would need to review CloudTrail logs if you want to see that this account being used in the API calls of SMS Replication jobs.
(I). Click on “Create” option.
(J). So finally we have 2 replication jobs created for two Azure VMs.
(K). It is showing job state pending, within few seconds it will start replication because I have configured it to trigger immediately.
(L). Now both replication jobs are showing “Active” state.
(M). So basically, there are four stages of the SMS replication job. If I click on the replication job I can see at which stage it is progressing right now.
(N). Now it has started replicating/uploading VHD files to AWS account.
(O). If you check the replication job after sometime (possibly few hours), you might see replication job status at “Converting” stage like below. At the “Converting” stage basically it converts Azure VM’s VHD to the supported file system for EBS Storage in AWS.
(P). Now my replication job has reached to the last stage of “AMI Creation”, After successfully converting the VHD to supported EBS file system in 3rd stage above it starts creating Amazon Machine Image (AMI) and once the AMI is created successfully it will be available in your AWS Account to launch the EC2 instance.
(Q). If you see now the AMI has been created successfully and replication is completed. Now we can launch an EC2 instance using this AMI to complete our workload migration from Azure cloud to AWS.
Note: Please note that every successful SMS Replication job will create an AMI for you, then it you need to decide cutover time and AMI that you would using to launch your migrated machine as EC2 instance in your AWS account.
(R). I’m launching an EC2 instance using this migrated AMI and will verify if everything is healthy. I will not be listing out all the steps for EC2 instance creation, I assume that you are familiar about EC2 instance creation process in AWS cloud.
(S). I have my EC2 instance launched successfully using the AMI of the migrated Azure VM.
(T). Now you can login to this instance and perform sanity check to ensure that everything is working as expected.
Please note that the main purpose of this post was to walk you through about this migration tool and how it works based on a basic Azure Virtual Machine (not running any enterprise workload) migration to AWS cloud. If you are thinking to migrate any Azure VM running enterprise workload then first advise would be to run assessment check from various perspective like pricing, instance types etc.
So this was all about setting up AWS Server Migration Service (SMS) Connector in Azure to migrate Azure Virtual Machines to AWS cloud. I hope this will help you configuring in your environment as well.
I hope this will you too in deploying in your environment. Happy learning!!
This blog post/document is provided “AS IS” with no warranties and confers no rights.