【小ネタ】Amazon EC2のReservation IDって何なんだろう?

アイキャッチ AWS EC2

ご機嫌いかがでしょうか、豊崎です。

Reservation IDが何か理解していなかったので、今回調べて見ましたので備忘録として書いていきたいと思います。

Reservation IDとは何か?

AWSマネジメントコンソールから見ると、ここに表示されています。

EC2_Management_Console


リザベーションIDとはインスタンスの予約IDです。 リザベーションIDはインスタンスLaunch(作成)ごとに作られ、Launchリクエストと1対1の関係性があります。 もし複数のインスタンスを同じリクエストでLaunchする場合、1インスタンス以上に関連付けることができます。 例えば10インスタンスを1つのリクエストでLaunchした場合は10インスタンスに対して同じリザベーションIDが付与されます。

参考URL:https://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.Client.describe_instances

コマンドから取得

AWS SDK for Python (Boto3)のdescribe_instancesを使用するとReservationsの値がReservationIdごとの配列で出力されます。各要素のInstancesには起動リクエストを行なった際のインスタンス(1つ、または複数)が含まれます。

上述の通り、リザベーションIDはインスタンスのLaunchリクエストに紐づくので、あるリクエストで起動したインスタンスの停止や削除をしたいとなった場合はReservationIdでFilterをかければ対象が取得できると言うことになりますね。(あまり、そのようなケースはないかもしれませんが…)

{ 'Reservations': [
    { 'Groups': [...],
      'Instances': [...],
      'OwnerId': ...,
      'ReservationId': ...
    },
    { 'Groups': [...],
      'Instances': [...],
      'OwnerId': ...,
      'ReservationId': ...
    },
    ・
    ・
    ・
  ],
  'ResponseMetadata': {...}
}

さいごに

あまり利用の機会は多くないかと思いますが、同じことを調べた誰かの知識になれば幸いです。

AWS Cloud Roadshow 2017 福岡