How Onix reduced the cost of project infrastructure using AWS resources
Cost optimization of the project infrastructure
Challenges
Our client had a private task management system with access by invite. The infrastructure consisted of four sites:
01
Info site on WordPress
02
Test info site on WordPress
03
Main web application
04
Test server for the main web application
When the client contacted Onix, the combined infrastructure was consuming AWS resources at a monthly cost of $686. The application had just over 2,000 registered users.
[ Product scope ]
The Onix team needed to:
Investigate the situation and discover the root causes of the issue
Identify and gather requirements to meet the client’s objectives
Set up effective management and transparent development processes
Build new project infrastructure to optimize cost
Ensure high infrastructure performance and proper functioning
Looking for a reliable DevOps services company?
[ Solutions we provide ]
Firstly, Onix’s experts investigated the causes for these high expenses.
AWS offers great internal tools to this end: AWS Cost Explorer, AWS Budget, and AWS Cost Anomaly Detection. We used all of them.
Our team came to the conclusion
That the main reasons for this high cost were a flawed architecture and the misallocation of resources.
We then prepared a detailed document explaining the issue and suggesting ways to improve the situation. After the client agreed to the plan, we started to work on updates to the infrastructure while avoiding significant downtime. The client specifically requested that users should not be affected by any tampering with the environment.
A team of highly-skilled Onix specialists followed a sophisticated process to build new project infrastructure and reduce AWS costs. We use the Agile methodology emphasizing flexibility, speed, and quality during the development process, which facilitates ongoing improvements while minimizing issues and delays.
Initially, four separate RDS instances were used for each of the databases. Each site/app having its own large instance entailed expenses.
To reduce the consumption of AWS resources, we made the following changes to the infrastructure:
All applications were
dockerized
Dockerizing the application enabled us to reduce resource consumption. Docker containers are lightweight and require less resources than traditional virtual machines. This means more containers can be run on a single server, maximizing the available resources and reducing costs.
Database on RDS only
for the main app
RDS is a remote DBMS that enhances fault tolerance. Previously, each application had its own RDS, and the client had to pay for each one.
If different databases are created in one RDS and connected to different applications, one RDS will be serving different applications, but the client will pay only for one.
We placed two sites on WordPress, staging and production, on one t2.small instance.
It was sufficient for the current traffic. We set up servers types that would accommodate the application’s current operation with a small capacity margin, instead of servers with a huge capacity that would not actually be fully utilized.
Chose optimal database
instance types for the app
The trick is to always have a resource margin while also avoiding the use of excessively large servers.
Setting up backup
Backups helped reduce downtime associated with system failures or disasters. A reliable backup system enabled us to recover data and systems quickly, minimizing the impact on operations. Establishing backups is critical for ensuring data loss prevention, business continuity, regulatory compliance, and cybersecurity.
The new project infrastructure built by the Onix DevOps team
Core technology stack we used
AWS Cost Explorer
Visualize, understand, and manage AWS costs and usage over time
AWS Budgets
AWS Budgets lets you set custom cost and usage budgets that alert you when your budget thresholds are exceeded
AWS Budget Reports
Preparing diverse reports regarding expenses, forecasts, etc.
AWS Cost Anomaly Detection
Automated cost anomaly detection and root cause analysis
Results: the Onix team helped our client significantly reduce AWS costs by building new project infrastructure.
By dockerizing apps, we ensured an isolated environment for each solution, precluding other applications from interfering with its resources. This results in more efficient resource usage and better performance.
Moreover, Docker containers are much lighter than traditional virtual machines as they share a single host operating system. This enables more containers to be run on a single server, maximizing the available resources.
Below you can compare the costs before and after implementing our suggestions for the project infrastructure optimization.
See other related projects
USA, Portland
DevOps
Using Kubernetes to improve a growing
online magazine's resilience
& performance
Deploying WordPress On Kubernetes utilizing gitlab
Using Kubernetes to improve a growing online magazine's resilience & performance
Services provided:
Our DevOps services improved site's infrastructure, optimizing resource management, scalability & UX, cutting costs for efficient WordPress operation
DevOps
Enhancing server performance
and flexibility through infrastructure
migration
Migration from heroku to AWS quickly and smoothly
Enhancing server performance and flexibility through infrastructure migration
Services provided:
Onix provided Webflow minimalistic website design and development services, including concept creation, user-centric design, and content integration
USA
Healthcare
We created an intuitive app for
physician liaison activity
management & tracking
Salesforce tracking app to streamline operations
We created an intuitive app for physician liaison activity management & tracking
Services provided:
Onix crafted a user-friendly app, simplifying activity and documentation management for personnel, optimizing processes, and enhancing expense tracking