Leveraging EC2 tagging for continuous optimization of containerized workloads - Spot.io

Leveraging EC2 tagging for continuous optimization of containerized workloads

Ocean by Spot delivers a serverless container experience by managing the underlying cloud  infrastructure. It automates the scale up/down and management of spot instances, reserved capacity and on-demand instances (as needed) within a cluster. Ocean accomplishes this with a fundamental construct called Launch Specification. These specifications allow our customers the flexibility to configure multiple infrastructure configurations to support different workload types tailored to their application stacks. Additionally, teams use these as a way to segment their applications to specific worker node pools and physically ensure a separation of concerns.   

In a similar vein, AWS tagging allows the logical organization and management of resources as you see fit. This is made possible by the ability to explicitly define and attach metadata to the AWS resources.

You now have the ability to configure AWS tags for Kubernetes (EKS, Kops, Kubeadm, KubeSpray) and ECS users via Ocean Launch Specifications. User configured Tags are coupled with built-in Ocean Tags such as Launch Specification Name, Identifier (ID) and applied automatically to EC2 instances at resource creation.  

This allows for granular control over your EC2 instance tags. It simplifies the root cause analysis journey by making debugging easier as each instance can now be directly tied back to its parent Launch Specification. At the same time, each product team can now view all their active instances using these tags to identify:

  • How effectively are they utilizing the underlying infrastructure?
  • How much spare capacity is there to scale up/down at any given time? 
  • Launch Specification with configuration errors leading to misbehaving instances   

Kops users can rest assured that any existing cloudLabels will be automatically imported during Ocean cluster creation as Tags in the respective Launch Specification and applied automatically.   

“EC2 tags per Launch Spec have enabled TuneIn to better track and monitor per-launch spec metrics like node counts, resource utilization, errors, and more using our preferred tools like AWS CloudWatch and Datadog. This was critical infrastructure visibility to us that enables our SRE and Development teams to more quickly track down issues in our Kubernetes clusters.” Ryan White, Senior Director of Engineering Operations at TuneIn  

As of today, this capability is available via the Ocean Launch Specification Create API

{
    "launchSpec": {
        "oceanId": "o-123",
        "name": "specialty.nodes.spotk8s.com",
        "imageId": "ami-ID",
        "userData": "dsa89d7uosduxq98sau9s8aux9s8aux09q0qu09axsuix0s9qas09xz",
        ...	
        "tags": [
           {
                "tagKey": "Creator",
                "tagValue": "John Doe"
            },
           {
                "tagKey": "k8s.io/cluster-autoscaler/node-template/label/kops.k8s.io/instancegroup",
                "tagValue": "nodes"
            },
           {
                "tagKey": "k8s.io/role/node",
                "tagValue": "1"
            },
           {
                "tagKey": "KubernetesCluster",
                "tagValue": "from2.ek8s.com"
            },
           {
                "tagKey": "kops.k8s.io/instancegroup",
                "tagValue": "nodes"
            }
        ]
    }
}

Terraform support will be available shortly via the Terraform Spot provider.

Read more here.