The Costs of Migrating Legacy Applications to the Cloud
There are various cost variables associated with maintaining legacy systems. In the past, these variables were beneficial due to the limited availability of readily configurable cloud services. However, nowadays it’s worth striking a balance between the costs of having an on-premise application and hiring cloud-ready services.
Some of the cost variables of maintaining a legacy application are:
- Facility and data warehouse costs: On-premise applications require the business owner to buy the necessary hardware and equipment to run a physical server. For instance, buying computers, hard drives, cooling systems, and software licenses. Additionally, renting physical space and hiring security professionals account for a significant portion of the cost.
- IT Staffing: It’s crucial to have specialized people to handle server administration, network configuration, monitoring, and technical support.
- Hardware Renewal: As time passes, hardware becomes obsolete. For instance, network switches may become non-compliant with the latest network security standards, or hard drives may be replaced by newer and faster technology. Therefore, the business owner of an on-premise application must have a plan to upgrade hardware every 3 to 5 years.
- Replication and backups: Some businesses demand high availability, fault tolerance, and durability for their services and data. Thus, replication and backup come into play to ensure the application and databases are replicated in different data centers. That essentially doubles the costs of the facility shown in the first item.
Additionally, it’s worth mentioning that all the costs above are fixed for a specific number of users and application requests. Hence, if more scale is required, the business owner may need to acquire additional hardware. In contrast, if the system handles the scale well, but the hardware capability is higher than needed, then the system can’t scale down. Therefore, making the business owner locked in with a server full of idle costs.
What are the Costs Related to Cloud Migration?
Now that the costs of maintaining legacy applications are clear, let’s focus on the costs of migrating legacy services to the cloud. Noticeably, running cloud applications is not free, nor is it cheap. However, the costs appear differently when looking at the bills.
The majority of the total migration cost to the cloud is related to the migration process itself, including planning, refactoring legacy services, and making applications compatible with the cloud. The second variable that increases the total cost is the monthly bills for renting infrastructure from cloud providers. Finally, there are additional costs associated with data migration, observability, monitoring, tools, and other related expenses.
A Strategy Plan for Cloud Migration Costs
One variable associated with the total cost of migrating legacy systems is hiring specialized personnel, such as Cloud Architects, to understand the current on-premise legacy architecture and develop a migration plan. Depending on the current project state, a plan can become overly complex, and a total refactoring to a cloud architecture might take years. Additionally, the yearly salary of a Cloud Architect in Europe can range from €60,000 to €120,000, according to Glassdoor.
Another option, instead of hiring people, is to contract consulting firms, such as Chudovo, to elaborate on the entire legacy application migration to the cloud. Services like this, provided by consulting firms, cost an average of $25 to $55 per hour, according to Clutch.
Legacy to Cloud Migration Development Costs
Along with the planning and architectural decision-making costs, migrations to the cloud need a team of developers to refactor the application code. This is necessary due to the differences between on-premise and cloud integrations in the code. Typically, developers use a custom in-house solution to connect the application’s code with the on-premise infrastructure, such as databases, file systems, and servers. On the other hand, cloud providers such as AWS, Azure, or GCP give a set of SDKs and APIs to connect the code with their infrastructure, which requires code migration.
One variable that contributes to the total cost equation is the developer’s pay rate. For instance, software engineers’ salaries in Europe can range from €30,000 to €90,000 yearly, according to Glassdoor. Similar services from consulting companies like Chudovo cost an average of $25 to $55 per hour. Therefore, the total cost with cloud migration development would be roughly the team size of developers working full-time on the project, multiplied by the pay rate of each developer. Noticeably, the total cost might vary depending on the region and project size.
Cloud Infrastructure Renting Costs
After completing architectural and code refactoring, we should address the monthly costs associated with renting infrastructure. Cloud providers, such as AWS, expose a range of services, including databases, application servers, serverless and asynchronous engines, artificial intelligence, and more. Each service has its billing model, depending on usage.
For instance, the NoSQL database service DynamoDB costs roughly $0.25 per million read requests and $1.25 per million write requests. Additionally, there is a storage cost of approximately $0.25 per GB per month. The total costs with DynamoDB depend mainly on the amount of data stored, the total number of requests, the type of data, the replication level, and service features.
To estimate cloud costs, cloud providers typically give a free-to-use estimation tool such as the AWS pricing calculator.
The data migration costs take a smaller portion of the complete legacy application migration to the cloud. However, it should also be taken into account when considering migrating architectures. Part of the data migration costs are mostly related to data transferring, consulting professionals, and business downtime costs.
Data transfer costs depend on the size of the dataset, the chosen cloud provider, and the type of data. For instance, according to the AWS DataSync service documentation, the most straightforward setup costs $0.015 per GB.
Consulting professionals can cost between $25 and $55 per hour, depending on the region, specialization, project complexity, dataset size, and other factors related to project execution.
Finally, downtimes are common during migrations. That means the business can become inoperative for a couple of minutes or even hours, depending on the nature of the migration. Hence, for each minute or hour not operating, the business incurs a revenue loss, which is also a cost. The total costs of downtime depend solely on the business’s profitability.
Other Cloud Hidden Costs
Other minor recurring costs arise when migrating to the cloud, including cloud provider management, observability and monitoring external tools, personnel training on cloud environments, backups, compliance and security tools, and best practices. These, summed together, are not the primary source of cloud migration costs. However, it’s worth keeping a keen eye on these variables during migration and maintenance of the system.
For instance, a poorly configured tool like loggers in cloud applications can go awry, as happened in a case study from Sincera. This is so common that it made cloud providers to write articles and documentation describing best practices for logging, such as this one from GCP.
Real-World Illustration of a Complete Cloud Migration Cost Estimation
One effective way to visualize costs is to estimate cloud migration costs specifically for the business aiming for a complete migration of its legacy applications. To illustrate this, let’s imagine a company with a product that has 50,000 active daily real users. Additionally, the company has seven software development teams to manage its services. Finally, all architectural patterns and data stores to efficiently run the product are considered in the account.
Below is an illustration of the potential monthly costs for the proposed scenario, assuming the company has its own development teams, as mentioned previously.
Category | Service | Estimated Monthly Cost (USD) | Notes |
Compute | EC2 (m5.large) Auto Scaling |
$3,024 $0 |
12 instances (2 per team) × $0.096/hour × 24 hours/day × 30 days. EC2 Pricing |
Storage | EBS (gp3)
S3 Standard |
$1,200
$230 |
10 volumes × 500 GB × $0.08/GB-month.
2.5 TB × $0.023/GB. S3 Pricing |
Databases | RDS (PostgreSQL)
DynamoDB |
$1,040
$1,200 |
5 instances × db.m5.large × $0.208/hour × 24 hours/day × 30 days. RDS Pricing
10 tables with moderate read/write capacity. DynamoDB Pricing |
Networking | NAT Gateway
Load Balancer (ALB) CloudFront |
$1,296 $22.50 $255 |
$0.045/hour × 24 hours/day × 30 days + 1 TB data × $0.045/GB. NAT Gateway Pricing
$0.025/hour × 30 days. Elastic Load Balancing Pricing 3 TB data transfer × $0.085/GB. CloudFront Pricing |
Security | AWS WAF AWS Shield |
$20
$0 |
$5 per ACL + $1 per rule × 15 rules. WAF Pricing
AWS Shield Standard is free. Shield Pricing |
Monitoring & Logging | CloudWatch | $1,500 | Logs, metrics, and dashboards for all services. CloudWatch Pricing |
Data Migration | AWS Application Migration Service
Data Transfer (Migration) |
$0
$0 |
Free for first 90 days per server. Application Migration Service Pricing
Assuming use of AWS Direct Connect or Snowball for large data transfers; costs vary. Data Transfer Pricing |
Support & Management | AWS Support (Business) | $1,500 | 10% of monthly AWS usage for first $10K. Support Pricing |
Total Estimated Monthly Cost | $11,287.50 |
If the company doesn’t have its own development teams, the costs of planning and refactoring should also be taken into account. We can pick Chudovo as the company that will perform the legacy system migration, since they hire the top 1% of talent to properly design and implement a customized legacy migration to the cloud. According to Clutch, a project could cost approximately $10,000 to $49,999. Considering a value in the middle of the range for mid-sized projects like the one described earlier, we can use approximately $30,000 as the total cost of execution.
In contrast, we can also estimate using working hours and hourly rates. For instance, considering the $25 – $49 per hour rate and a project that takes six months with 22 working days each and a work schedule of 8 hour per day, we would have 22 * 6 months * 8h / d * $30 = $ 31.680 as the total cost, considering $ 30 per hour rate.
Below are the digested costs of the entire migration, considering planning, development, and cloud provider costs:
Total Estimated Monthly Cost | $11,287.50 |
Total Estimated Using Per-Hour Pay Rate Model in 6 months | $11,287.50 + $ 5,280 = $ 16,567.50 monthly |
Total Estimated Using a Fixed Pay Rate Model and Unlimited Deadline | $30,000 right away + $11,287.50 monthly |
How to Reduce Costs in Migrations from Legacy to Cloud
As mentioned in previous sections, cloud computing migration costs primarily stem from planning and developing the migration, as well as renting infrastructure from cloud providers. This section shows some methods to mitigate these costs.
Firstly, to avoid high costs associated with legacy architecture and code migration, it’s essential to hire a reliable, experienced, and fair-cost consultancy firm or full-time employees. Hence, it’s a matter of having a talent pool capable of handling such migrations without incurring the entire company’s budget. For instance, companies such as Chudovo have successfully delivered legacy-to-cloud migration projects to clients across different industries, including logistics, healthcare, finance, etc., which makes them a reliable partner.
Secondly, high costs associated with cloud infrastructure can result from over-provisioning resources, following poor practices, and failing to constantly monitor cloud costs.
Over-provisioning can be defined as renting more resources than needed. For instance, businesses with 500 active users might consider renting a database that can handle more than 5,000 users. In that case, the business is paying for something that it doesn’t use. Hence, to avoid over-provisioning, it’s necessary to plan the architecture accordingly based on the actual usage. Additionally, using cloud monitoring tools such as CloudZero, Apptio Cloudability, and Harness helps keep track of cloud costs through real-time dashboards and monitors that alert to anomalies.
By following poor practices, businesses might also create unnecessary cloud costs. For instance, the poor use of log statements in the code can lead to increased costs with AWS CloudWatch. Additionally, failing to configure the caching system of the AWS CloudFront service properly can also lead to significant cost increases. Finally, even poorly configured Elastic Block Storage components within the AWS EC2 service can incur high monthly costs due to uncontrolled I/O operations.
The purpose of mentioning these costs related to over-provisioning and poor infrastructure configuration is to highlight the importance of reading the service’s documentation and hiring specialized personnel to architect and develop the legacy app migration. Additionally, cloud providers often offer savings plans that provide discounts for customized workflows. For instance, AWS has discounts for custom usage of AWS Lambda and AWS EC2 services.