The Ultimate Amazon Web Services Migration Guide
This is a guest article by Gilad David Maayan from AgileSEO
Amazon Web Services is the world’s leading cloud provider. If you’re migrating to the cloud, it’s an obvious option to consider. However, the complexity of Amazon’s offering can be mind boggling, with 175 services and counting, and complex pricing based on multiple variables for each service.
In this guide I’ll try to assist by covering:
- Why companies are moving to AWS – key benefits
- 6 strategies for migrating applications to AWS
- Automated migration tools that can ease your migration
- A quick AWS migration checklist
Why are Companies Moving to AWS?
Here are a few reasons companies choose to undertake the effort to move applications and workloads to the Amazon cloud. Alongside the benefits, you should also consider key challenges of migrating to AWS.
Reduce capital expenditure (CapEx)
IT infrastructure represents a large capital expenditure, in terms of the cost of data center facilities, servers, software licenses, network and storage equipment. Moving to AWS reduces CapEx for green field applications, and allows organizations to reallocate existing on-premise resources to the applications that need them most.
Amazon pioneered elastic on-demand billing for infrastructure. Organizations only pay for actual resources used, such as CPU, memory, and storage capacity. Organizations can scale up at will, eliminating the need to purchase more infrastructure to meet peaks in demand, and can also scale down as soon as resources are not needed, eliminating wasted unutilized resources.
Improved disaster recovery and high availability
AWS makes it much easier to backup critical systems to a remote physical location, and restore at will, without the cost and complexity of setting up backup infrastructure. Organizations can leverage AWS regions and availability zones to replicate workloads across multiple data centers and multiple geographical regions.
For organizations operating in regulated industries, AWS is certified for a large number of security compliance standards, including PCI-DSS, HIPAA, FedRAMP, GDPR, FIPS 140-2, and NIST 800-171. It provides comprehensive security features, including encryption, key management and access and identity management (IAM).
Amazon uses a shared responsibility model where infrastructure is the responsibility of the cloud provider, while it is the customer’s responsibility to secure their workloads.
Strategies for Migrating Applications to AWS
The Gartner “5 Rs” model, later renamed to “6 Rs”, specifies 6 strategies for migrating to the cloud. Each application your organization manages might have a different migration strategy.
1. Re-host (Lift and Shift)
Move applications to the cloud as is. This can be useful for large, complex enterprise or legacy applications. Amazon provides tools like VM Import/Export and Database Migration Service (DMS) to enable automated lift and shift migration.
Lift and shift is the easiest migration method, but its downside is that on-premise applications are not well suited to leveraging the benefits of the cloud, such as elasticity and high availability.
This strategy involves making changes to an application to allow it to benefit from cloud features, but without completely changing its architecture. For example, an organization can move a Kubernetes-based application to a managed service such as Amazon Elastic Kubernetes Service.
Refactoring is the most complex migration strategy, but can also provide the greatest benefits. Refactoring involves rethinking an application and rebuilding it using a cloud native architecture. This usually involves breaking the application into small, independent components (microservices), with built-in fault tolerance and elastic scalability.
This involves switching from the original on-premise system to a cloud-based service that can fulfill the same function. For example, switching from an on-premise database to a database hosted by the Amazon Relational Database (RDS) service.
A valid migration strategy is simply to get rid of applications that are no longer needed. In most organizations, legacy systems exist that are not really in use and can be decommissioned. This creates cost saving for the business and avoids the expense of unnecessary migration.
In many cases, organizations will choose to keep applications and workloads on-premises, for performance, compliance or security reasons, or simply because the benefit of migration does not outweigh the cost. These applications can always be migrated at a later stage.
AWS Cloud Migration Tools
Here are a few tools provided by Amazon at no cost, which can help you manage and automate your migration.
AWS Application Discovery Service (ADS)
AWS Application Discovery Service lets you plan migration projects with a comprehensive understanding of the local data center. This service collects data about local servers, such as configuration, usage, and performance, and provides an accurate overview of their current settings before migration begins.
You can pass data about your on-premise deployment to AWS Migration Hub, or use it to calculate your current total cost of ownership, and compare it with expected costs in the cloud.
AWS Application Discovery Service is provided free, but you are charged for AWS resources used to store or manage the data, including Amazon S3, Athena, and Kinesis.
AWS Server Migration Service (SMS)
AWS Server Migration Service is another free service designed to automate, plan, and monitor incremental replication of server volumes to Amazon resources.
SMS is an agentless service, which copies server volumes to the cloud and launches Amazon Machine Images (AMIs) as needed. You can create a replication schedule, and track replications progress on a central dashboard.
SMS speeds up the migration process by making changes to on-premise servers step-by-step. Because each change is small and replication is performed gradually, this greatly reduces the bandwidth and server downtime required for migration.
When using SMS, you only pay for the EBS snapshots created when you replicate each server volume. You can delete these snapshots when they are no longer needed to minimize costs.
AWS Database Migration Service (DMS)
AWS Database Migration Service lets you migrate data between popular commercial and open source databases. DMS can perform homogenous migration (with the same database and operating system on source and target systems) and heterogeneous migration (moving data between different platforms).
DMS is an agentless service, with no drivers or applications to install. From the moment the migration begins, it continually replicates changes to the original database, so there is virtually no downtime.
DMS is designed to be “hands free”—it has self-monitoring and self-healing capabilities, so if the network connection is lost, migration automatically resumes once it comes back online.
As with other Amazon migration tools, the DMS service itself is offered at no cost, but you pay for the target Amazon database instances, and for data transfer costs, as applicable for the specific database service.
AWS Migration Checklist
We’ve covered the key considerations before migrating to AWS. Once you’ve selected the best candidates for migration, here is a checklist you can use to effectively migrate your applications.
Prepare Your Staff
- Training—give staff a formal training program and online resources they can use to learn about the cloud.
- Sandboxes—create a testing environment in which technical staff can “play” with the Amazon environment to get hands on experience.
- Knowledge sharing—identify employees who are knowledgeable about the cloud and encourage them to share their knowledge and become evangelists of your migration effort.
- Policies—carefully plan your AWS security policy. Use Amazon Access and Identity Management (IAM) to define which users or third party employees can access cloud applications, and define access permissions for integrated systems.
- Data security—ensure all sensitive data is encrypted both at rest and in transit, whether in the cloud or on-premises. Map out sensitive data flows and ensure you configure the appropriate security measures—remember that securing data is the organization’s responsibility, not Amazon’s.
- Use CASB—a Cloud Access Security Broker (CASB) helps you establish an audit trail of cloud activity for compliance and security, and includes cloud-based firewalls for controlling network traffic.
- Set up monitoring—there are several AWS monitoring tools you can use to gain visibility over your cloud applications. Continuously monitoring cloud resources, and setting up automated responses to common errors, is key to a healthy deployment.
- Plan data transfer—cloud migrations involve transferring large quantities of data. Consider how long the data transfer will take, and whether to use Amazon Direct Connect (dedicated link) or Snowball (managed storage appliance) to speed it up.
- Refactoring—if you are moving to a different database, or even to the same database on a managed service like RDS, consider what needs to change both at the data level and application level to support the change. Carefully test mission critical applications before switching over.
- Integrations—consider if your database integrates with on-premise systems. After migration, it is possible to keep these integrations, and deal with possible latency issues, or switch to using cloud services instead. This must be planned carefully in advance.
Migrate Unstructured Data
- Data consistency—Amazon S3 uses an eventual consistency model, meaning that when you add new objects they can be read, but cannot immediately be updated or deleted. Take this into account in the first stages of migration.
- Storage tiering—Amazon S3 offers a regular “warm” storage tier, and two more tiers for cold storage and archival storage. Allocate data to the most appropriate storage tier to conserve costs, meet compliance requirements and ensure timely access.
- S3 security—use Original Access Identity (OAI) or access control lists (ACL) to specify who can access S3 buckets.
- Use CloudFront CDN—you can provide faster access to static assets on Amazon S3 using the Cloudfront content delivery network (CDN), which has points of presence (PoP) near to your application’s users.
To make your migration to AWS easier and more effective:
- Select the best migration strategy for each application – rehost, replatform, refactor, retain or retire
- Use automated migration tools provided for free – Amazon ADS, SMS and DMS
- Follow the checklist – prepare staff, prepare security, migrate databases and raw data
Migrating to the cloud can be complex; I hope this article will make the journey a bit easier.
Gilad David Maayan is a technology writer who has worked with over 150 technology companies including SAP, Samsung NEXT, NetApp and Imperva, producing technical and thought leadership content that elucidates technical solutions for developers and IT leadership.
Want to write an article for our blog? Read our requirements and guidelines to become a contributor.