Closed7
リージョン、AZで使用可能なインスタンスタイプを調査する
スポットインスタンスを利用しているが、
対象のインスタンスが停止した場合に別インスタンスタイプで立ち上げるということを計画。
予めどのインスタンスタイプがどのリージョン、AZで利用出来るかを調査する
参考
コンソール
- ログイン
- 探したいリージョンに移動
- InstanceTypesを選択
- 探したいインスタンスタイプでフィルタ
- Networking > Availability zonesにあった
複数のインスタンスタイプでも出してくれます。
describe-instance-type-offerings
というAPIがあり、提供されているインスタンスタイプのリクエストを返してくれる
リージョンまたはAZでフィルタ可能
サンプル3つをさわってみる
リージョンで有効なインスタンスタイプをすべて出力
リージョンを引数に指定すればOK
$ aws ec2 describe-instance-type-offerings --region ap-northeast-1
{
"InstanceTypeOfferings": [
{
"InstanceType": "r5a.4xlarge",
"LocationType": "region",
"Location": "ap-northeast-1"
},
{
"InstanceType": "r3.2xlarge",
"LocationType": "region",
"Location": "ap-northeast-1"
},
...
返ってくるのはjson形式かつ複数の値が返ってくるため、適宜フィルタします
AZで有効なインスタンスタイプをすべて出力
リージョンとAZが必要です
$ aws ec2 describe-instance-type-offerings \
> --location-type availability-zone \
> --filters Name=location,Values=ap-northeast-1a \
> --region ap-northeast-1
{
"InstanceTypeOfferings": [
{
"InstanceType": "r5a.2xlarge",
"LocationType": "availability-zone",
"Location": "ap-northeast-1a"
},
{
"InstanceType": "r5dn.metal",
"LocationType": "availability-zone",
"Location": "ap-northeast-1a"
},
...
リージョン内で指定したインスタンスタイプが有効か調べる
今度はリージョンとインスタンスタイプを使います。
これは東京リージョンで有効な、タイプと世代がC5であるインスタンスタイプをすべて出力しています。
$ aws ec2 describe-instance-type-offerings \
> --filters Name=instance-type,Values=c5* \
> --query "InstanceTypeOfferings[].InstanceType" \
> --region ap-northeast-1
[
"c5n.18xlarge",
"c5d.metal",
"c5d.9xlarge",
"c5d.12xlarge",
"c5a.large",
"c5.metal",
"c5.4xlarge",
"c5a.24xlarge",
"c5d.4xlarge",
"c5d.large",
"c5a.12xlarge",
"c5.18xlarge",
"c5d.18xlarge",
"c5d.2xlarge",
"c5d.xlarge",
"c5n.large",
"c5.large",
"c5n.9xlarge",
"c5n.metal",
"c5.12xlarge",
"c5a.4xlarge",
"c5a.2xlarge",
"c5.xlarge",
"c5a.16xlarge",
"c5.2xlarge",
"c5n.xlarge",
"c5.24xlarge",
"c5n.2xlarge",
"c5a.xlarge",
"c5n.4xlarge",
"c5.9xlarge",
"c5d.24xlarge",
"c5a.8xlarge"
]
複数の条件でフィルタ出来る?
--filtersで複数指定すればOK。
ここではAZとインスタンスタイプの2つフィルタをしています。
aws ec2 describe-instance-type-offerings \
--location-type availability-zone \
--filters Name=location,Values=ap-northeast-1a Name=instance-type,Values=c5*\
--region ap-northeast-1
ここまでできたらあとはjsonをわかりやすくする処理を加えればOK
このスクラップは2023/05/30にクローズされました