年三日坊主の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
どちらも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の仕様変更ににより変化しますのでご注意ください。