Skip to content
GitHubXDiscord

ComputeEnvironment

The ComputeEnvironment resource allows you to manage AWS Batch ComputeEnvironments to efficiently run batch jobs on AWS. This resource provides a way to configure the environment settings that determine how AWS Batch will manage compute resources.

Create a basic ComputeEnvironment with required properties and one optional property.

import AWS from "alchemy/aws/control";
const basicComputeEnvironment = await AWS.Batch.ComputeEnvironment("basicComputeEnv", {
Type: "MANAGED",
ServiceRole: "arn:aws:iam::123456789012:role/AWSBatchServiceRole",
ComputeEnvironmentName: "BasicComputeEnvironment"
});

Configure a ComputeEnvironment with additional settings for enhanced resource management.

const advancedComputeEnvironment = await AWS.Batch.ComputeEnvironment("advancedComputeEnv", {
Type: "MANAGED",
ServiceRole: "arn:aws:iam::123456789012:role/AWSBatchServiceRole",
ComputeEnvironmentName: "AdvancedComputeEnvironment",
UnmanagedvCpus: 4,
Tags: {
Project: "BatchProcessing",
Environment: "Production"
},
UpdatePolicy: {
Type: "MANAGED",
Update: {
Timeout: 10,
RetryAttempts: 2
}
}
});

Create a ComputeEnvironment that is configured for use with Amazon EKS.

const eksComputeEnvironment = await AWS.Batch.ComputeEnvironment("eksComputeEnv", {
Type: "EKS",
ServiceRole: "arn:aws:iam::123456789012:role/AWSBatchServiceRole",
EksConfiguration: {
KubernetesNamespace: "batch-jobs",
ClusterName: "my-eks-cluster"
},
ComputeEnvironmentName: "EKSComputeEnvironment"
});

Define a ComputeEnvironment with specific compute resources, including instance types and desired vCPUs.

const resourcesComputeEnvironment = await AWS.Batch.ComputeEnvironment("resourcesComputeEnv", {
Type: "MANAGED",
ServiceRole: "arn:aws:iam::123456789012:role/AWSBatchServiceRole",
ComputeEnvironmentName: "ResourcesComputeEnvironment",
ComputeResources: {
Type: "EC2",
MinvCpus: 0,
MaxvCpus: 16,
DesiredvCpus: 4,
InstanceTypes: ["optimal"],
Subnets: ["subnet-12345678", "subnet-87654321"],
SecurityGroupIds: ["sg-0123456789abcdef0"],
AllocationStrategy: "BEST_FIT_PROGRESSIVE"
}
});