EC2ボリュームのスナップショットを作成するスクリプトを作成しました。スクリプトは、実行中のインスタンス、それらのインスタンスに接続されているボリュームを調べ、残りを無視してそれらのボリュームのスナップショットを作成します。
describe-instances
を使用すると、インスタンスIDではなく予約IDを取得します。これは混乱を招きますが、現状のままです。インスタンスが起動すると、そのインスタンスの予約が作成されます。
予約のコンセプトについてはまだ混乱しています。
補足:ここで説明しているものとは異なり、予約済みインスタンスとは何か知っています。 「予約済みインスタンス」とは、1〜2年または3年インスタンスをレンタルし、その価格を引き下げることを意味します。したがって、t2.mediumを1年間予約し、それを使用しない場合でも支払いますが、使用する場合は通常よりも安価です。
「予約ID」に戻ります。 AWS FAQは言う:
EC2によって起動されるすべてのインスタンスには、予約IDがあります。予約IDはインスタンスの起動リクエストと1対1の関係にありますが、同じ起動リクエストを使用して複数のインスタンスを起動する場合は、複数のインスタンスに関連付けることができます。
次に、このSEの質問があります。 Amazon EC2の「予約」の目的は何ですか
予約IDが正確に何を表すのかはまだ明確ではありません
一度に1つのインスタンスを起動する場合、各インスタンスには独自の一意の予約IDがあります。
この状況では、すべてのインスタンスに一意の予約IDがありますが、describe-instances
を使用して実行しているスクリプトの場合、これがどのような状況で変化するかを知りたいのです。
ResearvationId
は、リザーブドインスタンスとは関係ありません。これは、EC2インスタンスの起動要求を示す一意の値です。起動リクエストは、cli、AutoScaling、またはAWSマネジメントコンソールから送信される場合があります。
aws ec2 run-instances
へのリクエストごとに、インスタンスの0個以上の予約が返されます。通常、成功すると1になりますが、ドキュメントには「ゼロ以上」(1)と記載されているため、1つの起動リクエストが複数の予約に分割される場合があります。
通常、一度に起動されるインスタンスは同じReservationId
を取得しますが、これは厳格な規則ではない場合があります。ただし、2つのインスタンスを2つの異なる時間に起動すると、異なるReservationId
値が得られる可能性があります。
たとえば、aws ec2 run-instances
コマンドの一部として、同時に起動するインスタンスの最小数と最大数を指定できます。多くの場合、これはmin = max = 1になりますが、1 <= min <= maxである限り、それ以上または異なる場合があります。 AWSマネジメントコンソールから新しいインスタンスを起動するときに実行するインスタンスの数を指定することもできます。これは、「ステップ3:インスタンスの詳細を構成する」ページで確認できます。
aws ec2 describe-instances
を実行すると、結果は、起動方法に基づいてReservationId
値でグループ化されます。
一般に、インスタンスのReservationId
がインスタンス間で異なる時点でそれらが同時に起動されたかどうかを知りたい場合を除き、AmiLaunchIndex
の値を気にする必要はありません。予約内(0、1、2など)。
参照:
予約IDをトランザクションIDと見なします。例:一度に5枚のチケットを購入した場合。トランザクションIDは1つですが、予約IDは5つあります。
同様に、aws ec2 run-instancesを使用して一度に1つのインスタンスを起動すると、1つの予約IDと1つのインスタンスIDが割り当てられます。
ただし、aws ec2 run-instancesを使用して一度に10個のインスタンスを起動すると、1つの予約IDと10のインスタンスIDが割り当てられます。