AWS Case Study: Nimbus Health
Nimbus Health, a Seattle-based startup, helps doctors and hospitals save money by enabling healthcare providers to share medical records with patients in an easy, online, and secure fashion. While the healthcare industry has been slow in transitioning from paper to electronic medical records, Nimbus’s transition to the cloud has been anything but slow. By using Amazon Web Services (AWS), Nimbus Health has been gaining the benefits of scale, flexibility, and cost.
Nimbus Health’s flagship product is Breeze Medical System (Breeze), a fully HIPAA compliant Software-as-a-Service (SaaS) solution. In order to adhere to HIPAA compliance, an application’s security must enable the sharing of medical records between authorized users only. In the past, Nimbus Health had deployed their SaaS application using a few dedicated hosting providers, none of which were able to offer the security, flexibility, and reliability Nimbus Health required. When asked what criteria Nimbus used to select AWS, they explain:
Security: AWS provides an excellent foundation for securing sensitive data like patient records. Amazon Elastic Compute Cloud (Amazon EC2) virtual machines cannot be accessed by anyone but the highest level of Nimbus Health employees. In addition, the segregated, encrypted data store in Amazon S3 and AWS’ exemplary security credentials allowed Nimbus Health and its users to gain confidence in hosting their data in the AWS cloud.
Flexibility & Cost: Compared to physical machines, managing AWS virtual machines is significantly more efficient and cost effective. Replicating machines, adding and removing processing power, and taking snap-shots are all much easier with AWS than with any other hosting provider that Nimbus Health had previously utilized.
Today Nimbus Health uses AWS for application hosting, large scale storage, and load balancing needs. The latest version of Breeze leverages the AWS Auto Scaling functionality to automatically scale up additional servers during times of heavy load. As records come in for processing, Amazon CloudWatch monitors the performance of the processing servers and once a certain CPU threshold is exceeded, more servers are added to each job. These new machines are configured to automatically jump in and start lending a hand in the processing. When all of the charts have been processed, the additional machines are terminated and the system goes back to its normal state (see Architecture Diagram March 2010).
In their move to AWS, Nimbus Health has learned valuable lessons along the way. Justin Wilcox, CTO of Nimbus Health says, “Working with virtual machines is very different, and very liberating, compared to physical machines. You simply have more options available. I would encourage everyone to take the same approach with their infrastructure that they do with their software – iterate, iterate, iterate.” By doing several iterations, Wilcox says that users don’t necessarily have to re-bundle Amazon Machine Images (AMIs) every time changes are made. Instead, he recommends building a way for auto-scaled machines to “auto-update” during the provisioning process.
A good example of this best practice is highlighted by the way Wilcox and his team have deployed their own application servers. Each server has a simple batch file that downloads a compressed file with the latest processing bits, deploys them, and starts the appropriate services. The flexibility of this approach enables users to employ such best practices easily on AWS, which in turn save time and unnecessary headaches.
AWS helps Nimbus Health offer secure, low cost remote processing of, and access to, medical records online. Wilcox concludes by saying, “Obviously, the best part of this system is that we don’t do anything. The system automatically re-sizes itself based on load which means we can process large batches of records at any moment, without having to pay for idling high-end servers 24/7. Ah, the power of the cloud.”
Discover more at http://www.NimbusHealth.com
and at http://blog.NimbusHealth.com