Skip to content
GitHubXDiscordRSS

Layer

Learn how to create, update, and manage AWS OpsWorks Layers using Alchemy Cloud Control.

The Layer resource lets you manage AWS OpsWorks Layers and their configuration settings for deploying and managing applications.

Create a basic OpsWorks Layer with required properties and some common optional settings.

import AWS from "alchemy/aws/control";
const opsWorksLayer = await AWS.OpsWorks.Layer("myAppLayer", {
Name: "MyAppLayer",
Shortname: "app-layer",
StackId: "arn:aws:opsworks:us-east-1:123456789012:stack/1a2b3c4d-5678-90ab-cdef-EXAMPLE11111",
AutoAssignElasticIps: true,
AutoAssignPublicIps: false,
EnableAutoHealing: true
});

Configure an OpsWorks Layer with additional options like custom recipes and lifecycle event configurations.

const advancedOpsWorksLayer = await AWS.OpsWorks.Layer("advancedAppLayer", {
Name: "AdvancedAppLayer",
Shortname: "adv-layer",
StackId: "arn:aws:opsworks:us-east-1:123456789012:stack/1a2b3c4d-5678-90ab-cdef-EXAMPLE11111",
AutoAssignElasticIps: true,
AutoAssignPublicIps: true,
EnableAutoHealing: true,
CustomRecipes: {
Setup: ["myCookbook::setup"],
Deploy: ["myCookbook::deploy"],
Shutdown: ["myCookbook::shutdown"]
},
LifecycleEventConfiguration: {
Shutdown: {
DelayUntilElbTargetsInService: false,
ExecutionTimeout: 300,
FailureTimeout: 300
}
}
});

Create a Layer that uses a custom instance profile for enhanced permissions.

const customInstanceProfileLayer = await AWS.OpsWorks.Layer("customInstanceProfileLayer", {
Name: "CustomInstanceProfileLayer",
Shortname: "custom-ip-layer",
StackId: "arn:aws:opsworks:us-east-1:123456789012:stack/1a2b3c4d-5678-90ab-cdef-EXAMPLE11111",
AutoAssignElasticIps: false,
AutoAssignPublicIps: true,
EnableAutoHealing: true,
CustomInstanceProfileArn: "arn:aws:iam::123456789012:instance-profile/MyCustomInstanceProfile"
});

Implement load-based auto-scaling for your OpsWorks Layer to handle varying workloads.

const loadBasedScalingLayer = await AWS.OpsWorks.Layer("scalableLayer", {
Name: "ScalableLayer",
Shortname: "scale-layer",
StackId: "arn:aws:opsworks:us-east-1:123456789012:stack/1a2b3c4d-5678-90ab-cdef-EXAMPLE11111",
AutoAssignElasticIps: true,
EnableAutoHealing: true,
LoadBasedAutoScaling: {
DownScaling: {
InstanceCount: 1,
Thresholds: {
CpuUtilization: 20,
LoadAverage: 1.0
}
},
UpScaling: {
InstanceCount: 5,
Thresholds: {
CpuUtilization: 80,
LoadAverage: 5.0
}
}
}
});

These examples demonstrate how to utilize the AWS OpsWorks Layer resource effectively, showcasing minimal setups, advanced configurations, and tailored use cases for various application deployment needs.