Planning an Amazon EC2 cluster 

Important information for deploying a production Cassandra or DataStax Enterprise cluster on Amazon EC2.

Before planning an Amazon EC2 cluster, read Amazon EC2 - Virtual Server Hosting.

DataStax AMI deployments 

DataStax no longer hosts the DataStax ComboAMI. You can install DataStax Enterprise in two ways:
  • Create your instances using an AMI for a supported platform and from a trusted source. Then use the appropriate install method for your platform.
  • Use the Lifecycle Manager in OpsCenter to easily provision a DataStax Enterprise cluster for versions 4.7 and later:
    1. Create your instances using an AMI for a supported platform and from a trusted source.
    2. Use the Lifecycle Manager to provision and configure your cluster.

Use AMIs from trusted sources 

Use only AMIs for supported platforms and from a trusted source. Random AMIs pose a security risk and may perform slower than expected due to the way the EC2 install is configured. The following are examples of trusted AMIs:

EC2 deployments for later versions of DataStax Enterprise and Apache Cassandra or multiple regions/availability zones 

For these deployments use any of the DataStax Enterprise or Cassandra supported platforms and install on each node:

It is best practice to use the same platform on all nodes. If your cluster was instantiated using the DataStax AMI, use Ubuntu for the additional nodes. Configure the cluster as a multiple datacenter cluster using the Ec2MultiRegionSnitch.

Production clusters on EC2 

For production clusters on EC2, use these guidelines for choosing the instance types:

  • Development and light production: m3.large
  • Moderate production: m3.xlarge
  • SSD production with light data: c3.2xlarge
  • Largest heavy production: m3.2xlarge (PV) or i2.2xlarge (HVM)
  • Micro, small, and medium types are not supported.

EBS volumes recommended for production 

SSD-backed general purpose volumes (GP2) or provisioned IOPS volumes (PIOPS) are suitable for production workloads. These volume types are designed to deliver consistent, low latency performance:
GP2 PIOPS
  • The best choice for most workloads and have the advantage of guaranteeing 10,000 IOPS when volumes larger than 3.5TB are attached to instances.
  • Designed to deliver single-digit millisecond latencies.
  • Designed to deliver the provisioned performance 99.0% of the time.
  • Designed to deliver single-digit millisecond latencies.
  • Designed to deliver the provisioned performance 99.9% of the time.

EBS magnetic volumes not recommended 

EBS magnetic volumes are not recommended for Cassandra data storage volumes for the following reasons:

  • EBS magnetic volumes contend directly for network throughput with standard packets. This contention means that EBS throughput is likely to fail when a network link is saturated.
  • EBS magnetic volumes have unreliable performance. I/O performance can be exceptionally slow, causing the system to back load reads and writes until the entire cluster becomes unresponsive.
  • Adding capacity by increasing the number of EBS volumes per host does not scale. You can easily surpass the ability of the system to keep effective buffer caches and concurrently serve requests for all of the data it is responsible for managing.
Note: Use only ephemeral instance-store or the recommended EBS volume types for Cassandra data storage.

For more information and graphs related to ephemeral versus EBS performance, see Systematic Look at EC2 I/O.

Disk Performance Optimization 

To ensure high disk performance to mounted drives, it is recommended that you pre-warm your drives by writing once to every drive location before production use. Depending on EC2 conditions, you can get moderate to enormous increases in throughput. See Optimizing Disk Performance in the Amazon Elastic Compute Cloud Documentation.

Other resources for Amazon EC2 deployments

Storage recommendations 

Cassandra supports JBOD (just a bunch of disks). JBOD excels at tolerating partial failures in a disk array. Configure using the disk_failure_policy in the cassandra.yaml file. Addition information is available in the Handling Disk Failures In Cassandra 1.2 blog and Recovering using JBOD.
Note: Cassandra JBOD support allows you to use standard disks. However, RAID0 may provide better throughput because it splits every block to be on another device. This means that writes are written in parallel fashion instead of written serially on disk.
disk_failure_policy
Apache Cassandra version Corresponding DataStax Enterprise versions
2.1 4.7, 4.8
3.0 Linux 5.0
3.x Linux  
3.0 Windows  
3.x Windows  
Recovering using JBOD
Apache Cassandra version Corresponding DataStax Enterprise versions
2.1 4.7, 4.8
3.0 Linux 5.0
3.x Linux  
3.0 Windows  
3.x Windows  
Ec2MultiRegionSnitch
Apache Cassandra version Corresponding DataStax Enterprise versions
2.1 4.7, 4.8
3.0 Linux 5.0
3.x Linux  
3.0 Windows  
3.x Windows  
Multiple datacenter cluster
Apache Cassandra DataStax Enterprise
2.1 4.7
3.0 Linux 4.8
3.x Linux 5.0
3.0 Windows  
3.x Windows  
Installation
Apache Cassandra version DataStax Enterprise
2.1 4.7
3.0 Linux 4.8
3.x Linux 5.0
3.0 Windows  
3.x Windows