EC2 インスタンスタイプをおさらいする
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
いつも、どのインスタンスにすれば良いかで悩んで、結局 T 系のインスタンスに落ち着きます。ちゃんと利用用途を考えて、適切なインスタンスを選択するべきです。
今日は、みんな大好き EC2 のインスタンスタイプをおさらいしようと思います。
インスタンスタイプについて
汎用
汎用インスタンスは、バランスの取れたコンピューティング、メモリ、ネットワークのリソースを提供し、多様なワークロードに使用できます。汎用インスタンスは、ウェブサーバーやコードリポジトリなど、インスタンスのリソースを同じ割合で使用するアプリケーションに最適です。
大抵なんにでも使える。
T 系インスタンス
安価だけれども若干癖があって、ユースケースによっては利用を控えた方が良い。
インスタンス稼働中に CPU クレジット値が蓄積され、CPU 使用率が一定以上必要となると、蓄積された CPU クレジットを消化して高 CPU パフォーマンスを発揮する。インスタンスを停止させるとクレジットがリセットされてしまうため、注意が必要。
M 系インスタンス
バランスがいい。AWS も、「バランスの取れたコンピューティング性能、メモリ、およびネットワーキングリソースを提供します」と言っている通り、どうしても T 系でないとダメだ、というとき以外は、こちらを選択。
A 系インスタンス
Arm Neoverse コアを搭載したカスタムビルドの AWS Graviton プロセッサ。安くてハイパフォーマンスだけれど、ある程度のサイズ以上の M 系と比較して、の話かもしれない。
Mac インスタンス
macOS ワークロードを実行することができるようになるインスタンス。占有インスタンスのみで、1 秒単位の課金となる。1 時間の利用で 1.399 USD なので、1 か月利用すると約 1,021 USD となり、142,940 円。M1 チップ搭載の MacBook Air が買えてしまう。( 140 円/ドル・円安で・・・)
コンピューティング最適化
コンピューティング最適化インスタンスは、高パフォーマンスプロセッサの恩恵を受けるコンピューティングバウンドなアプリケーションに最適です。このファミリーに属するインスタンスは、バッチ処理ワークロード、メディアトランスコード、高性能ウェブサーバー、ハイパフォーマンスウェブサーバー、ハイパフォーマンスコンピューティング (HPC)、科学モデリング、専用ゲームサーバーおよび広告サーバーエンジン、機械学習推論などのコンピューティング集約型アプリケーションに最適です。
高性能 CPU と引き換えに、搭載メモリサイズが下げられたインスタンス。CPU 負荷が高いワークロード向き。
C 系インスタンス
メモリ最適化
メモリ最適化インスタンスは、メモリ内の大きいデータセットを処理するワークロードに対して高速なパフォーマンスを実現するように設計されています。
搭載メモリサイズを増やしたインスタンス。メモリ容量を大きく必要とするワークロード向き。
R 系・X 系・ハイメモリ・Z 系
高速コンピューティング
高速コンピューティングインスタンスでは、ハードウェアアクセラレーター (コプロセッサ) を使用して、浮動小数点計算、グラフィックス処理、データパターン照合などの機能を、CPU で実行中のソフトウェアよりも効率的に実行します。
P 系・DL 系・Trn 系・Inf 系・G 系・F 系・VT 系
ストレージ最適化
ストレージ最適化インスタンスは、ローカルストレージの大規模データセットに対する高いシーケンシャル読み取りおよび書き込みアクセスを必要とするワークロード用に設計されています。ストレージ最適化インスタンスは、数万 IOPS もの低レイテンシーなランダム I/O オペレーションをアプリケーションに提供するように最適化されています。
インスタンスに物理的に接続されているインスタンスストアが標準利用可能になっている。高い IO 性能が必要なワークロード向き。
Im 系・Is 系・I 系・D 系・H 系
インスタンスの世代について
数字が大きい方が新しい。
T2 よりも T3、C4 よりも C5、C6g よりも C7g の方が新しい。
数字の後ろの文字については、次の項目「3. インスタンスの機能について」で説明します。
基本的に新しい世代の方が高性能で安価となっているため、特別な理由がない限り、最新世代を使った方が良い。
特別な理由・・・
本番環境の旧世代インスタンスをどうしても新世代インスタンスに変更することが出来ず、検証のために、まったく同じ検証環境を作成する必要がある、とか。本番環境を新しい世代に変更することを考えた方がいいと思うけれど。
インスタンスの機能について
数字の後ろについている英字が、インスタンスの追加機能を表します。
英字 | 説明 |
---|---|
a | CPU が AMD 製 |
b | EBS パフォーマンスが高い |
d | NVMe ベースのローカル SSD ストレージを追加 |
e | メモリ搭載量が増強 |
g | CPU が AWS Graviton2 |
n | ネットワーク幅が増強 |
z | 高周波コアが搭載 |
インスタンスのサイズについて
インスタンスを表す文字列のドット「.」以降が、インスタンスのサイズです。
nano → micro → medium → small → large → xlarge → 数字xlarge → ・・・
すべてのインスタンスタイプにすべてのインスタンスサイズがあるわけではありません。
インスタンスサイズが大きくなると、vCPU やメモリが増えていきます。他にも、NW 帯域幅や EBS 帯域幅がインスタンスサイズによって設定されているため、ワークロードに合ったインスタンスサイズを選択する必要があります。
インスタンスサイズが大きくなると、時間当たりの料金単価が大きくなります。
インスタンスは何を選べば良いのか
真面目な話、汎用タイプである M 系を基準に考えます。あとは、検証結果を見て、インスタンスタイプの変更を考えます。コストを抑えるという観点から、出来る限りスモールスタート。インスタンスタイプの変更が簡単にできるという AWS のメリットを活かすべきです。
おわりに
対応する案件が偏ってくるため、T 系、M 系ばかり利用しています。この機会に、おさらいできて良かったと思います。
見積もりや稟議の関係で、どうしても机上の計算だけでインスタンスタイプを選択することが多いです。変動料金であることへの理解を浸透させる必要があると思います。AWS クラウドプラクティショナーの学習範囲にありますね。
今後も、AWS に関する自己学習記録を実際に AWS を利用しながら発信したいと思います。
よろしくお願いいたします。
ディスカッション
コメント一覧
まだ、コメントがありません