Application Migration to the AWS Cloud | Options, Stages, Techs, and Cost Factors
In IT since 1989, with 9 years of experience in cloud computing and 8 years of experience with AWS-based infrastructures, ScienceSoft provides comprehensive application modernization and migration services.
APPLICATION MIGRATION TO THE AWS CLOUD: THE ESSENCE
Migration of an application or its part(s) to AWS enables the following benefits:
Ability to add new features and updates quickly and cost-effectively (AWS offers over 90 services to move from idea to implementation in minutes and days rather than months and years).
Enhanced vertical (increasing the capacity of an individual server) and horizontal (adding more instances of the server) app scaling.
Simplified integration, (big) data management and AI capabilities.
Dynamic resource consumption (the pay-as-you-go model).
Acquiring global reach in minutes.
In 5 years, 31% lower infrastructure costs vs. comparable on-premises environment. Costs associated with running IT environments (licensing, power, facilities) and hardware costs are included.
It’s likely to take 1-2 months to move a small application to the AWS cloud and ~ 6 months and longer to migrate the first medium or large application. However, subsequent apps can be moved much faster due to the experience gained, e.g., with established migration processes, dozens of your applications can be moved to the cloud in 6 months or hundreds in a year.
Below we provide the sample sequence and duration of the AWS migration steps.
NB! Your AWS migration initiative can differ depending on the number of workloads you have to migrate and the number of workloads you can move per day, the application migration readiness, the chosen migration approach, the complexity of security and compliance requirements, and more.
Step 1. AWS migration prerequisites gathering and high-level planning
Duration: 1-2 weeks
- Outline short-term and long-term objectives for application migration to the AWS cloud.
- Determine the AWS migration scope.
- Determine risks of moving to the cloud (e.g., application security concerns).
- Analyze applications’ dependencies, integration points and conduct application complexity analysis.
- (for enterprise software) Review key business processes supported by an application under migration.
- Select a suitable migration approach (one out of 6 Rs – rehost, replatform, refactor, retain, repurchase (for enterprise apps), retire – or a combination of several approaches).
- Cloud app migration without any code modifications.
- The management of the hypervisors and hosts becomes the responsibility of the cloud provider.
- Limited cloud-driven benefits in terms of app resilience, performance and scalability.
- Cloud application migration with small modifications and upgrades in code.
- More advanced cloud capabilities (improved performance, scaling, fault-tolerance, etc.) for the application.
Re-factoring into a cloud-native (or near native) application
- App architecture transformation into small isolated components (e.g., splitting into web services/microsevices) to leverage cloud possibilities of dynamic load and meet performance requirements.
- Containerizing each service with the required operating system and dependency libraries to simplify app scalability and portability and facilitate distributed application management.
- (optional) Introducing tree hierarchies of services, message queues, dynamic scaling and automated recovery to eliminate the failure of error escalation.
- Continuous integration, testing, and deployment of new software parts.
- Leveraging multiple cloud services (integration, DevOps, data storage and analytics, security, AI, VR, IoT, data science, and more).
- Define deployment model criteria (AWS public cloud, Amazon VPC (Virtual Private Cloud), or on-premises + AWS).
Step 2. AWS migration design and planning
Duration: 3-4 weeks.
- Create an application migration knowledge base (app technology stack and architecture, its availability, scalability and fault tolerance requirements, application security and compliance risks, user access management, app migration readiness, etc.).
- Identify any application refactoring activities required for successful migration.
- (for enterprise software) Develop business process maps to make sure that all the necessary app functionality was taken into account for migration.
- (for enterprise software) Identify a business owner of each process covered by the applications under migration.
- Create an application migration prioritization framework.
- Create app dependency graphs for:
- Data flows and their dependencies.
- Containers and microservices.
- Hardware and software load balancing.
- Design a deployment model based on the chosen criteria (AWS public cloud, Amazon VPC, or on-premise + AWS).
- Design the target app architecture.
- Choose the fitting AWS services (compute, storage, analytics, security, continuous integration, delivery and deployment).
ScienceSoft's tip #1
If your migration project entails app design and code modification (e.g., in case of cloud-native implementation), use code conversion tools and make targeted manual adjustments to the results of automated conversion, if required. It will save the migration efforts.
ScienceSoft's tip #2
In case of a hybrid deployment model, it’s necessary to encrypt all communications with on-premises servers.
Step 3. Business case AWS migration project roadmap
Duration: 1-2 weeks.
- Compare the current cost of running the applications and estimated costs of running them on the AWS cloud.
- Estimate the expected migration investments and project ROI.
- Estimate the business benefits of app migration to AWS.
- Create an application migration schedule.
- (optional) Identify pilot migration deliverables.
- Review project management methods, tools, and capabilities to assess any project gaps.
- Create the migration project communication plan, including reporting and escalation procedures.
- Develop a project plan with the outlined resources, timelines and costs to migrate to the targeted AWS environment, risk mitigation log, and a roles and responsibilities matrix (e.g., RACI).
ScienceSoft's tip #2
To move large and complex applications, use an iterative approach to AWS migration. In such case, the project roadmap should reflect a plan for each migration iteration, which will include:
- Responsibility assignment matrix for each migration step and each project team member (including business representatives).
Show all points
- KPIs to track success for each migration step, including both technical outputs (e.g., the number of virtual machines moved to cloud hosting) and business values (e.g., increased customer satisfaction, increased speed of updates).
- Described technical activities for each step (including refactoring and adaptation plan, data loss prevention plan, etc.).
- Rollback strategy for each iteration step.
- Planned iteration milestones.
Step 4. Data migration
Duration: 3–10 weeks
For complex and data-intensive applications, the migration team works out a strategy and chooses tools to migrate the app data. The team:
- Performs a data quality check to make sure that data is valid and has no duplicates.
- Creates scripts to extract, clean, and load data to the target AWS database.
- Builds a tool or creates a script to automate data migration (automation is optional and depends on the data availability requirements).
- Performs and validates trial data migration.
- Checks for data losses.
- Executes massive data migration and tests the results (including database performance).
If the database remains on-premises during hybrid cloud migration, use the checklist below:
- Are there any latency issues in communication with the database?
- Is a high-speed connection needed to be established between the AWS cloud and the on-premises database?
- Are there specific data security requirements? Does data have to be encrypted at rest?
Step 5. Pilot AWS migration (optional)
Duration: 2-4 weeks.
The migration team executes pilot AWS migration that doesn’t affect the production environment to enhance the success of subsequent application migrations. The team:
- Sets up a beta environment.
- Tests and fine-tunes the functionality of the migrated application using test data and a test database.
- Tests scalability, load balancing, and capacity of the app and its infrastructure after loading production-equivalent test data.
- Assesses the results of pilot AWS migration, finalizes the app architecture.
- Finds out solutions for problems identified during mock migration.
Step 6. Iterative AWS migration and testing
Duration: 3-6 weeks.
Actual application migration is structurally much the same as mock migration. The team:
- Schedules and communicates app downtime to users and project stakeholders.
- Sets up a new AWS production environment.
- Sets up DevOps tools and processes.
- Migrates the application(s) to the AWS environment.
- Migrates APIs and dependent apps (if relevant).
- Documents app changes, updates configurations.
- Validates that migration activities haven’t affected application functionality and performance.
- Sets up monitoring tools.
THE SPECIFICS OF CONVERTING ON-PREMISES PRODUCTS TO SAAS ON AWS
Analyzing how migration will affect the way customers access and interact with the product.
Planning the transition to a new business model.
Tweaking the sales & marketing strategy, including adjusting to faster sales cycles, recurring payments.
Changing the approach to product management (faster updates, more data-driven decisions).
Considering how you can address the varying needs of tenants (compliance and security-focused tenants, cost and ease-of-use focused tenants, etc.).
Ensuring privacy and data security of multiple clients on the same server; ensuring privacy and security of sessions when data is exchanged between a client's servers and your product’s cloud instances.
Educating customers on the differences in using and operating the migrated application, customizing migration journeys for the largest customers.
- Plans the AWS migration project, assigns tasks to the migration team and oversees tasks’ execution.
- Makes sure to provide stated project deliverables on time, on budget and of the required quality.
- Prepares AWS migration project progress reports.
- Executes change and risk management.
- Participates in the selection of AWS Consulting Partner.
AWS Solution Architect
- Designs a highly available, cost-effective, secure, and scalable distributed system on AWS.
- Defines technical requirements for an AWS-based application.
- Identifies which AWS services meet given technical requirements.
- Provides implementation guidance throughout the project life cycle.
- Implements code-level application modifications and applies fitting AWS services to an application under migration.
- Refactors and containerizes an application under migration or application parts.
- Helps decide on the AWS database services and configures them.
- Implements data migration tools.
- Implements an infrastructure-as-code approach, chooses suitable AWS deployment and management services.
- Adjusts orchestration using AWS services.
- Automates deployment, including the introduction of automated testing approach, CI/CD pipelines.
- Selects and configures tools to monitor the performance of a migrated app, detect issues, and provide alerts when the issues arise.
IT Security Specialist
- Makes sure that the workloads deployed or developed in the cloud align with the organization’s security control and compliance requirements.
- Makes security recommendations at each stage of the cloud migration process.
- Sets up network security, access control mechanisms, monitoring and event management for a migrated app.
- Plans a testing strategy for AWS migration.
- Conducts manual and/or automated pre-migration and post-migration testing to ensure the application’s functionality, reliability and security.
- Performs integration testing.
- Executes performance testing.
- Verifies that all data is intact during migration.
The entire AWS migration process is in-house
- Full control over the AWS migration process and team productivity.
- Specific resources with experience in AWS services and legacy app modernization may be required, which are not viable to hire for a one-time project.
- All hiring and managerial efforts are on your side.
Partial or full outsourcing of technical resources
- Quick project ramp-up.
- Optimal resource utilization.
- Wide AWS and migration expertise of the outsourced team.
- Partial or total project team coordination, quality control and risk management are required from your side.
Full AWS migration process outsourcing
- A vendor assumes full responsibility for the team assembly and management and the quality of migration.
- Established AWS migration frameworks.
- The customer can stay focused on their core service delivery.
- High migration/modernization vendor risks.
A mix of in-house team and outsourced consultancy
- In-house team has a deep understanding of internal processes and software environment and direct access to all assets.
- Outsourced consultancy provides expert guidance, mentors through the most challenging migration activities, closes up the gaps in specific tech skills.
- Risks of consultancy vendor selection.
- Requires time and experience to establish smooth collaboration and communication between the in-house and consultancy teams.
AWS Application Discovery Service
Pre-migration discovery of existing servers.
- Automatically identifies applications running on-premises, collects and maps the associated application dependencies and summarizes their performance portfolios. The data can be used to perform a Total Cost of Ownership (TCO) analysis and then create a cost optimized migration plan based on your unique business requirements.
- Offers both agent-based data collection (software should be installed on each host to use Application Discovery) and agentless collectors from VMware hosts.
Free, however, additional charges may apply for streaming agent data via Amazon Kinesis Data Firehose, for storing the agent data in a S3 bucket and for querying the agent data in Amazon Athena.
AWS Server Migration Service
Automated migration of on-premises server workloads to AWS.
- As a significant enhancement of EC2 VM Import, provides scheduled, live incremental server replication that allows customers to test server migrations easily.
- AWS console-based GUI enables customers to start and manage migration and track a progress of a group of servers easily.
- Can migrate virtual machines from VMware vSphere, Windows Hyper-V, or Microsoft Azure.
Free, but you will incur charges for any AWS infrastructure that is provisioned during migration and after cutover, such as compute (Amazon EC2) and storage (Amazon EBS) resources.
AWS Database Migration Service
Migrating databases from an on-premises server to the AWS cloud.
- Provides support for same-origin vendor database migration, such as Oracle to Oracle, and cross-origin vendor database migration, such as Oracle to MySQL.
- Enables the source database to remain fully operational during the migration process, minimizing downtime to applications that rely on the database.
- Enables streaming data to Redshift from any of the supported sources, including Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle, SAP ASE, Teradata, and Microsoft SQL Server, for consolidation and analysis of data in the petabyte-scale data warehouse.
Free for six months when migrating databases to Amazon Aurora, Amazon Redshift, Amazon DynamoDB or Amazon DocumentDB (with MongoDB compatibility).
AWS Migration Hub
Migration process management.
- Provides visibility into the status of migration across multiple applications and provides key migration metrics and progress updates for applications via creating a unified console/dashboard.
- Integrated with the AWS migration tools, including AWS Application Discovery Service, AWS Server Migration Service, AWS Database Migration Service, and other AWS services and partnering software tools (AppDynamics Application Intelligence Platform, BMC Discovery, ATAmotion Migration Module).
Free for all AWS customers, you only pay for the cost of the migration tools you use, and any resources being consumed on AWS.
The costs of application migration to the AWS cloud include:
- The migration team costs: $5,000 - $15,000 for a small application, $20,000 - $250,000 for a medium/large application. Lift-and-shift migration will be cheaper though less beneficial. The cost may be higher if deep re-coding is required or legacy techs are involved.
- AWS charges for the infrastructure.
- AWS charges for services.
Major AWS migration cost factors
- Scope of migration (several applications, one application, one/several app modules, etc.).
- Complexity of applications and their dependencies.
- The volume of data to transfer.
- Target app deployment option (AWS public cloud, Amazon VPC, hybrid).
- The life span of the application and its migration readiness.
- App availability requirements.
- The scope of infrastructure, code and configuration changes required.
- Code conversion, including manual efforts (when opting for a different programming language).
- The extent of migration automation and the cost of migration automation software licenses.
- Testing efforts.
Major post-migration cost factors
- AWS cloud infrastructure and services costs.
- Monthly/yearly support and maintenance costs for the migrated application and its infrastructure that base on:
- Required storage and compute resources.
- AWS services employed.
- Physical location of data centers (AWS Regions), and more.
- IT support team training.
SCIENCESOFT’S OFFERING FOR APP MIGRATION TO AWS
With 9 years of experience in cloud computing and 7 years of working with AWS-based infrastructures, ScienceSoft can help with:
AWS migration consulting
Our AWS migration consultants cover:
- Analyzing business needs behind migration, the application (application portfolio) to be migrated and the related infrastructure.
- Estimating ROI of AWS app migration (and modernization, if required) activities and TCO of the migrated apps.
- Planning an AWS app migration project.
- Designing a target AWS app architecture.
- Choosing the optimal set of AWS services (CI/CD tools, data storage, etc.).
- Advising on cost-effective management of migrated applications, and more.
AWS migration implementation
Our AWS migration team covers:
- AWS app migration (and modernization, if required) strategy.
- Automated application code analysis and conversion.
- (optional) Iterative app modernization, including legacy re-engineering and re-architecting.
- AWS app migration.
- Decommissioning of old application(s) or unnecessary software parts.
- Managed AWS cloud services to ensure availability, stability, security, cost optimization, and evolution of the migrated app(s).
Holding the Amazon Select Tier Consulting status, ScienceSoft is a reliable US-headquartered provider of AWS consulting and AWS migration services. For successful AWS migration, we advocate the cost-effective use of the AWS-based infrastructure and minimize business process disruption via maximum migration automation and gradual transition between stable states. As ISO 9001 and ISO 27001 certification holder, we rely on mature quality management and guarantee the cooperation doesn't pose any risks to the customers' data security.