EC2インスタンスタイプについて調べてみた
背景
アドテク企業でエンジニアをしております。
業務で使用する配信サーバーがECS on EC2を採用しており、
サーバー原価を出せ!という会社からの指示により
EC2について何となく理解した気になっていた僕はそういえば原価って
どう出すんだろうという素朴な疑問にぶち当ったので
まずは初心に戻ってEC2のインスタンスタイプについて頑張って調べてみました。
EC2インスタンスとは
- 数分で起動し、1時間または秒単位の従量課金
- サーバーの追加/削除/マシンスペックの変更も数分で可能
リージョン
- 任意のリージョンとアベイラビリティーゾーンを選択できる
- リージョンによって選択できるインスタンスの種類並びに価格が異なる
プロセッサ(CPU)とは?
プロセッサは、コンピュータやスマートフォンなどのデバイスで、命令を実行してプログラムを動かす「脳」のようなものです。文章を書いたり、ゲームをしたり、動画を見たりするとき、プロセッサがその背後で計算やデータ処理をしています。プロセッサは、速さや処理能力が異なるいくつかの種類があります。例えば、IntelやAMD、そしてAWSが開発したGravitonなどがあります。
ex)
- intel
- amd
- arm
アーキテクチャとは?
アーキテクチャは、プロセッサがどのように構築され、動作するかの「設計図」のようなものです。これは、プロセッサが理解できる言語や、どのように命令を処理するかのルールを定めます。よく聞くx86やARMといった言葉は、プロセッサのアーキテクチャの種類を指しています。x86は主にパソコンに使われ、ARMは省エネ性が高いためスマートフォンやタブレットによく使われます。
アクセラレータとは?
アクセラレータは、特定のタスクをとても速く処理するために設計された特別なプロセッサです。例えば、動画をきれいに表示するためのGPU(グラフィックス処理装置)、または人工知能の計算を速くするための専用チップなどがあります。これらは、一般的なプロセッサが行うよりも、特定の仕事をずっと速く、効率的に行うことができます。
ex)
- nvidia
- xilinx
幅広くも深いEC2プラットフォームの選択肢
2019年6月時点で170種類以上のインスタンスタイプが存在する
ネーミングから内容を理解
インスタンスタイプ
(ネーミング法則)
[インスタンスファミリー][インスタンス世代][追加機能オプション].[インスタンスサイズ]
c5d.xlarge
(インスタンスファミリー)
c
(インスタンス世代)
5
(追加機能オプション)
d
(インスタンスサイズ)
xlarge
インスタンスファミリー
汎用インスタンスファミリー
- T3/T3a: 低コストでバースト性能を提供するインスタンス。汎用的なワークロードや小規模なアプリケーションに適している。
- M5/M5a: バランスの取れたCPU、メモリ、ネットワーキングリソースを提供。多種多様なワークロードに適している。
- A1: ARMベースのAWS Gravitonプロセッサを使用しており、コスト効率が高いのが特徴。
コンピューティング最適化インスタンスファミリー
- C5/C5n: 高いCPU性能を求めるワークロードに最適。大規模なビルドや科学的モデリングなどに適している。
EC2インスタンス世代
世代が進むにつれて数字が大きくなるため、極力最新世代のインスタンス利用が推奨されている
カテゴリ | インスタンスファミリー | 最新世代インスタンス | 前世代インスタンス |
---|---|---|---|
汎用 | A | A1 | - |
T | T3, T3a, T2 | T1 | |
M | M5, M5a, M4 | M3, M2, M1 | |
R | R5, R5a, R4 | R3, CR1 | |
メモリ最適化 | X | X1, X1e | - |
Z | Z1d | - | |
コンピューティング最適化 | C | C5, C5n, C4 | C3, CC2, C1 |
P | P3, P2 | - | |
G | G3 | G2 | |
F | F1 | - | |
H | H1 | - | |
ストレージ最適化 | I | I3 | I2 |
D | D2 | HS1 |
EC2インスタンス追加機能のオプション表記
EC2インスタンスの追加機能は、インスタンスタイプ名の一部として表現され、それぞれがインスタンスに特定の機能や能力を付与します。以下は、一般的な追加機能のオプション表記です:
-
d: インスタンスストアに直接アタッチされたNVMeストレージが搭載されていることを表す(例:
c5d
)。 -
n: ネットワーク最適化が施されており、より高い帯域幅とパフォーマンスを提供する(例:
c5n
)。 -
g: GPUが搭載されており、グラフィック処理や汎用計算用途に適している(例:
g4dn
)。 -
a: AWS Gravitonプロセッサ(ARMベース)を搭載しており、コスト効率とパフォーマンスを提供する(例:
m6g
)。 -
e: 高メモリ最適化(例:
r5e
)。 -
o: 高I/O性能(例:
io1
)。 -
p: インスタンスがSAPアプリケーションの認定を受けていることを示す(例:
x1e
)。 -
i: 高I/O NVMeストレージ(例:
i3en
)。 -
z: 高周波数CPUと高メモリ最適化(例:
z1d
)。 -
u: 超高メモリ(例:
u-12tb1.metal
)。
インスタンスサイズ
CPU、メモリ、ネットワークのキャパシティによって、イン
スタンスサイズが分類されている。アプリケーションが必要
とするリソース量に合わせて選択する。
インスタンスサイズは次のようなネーミング順で大きくなる
nano→ micro→ small→ medium→ large→ xlarge→ 2xlarge→ 4xlarge…
CPU
CPUは、コンピューターの「脳」のようなものです。計算をしたり、プログラムの指示に従ってタスクを実行したりします。インスタンスサイズが大きくなるほど、CPUのコア数が多くなったり、速度が速くなったりして、より多くの仕事を同時に、または迅速に処理できるようになります。
メモリ(RAM)
メモリは、コンピューターが現在進行中の作業を一時的に保存する場所です。たとえば、文書を作成しているときには、その内容はメモリに保存されます。インスタンスサイズが大きいほど、より多くのメモリを持ち、より多くの情報を同時に処理できるようになります。
ネットワークキャパシティ
ネットワークキャパシティは、データをインターネット上でどれだけ速くやり取りできるかを示します。インスタンスサイズが大きいほど、データを高速に送受信できるため、ウェブサイトの読み込みが速くなったり、オンラインゲームがスムーズになったりします。
インスタンスサイズの選び方
インスタンスを選ぶときは、アプリケーションがどのくらいのCPU、メモリ、ネットワークキャパシティを必要とするかを考慮します。例えば、動画を編集するソフトウェアは多くのCPUとメモリを必要としますが、ウェブサイトを表示するだけであれば、それほど多くは必要ありません。必要以上に大きなインスタンスを選ぶとコストが高くなるため、必要なリソースを正確に評価して、最もコスト効率の良いインスタンスサイズを選ぶことが大切です。
Discussion