Skip to content

VirtualCluster

The VirtualCluster resource allows you to create and manage AWS EMRContainers VirtualClusters for running serverless Apache Spark applications. This resource facilitates the management of your containerized EMR workloads.

Minimal Example

Create a basic VirtualCluster with required properties and one optional security configuration.

ts
import AWS from "alchemy/aws/control";

const virtualCluster = await AWS.EMRContainers.VirtualCluster("myVirtualCluster", {
  name: "MyVirtualCluster",
  containerProvider: {
    type: "EKS",
    id: "myEKSCluster"
  },
  securityConfigurationId: "mySecurityConfigId" // Optional
});

Advanced Configuration

Configure a VirtualCluster with tags for better resource management and identification.

ts
const advancedVirtualCluster = await AWS.EMRContainers.VirtualCluster("advancedVirtualCluster", {
  name: "AdvancedVirtualCluster",
  containerProvider: {
    type: "EKS",
    id: "myAdvancedEKSCluster"
  },
  securityConfigurationId: "myAdvancedSecurityConfigId", // Optional
  tags: [
    {
      key: "Environment",
      value: "Production"
    },
    {
      key: "Department",
      value: "DataScience"
    }
  ]
});

Using Existing Resource

This example demonstrates how to adopt an existing VirtualCluster instead of failing if it already exists.

ts
const existingVirtualCluster = await AWS.EMRContainers.VirtualCluster("existingVirtualCluster", {
  name: "ExistingVirtualCluster",
  containerProvider: {
    type: "EKS",
    id: "myExistingEKSCluster"
  },
  adopt: true // Enables adopting existing resources
});