AWS::EC2::Volume
Amazon Elastic Block Store (Amazon EBS) ボリュームを指定します。
Amazon CloudFormation を使用して Iops
、Size
、または 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」