EC2の仮想化方式についてのおぼえがき

先にまとめ

  • AMI(Amazon Machine Image)の仮想化方式は、準仮想化 (PV) およびハードウェア仮想マシン (HVM) の2種類
  • 現在はHVMを推奨している
    • 公式曰く: 最適なパフォーマンスを得るために、インスタンスを起動するときには、現行世代のインスタンスタイプと HVM AMI を使用することをお勧めします
    • 特別なハードウェアサポート(拡張ネットワーキングや GPU 処理など)も受けられる
  • 旧世代のインスタンスタイプは、PVしかサポートしていない

仮想化方式とは?

  • EC2は、仮想化マシンモニタ Xen 上で動作している
  • Xenが、仮想マシンを作る方式には、HVMとPVの2種類の仮想化方式がある

PV (paravirtual。準仮想化)

実在のハードウェアを完全にエミュレートする代わりに、仮想マシン環境を実現するのに都合の良い仮想的なハードウェアを再定義する方式

メリット

  • 以前は、ハードウェア制御のオーバーヘッドが無いので、HVMとくらべて速度が早かった

デメリット

  • ハードウェアを仮想化しているので、特別なハードウェア拡張を利用できない
    • EC2だと拡張ネットワーキングや GPU 処理など

HVM (Hardware-assited VM。完全仮想化)

物理マシン用に用意されたOSをそのままXen上で動作させる方式

メリット

  • 物理マシンのハードウェアを利用できる

デメリット

  • 以前は、物理マシンのハードウェアを操作するためのオーバーヘッドにより、PVより遅かった
  • 現在は、オーバーヘッドが発生しやすい部分(IOなど)について、PVと同様のドライバを使うことで回避している(らしい)

参考

docs.aws.amazon.com

kanny.hateblo.jp

Xen (仮想化ソフトウェア) - Wikipedia