CS課佐竹です。
前回は「IAMに関する話」を記載させて頂きましたが、今回はEC2になります。
はじめに
EC2には様々なインスタンスタイプ(Instance Type)が存在します。実際にどのくらい種類があるかというと、「こちら」のドキュメントを(可能ならEnglishで)ご確認ください。凄く・・・多いです。そして、それらすべてが東京リージョン(ap-northeast-1) で作成可能か?というと、実はそうではありません。
今回は、リージョンの制限と、さらに存在するアベイラビリティーゾーン制限の2つの詳細を追いかけます。なお、リージョンとアベイラビリティーゾーンについての詳しい説明は「こちら」の公式ドキュメントをご参照ください。
補足:2019年4月11日にmetal系のInstanceも調査に追加し、全185種類の結果を表示するよう更新しました
補足2:この記事の更新版のリンクを以下にリストで掲載致します
- 2019/06/27 東京リージョンで構築可能なインスタンスタイプのアベイラビリティーゾーン別一覧表
- t3a対応版 東京リージョンで構築可能なインスタンスタイプのアベイラビリティーゾーン別一覧表
- 2019/09/11 東京リージョンで構築可能なインスタンスタイプのアベイラビリティーゾーン別一覧表
- 2019/11/26 東京リージョンで構築可能なインスタンスタイプのアベイラビリティーゾーン別一覧表
- 2020/01/15 東京リージョンで構築可能なインスタンスタイプのアベイラビリティーゾーン別一覧表
- 2020/05/26 東京リージョンで構築可能なインスタンスタイプのアベイラビリティーゾーン別一覧表
- 2020/06/24 東京リージョンで構築可能なインスタンスタイプのアベイラビリティーゾーン別一覧表
- 2020/08/13 東京リージョンで構築可能なインスタンスタイプのアベイラビリティーゾーン別一覧表
- 2020/10/14 東京リージョンで構築可能なインスタンスタイプのアベイラビリティーゾーン別一覧表
- 2021/02/17 M6gd, C6gd, R6gd インスタンスが東京リージョンで利用可能になりました
- 2021/05/12 東京リージョンで構築可能なインスタンスタイプのアベイラビリティーゾーン別一覧表
- 2021/08/17 M6i インスタンス 登場、M5 より価格あたり15%の性能向上でお値段据え置き
- 2021/08/24 M6i インスタンスが東京リージョンで利用可能になりました
- M6i, C6i インスタンスが東京リージョンの AZ-1c で利用可能になりました
リージョンにおける構築可能インスタンスタイプの制限
まずはリージョンの制限です。具体的な例でご説明いたします。
例えば、今現在、以下の記事で紹介があります C5n というインスタンスタイプは、東京リージョンでは起動できません。
100 Gbps のネットワーク帯域幅を備えた Amazon EC2 C5n インスタンスの紹介
特に新しくリリースされたインスタンスタイプで多くみられますが、まずは「米国東部 (バージニア北部、オハイオ)、米国西部 (オレゴン)、欧州 (アイルランド)」の3つのリージョンで提供されることが多い状況です。このため、 C5n というインスタンスタイプが存在していても、C5nは東京リージョンでは起動(Launch)できないという制限が存在します(2019年4月11日現在)。「新しいインスタンスタイプが出たから早速東京リージョンで使おう!」としても構築できない場合もありますのでご注意ください。
アベイラビリティーゾーンにおける構築可能インスタンスタイプの制限
リージョンの制限と同じく、アベイラビリティーゾーン(Availability Zone:以下AZと省略します)にも同様の制限があります。今回はそれを詳しく調べました。このAZにおける構築可能インスタンスタイプの制限については公式なドキュメントが存在しないため、2019年4月11日時点の独自の調査結果となりますことを先に述べさせて頂きます。
まず、現在東京リージョンには ap-northeast-1a(単に1aとも言う)、ap-northeast-1c(1c)、ap-northeast-1d(1d) の3つのAZが存在します。ap-northeast-1b(1b) については古いAWSアカウントでは表示されますが、新しいAWSアカウントでは表示されないものとなりますため今回は1bは対象外として調査結果を報告します。
※ご利用中のアカウントによっては、1bの代わりに古いAZとして1aが表示されていないアカウントも存在するかと思います。その場合は、以後1bを1aに置き換えてお読みください
具体的な例ですが、最も新しい1dのAZでは、「旧世代のインスタンスタイプ」とされるm1等のインスタンスタイプは構築が不可能です。しかし、1a,1cではこれらは構築可能です。このようなAZにおけるキャパシティの差が現実問題存在しています。そしてこの差を鑑みて冗長構成をとらないといけない、というハードルも存在します。これを把握していないと「冗長構成のためにAZを1aと1d」で組みましょうと提案していたのに「すみません、実際に構築してみたら、1dでは m3のインスタンスタイプが全て利用できませんでしたため、冗長構成が取れないことが判明しました」という事態に陥る可能性があります。今回はこれを予め避けるための調査及び報告となります。
補足ですが、今現在m3のインスタンスタイプは旧世代にあたりますため、実際にご利用を推奨することは減ってきています。
具体的な調査方法
「どのAZでどのインスタンスタイプが構築可能か?」というのは、実際問題、試してみないとわかりません。ということになるのですが、全ての組み合わせをLaunchすると(EC2が大量に構築されて)大変なことになってしまうため、今回は run-instances のAPIを利用しました。今現在、 run-instances には --dry-run のオプションが存在します。これは、APIが成功しても実際にはエラーとなり構築が行われないもので、 run-instances のAPIが実際にワークするのか?を検証するために利用されます。今回はこれを活用します。
実際に利用したコマンド
以下のような run-instances のコマンドを全AZ、全インスタンスタイプで実行します。AZはSubnetに紐づいているので、このコマンドをインスタンスタイプ別に 3つのSubnet = 3つのAZで実行したら完了となります。さらっと書いてますが、インスタンスタイプは 185 種類、AZは 3 ですので、掛け算で 555 回の実行となります。
aws ec2 run-instances --dry-run --image-id ami-086063d8c95bfa211 --key-name satake_tokyo_Test --count 1 --security-group-ids sg-XXXXXXXX --subnet-id subnet-XXXXXXXX --instance-type a1.medium
なお、ami-086063d8c95bfa211 はAWSが出荷しているAmazon LinuxのImageになっています。
結果(アベイラビリティーゾーン別一覧表)
以下の表に結果を表示します。前提として、私のローカルアカウントのため、上限緩和申請はほぼほぼ初期状態ということをご理解ください。なお「成功」となっているものが、問題なく構築可能とご理解頂いて問題ありません。
Instance Type | 1a (apne1-az4) | 1c (apne1-az1) | 1d (apne1-az2) |
a1.medium | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
a1.large | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
a1.xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
a1.2xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
a1.4xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
m4.large | 成功 | 成功 | 成功 |
m4.xlarge | 成功 | 成功 | 成功 |
m4.2xlarge | 成功 | 成功 | 成功 |
m4.4xlarge | 成功 | 成功 | 成功 |
m4.10xlarge | 成功 | 成功 | 成功 |
m4.16xlarge | 成功 | 成功 | 成功 |
m5.large | 成功 | 成功 | 成功 |
m5.xlarge | 成功 | 成功 | 成功 |
m5.2xlarge | 成功 | 成功 | 成功 |
m5.4xlarge | 成功 | 成功 | 成功 |
m5.12xlarge | 成功 | 成功 | 成功 |
m5.24xlarge | 成功 | 成功 | 成功 |
m5.metal | 成功 | 成功 | 成功 |
m5a.large | 成功 | 他のAZで構築可能 | 成功 |
m5a.xlarge | 成功 | 他のAZで構築可能 | 成功 |
m5a.2xlarge | 成功 | 他のAZで構築可能 | 成功 |
m5a.4xlarge | 成功 | 他のAZで構築可能 | 成功 |
m5a.12xlarge | 成功 | 他のAZで構築可能 | 成功 |
m5a.24xlarge | 成功 | 他のAZで構築可能 | 成功 |
m5ad.large | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
m5ad.xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
m5ad.2xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
m5ad.4xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
m5ad.12xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
m5ad.24xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
m5d.large | 成功 | 成功 | 他のAZで構築可能 |
m5d.xlarge | 成功 | 成功 | 他のAZで構築可能 |
m5d.2xlarge | 成功 | 成功 | 他のAZで構築可能 |
m5d.4xlarge | 成功 | 成功 | 他のAZで構築可能 |
m5d.12xlarge | 成功 | 成功 | 他のAZで構築可能 |
m5d.24xlarge | 成功 | 成功 | 他のAZで構築可能 |
m5d.metal | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
t2.nano | 成功 | 成功 | 成功 |
t2.micro | 成功 | 成功 | 成功 |
t2.small | 成功 | 成功 | 成功 |
t2.medium | 成功 | 成功 | 成功 |
t2.large | 成功 | 成功 | 成功 |
t2.xlarge | 成功 | 成功 | 成功 |
t2.2xlarge | 成功 | 成功 | 成功 |
t3.nano | 成功 | 成功 | 成功 |
t3.micro | 成功 | 成功 | 成功 |
t3.small | 成功 | 成功 | 成功 |
t3.medium | 成功 | 成功 | 成功 |
t3.large | 成功 | 成功 | 成功 |
t3.xlarge | 成功 | 成功 | 成功 |
t3.2xlarge | 成功 | 成功 | 成功 |
c4.large | 成功 | 成功 | 成功 |
c4.xlarge | 成功 | 成功 | 成功 |
c4.2xlarge | 成功 | 成功 | 成功 |
c4.4xlarge | 成功 | 成功 | 成功 |
c4.8xlarge | 成功 | 成功 | 成功 |
c5.large | 成功 | 成功 | 成功 |
c5.xlarge | 成功 | 成功 | 成功 |
c5.2xlarge | 成功 | 成功 | 成功 |
c5.4xlarge | 成功 | 成功 | 成功 |
c5.9xlarge | 成功 | 成功 | 成功 |
c5.18xlarge | 成功 | 成功 | 成功 |
c5d.xlarge | 成功 | 成功 | 他のAZで構築可能 |
c5d.2xlarge | 成功 | 成功 | 他のAZで構築可能 |
c5d.4xlarge | 成功 | 成功 | 他のAZで構築可能 |
c5d.9xlarge | 成功 | 成功 | 他のAZで構築可能 |
c5d.18xlarge | 成功 | 成功 | 他のAZで構築可能 |
c5n.large | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
c5n.xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
c5n.2xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
c5n.4xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
c5n.9xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
c5n.18xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
r4.large | 成功 | 成功 | 成功 |
r4.xlarge | 成功 | 成功 | 成功 |
r4.2xlarge | 成功 | 成功 | 成功 |
r4.4xlarge | 成功 | 成功 | 成功 |
r4.8xlarge | 成功 | 成功 | 成功 |
r4.16xlarge | 成功 | 成功 | 成功 |
r5.large | 成功 | 成功 | 成功 |
r5.xlarge | 成功 | 成功 | 成功 |
r5.2xlarge | 成功 | 成功 | 成功 |
r5.4xlarge | 成功 | 成功 | 成功 |
r5.12xlarge | 成功 | 成功 | 成功 |
r5.24xlarge | 成功 | 成功 | 成功 |
r5.metal | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
r5a.large | 成功 | 他のAZで構築可能 | 成功 |
r5a.xlarge | 成功 | 他のAZで構築可能 | 成功 |
r5a.2xlarge | 成功 | 他のAZで構築可能 | 成功 |
r5a.4xlarge | 成功 | 他のAZで構築可能 | 成功 |
r5a.12xlarge | 成功 | 他のAZで構築可能 | 成功 |
r5a.24xlarge | 成功 | 他のAZで構築可能 | 成功 |
r5ad.large | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
r5ad.xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
r5ad.2xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
r5ad.4xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
r5ad.12xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
r5ad.24xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
r5d.large | 成功 | 成功 | 成功 |
r5d.xlarge | 成功 | 成功 | 成功 |
r5d.2xlarge | 成功 | 成功 | 成功 |
r5d.4xlarge | 成功 | 成功 | 成功 |
r5d.12xlarge | 成功 | 成功 | 成功 |
r5d.24xlarge | 成功 | 成功 | 成功 |
r5d.metal | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
u-6tb1.metal | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
u-9tb1.metal | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
u-12tb1.metal | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
x1.16xlarge | 緩和申請が必要 | 緩和申請が必要 | 緩和申請が必要 |
x1.32xlarge | 緩和申請が必要 | 緩和申請が必要 | 緩和申請が必要 |
x1e.xlarge | 成功 | 成功 | 他のAZで構築可能 |
x1e.2xlarge | 成功 | 成功 | 他のAZで構築可能 |
x1e.4xlarge | 成功 | 成功 | 他のAZで構築可能 |
x1e.8xlarge | 緩和申請が必要 | 緩和申請が必要 | 他のAZで構築可能 |
x1e.16xlarge | 緩和申請が必要 | 緩和申請が必要 | 他のAZで構築可能 |
x1e.32xlarge | 緩和申請が必要 | 緩和申請が必要 | 他のAZで構築可能 |
z1d.large | 成功 | 成功 | 他のAZで構築可能 |
z1d.xlarge | 成功 | 成功 | 他のAZで構築可能 |
z1d.2xlarge | 成功 | 成功 | 他のAZで構築可能 |
z1d.3xlarge | 成功 | 成功 | 他のAZで構築可能 |
z1d.6xlarge | 成功 | 成功 | 他のAZで構築可能 |
z1d.12xlarge | 成功 | 成功 | 他のAZで構築可能 |
z1d.metal | 成功 | 成功 | 他のAZで構築可能 |
d2.xlarge | 成功 | 成功 | 成功 |
d2.2xlarge | 成功 | 成功 | 成功 |
d2.4xlarge | 成功 | 成功 | 成功 |
d2.8xlarge | 成功 | 成功 | 成功 |
h2.2xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
h2.4xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
h2.8xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
h2.16xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
i3.large | 成功 | 成功 | 成功 |
i3.xlarge | 成功 | 成功 | 成功 |
i3.2xlarge | 成功 | 成功 | 成功 |
i3.4xlarge | 成功 | 成功 | 成功 |
i3.8xlarge | 成功 | 成功 | 成功 |
i3.16xlarge | 成功 | 成功 | 成功 |
i3.metal | 成功 | 成功 | 成功 |
f1.2xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
f1.4xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
f1.16xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
g3s.xlarge | 成功 | 成功 | 他のAZで構築可能 |
g3.4xlarge | 成功 | 成功 | 他のAZで構築可能 |
g3.8xlarge | 成功 | 成功 | 他のAZで構築可能 |
g3.16xlarge | 成功 | 成功 | 他のAZで構築可能 |
p2.xlarge | 成功 | 成功 | 他のAZで構築可能 |
p2.8xlarge | 成功 | 成功 | 他のAZで構築可能 |
p2.16xlarge | 緩和申請が必要 | 緩和申請が必要 | 他のAZで構築可能 |
p3.2xlarge | 成功 | 成功 | 他のAZで構築可能 |
p3.8xlarge | 成功 | 成功 | 他のAZで構築可能 |
p3.16xlarge | 緩和申請が必要 | 緩和申請が必要 | 他のAZで構築可能 |
p3dn.24xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
m1.small | 成功 | 成功 | 他のAZで構築可能 |
m1.medium | 成功 | 成功 | 他のAZで構築可能 |
m1.large | 成功 | 成功 | 他のAZで構築可能 |
m1.xlarge | 成功 | 成功 | 他のAZで構築可能 |
m3.medium | 成功 | 成功 | 他のAZで構築可能 |
m3.large | 成功 | 成功 | 他のAZで構築可能 |
m3.xlarge | 成功 | 成功 | 他のAZで構築可能 |
m3.2xlarge | 成功 | 成功 | 他のAZで構築可能 |
t1.micro | 成功 | 成功 | 他のAZで構築可能 |
c1.medium | 成功 | 成功 | 他のAZで構築可能 |
c1.xlarge | 成功 | 成功 | 他のAZで構築可能 |
cc2.8xlarge | 成功 | 成功 | 他のAZで構築可能 |
c3.large | 成功 | 成功 | 他のAZで構築可能 |
c3.xlarge | 成功 | 成功 | 他のAZで構築可能 |
c3.2xlarge | 成功 | 成功 | 他のAZで構築可能 |
c3.4xlarge | 成功 | 成功 | 他のAZで構築可能 |
c3.8xlarge | 成功 | 成功 | 他のAZで構築可能 |
m2.xlarge | 成功 | 成功 | 他のAZで構築可能 |
m2.2xlarge | 成功 | 成功 | 他のAZで構築可能 |
m2.4xlarge | 成功 | 成功 | 他のAZで構築可能 |
cr1.8xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
r3.large | 成功 | 成功 | 他のAZで構築可能 |
r3.xlarge | 成功 | 成功 | 他のAZで構築可能 |
r3.2xlarge | 成功 | 成功 | 他のAZで構築可能 |
r3.4xlarge | 成功 | 成功 | 他のAZで構築可能 |
r3.8xlarge | 成功 | 成功 | 他のAZで構築可能 |
hs1.8xlarge | 東京Region未対応 | 東京Region未対応 | 東京Region未対応 |
i2.xlarge | 成功 | 成功 | 他のAZで構築可能 |
i2.2xlarge | 成功 | 成功 | 他のAZで構築可能 |
i2.4xlarge | 成功 | 成功 | 他のAZで構築可能 |
i2.8xlarge | 成功 | 成功 | 他のAZで構築可能 |
g2.2xlarge | 成功 | 成功 | 他のAZで構築可能 |
g2.8xlarge | 成功 | 成功 | 他のAZで構築可能 |
エラーメッセージと判定条件
上記の判定には以下のエラーメッセージを利用しています。
成功
An error occurred (DryRunOperation) when calling the RunInstances operation: Request would have succeeded, but DryRun flag is set.
このメッセージは、DryRunOperation が引数として存在しているために失敗と判断されたもので、実際に --dry-run を外せば「成功」するものと判定しています。つまり、成功と記載があるものは、そのAZにて構築が可能と判断されるものです。
他のAZで構築可能
An error occurred (Unsupported) when calling the RunInstances operation: Your requested instance type (m5a.large) is not supported in your requested Availability Zone (ap-northeast-1c). Please retry your request by not specifying an Availability Zone or choosing ap-northeast-1d, ap-northeast-1a.
このエラーは、 m5a.large を ap-northeast-1c にて構築しようとしたときのメッセージです。ap-northeast-1d, ap-northeast-1aでリトライするよう、エラーが表示されています。このような「is not supported in your requested Availability Zone」というエラーメッセージを「他のAZで構築可能」として表に記載しています。
ようは、特定のリージョンでは、特定のInstance Typeが構築できないのが現状であり今回お伝えしたい制限となります。
東京Region未対応
An error occurred (Unsupported) when calling the RunInstances operation: The requested configuration is currently not supported. Please check the documentation for supported configurations.
このエラーは、東京リージョンでは起動できない(サポートされていない)Instance Typeと判断し、一覧では「東京Region未対応」としています。これは、a1 系のInstance Typeが全て同様のエラーメッセージを返したことから、そのような判定としました。
緩和申請が必要
An error occurred (InstanceLimitExceeded) when calling the RunInstances operation: You have requested more instances (1) than your current instance limit of 0 allows for the specified instance type. Please visit http://aws.amazon.com/contact-us/ec2-request to request an adjustment to this limit.
このエラーは、利用予定のAZにおいて、上限緩和申請が必要であることを表しているエラーとなります。インスタンスタイプによっては、初期の構築可能数が 0 台のインスタンスも存在しており、利用には予め緩和申請を実施することが前提とされています。このエラーが表示された場合は、上限緩和申請をクリアしてから構築をしてください。
EC2の上限緩和申請につきましては「こちら」のドキュメントをご参照ください。
まとめ
いかがだったでしょうか。上記の通り、東京リージョンの内部においてもAZごとに構築可能なインスタンスタイプに制限がかけられていることがご理解いただけたかと思います。
特徴をまとめますと
- 旧世代のインスタンスタイプは、東京リージョンの1dでは構築できない
- m5dとc5d、z1dについては東京リージョンの1dでは構築できない
- m5aとr5aについては東京リージョンの1cでは構築できない
- 1aは現状全てのインスタンスタイプに対応している
となります。
なお、これらは2019年4月11日時点の情報となりますため、最新の対応状況は各自APIを実行して結果を確認頂けますと幸いです。繰り返しになりますが、この記事の更新版として「2019/6/27版 東京リージョンで構築可能なインスタンスタイプのアベイラビリティーゾーン別一覧表」を記載しております。是非、合わせてご確認ください。
それではまたお会いしましょう。
佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ
マネージドサービス部所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 AWS Ambassadors/2023-2024 Japan AWS Top Engineers/2020-2024 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。