Migrating Applications
For applications that have been chosen as starting candidates to move to the AWS cloud, several decisions need to be made about each application’s journey or path. There are several options available for moving an application, depending on factors such as the age of the application and its operating system, and any local dependen-cies. The following sections walk through these options. Typical large organizations run many applications on thousands of virtual servers. When you move to AWS, you need to determine which applications can be moved to AWS and what applica-tions should first be prioritized. Consider the following caveats before making these choices:
- Define a value proposition: Thousands of companies have successfully moved to AWS; you, too, can be successful. Start off with a defined value prop-osition that can be validated quickly—that is, in a matter of months rather than years. For developing applications, you could consider developing with AWS Cloud9 (see Figure 1-12), a cloud-hosted integrated development environment
(IDE) that supports more than 40 programming languages. Using Cloud9 and a browser, you can try your hand at developing a new application at AWS or at another PaaS provider such as Heroku. When you develop a completely new application at AWS, you are not constrained by factors such as the type of database that must be used, the type of programming language that must be used, or the type of compute that must be used. Starting new at AWS enables you to try out new methods to host applications, such as serverless computing, creating a mobile application using stateless components, or using DynamoDB as a NoSQL deployment instead of a SQL database. Developing and deploy-ing a new workload at AWS without any legacy dependencies is where the real learning about what the AWS cloud can do for you begins.
Figure 1-12 Cloud9 IDE at AWS for Application Development
- Start with low value/low risk: When choosing what application to move to the AWS cloud, many consultants begin by suggesting a starting point of selecting an already virtualized application stack with high value and low risk. However, it’s probably going to take you many months or longer to success-fully move a production application to the cloud. Think about choosing an application with low value first. This will enable you to do some additional planning and analysis without any added pressure. Many companies make the pronouncement that applications will be moving to the cloud quickly. It rarely happens as quickly as expected because there are so many things to learn and consider. Take your time and select a working application that has been virtu-alized and running successfully. Consider using the AWS Application Migra-tion Service to migrate your first application to AWS. After you are successful, document every step, including lessons learned and what to do differently for
the next application chosen to be migrated. Moving additional applications to the cloud will generally be easier and faster thanks to the lessons learned and experience gained.
- Solve a single problem: Do you require additional storage? Perhaps that’s a great starting point for moving resources to the AWS cloud. Archiving files in S3 Glacier could be as simple as ordering an external AWS Snowball device, connecting it up to your network, filling it with files that you would like to archive, and shipping it back to AWS. Archiving records in the AWS cloud would be an excellent first project in working with AWS.
- Allowing access to on-premises data records: The number-one problem for larger companies starting to work with cloud providers is working through the internal politics to allow access to on-premises data from the cloud. Be sure to consider data record access and the steps required for successful access before you begin moving to the cloud:
- How can you access your on-premises data from the cloud?
- What data records must stay on premises?
- Are you bound by any compliance rules and regulations?
- Is your current data in the right format for what you need?
Applications That Can Be Moved to AWS and Hosted on an EC2 Instance with No Changes
An application that fits into this category is referred to as lift and shift or re-hosting. Server migration tools and database migration tools can carry out these migra-tions quite effectively. AWS Application Discovery Service helps organizations plan migration projects by gathering information about their on-premises data centers and potentially thousands of workloads. Server utilization data and the mapping of any dependencies are useful first steps in the initial migration process. The collected data can be exported as a CSV file and used to estimate the total cost of ownership (TCO) of running workloads when planning migration to AWS.
AWS Application Migration Service (formally CloudEndure Migration) is the recommended migration service for performing lift-and-shift migrations to AWS because it automatically converts source servers from physical, virtual, or from exist-ing third-party cloud providers to run at AWS. Supported physical servers include VMware vSphere and Microsoft Hyper-V. EC2 instances can also be migrated between AWS regions or between AWS accounts.
However, applications that are lifted and shifted to the cloud are likely to have dependencies and issues that need to be considered before beginning the migration, including the following:
- If the application stores its data in a database, will the database remain on the premises or will it be moved to the cloud? The Database Migration Service can help in migrating many types of on-premises databases to the cloud.
- If the database for the application remains on premises, are there latency issues that need to be considered when communicating with the database? Each AWS site-to-site VPN connection supports a maximum throughput of up to 1.25 Gbps.
- Will a high-speed connection need to be established between the AWS cloud and the database remaining on premises? A high-speed private fiber AWS Direct Connect dedicated connection ranges from 1 to 100 Gbps.
- Are there compliance issues regarding the application data? Does the data have to be encrypted at rest? Does communication with the database need to be encrypted? AWS Artifact, available in the AWS Management console, provides compliance reports and agreements to review current compliance standards.
- Do users need to authenticate to the application across the corporate network? If so, are federation services required to be deployed at AWS for single sign-on (SSO)? IAM Identity Center provides SSO for multiple AWS accounts and SaaS cloud applications.
- Are there local dependencies installed on the application server that will inter-fere with the application server’s operation in the AWS cloud? AWS Migration Hub Strategy Recommendations can be useful for alerting customers about potential migration conflicts for application migrations.
Are there licensing considerations for both the operating system and the appli-cation when operating in the cloud? AWS License Manager can help track license usage across your environments.