ComputeNodeGroup
The ComputeNodeGroup resource allows you to manage AWS PCS ComputeNodeGroups for your computing needs, enabling you to configure clusters of compute nodes effectively.
Minimal Example
Section titled “Minimal Example”Create a basic ComputeNodeGroup with the required properties and a couple of optional settings.
import AWS from "alchemy/aws/control";
const computeNodeGroup = await AWS.PCS.ComputeNodeGroup("basicComputeNodeGroup", { ClusterId: "pcs-cluster-abc123", ScalingConfiguration: { DesiredSize: 2, MinSize: 1, MaxSize: 5 }, InstanceConfigs: [ { InstanceType: "c5.large", ImageId: "ami-0abcd1234efgh5678" } ], SubnetIds: ["10.0.1.0/24", "10.0.2.0/24"], IamInstanceProfileArn: "arn:aws:iam::123456789012:instance-profile/MyInstanceProfile"});
Advanced Configuration
Section titled “Advanced Configuration”Configure a ComputeNodeGroup with additional settings such as spot options and custom launch template.
const advancedComputeNodeGroup = await AWS.PCS.ComputeNodeGroup("advancedComputeNodeGroup", { ClusterId: "pcs-cluster-xyz789", SpotOptions: { AllocationStrategy: "lowest-price", MaxPrice: "0.05" }, ScalingConfiguration: { DesiredSize: 3, MinSize: 2, MaxSize: 6 }, InstanceConfigs: [ { InstanceType: "c5.2xlarge", ImageId: "ami-0abcd1234efgh5678" } ], CustomLaunchTemplate: { LaunchTemplateId: "lt-0abcdef1234567890", Version: "$Latest" }, SubnetIds: ["10.0.3.0/24", "10.0.4.0/24"], IamInstanceProfileArn: "arn:aws:iam::123456789012:instance-profile/MyInstanceProfile"});
Tagging and Resource Management
Section titled “Tagging and Resource Management”Create a ComputeNodeGroup with tags for better resource management and identification.
const taggedComputeNodeGroup = await AWS.PCS.ComputeNodeGroup("taggedComputeNodeGroup", { ClusterId: "pcs-cluster-tagged123", ScalingConfiguration: { DesiredSize: 4, MinSize: 2, MaxSize: 8 }, InstanceConfigs: [ { InstanceType: "m5.large", ImageId: "ami-0abcd1234efgh5678" } ], SubnetIds: ["10.0.5.0/24", "10.0.6.0/24"], IamInstanceProfileArn: "arn:aws:iam::123456789012:instance-profile/MyInstanceProfile", Tags: { Environment: "Production", Team: "DataScience" }});
Adoption of Existing Resources
Section titled “Adoption of Existing Resources”Adopt an existing ComputeNodeGroup resource instead of failing if it already exists.
const existingComputeNodeGroup = await AWS.PCS.ComputeNodeGroup("existingComputeNodeGroup", { ClusterId: "pcs-cluster-exists123", ScalingConfiguration: { DesiredSize: 2, MinSize: 1, MaxSize: 4 }, InstanceConfigs: [ { InstanceType: "t3.medium", ImageId: "ami-0abcd1234efgh5678" } ], SubnetIds: ["10.0.7.0/24"], IamInstanceProfileArn: "arn:aws:iam::123456789012:instance-profile/MyInstanceProfile", adopt: true});