AWS::EC2::Volume - AWS CloudFormation

AWS::EC2::Volume

Amazon Elastic Block Store (Amazon EBS) ボリュームを指定します。

Amazon CloudFormation を使用して IopsSize、または VolumeType を変更する Amazon EBS ボリュームを更新する場合は、別のオペレーションの発生前にクールダウン期間が発生します。これにより、スタックが長時間 UPDATE_IN_PROGRESS または UPDATE_ROLLBACK_IN_PROGRESS であるとレポートする可能性があります。

Amazon EBS は、Amazon EBS ボリュームのサイズダウンをサポートしていません。AWS CloudFormation は、ロールバック時に Amazon EBS ボリュームのサイズを縮小する変更は試みません。

Amazon EBS のクールダウン期間が発生する場合の一般的なシナリオには以下のようなものが含まれます。

  • Amazon EBS ボリュームを正常に更新することができ、更新が成功します。クールダウン期間内に別の更新を試みると、その更新はクールダウンの対象になります。

  • Amazon EBS ボリュームを正常に更新することができ、更新は成功するものの、update-stack 呼び出しの別の変更が失敗します。そのロールバックはクールダウンの対象となります。

クールダウン期間の詳細については、「EBS ボリューム変更時の要件」を参照してください。

スタックが削除されたときにそのボリュームが AWS CloudFormation によってどのように処理されるかは、ボリュームに削除ポリシーを設定することによって制御できます。ボリュームに関して、維持するか、削除するか、スナップショットを作成するかを選択できます。詳細については、「DeletionPolicy 属性」を参照してください。

注記

スナップショットを作成するように削除ポリシーを設定した場合、ボリューム上のすべてのタグがスナップショットに追加されます。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

{ "Type" : "AWS::EC2::Volume", "Properties" : { "AutoEnableIO" : Boolean, "AvailabilityZone" : String, "Encrypted" : Boolean, "Iops" : Integer, "KmsKeyId" : String, "MultiAttachEnabled" : Boolean, "OutpostArn" : String, "Size" : Integer, "SnapshotId" : String, "Tags" : [ Tag, ... ], "VolumeType" : String } }

YAML

Type: AWS::EC2::Volume Properties: AutoEnableIO: Boolean AvailabilityZone: String Encrypted: Boolean Iops: Integer KmsKeyId: String MultiAttachEnabled: Boolean OutpostArn: String Size: Integer SnapshotId: String Tags: - Tag VolumeType: String

プロパティ

AutoEnableIO

I/O オペレーションのボリュームが自動有効化されるかどうかを示します。デフォルトでは、ボリュームのデータが潜在的に不整合であると判断した場合、Amazon EBS はアタッチされているすべての EC2 インスタンスからそのボリュームへの I/O を無効にします。ボリュームの整合性について心配しているわけではなく、そのボリュームに障害が発生した際にそのボリュームをすぐに利用できるようにする場合は、I/O を自動的に有効にするようにボリュームを設定することができます。

必須: いいえ

タイプ: ブール値

Update requires: No interruption

AvailabilityZone

ボリュームの作成先となるアベイラビリティーゾーン。

必須: はい

タイプ: 文字列

Update requires: Updates are not supported.

Encrypted

ボリュームを暗号化するかどうかを指定します。暗号化状態を true に設定した場合の効果は、ボリュームのオリジン (新規またはスナップショットから取得)、暗号化状態の開始、所有権、およびデフォルトで暗号化が有効であるかどうかによって異なります。詳細については、Amazon Elastic Compute Cloud ユーザーガイドの「デフォルトでの暗号化」を参照してください。

暗号化された Amazon EBS ボリュームは、Amazon EBS 暗号化をサポートするインスタンスにアタッチする必要があります。詳細については、「サポートされるインスタンスタイプ」を参照してください。

必須: いいえ

タイプ: ブール値

Update requires: Updates are not supported.

Iops

io1 または io2 ボリュームにプロビジョニングする 1 秒あたりの I/O オペレーションの数 (IOPS)。最大比は、io1 の場合は 50 IOPS/GiB、io2 の場合は 500 IOPS/GiB です。範囲は、ほとんどのリージョンのボリュームで 100~64,000 IOPS です。最大 IOPS である 64,000は、Nitro ベースのインスタンスでのみ保証されます。その他のインスタンスファミリーは、最大 32,000 IOPS までのパフォーマンスを保証します。詳細については、『Amazon Elastic Compute Cloud ユーザーガイド』の「Amazon EBS ボリュームの種類」を参照してください。

このパラメータは、プロビジョンド IOPS SSD (io1 および io2) ボリュームでのみ有効です。

必須: いいえ

タイプ: 整数

Update requires: No interruption

KmsKeyId

Amazon EBS 暗号化に使用する AWS Key Management Service (AWS KMS) カスタマーマスターキー (CMK) の識別子。KmsKeyId を指定する場合、暗号化された状態は true である必要があります。

このプロパティを省略し、アカウントがデフォルトで暗号化が有効になっている場合、または [Encrypted(暗号化)] が true に設定されている場合、ボリュームはアカウントに指定されたデフォルトの CMK を使用して暗号化されます。アカウントにデフォルト CMK がない場合、ボリュームは AWS マネージド CMK を使用して暗号化されます。

別の方法として、別の CMK を指定する場合は、次のいずれかを指定できます。

  • キー ID。例: 1234abcd-12ab-34cd-56ef-1234567890ab。

  • キーエイリアス。CMK のエイリアスを指定します。プレフィックスは alias/ です。たとえば、エイリアス my_cmk を持つ CMK の場合は、alias/my_cmk を使用します。または、AWS マネージド CMK を指定するには、alias/aws/ebs を使用します。

  • キー ARN。例: arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab。

  • エイリアス ARN。例: arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias。

必須: いいえ

タイプ: 文字列

Update requires: Updates are not supported.

MultiAttachEnabled

Amazon EBS マルチアタッチが有効になっているかどうかを示します。

注記

AWS CloudFormation は現在、シングルアタッチボリュームからマルチアタッチ対応への更新、マルチアタッチ対応ボリュームからシングルアタッチへの更新、マルチアタッチ対応ボリュームから I/O オペレーション/秒 (IOPS) のサイズや数への更新をサポートしていません。

必須: いいえ

タイプ: ブール値

Update requires: No interruption

OutpostArn

Outpost の Amazon リソースネーム (ARN)。

必須: いいえ

タイプ: 文字列

Update requires: No interruption

Size

ボリュームのサイズ (GiB 単位)。スナップショット ID またはボリュームサイズを指定する必要があります。

制約: gp2 の場合は 1 ~ 16,384、io1 および io2 の場合は 4 ~ 16,384、st1 の場合は 500 ~ 16,384、sc1 の場合は 500 ~ 16,384、standard の場合は 1 ~ 1,024 です。スナップショットを指定する場合、ボリュームサイズはスナップショットサイズ以上である必要があります。

デフォルト: スナップショットからボリュームを作成しており、ボリュームサイズを指定しない場合のデフォルトはスナップショットサイズです。

必須: いいえ

タイプ: 整数

Update requires: No interruption

SnapshotId

ボリュームの作成元になるスナップショット。スナップショット ID またはボリュームサイズを指定する必要があります。

必須: いいえ

タイプ: 文字列

Update requires: Updates are not supported.

Tags

作成中にボリュームに適用するタグ。

必須: いいえ

タイプ: Tag のリスト

Update requires: No interruption

VolumeType

ボリュームタイプ。これは、汎用 SSD の場合は gp2、プロビジョンド IOPS SSD の場合は io1 または io2、スループット最適化 HDD の場合は st1、コールド HDD の場合は sc1、またはマグネティックボリュームの場合は standard になります。

デフォルト: gp2

必須: いいえ

タイプ: 文字列

許可された値: gp2 | io1 | io2 | sc1 | st1 | standard

Update requires: No interruption

戻り値

Ref

リソース名このリソースの論理 ID を組み込みの Ref 関数に渡すと、Ref は次を返します: 。例: vol-5cb85026

For more information about using the Ref function, see Ref.

削除時にスナップショットを作成するように DeletionPolicy を設定した暗号化 Amazon EBS ボリューム

JSON

"NewVolume" : { "Type" : "AWS::EC2::Volume", "Properties" : { "Size" : "100", "Encrypted" : "true", "AvailabilityZone" : { "Fn::GetAtt" : [ "Ec2Instance", "AvailabilityZone" ] }, "Tags" : [ { "Key" : "MyTag", "Value" : "TagValue" } ] }, "DeletionPolicy" : "Snapshot" }

YAML

NewVolume: Type: AWS::EC2::Volume Properties: Size: 100 Encrypted: true AvailabilityZone: !GetAtt Ec2Instance.AvailabilityZone Tags: - Key: MyTag Value: TagValue DeletionPolicy: Snapshot

プロビジョンド IOPS を 100 に設定した Amazon EBS ボリューム

JSON

"NewVolume" : { "Type" : "AWS::EC2::Volume", "Properties" : { "Size" : "100", "VolumeType" : "io1", "Iops" : "100", "AvailabilityZone" : { "Fn::GetAtt" : [ "EC2Instance", "AvailabilityZone" ] } } }

YAML

NewVolume: Type: AWS::EC2::Volume Properties: Size: 100 VolumeType: io1 Iops: 100 AvailabilityZone: !GetAtt Ec2Instance.AvailabilityZone

以下の資料も参照してください。

  • Amazon Elastic Compute Cloud API リファレンスの「CreateVolume