AWSトラブル事例001:新しいインスタンスタイプが選べない!?AMIの落とし穴

KK
2023-01-19
2023-01-19

年三日坊主のKKです。
年末年始は実家を手伝ってお坊さんをやってきました。
(除夜の鐘をつきたい人の誘導なら任せろ!ちゃんと両手で108まで数えました。)


◆この記事のポイント

・AWS Marketplaceに登録されているCentOS 7のAMIは複数ある。

・AMIによってサポートされるEC2インスタンスタイプに違いがある。

・OS種別ではなく利用しているAMI毎にインスタンスとの互換性は確認しましょう。


さて、今回はCentOS7に関するトラブルです。
当社のAWS導入支援サービスをご利用頂いているお客様(以降、A社様)からEC2インスタンスのスペックアップのご相談を頂き、折角なら単価も変わらないので最新のC6iインスタンスへの変更をご提案したものの変更できなかったという失敗談です。

私は昨年(2022年)、別のお客様(以降、B社様)でCentOS 7のEC2インスタンスを旧世代のC4インスタンスから最新のC6iインスタンスに変更する対応を実施した経験があり、構築済みのAMIを最新のインスタンスに変更するだけで大きなパフォーマンスアップが実現できる仮想サーバーの有難さを再認識していました。

そこで、同じCentOS 7を旧世代のC4インスタンスでご利用のA社様からご相談を頂いた際も迷わず最新のC6iインスタンスをご提案し、A社様も「同じCentOS 7を利用している他社ですでに実績があるのなら安心」とご了承頂きました。

早速、作業日を調整してEC2インスタンスを停止し、インスタンスタイプを変更しようとしたところ以下のようなエラーとなり変更に失敗しました。
(スクリーンショットは検証環境で再現したものです。)

エラーメッセージ内容は以下です。

インスタンス i-0861f7dffdd219dd7 のインスタンスタイプの変更に失敗しました。
The instance configuration for this AWS Marketplace product is not supported. Please see the AWS Marketplace site for more information about supported instance types, regions, and operating systems.

「このAWS Marketplace製品のインスタンス構成はサポート対象外です。サポートされるインスタンスタイプ、リージョン、OSの詳細については、AWS Marketplaceのサイトを参照してください。」

B社様では変更できたのになんで????正直、頭を抱えて大混乱しました。

しかし、こういう時に比較対象があるのは大変ありがたいことです。

早速A社様とB社様のEC2インスタンスの詳細を見比べてみると、どちらもAWS Marketplaceから取得したCentOS7の公式AMIからデプロイしたはずですが、AMI 名が随分違っています。

A社様:CentOS Linux 7 x86_64 HVM EBS ENA 2002_01-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-0042af67f8e4dcc20.4

B社様:CentOS-7-2111-20220825_1.x86_64-d9a3032a-921c-4c6d-b150-bde168105e42

具体的にそれぞれ AWS Marketplace > サブスクリプションの管理から確認してみると確かに微妙に違います。

◆A社様:
CentOS 7 (x86_64) - with Updates HVM
By: CentOS.org
Latest Version: 2002_01
最終更新日:2020/3/16

◆B社様:
CentOS 7 (x86_64) - with Updates HVM
By: Amazon Web Services
Latest Version: CentOS-7.2009-20220825.1
最終更新日:2022/8/26

どちらもCentOS7ですが、提供元がA社様はCentOS.orgでB社様はAWSになっており、最新バージョンの表記も違っています。

そして肝心のインスタンスタイプサポートを確認すると確かに違いがあります。

ざっと比較したところCentOS.org提供のAMIでは以下のインスタンスタイプがサポートされていません(2023年1月17日現在:東京リージョンの場合)

C5a インスタンス 第 2 世代 3.3GHz AMD EPYC 7002 シリーズプロセッサを搭載したコンピューティング最適化インスタンス
C6i インスタンス 第 3 世代インテル Xeon スケーラブルプロセッサを搭載したコンピューティング最適化インスタンス
D3 インスタンス 高密度ストレージインスタンス
G3/G3s インスタンス NVIDIA Tesla M60 GPU を搭載した GPU グラフィックインスタンス
G5 インスタンス グラフィック集約型アプリケーションや機械学習の推論のための高性能 GPU ベースインスタンス
Inf1 インスタンス 機械学習推論チップ AWS Inferentiaを搭載した高パフォーマンスかつ低コストなML推論インスタンス
M5zn インスタンス 汎用ワークロード向けのバランスの取れたインスタンスであるM5 ファミリーの最新製品
M6i/M6id インスタンス 第 3 世代インテル Xeon スケーラブルプロセッサを搭載した汎用インスタンス

R6i/R6id インスタンス

第 3 世代インテル Xeon スケーラブルプロセッサを搭載したメモリ最適化インスタンス
VT1 インスタンス ライブ ビデオ ストリームの低コスト トランスコーディング用にメディア アクセラレータ カードを搭載したインスタンス

上記の他、一部のHigh Memory インスタンス(u-6tb1、u-9tb1、u-12tb1)や特定のインスタンス(G4dn、M5n/M5dn、R5b、R5n/R5dn)の.metal サイズがサポートされていません。
詳細には追えていませんが概ね2021年以降に追加された新し目のインスタンスタイプや特殊な用途のインスタンスタイプがサポートされていないように見えます。
逆に言えば、AWS提供のAMIでは上記のようなインスタンスタイプにも対応しています。

そうです。A社様は2021年以前からAWSをご利用に頂いていたのでCentOS.org提供のAMIで構築しており、B社様は2022年に構築したのでAWS提供のAMIで構築していたため、インスタンスタイプのサポート内容に違いがあったということです。

A社様には確認漏れをお詫びし、CentOS.org提供のAMIでもサポートされているC5インスタンスへ変更することで改めてご了承を頂き、無事インスタンスタイプの変更を完了させました。


◆今回のトラブルから学んだこと

・AWS Marketplaceに登録されているCentOS 7のAMIは複数ある。

・AMIによってサポートされるEC2インスタンスタイプに違いがある。

・OS種別ではなく利用しているAMI毎にインスタンスとの互換性は確認しましょう。


今回C5とC6のインスタンスタイプでは性能が向上している以外の単価などに大きな違いが無かったため、結果的にはお客様からもお許し頂けましたが要件によってはもっと大きな問題に発展した可能性もあります。
基本に忠実にきちんと実機を確認して準備することの大切さを再認識する機会にもなりました。

お客様のご要望にお応えすることは当然ですが、その実装や運用が本当に最善であったか常に自身に問いかけ、より良いソリューションを提供できるよう心がけていきたいと思っています。

なお、表示される内容は利用状況やAWSの仕様変更ににより変化しますのでご注意ください。