Deploy Apache Cassandra 4.0 on Kubernetes and AWS

Author: Raks Krishna

DataStax
Building Real-World, Real-Time AI

--

This post showcases our most recent listing on the AWS Marketplace: an operator for Apache Cassandra® 4.0 that offers developers a cloud-native, open-source stack without the operational complexity.

Cassandra is a reliable NoSQL distributed database that currently backs many global, mission-critical applications at companies like Netflix, Apple, and (of course) DataStax. With the release of Cassandra 4.0, the bar has been pushed even higher in their mission to guarantee correct, good-quality data in every app.

The problem is that configuring, deploying, and maintaining Cassandra can be overly complex and tedious, whether it’s on bare-metal hosts, virtual machines, or within container platforms. In any of these cases, teams would benefit greatly if they could simply automate the boring operational tasks and be reassured that all nodes are configured properly.

With our latest listing on AWS Marketplace: Apache Cassandra 4 on Kubernetes by DataStax, we want to help every developer install Cassandra 4.0 without getting bogged down by all the installation and plumbing. For this, we’re leveraging K8ssandra, a K8s operator that brings together a complete operational data platform including developer APIs, monitoring, and backups.

What’s K8ssandra?

K8ssandra (pronounced like“Kate” + “Sandra”) is an open-source project that provides developers with an ecosystem of tools designed to simplify and streamline Cassandra within Kubernetes (K8s).

When you install K8ssandra, you get a handy collection of cloud-native components that take care of the manual work. These pre-configured components include:

With these components installed and tied together, you can depend on this cloud-native framework for Cassandra to automatically handle observability, reliability, and support high availability and disaster recovery.

Now that you have the background, let’s take a quick look at how you can install it on K8s and AWS.

With these components installed and tied together, you can depend on this cloud-native framework for Cassandra to automatically handle observability, reliability, and support high availability and disaster recovery.

Now that you have the background, let’s take a quick look at how you can install it on K8s and AWS.

Installation instructions

For context, the CloudFormation templates follow best practice architecture and look something like this:

Figure 1: Amazon EKS architecture.

You’ll notice that we picked a region with three availability zones. We have three public subnets, three private subnets, and the three NAT gateways within each public subnet as well as a Bastion host.

There’s also the option to deploy K8ssandra on your existing VPC by providing the subnet details. This entire infrastructure, along with the K8ssandra nodes, can be deployed by simply selecting a few parameters.

In brief, the CloudFormation templates in this AWS Marketplace listing deploy the following:

  • A highly available architecture that spans three Availability Zones.*
  • A virtual private cloud (VPC) configured with public and private subnets according to AWS best practices, providing you with your own virtual network on AWS.*
  • Managed NAT gateways (in the public subnets) to allow outbound internet access for resources in the private subnets.*
  • A Linux bastion host (in one public subnet) in an Auto Scaling group to allow inbound Secure Shell (SSH) access to Amazon Elastic Compute Cloud (Amazon EC2) instances in private subnets. The bastion host is also configured with the Kubernetes kubectl command-line interface for managing the Kubernetes cluster.
  • An Amazon EKS cluster, which provides the Kubernetes control plane.
  • In the private subnets, a group of Kubernetes nodes.

Note: The tasks marked with asterisks are skipped by the template that deploys the Quick Start into an existing VPC, prompting you for your existing VPC configuration.

Now, we’ll walk you through getting it all up and running.

1. Subscribe to the software on AWS Marketplace

First, go to the Apache Cassandra 4 on Kubernetes by DataStax listing on AWS Marketplace, and click “Continue to Subscribe”.

Figure 2: Subscribe to software.

This will lead you to the terms and conditions page, after which you’ll land on the configuration page.

2. Configure and launch

Here you can Launch CloudFormation Stack to deploy K8ssandra in a region of your choice. For the software version, stick to 1.3.0, which is the current K8ssandra version available in this listing.

Figure 3: Configuration page.

Next, you’ll see the launch page where you can simply click to deploy the software.

Figure 4: Launch page.

3. Specify stack details

Now it’s time to configure the parameters of your stack.

Figure 5: Parameters page.

Creating the stack will take around 30 minutes. Once it’s done, you can check the output tab of the root stack for details about the resources.

Note: For a deeper dive into the details of installing K8ssandra, check the K8ssandra docs.

What’s next?

We have a few exciting plans in the works, but most notably, we’ll be making K8ssandra available on Amazon EKS Anywhere very soon. Keep an eye on our Medium blog and Twitter for updates.

In the meantime, go ahead and take K8ssandra for a spin on AWS and K8s. If you get stuck or have any questions about the installation, jump into the K8ssandra forum or the K8ssandra Community Discord channel. There’s always someone ready to help.

Follow DataStax on Medium for exclusive posts on all things Cassandra, streaming, Kubernetes, and more. To join the conversation with developers from around the world, follow DataStaxDevs on Twitter.

Resources

  1. AWS Marketplace: Apache Cassandra 4 on Kubernetes by DataStax
  2. About K8ssandra — Apache Cassandra® on Kubernetes
  3. Why K8ssandra?
  4. Get Started with K8ssandra (in 10 minutes)
  5. K8ssandra Community Support and Docs
  6. Workshops | Datastax

--

--

DataStax
Building Real-World, Real-Time AI

DataStax provides the real-time vector data tools that generative AI apps need, with seamless integration with developers' stacks of choice.