Here at Ondat, we’re keen to ensure that it’s as easy as possible for engineers to create and manage Kubernetes clusters to drive their data use cases. We’ve noted the continuing trend towards shift-left and automation in the data space, just as it has been in compute, security, and all other areas of infrastructure. That’s why we were excited to work with Amazon Web Services to create a Blueprint you can leverage to deploy a full, Ondat-enabled Amazon EKS cluster with one command using Terraform!
Amazon EKS Blueprints enable engineers to save time and effort in creating EKS clusters by providing declarative templates. These templates can be used to quickly and easily drive the creation of a full EKS cluster with various configurations and plugin options. They are also extensible, which allows you to create anything from ephemeral, 'one-off' test clusters used for automation to advanced, highly customized and long-lived production architectures. Amazon EKS Blueprints take care of the boilerplate and do the heavy lifting so you can focus on what's unique to your use case.
Ondat makes the perfect match for EKS, resolving many of the engineering teams' issues with managing their data. For instance:
- Do you want to use the same application manifests to deploy on any cloud platform or on-premises, regardless of the underlying infrastructure?
- Are you worried about downtime in an area zone bringing down your application?
- Are you already running several large EFS/RDS topologies, costs are spiraling out of control and you're looking at your in-house team (who are perfectly capable of running a database operator) for an alternative?
- Maybe you're running some massive Cassandra clusters and want to take advantage of the performance benefits of AWS local node NVMe storage while preserving high availability at the application and storage levels?
Ondat enables all these use cases and more, by providing metal-equivalent performance, differential replication, fast failover, encryption and partition tolerance above and beyond the current on-cloud and on-prem offerings. On top of this, the entire Ondat stack is implemented using upstream Linux and Kubernetes, so you won't be left versions behind when critical vulnerabilities arise.
Ondat is free for up to 3 nodes with 1TiB total disk space, including replication and encryption. Our advanced package comprises support, larger storage capacity and node allowance, and RWX (read-write-many) access.
The Ondat AWS Blueprint contains a recipe to deploy the following components:
- A VPC with private and public subnets, an attached internet gateway and a NAT gateway.
- An EKS cluster with 3 Ondat-enabled, single-node managed node groups.
- Each node has two stateful volumes associated with it, one for Ondat node management and the other for data.
- An etcd cluster with three single-node auto-scaling groups, an NLB for high availability and associated Lambda function, and private DNS zone.
- Each node has a single stateful volume for data attached.
Instance and volume counts and sizes are all configurable in the blueprint code before you deploy. Take note – since this deploys real AWS resources, your choices can have costly ramifications!
A ’Getting Started’ guide can be found in the blueprint repository at github.com/ondat/terraform-eksblueprints-ondat-addon in the ‘getting-started’ blueprint. In short, here’s what the process involves:
- Install the Terraform CLI, the AWS CLI and kubectl
- Configure your local environment for AWS access
- Clone down the terraform-eksblueprints-ondat-addon repository and create a copy of the contents of blueprints/getting-started, ideally in your own repository
- Make changes to the Terraform file to fit your use case
- Run terraform apply to generate the infrastructure
The command takes approximately 15-30 minutes to run, depending on your connection speed. After the command is complete, you will have a fully functional Amazon EKS cluster running Ondat! This configuration can be used as a basis for multiple environments in separate AWS accounts, from development through to production. We'd suggest combining an automated CI/CD process with testing and code review workflows to ensure that infrastructure and platform changes can be made quickly, regularly and easily.
The first port of call in a new cluster is licensing – make sure to use the Ondat portal to provision a fully-featured trial or forever free license. Otherwise, total storage space will be capped at 50GiB by default for unlicensed clusters. You can find a step-by-step guide to licensing in our documentation. At the time of writing, we’re working on a system to make it easier to automate – do keep an eye on our documentation and blog for updates.
Once licensing is complete and the cluster is fully activated, the next step is to continue with our self-evaluation process. This will take you through benchmarking your storage and establishing some baselines for performance. Ondat is entirely Kubernetes compliant and uses the Container Storage Interface (CSI), so it will be capable of driving any application.
We’re continuing to work on EKS/Ondat integration and we’d very much appreciate your perspectives, feedback, and questions. Be sure to reach out to us through our public Slack, via email at email@example.com, or through the live chat function on our website for any questions, comments, or opinions. We’d love to hear from you!