Amazon EC2インスタンスのMファミリーとTファミリーを使い分ける!
本記事ではAmazon Web Services(以下AWS)の最も基本的なコンピューティングサービスである Amazon Elastic Compute Cloud (以下 EC2) のインスタンスタイプについて解説します。
EC2を運用している方、これからEC2を使う方には必見の記事です。
ぜひ最後までお付き合いください。
Amazon EC2の概要
Amazon EC2は、AWSの仮想サーバ提供サービスです。物理サーバを自前で用意しなくとも、クラウドを介してサーバ環境を確保できるため、環境構築の負担削減に活躍します。
また、これに付随する機能もクラウド環境で提供されるのが特徴です。仮想ファイアウォールであるセキュリティグループや、公開鍵暗号方式で管理できるログイン管理機能など、安全な仮想サーバ運用に必要なツールを簡単に導入することができます。
インスタンスタイプとは
Amazon EC2を理解する上で重要な概念となるのが、インスタンスです。インスタンスとはEC2 で稼働する仮想サーバそのもの、あるいは仮想サーバを数える際の単位として知られています。インスタンスは現在かかっている負荷に応じた、オートスケーリングも行えるため、常に潤沢な環境を維持できる能力も備えているのがポイントです。
また、インスタンスは実装するCPUやメモリのセットアップに応じて、異なる種類のものが用意されています。これをインスタンスタイプと呼び、自社の必要スペックに合わせたインスタンスタイプを選ぶことで、インスタンスのポテンシャルを最大限引き出すことが可能です。
インスタンスタイプは、以下のように表現されています。その読み方を理解しておくと、瞬時にスペックを判断可能です。
インスタンスタイプ: Amazon EC2(AWS公式サイト)
基本的にはM,Tファミリーのインスタンスを使うことが多いと思います。そのため、今回はM,Tファミリーに焦点を当てて紹介したいと思います。
MファミリーとTファミリー
M,Tファミリーは一般用途向けの汎用インスタンスで、CPU、メモリ、ネットワークなどがバランスよく利用可能なインスタンスです。
検証用途や新規サービスを動かすときや何を使うか悩んだときには、基本的にM,Tファミリーから使うとよいと思います。ではMファミリーとTファミリーにはどのような違いがあるのでしょうか?
2.1 CPUクレジット
Tファミリーにおける最大の特徴となるのがCPUクレジットです。Mファミリーとは違い、Tファミリーではベースラインと呼ばれる予め決められたCPU使用率が定義されています。CPUクレジットについては以下の図を参照ください。
インスタンスに設定されたベースラインを上回った場合にCPUクレジットが消費され、ベースラインを下回った場合にCPUクレジットが消費されます。CPUクレジットが枯渇した場合は以下のような挙動となります。
2.2 費用
2.1で紹介したようにTファミリーは、平均ではベースラインまでのパフォーマンスしか出すことができません。
そのため、常に100%のCPUが使用ができるMファミリーに比べて安く設定されています。
費用は t3.largeが$0.1088/時、m5.largeが$0.124/時間(2024年7月10日時点)とされており、これを1か月(730時間)分に換算すると以下のようになります。
インスタンスタイプ | ドル換算 (月次) | 円換算 (月次) |
t3.large | $79.42/月 | 12,468円/月 |
m5.large | $90.52/月 | 14,211円/月 |
※1USD = 157円で計算しています
※CPU、メモリが同じ条件(vCPU:2、メモリ:8GiB)のインスタンスサイズを一例にとって比較しています
※以下条件の1台あたりのオンデマンド費用で比較しています
- リージョン:東京(ap-northeast-1)、OS:Linux、テナンシー:共有
2.3 インスタンスサイズ
MファミリーとTファミリーとでは利用可能なインスタンスサイズに違いがあります。
TファミリーのT3インスタンスの場合はnano ~ 2xlargeまでが利用可能です。
対してMファミリーのM5インスタンスはlarge ~ 24xlargeまでが利用可能となっています。そのためMファミリーは安価なインスタンスが存在せず、Tファミリーはハイスペックなインスタンスが存在しません。
2.4 インスタンスストア
インスタンスストアはEC2に物理的にアタッチされる一時ストレージです。比較対象として挙げられるものとしてAmazon Elastic Block Store(以下EBS)があります。
EBSはネットワーク経由でアタッチされる永続ストレージになります。インスタンスストアはEBSと異なり物理的な接続のため高いIOPSが実現可能です。そんなインスタンスストアはMファミリーではサポートされており、Tファミリーではサポートされていません。
MファミリーとTファミリーの使い分けについて
ここまで紹介した内容をもとに、どういった基準でMファミリーとTファミリーを使い分けるのかについてまとめます。
一点だけ注意点として、MファミリーとTファミリーの使い分けに関して厳密に定義できるものではないので、その点だけご認識お願いします。
使い分け1: vCPU 2 メモリ 8GiB 以上のコンピューティングリソースが定常的に必要である
→ Mファミリーを使用する
Mファミリーはとにかく汎用性に優れたインスタンスファミリーであることが特徴です。特定の分野に特化している必要がない場合のセットアップのため、幅広い用途で使用したい場合はMファミリーが良いでしょう。
使い分け2: 検証用途で費用を抑えてサーバを使いたい
→ t3.nano ~ t3.smallをバーストパフォーマンス スタンダードモードで使用する
Tファミリーの特徴は、費用対効果に優れたインスタンスである点です。特別お金をかける理由がない場合、こちらを使用することで長期的な運用を支えてくれるでしょう。
使い分け3: インスタンスの100%の性能を常に保証したい
→ MファミリーまたはTファミリーをバーストパフォーマンス Unlimitedモードで使用する
インスタンス性能を重視する場合、バーストパフォーマンス Unlimitedモードでの運用をおすすめします。必要な期間の間、常に高いCPU利用率を確保できるので、生産性が低下する心配がありません。
使い分け4: 平常時はほとんど負荷がかからないが、瞬間的に負荷がかかることがある
→ Tファミリーを使用する
平常時と最大出力が必要なシーンの間でのギャップが大きい場合、安価なTファミリーがおすすめです。ただ、同シリーズはインスタンスサイズが2xlargeまでしかないため、スペック要件を満たせているかを確認してから使いましょう。
使い分け5: インスタンスストアを使いたい
→ Mファミリーを使用する
インスタンスストアとは、一時的にバッファやキャッシュ、スクラッチデータの保管が行えるブロックレベルストレージです。Mファミリーを使用し、リソースの確保の余白をまかなえます。
その他のインスタンスタイプを使用すべきシーン
Rインスタンスは、メモリ最適化に適していると言われるインスタンスタイプです。メモリ内での処理が大きい場合には、Rから始まるインスタンスを導入して、負担軽減を試してみましょう。
PインスタンスやGインスタンスは、高速処理に強みを持つインスタンスタイプです。負荷の大きなグラフィック処理などを任せたい場合、導入を検討することをおすすめします。
最後に
今回は、AWSのEC2インスタンスにおけるMファミリーとTファミリーの使い分けについて紹介しました。複数のインスタンスタイプをそれぞれ使い分けられるようになると、より生産的で、コストパフォーマンスに優れたAWS運用につながります。使い分けについて悩んでいる方は、本記事で紹介した内容をぜひ参考にしてください。
今までなんとなくt2.microを使っていた方も、これからはその違いを意識していただけたら嬉しいです。