There are more AWS SDK examples available in the AWS Doc SDK Examples
Use CreateVolume
with a CLI
The following code examples show how to use CreateVolume
.
- CLI
-
- AWS CLI
-
To create an empty General Purpose SSD (gp2) volume
The following
create-volume
example creates an 80 GiB General Purpose SSD (gp2) volume in the specified Availability Zone. Note that the current Region must beus-east-1
, or you can add the--region
parameter to specify the Region for the command.aws ec2 create-volume \ --volume-type
gp2
\ --size80
\ --availability-zoneus-east-1a
Output:
{ "AvailabilityZone": "us-east-1a", "Tags": [], "Encrypted": false, "VolumeType": "gp2", "VolumeId": "vol-1234567890abcdef0", "State": "creating", "Iops": 240, "SnapshotId": "", "CreateTime": "YYYY-MM-DDTHH:MM:SS.000Z", "Size": 80 }
If you do not specify a volume type, the default volume type is
gp2
.aws ec2 create-volume \ --size
80
\ --availability-zoneus-east-1a
Example 2: To create a Provisioned IOPS SSD (io1) volume from a snapshot
The following
create-volume
example creates a Provisioned IOPS SSD (io1) volume with 1000 provisioned IOPS in the specified Availability Zone using the specified snapshot.aws ec2 create-volume \ --volume-type
io1
\ --iops1000
\ --snapshot-idsnap-066877671789bd71b
\ --availability-zoneus-east-1a
Output:
{ "AvailabilityZone": "us-east-1a", "Tags": [], "Encrypted": false, "VolumeType": "io1", "VolumeId": "vol-1234567890abcdef0", "State": "creating", "Iops": 1000, "SnapshotId": "snap-066877671789bd71b", "CreateTime": "YYYY-MM-DDTHH:MM:SS.000Z", "Size": 500 }
Example 3: To create an encrypted volume
The following
create-volume
example creates an encrypted volume using the default CMK for EBS encryption. If encryption by default is disabled, you must specify the--encrypted
parameter as follows.aws ec2 create-volume \ --size
80
\ --encrypted \ --availability-zoneus-east-1a
Output:
{ "AvailabilityZone": "us-east-1a", "Tags": [], "Encrypted": true, "VolumeType": "gp2", "VolumeId": "vol-1234567890abcdef0", "State": "creating", "Iops": 240, "SnapshotId": "", "CreateTime": "YYYY-MM-DDTHH:MM:SS.000Z", "Size": 80 }
If encryption by default is enabled, the following example command creates an encrypted volume, even without the
--encrypted
parameter.aws ec2 create-volume \ --size
80
\ --availability-zoneus-east-1a
If you use the
--kms-key-id
parameter to specify a customer managed CMK, you must specify the--encrypted
parameter even if encryption by default is enabled.aws ec2 create-volume \ --volume-type
gp2
\ --size80
\ --encrypted \ --kms-key-id0ea3fef3-80a7-4778-9d8c-1c0c6EXAMPLE
\ --availability-zoneus-east-1a
Example 4: To create a volume with tags
The following
create-volume
example creates a volume and adds two tags.aws ec2 create-volume \ --availability-zone
us-east-1a
\ --volume-typegp2
\ --size80
\ --tag-specifications 'ResourceType=volume,Tags=[{Key=purpose,Value=production},{Key=cost-center,Value=cc123}]
'-
For API details, see CreateVolume
in AWS CLI Command Reference.
-
- PowerShell
-
- Tools for PowerShell
-
Example 1: This example creates the specified volume.
New-EC2Volume -Size 50 -AvailabilityZone us-west-2a -VolumeType gp2
Output:
Attachments : {} AvailabilityZone : us-west-2a CreateTime : 12/22/2015 1:42:07 AM Encrypted : False Iops : 150 KmsKeyId : Size : 50 SnapshotId : State : creating Tags : {} VolumeId : vol-12345678 VolumeType : gp2
Example 2: This example request creates a volume and applies a tag with a key of stack and a value of production.
$tag = @{ Key="stack"; Value="production" } $tagspec = new-object Amazon.EC2.Model.TagSpecification $tagspec.ResourceType = "volume" $tagspec.Tags.Add($tag) New-EC2Volume -Size 80 -AvailabilityZone "us-west-2a" -TagSpecification $tagspec
-
For API details, see CreateVolume in AWS Tools for PowerShell Cmdlet Reference.
-