Volume
The Volume resource allows you to create and manage AWS EC2 Volumes for your instances. These volumes provide persistent storage for your AWS EC2 instances.
Minimal Example
Section titled “Minimal Example”Create a basic EC2 volume in a specified availability zone with a size and type.
import AWS from "alchemy/aws/control";
const ec2Volume = await AWS.EC2.Volume("myVolume", { AvailabilityZone: "us-east-1a", Size: 20, // Size in GiB VolumeType: "gp2" // General Purpose SSD});
Advanced Configuration
Section titled “Advanced Configuration”Configure an EC2 volume with encryption, multi-attach enabled, and a specific snapshot ID.
const secureEc2Volume = await AWS.EC2.Volume("secureVolume", { AvailabilityZone: "us-west-2b", Size: 50, VolumeType: "io1", // Provisioned IOPS SSD Iops: 1000, // IOPS for the volume Encrypted: true, KmsKeyId: "arn:aws:kms:us-west-2:123456789012:key/abcd1234-a123-456a-a12b-a123b4cd56ef", MultiAttachEnabled: true, SnapshotId: "snap-0abcd1234efgh5678" // Example snapshot ID});
Creating an Outpost Volume
Section titled “Creating an Outpost Volume”Create an EC2 volume that resides in an AWS Outpost.
const outpostVolume = await AWS.EC2.Volume("outpostVolume", { AvailabilityZone: "us-east-1a", Size: 100, VolumeType: "st1", // Throughput Optimized HDD OutpostArn: "arn:aws:outposts:us-east-1:123456789012:outpost/op-0abcde1234567890"});
Volume with Tags
Section titled “Volume with Tags”Create an EC2 volume and assign tags for better resource management.
const taggedEc2Volume = await AWS.EC2.Volume("taggedVolume", { AvailabilityZone: "us-east-1a", Size: 80, VolumeType: "gp2", Tags: [ { Key: "Environment", Value: "Production" }, { Key: "Project", Value: "MyApp" } ]});
Enabling IO Automatically
Section titled “Enabling IO Automatically”Create an EC2 volume with automatic I/O enabled.
const autoIoVolume = await AWS.EC2.Volume("autoIoVolume", { AvailabilityZone: "us-east-1a", Size: 30, VolumeType: "gp3", AutoEnableIO: true});