Skip to content

Overview

In this self-paced exercise, you will learn how to configure and deploy an Amazon EKS cluster with Spot Instances using the controller. Spot instances are great options to use in order to reduce operating costs. On average, most spot instance types can reduce costs by over 70% compared to on-demand instances.

Important

Spot instances can be interupted, which could impact your running workloads. This is a rare occurance and normally has a frequency of interuption of under 5%. For additional information, check out AWS's Spot Instance Advisor


What Will You Do by Part

Part What will you do?
1 Provision an Amazon EKS Cluster with spot instances
2 Deprovision the EKS cluster

Architecture & Design

  • It is recommended to create a "dedicated managed node group" for system level resources while then using a managed node group with spot instances to run non-system level workloads.
  • This configuration allows system level resources to take advantage of the consistency of on-demand or reserved instances while optimizing workload cost with performance.

In This excercise, we will create an EKS cluster that contains two (2) managed node groups, one for system resources and the other with "spot instances" for workloads. A visual representation of this cluster design is shown below.

flowchart LR
  subgraph DATA[EKS Data Plane]
    direction TB
    subgraph NG1[System Node Group]
        direction RL
        i1[Rafay Operator]
    end
    subgraph NG2[Spot Node Groups]
        direction RL
        f1[Workloads]
    end
  end
  CP[EKS Control Plane] <-.-> DATA

Assumptions

  • You have access to an Amazon AWS account with privileges to create an IAM Role with the default Full IAM Policy to allow provisioning of resources on your behalf as part of the EKS cluster lifecycle.
  • You have downloaded the RCTL CLI
  • You have initialized the RCTL CLI

Note

The instructions describe the process using a combination of the RCTL CLI and the web console. The same steps can be performed using the REST APIs or a Terraform provider for automation.