インスタンスの性能とはこのことです。
タイプによっては向き不向きがありますし、何より料金が変わってきます。
下線が引かれているのが上図のインスタントタイプとの対応しています。
Small Instance
m1.small $0.1/1時間
- 1.7 GB memory
1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit)
160 GB instance storage (150 GB plus 10 GB root partition)
32-bit platform
I/O Performance: Moderate
Large Instance
m1.large $0.4/1時間
- 7.5 GB memory
4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each)
850 GB instance storage (2×420 GB plus 10 GB root partition)
64-bit platform
I/O Performance: High
Extra Large Instance
m1.xlarge $0.8/1時間
- 15 GB memory
8 EC2 Compute Units (4 virtual cores with 2 EC2 Compute Units each)
1,690 GB instance storage (4×420 GB plus 10 GB root partition)
64-bit platform
I/O Performance: High
High-CPU Medium Instance
c1.medium $0.2/1時間
- 1.7 GB of memory
5 EC2 Compute Units (2 virtual cores with 2.5 EC2 Compute Units each)
350 GB of instance storage
32-bit platform
I/O Performance: Moderate
High-CPU Extra Large Instance
c1.xlarge $0.8/1時間
- 7 GB of memory
20 EC2 Compute Units (8 virtual cores with 2.5 EC2 Compute Units each)
1690 GB of instance storage
64-bit platform
I/O Performance: High
上の3つはStandard Instancesと呼ばれ通常のサーバなどの用途に向いています。
下の2つはHigh-CPU Instancesと呼ばれ複雑な計算などに向いています。
もちろんどちらをどの様に使っても問題ありません。
また、これらを組み合わせて使用するといった使い方も可能です。
1 EC2 Compute Unit というのは理論的なCPUの事です。
例えば
4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each)
と書かれている場合は、デュアルコアを2つ搭載したマシン(計4つのCPUコア)を仮想的に提供してくれます。
割り振られるのはIntel XeonやAMD Opteronだったり色々です。
自分が確認したのは
- Dual-Core AMD Opteron(tm) Processor 2218 HE
- Dual Core AMD Opteron(tm) Processor 270
- Intel(R) Xeon(R) CPU E5345 @ 2.33GHz
利用するインスタンスによって性能も替わってくるようです。
ただし、これらはあくまでもAmazonのデータセンターに入っているCPUであってこれを仮想的に分割して、大体1コア=1GHz程度の性能だと言われています。
簡単なベンチマークですを行ってみました。
Pythonで作ったもので、マルチコアの最適化なんてしていません。
数字が少ない方が性能が良いという事になります。
- 105秒 1.6GHz Pentium M 512MB
- 170秒 Small Instance
- 90秒 High-CPU Extra Large Instance
- 61秒 2.6GHz Core 2 Duo 2GB
おそらく最適化を施せばHigh-CPU Extra Large Instanceがかなりスコアを伸ばしそうです。
通常のWebサーバなどそこまでCPUに依存しない場合はSmall Instanceでも問題なさそうです。
ただ、Webサーバーとして考えるとネットワークが非常にボトルネックとなってしまいます。
1秒間に処理できるリクエストを調べる簡単なベンチマークを行ってみました。
数字が大きい方が性能が良いという事になります。
- 3.5/秒 Small Instance
- 3.9/秒 Large Instance
- 3.3/秒 High-CPU Extra Large Instance
- 3356/秒
最後は日本国内のサーバーに対して同じ実験を行いました。
約1000倍近い数字が出てしまったのがショックです。
Webサーバーとしてサービスを展開するには少々心ない数字です。
しかし、莫大なプロセッサパワーを安価に利用することが出来るので、学術計算などの用途への利用が考られるのではないでしょうか。