CPUオプションを設定したEC2のインスタンスタイプを変更するとvCPU数はどうなるか確認してみた
はじめに
かつまたです。
EC2を運用していると、ワークロードの変化に応じてインスタンスタイプを変更する必要が生じることがあります。
CPUをカスタマイズしている場合、インスタンスタイプ変更後のvCPU数がどうなるのか気になることはありませんか?
今回は、CPUオプションを適用したEC2のインスタンスタイプを変更した際のvCPU数の挙動について検証してみました。
EC2のCPUオプションとは
EC2のCPUオプション機能は、インスタンスのvCPU数を必要に応じて調整できる機能です。
デフォルトのvCPU数よりも少ない数を指定することで、コア当たりのCPUオプションを設定し、特定のワークロードに合わせてパフォーマンスを最適化できます。また、ライセンスコストの削減にも役立ちます。
CPUオプションが可能なインスタンスタイプは以下のAWS公式ドキュメントに記載されています。
🧪 やってみた
本ブログではm7i.xlargeインスタンスタイプからm7i-flex.xlargeインスタンスタイプへの変更を実施しました。
🔶 マネジメントコンソールでの変更
- インスタンス作成時にCPUをカスタマイズする
まず、インスタンス作成時にCPUオプションをカスタマイズします。デフォルトでは「デフォルトのCPUオプションを使用する」が選択されています。
m7i.xlargeとm7i-flex.xlargeのデフォルトvCPU数はともに4です。
「CPUオプションを指定」を選択し、アクティブvCPUを「1」、CPUコアあたりのスレッド数を「2」に設定しました。これにより、合計vCPU数は2となります。
- インスタンスタイプを変更する
次に、作成したインスタンスのインスタンスタイプを変更します。インスタンスを停止した後、「アクション」→「インスタンスの設定」→「インスタンスタイプを変更」を選択します。
インスタンスタイプ変更画面では、現在のインスタンスタイプ(m7i.xlarge)から新しいインスタンスタイプ(m7i-flex.xlarge)に変更します。
vCPU数の変更も実施できます。特に操作を行わなければカスタマイズ設定のまま変更がされます。
- インスタンスタイプ変更後のvCPU数確認
インスタンス詳細画面でも「vCPUの数」が「2」と表示されており、カスタマイズした設定が保持されていることが確認できます。
🖥️CLIでの変更
マネジメントコンソールで操作した場合と、AWS CLIを使用してインスタンスタイプを変更した場合では挙動が異なります。
aws ec2 modify-instance-attribute --instance-id インスタンスID --instance-type 変更先インスタンスタイプ
CLIでインスタンスタイプを変更すると、vCPU数はデフォルト値に戻ります。つまり、カスタマイズした設定は維持されません。
まとめ
-
マネジメントコンソールでの変更
変更先インスタンスタイプがCPUオプションをサポートしており、かつ事前にカスタマイズしていたvCPU数をサポートしている場合、カスタマイズ設定はそのまま維持されます。
必要に応じて手動でCPUオプションを再設定することも可能です。 -
AWS CLIでの変更
vCPU数はデフォルト値に戻ります。
カスタマイズ設定を維持したい場合は、インスタンスタイプ変更後に再度CPUオプションを設定する必要があります。
インスタンスタイプを変更する際は、これらの挙動の違いを理解し、適切な方法を選択することが重要です。特にライセンスコストに影響するワークロードでは、vCPU数の変化に注意が必要です。
ご覧いただきありがとうございました。
参考資料
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。