Customer Stories / Healthcare / Indonesia
Optimizing Resource Use for 20% Improvement in Application Performance on AWS Graviton3–Based Instances with Halodoc
Learn how healthcare company Halodoc improved its application performance and lowered costs by migrating to AWS Graviton3–based instances.
Up to 19%
acceleration of response times
20%
improvement in application performance
Up to 50%
faster memory access
$3,600 saved
per month on compute costs
Up to 18%
fewer compute instances needed for the same workloads
Overview
Indonesia-based health technology company Halodoc provides online patient services to more than 20 million monthly active users. The company has been running its solution on Amazon Web Services (AWS) since 2016.
Halodoc manages its applications using Amazon Elastic Kubernetes Service (Amazon EKS), a managed service for running Kubernetes on AWS. The company saw an opportunity to further optimize performance and costs by migrating its Amazon EKS cluster to different AWS Graviton processors, which provide excellent price performance for cloud workloads. So Halodoc migrated to AWS Graviton3–based instances, accelerating response times for its applications and reducing compute costs.
Opportunity | Using AWS Graviton3–Based Instances to Optimize Compute Performance by 40% for Halodoc
Halodoc aims to improve and simplify access to healthcare and patient services in Indonesia. It connects patients with more than 22,000 doctors and more than 4,000 pharmacies to help them check lab results, buy medicine, update health information, and access more health services online.
In 2020, Halodoc began migrating its applications to AWS Graviton2–based instances on Amazon Elastic Compute Cloud (Amazon EC2), which offers secure and resizable compute capacity for virtually any workload. “We wanted to completely transform our workloads to reduce costs and the number of compute resources we used,” says Manivannan Chandrasekaran, director of engineering at Halodoc. By June 2023, Halodoc had migrated 99 percent of its compute workloads to AWS Graviton2–powered instances: Amazon EC2 C6g Instances, which offer high price performance for compute-intensive workloads running on Amazon EC2, and Amazon EC2 R6g Instances, which offer high price performance for memory-intensive workloads running on Amazon EC2. Thus, the company improved compute performance by 40 percent compared to x86-based instances.
Then, the AWS team recommended that Halodoc use AWS Graviton3–based instances to further improve performance and cost efficiency. Halodoc conducted a proof of concept to analyze in detail how it allocates specific compute limits and to fine-tune the memory use in AWS Graviton3–based instances. After 30 days of testing, the company observed significant benefits. “By migrating to AWS Graviton3–based instances, we further optimized compute resources and memory use and accelerated response times,” says Kailash Singh Adhikari, site reliability engineer at Halodoc. For example, in one workload, the response time reduced from 7.1 to 5.7 seconds. By making each API request faster, Halodoc has optimized both the overall application performance and resource costs by an average of 20 percent.
Halodoc’s site reliability engineering team presented these benefits and won support from the company’s leadership, so the team decided to go ahead with the migration. Even after reducing compute resource consumption by 20 percent and increasing CPU use from 50 percent with x86-based instances to 80 percent using AWS Graviton3–based instances, the company maintained the same throughput and response time for its applications. “The proof of concept helped us decide to migrate quickly, and we saw great improvements,” says Manivannan Chandrasekaran. The company completed the migration of its workloads to Graviton3–based instances in 1 week.
By migrating to AWS Graviton3–based instances, we further optimized compute resources and memory use and accelerated response times.”
Kailash Singh Adhikari
Site Reliability Engineer, Halodoc
Solution | Improving Application Response Times by up to 19% While Saving 3,600 Dollars per Month
Halodoc has countered the increasing demand for resources by optimizing memory and CPU for similar workloads to achieve better performance and up to 19 percent faster response times on AWS Graviton3–based instances. AWS Graviton3–based instances use DDR5 memory instead of DDR4, which also contributes to the performance improvements that Halodoc realized. “Using AWS Graviton3–based instances, we have 50 percent faster memory access,” says Manivannan Chandrasekaran.
The company did not have to make significant changes to its workflows or applications to achieve these benefits. “It’s very good for the customer experience when you can reduce your response time without making changes to your service code,” says Kailash. “It was a great achievement to migrate from AWS Graviton2–based instances to AWS Graviton3–based instances.”
Halodoc runs its applications with a microservice-based architecture on Kubernetes version 1.26 using Amazon EKS. The company also uses Karpenter, an open-source high-performance Kubernetes cluster automatic scaler. Halodoc has multiple APIs that are built for different verticals using Java and Go, and the company manages these and more than 150 microservices using Amazon EKS. As part of its serverless infrastructure, Halodoc also uses Amazon Simple Storage Service (Amazon S3), object storage built to retrieve virtually any amount of data from anywhere.
By migrating to the new AWS Graviton3–based instances, the company reduced the compute resources needed to run each microservice. “The moment we migrated from AWS Graviton2–based instances to AWS Graviton3–based instances, we drastically reduced the number of compute resources,” says Manivannan Chandrasekaran. On AWS Graviton3–based instances, the company achieves the same performance for an equal number of workloads using 18 percent fewer instances compared to when it was using AWS Graviton2–based instances.
The company realized all these improvements in a few months of using AWS Graviton3–based instances. As a result, it has onboarded new services with similar workloads without increasing its overhead costs or incremental compute resources. Halodoc is saving 3,600 dollars per month, and it’s investing those savings in the development of new services. The company has already launched several new services, including loyalty management features and identity card validation.
Halodoc uses AWS Regions—physical locations around the world where AWS clusters data centers—to run its infrastructure close to customers. The company uses the Asia Pacific (Singapore) Region, which supports the AWS Graviton3–based instances. Halodoc handles requests from its applications using Amazon CloudFront, which securely delivers content with low latency and high transfer speeds, so customers don’t experience delays while using Halodoc services. “We don’t see latency while using the Asia Pacific (Singapore) Region to access all the AWS features,” says Manivannan Chandrasekaran.
Outcome | Delivering an Excellent Customer Experience
Halodoc has positioned itself to continue growing and providing a great customer experience by using AWS. “It was amazing working with the AWS team,” says Manivannan Chandrasekaran. “We’ve been using AWS for more than 7 years, and we continue to get immense support from the AWS team.”
After the success of this migration, Halodoc plans to further increase the efficiency of its services by using the Asia Pacific (Jakarta) Region in Indonesia when the Region gains support for the AWS Graviton3–based instances. The company expects it to be a fast switch.
About Halodoc
Halodoc is a health technology company that aims to simplify access to healthcare by connecting millions of patients with licensed doctors, insurance, labs, and pharmacies in one mobile application. It has more than 20 million monthly active users.
AWS Services Used
Amazon S3
Amazon Simple Storage Service (Amazon S3) is an object storage service offering industry-leading scalability, data availability, security, and performance.
AWS Graviton Processor
AWS Graviton is a family of processors designed to deliver the best price performance for your cloud workloads running in Amazon Elastic Compute Cloud (Amazon EC2).
Learn more »
Amazon EKS
Amazon Elastic Kubernetes Service (Amazon EKS) is a managed Kubernetes service to run Kubernetes in the AWS cloud and on-premises data centers.
Learn more »
Amazon CloudFront
Amazon CloudFront is a content delivery network (CDN) service built for high performance, security, and developer convenience.
Learn more »
More Healthcare Customer Stories
Get Started
Organizations of all sizes across all industries are transforming their businesses and delivering on their missions every day using AWS. Contact our experts and start your own AWS journey today.