NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

注目のタグ

    EC2のインスタンスタイプの表記 2023年度版

     こんにちは佐々木です。 AWSのEC2のインスタンスタイプを見ていたついでに、表記方法をまとめてみました。アルファベットと数字の組み合わせでビビっている人の救いになれば幸いです。

    インスタイプの表記

     まずインスタンスタイプの表記の構造についてです。

     インスタンスタイプは、インスタンスファミリー、世代、属性とサイズの組み合わせで一意に表現されます。

    インスタンスの分類とインスタンスファミリー

     インスタンスの種類は用途に応じて分類されます。インスタンス選びの際は、まずは用途に応じたカテゴリをみるとよいです。それも解らないよという方は、まずは一般用途向けをみると良いです。

    • 一般用途向け
    • コンピューティング最適化
    • メモリ最適化
    • 高速コンピューティング
    • ストレージ最適化
    • HPC 最適化

     分類された上で、更に細分化されています。これがインスタンスファミリーです。例えば、一般用途向けでは、次のようなインスタンスファミリーがあります。

    インスタンスファミリー 概要
    m 一番オーソドックスな構成のファミリー。
    最初のEC2インスタンスは、M1.smallだった
    t バースト可能なCPU。。
    もともとTiny(小さな)という意味でパワーとコストを抑えたファミリー
    a ArmベースのAWS Graviton プロセッサを搭載
    mac Macが利用できる唯一のインスタンス

     一般用途向けだけでも、4種類あります。ここで検討すべきは、基本的にはmとtです。EC2インスタンスは、m1.smallから始まっています。つまり一番ベーシックな型です。これに対して、CPUに多くのリソースを振っているのが、コンピューティング最適化で具体的なインスタンスファミリーとしては「c」などがあります。また、メモリを多く積んでいるのがメモリ最適化で、「r」など幾つかの種類があります。なので、ベーシックなのがmと覚えておきましょう。
     次に「t」タイプです。これは、開発環境用途なのでできるだけリソースは小さくてもよいので、できるだけコストをおさえて使いたいという用途に応じる形ででてきたのだと思います。その際に、一定期間だけCPUがバーストするという特徴を持たせたので、全インスタンスファミリーのなかで、かなり特異な位置づけになりました。使いこなすと開発環境だけに留めるにはもったいない特性をもっています。これについては、どこか別の機会で話したいですね。

    世代

     インスタンスファミリーの後に続く数字が、世代です。たとえばm7g.largeの場合、インスタンスファミリー「m」の7世代目のインスタンスを意味します。また新しいインスタンスファミリーが登場した場合は、1から始まります。9の次がそのまま10になるか、違う表記になるか、密かにドキドキしています。

    属性の表記

     最近のインスタンスでは、ほぼ必ずついているのが属性です。代表的な属性は以下のとおりです。

    カテゴリ 表記 概要
    プロセッサー種別 i インテル プロセサー
    プロセッサー種別 g Graviton プロセサー
    プロセッサー種別 a AMD プロセサー
    ネットワーク拡張 n ネットワーク帯域幅が大きい

     実は、これ以外にもいくつかの属性があります。ただ命名規則に一貫性を維持しきれていないケースも見受けられます。例えば、R7izなどはizは第 4 世代のインテル Xeon スケーラブルプロセッサを表しているとおもわれます。一方で、比較的早い段階でXeonスケーラブルプロセッサを搭載していたX1eなどはiが付かずにeのみで表記。次の世代では、X2iednなどieで表現するなどしています。取りうるオプションが増えているなかで、この対応は仕方がないと思います。そのため属性については見れば解るというものではなく、属性により一意性をつけているもの程度で捉えておけばよいと思います。

    インスタンスサイズ

     インスタンスサイズは、ドットの後にでてくるサイズ表記の英単語+倍率で表されます。

    インスタンスサイズ 概要
    nano 最小のインスタンスサイズ。tファミリーにのみ存在
    micro tファミリーにのみ存在
    small 最近はtファミリーにのみ存在
    medium 最近はmediumからスタートすることが増えてきた
    large この辺りが標準的に利用されることが多い
    xlarge largeの2倍がxlarge
    2xlarge 以降、xlargeに対して何倍かを数字で表現
    metal ベアメタルインスタンス。ホストを専有

     ここで重要なのが、同一インスタンスファミリー内の同一世代のみで比較できるという点です。m7ファミリーとm6ファミリーの比較を例に考えていきましょう。

    サイズ m7gスペック m7g費用 m6gスペック m6g費用
    medium 1vCPU 4GiBメモリ 0.0408 USD/時 1vCPU 4GiBメモリ 0.0385 USD/時
    large 2vCPU 8GiBメモリ 0.0816 USD/時 2vCPU 8GiBメモリ 0.077 USD/時
    xlarge 4vCPU 16GiBメモリ 0.1632 USD/時 4vCPU 16GiBメモリ 0.154 USD/時
    2xlarge 8vCPU 32GiBメモリ 0.3264 USD/時 8vCPU 32GiBメモリ 0.308 USD/時

    ※バージニア北部リージョンのオンデマンド利用/Linuxでの価格例

     表を見ていただくとわかるように、サイズがあがると、性能・費用とも倍々になっていきます。これは、インスタンス共通のルールです。その上で、m7gとm6gを較べてみて、vCPUのサイズが同じだから性能も同じとはならないことに注意してください。同一世代で同一CPUの場合は性能も同じになることもありますが、今回のm7gとm6gの比較ではベースとなるCPUがGraviton3とGraviton2と違っています。そのため、搭載しているvCPUの数が同じでも同一の性能にはなりません。

    まとめ

     インスタンスタイプの表記は、読み方がわかればシンプルです。今回調査した目的である属性の表記方法については、いろいろ調べてみたもののやっぱり規則性が解らないところが残りました。世代によって使われ方が変わっているものもあるので、あまり気にしないでもいいんじゃないかと思います。基本的な読み方をマスターした上で、属性については時代の変化を感じる程度でお気軽に捉えると良いと思います。

    執筆者 佐々木拓郎

    Japan AWS Ambassadors
    ワイン飲みながら技術書を書くのが趣味なおじさんです

    Twitter:https://twitter.com/dkfj

    Facebook:https://www.facebook.com/takuro.sasaki

    個人ブログ:https://blog.takuros.net/

    Amazon著者ページ:Amazon.co.jp:佐々木 拓郎:作品一覧、著者略歴

    Booth:https://takuros.booth.pm/

    コーポレートサイト:https://www.nri-net.com/

    ソリューションサイト:https://cloud.nri-net.com/