2018/10/25(JST)からEC2オンデマンドインスタンスのキャパシティー予約が出来るようになりました。
■キャパシティー予約とは?
利用期間のコミットメント無しでRIのようにインスタンスの在庫を確保出来るというサービスですね。
クラスメソッド 大栗さんのブログ記事がわかりやすくて良いと思います。
[参考リンク]
https://dev.classmethod.jp/cloud/aws/ec2-capacity-reservations/
実際にEC2自体は各AZ毎に在庫を持っていますが、東京リージョンでは結構在庫切れに遭遇する事がありました。
特にM4→M5過渡期とか、ap-northeast-1d追加時の別AZとかで顕著だった記憶があります。
個人的にはこの機能、利用料金を見てみると予約期間中も通常のオンデマンド料金がかかり続ける為(2018/11/22時点)、何らかの理由でホットスタンバイには出来ない用途(予約期間中のある時点で生成されるカスタムAMIから立ち上げなければならない等)以外には今の所使う理由はなさそうだなと感じています。
と・・・前置きはこのくらいにして、ここからが本題です。
■本題
この機能の追加によって、通常のEC2立ち上げのWEB UIにこんな項目が追加されています。
どうやらデフォルトが「Open」のようですが、「なし」もしくは「None」との違いが気になります。
という事でちょっとCapacity-reservationsのユーザガイドを調べてみました。
[参考リンク]
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/capacity-reservations-using.html
Instance eligibility—Choose one of the following options:
open—(Default) The Capacity Reservation matches any instance that has matching attributes
(instance type, platform, and Availability Zone). If you launch an instance with matching
attributes, it is placed into the reserved capacity automatically.
targeted—The Capacity Reservation only accepts instances that have matching attributes
(instance type, platform, and Availability Zone), and explicitly target the reservation.
どうやらEC2側の設定値として「Open」を指定していると、Instance eligibilityを Openとするキャパシティー予約を作成した時にその予約を消費してしまうようです。
前述したキャパシティー予約のユースケースを考えると、Instance eligibility設定は自ずと targetedで設定する事になりそうですが、意図せず予約を消費してしまう可能性を考えると私はEC2側の設定値は、
「None」を選択した方が無難そう
かなと判断しました。
ちなみに過去に作成したインスタンスは確認する限り全て「None」になっていました。