EC2 インスタンスを利用するときに、どのインスタンスファミリーを利用するか、いつも考えることを整理しました。
目次
世代は新しいものを検討する
EC2 インスタンスは、新しい世代のものほど性能が高くなり、価格が安くなる傾向があります。このため、基本的には新しい世代のインスタンスファミリーを最初に検討します。ただし、m6.large から m7.large のように、同一のサイズで比較すると料金アップとなっている例もありますので、性能の違いと価格差を確認して総合的に判断してください。
Intel の CPU を基本に考える
EC2 の CPU は 2024 年 10 月現在で、3 種類あります。
- Intel
- m7i, c7i, r7i など後ろに i がつくもの
- t3 シリーズ
- AMD
- m7a, c7a, r7a など後ろに a がつくもの
- Arm
- m7g など後ろに g がつくもの
通常のサーバー用途であれば、m7i, m7i, m7i, t3 など、Intel の CPU を選ぶと予期せぬトラブルに遭遇しづらいです。まずは Intel を基準に考えます。
Intel CPU と AMD CPU は互換性があるので、m7i で動作するアプリケーションは m7a でも動作します。m7i, m7a など同じサイズ同士なら AMD の方が安価な傾向にありますが、Intel と AMD は性能が異なるため、性能試験をしてから選択をするか、本番環境でそれぞれの CPU で運用してみて性能を評価しながら調整することをおすすめします。
m7g, c7g など g で終わるものは Arm CPU を利用しています。Arm CPU は高性能ですが、x86_64 環境向けのアプリケーションは動作しないため、利用の際はよく検証をすることをおすすめします。アプリケーションが依存するツールなど、思わぬところで動作しないアプリケーションに遭遇することがあります。また、サービス開始当初は問題がなくても、その後のサービス拡張時に問題が発生するリスクがあります。
t シリーズはバーストするために奥が深い
t シリーズは m, c, r シリーズと比べて CPU あたりの単価は安いものの、バーストをするために奥が深いです。その特徴に適した環境で利用するのが良いでしょう。
t シリーズは CPU 使用率にベースラインレベルが定義されており、そのレベルを超えて CPU 使用率をバーストさせることができます。バーストするときに「CPU クレジット」を消費します。CPU クレジットが無くなるとベースラインレベルで動作するため、CPU クレジットが無くならない範囲の用途で利用するのがおすすめです。「CPU クレジット」について詳細は バーストパフォーマンスインスタンスに関する主要な概念 - Amazon Elastic Compute Cloud を参照してください。
経験として t シリーズが推奨される用途は以下のとおりです。いずれも CPU クレジットの範囲内で処理しきれる場合に利用すると良いでしょう。
- 踏み台サーバー
- バッチサーバー
- 開発環境
- 常時利用されず、たまに利用されることがある環境
t3 シリーズは CPU の数が多くなると、c6i シリーズより CPU あたりの金額が高額になることがあります。安価であるという先入観は捨てましょう。
ネットワークパフォーマンスの制限
続きます。