みなさん、こんにちは。新人のRenです。
今日はEC2インスタンスって何を選べばよいの?とう方向けに、選び方のポイントをお伝えいたします。

EC2を起動するには

EC2インスタンスをどのように選んだらよいのかを考えるとき、EC2インスタンスを状況に応じて選ぶ必要があります。インスタンス起動までの流れとしては、ざっくり以下のようになります。
① OSや名前などのAMI(マシンイメージ)を決める
② スペックを決める(インスタンスタイプ)
③ ネットワークの設定
④ ストレージの設定
⑤ 高度な詳細の設定

今日はこの②スペックを決める(インスタンスタイプ)について、詳細を解説します!

EC2インスタンスの見方、考え方

EC2インスタンスを選ぶとき、「t3.medium」や「m5.large」といった言葉が出てきます。「large」や「medium」といった言葉であれば想像できるかもしれませんが、「t3」とか「m3」って何?と思う人が多いかと思います。まずはここから学んでいきましょう。
EC2インスタンスは「インスタンスファミリー」「インスタンス世代」「インスタンスサイズ」の3つの要素で構成されています。「t3.large」を例にとってみると、「t」の部分がインスタンスファミリー、「3」の部分がインスタンス世代、インスタンスファミリーの数字は「世代」を表していて、数字が大きければ大きいほど新しいということになります。
「large」の部分がインスタンスサイズになります。
まずはインスタンスファミリーの選び方から学んでいきます。インスタンスファミリーは使用する用途によって決めるものです。インスタンスファミリーは、「汎用」「コンピューティング最適化」「メモリ最適化」「高速コンピューティング」「ストレージ最適化」の5種類に分類されています。

1) 汎用

汎用には「T3」といった様々なものがあります。汎用はバランスがとれたものなので多様なワークロードに使用することが出来ます。
T系の大きな特徴は、「バースト」できることです。負荷が少ないときに「CPUクレジット」を貯めておくと、突発的に負荷が高まったときに貯めたCPUクレジットを消費して対応できます。

次にM5系も汎用タイプとして、よくバランスが良いといわれています。
きっとお使いの方も多いと思います。M5は最新世代の汎用インスタンスです。このファミリーは、バランスの取れたコンピューティング、メモリ、およびネットワークのリソースを提供し、多くのアプリケーションに適しています。

この汎用の中でも、Amazon EC2 M6gインスタンスは、Armベースの AWS Graviton2 プロセッサを使用します。コストと性能については、現世代の M5 インスタンスよりも最大 40% 向上しており
かといって汎用だけを考えて決めてしまうとコストを無駄にしたり、スピードが足りなかったりする場合があるので、ほかのものも考えたうえで選ぶ必要があります。

2) コンピューティング最適化

コンピューティング最適化には「C7g」や「C6i」といったものがあります。これらのインスタンスは専用ゲームサーバー、ハイパフォーマンスコンピューティング (HPC)、高性能ウェブサーバーなどのコンピューティング集約型のアプリケーションに最適です。
簡単に言うと計算パフォーマンスが高いものになります。「Compute」の「C」からとっています。
C6iインスタンスは、第 3 世代のインテル Xeon スケーラブルプロセッサが搭載されています。その次に登場したC6gからはArmベースのAWS Graviton2 プロセッサを使用します。
C6gは現在の世代のC5 ンスタンスよりも最大 40% 高い料金パフォーマンスを提供します。さらに、その次の世代として、コンピューティング最適化では「Amazon EC2 C7gインスタンスが提供されています。

3) メモリ最適化

メモリ最適化には「R6a」「R5」などがあります。メモリ容量を大きく必要とするワークロードに最適です。メモリ量が多くて高速なのが特徴です。
「RAM」の「R」からとっています。
Amazon R6i インスタンスは、第 3 世代のインテル Xeon スケーラブルプロセッサ (コードネーム: Ice Lake) が搭載されており、メモリ負荷の高いワークロードに最適です。
その次に発表されたR6g インスタンスは、Arm ベースの AWS Graviton2 プロセッサを使用します。メモリ集約型アプリケーションに対して、現在の世代の R5 インスタンスよりも最大 40% 高いコストパフォーマンスを提供します。

4) 高速コンピューティング

高速コンピューティングには「P4」や「G5」などがあります。GPUが搭載されていることが特徴です。
GPUとはGraphics Processing Unitの略称で、画像処理に特化したプロセッサです。画像を描写するために必要な計算を処理します。高画質の画像、映像を表示する必要がある場合はGPUが非常に大切になります。

5) ストレージ最適化

ストレージ最適化には「Im4gn」や「Is4gen」などがあります。ストレージアクセスが速いという特徴があります。高いIO性能が必要なワークロードに最適です。IO性能とは、ハードディスクやSSDなどである条件の元で1秒間に読み込み・書き込みできる回数のことです。
「C6i」や「R6a」といったようにインスタンス世代の後ろについているアルファベットは追加機能を表しているものになります。普通のものでは機能不足であるときに利用すると便利です。

EBS最適化について

インスタンスを選ぶ際に知っておきたいものとして「EBS最適化」というものがあります。
EBS最適化とは、EC2インスタンスとEBSを繋ぐネットワークをほかのネットワークと切り分けて専用のもので繋ぐことです。そのため、他のトラフィックの影響を受けることなくアクセスすることが可能になり、性能を発揮できます。
デフォルトでEBS最適化の機能がついているものもあるので選ぶ際の参考にしてみるといいかもしれません。

EC2の料金について

EC2の料金はインスタンスの稼働時間によって課金されます。正式な価格はこちらから確認お願いします。
オンデマンドインスタンスを利用している場合は秒単位(最低60秒)で支払うことが出来ます。これにより、使った分だけ支払うので固定費ではなく変動費として運用コストを抑えることが出来ます。 また、EC2には割引の契約があります。1~3年の契約によって割引できる「リザーブドインスタンス」(1個ずつ契約)や同じく1~3年の契約で割引の「Compute Saving Plan」(まとめ割)などがあります。
上手に利用することでコストをさらに抑えることが出来るので、是非参考にしてみてください。本コラムにも掲載しています。

・リザーブドインスタンスについて→こちら
・Savings Plansについて→こちら