LoginSignup
12
8

More than 5 years have passed since last update.

AWSの仮想化

Last updated at Posted at 2018-12-13

このブログで分かることとその効果

わかること

  • Xenについて
  • 仮想化のタイプには3タイプある

効果

ちょっとした知識が手に入ります。ただ一方で、実用的なコマンドとかは出てきません。

Xenとは?

Xenとは、ハイパーバイザ型の仮想化ソフトウェアのことです。

Xenのリンク↓
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/virtualization_types.html

AWSはこのXenで動作しています。

ハイパーバイザー型?

仮想化には3パターンあります。
(2パターンという見方もできますが、今回はコンテナ型を一つの仮想化パターンとしてカウントしました。)

では、その3パターンを簡単に説明していきます。

ハイパーバイザー型

  • 具体的なソフトウェア: Xen
    • これがAWSが動いています。
    • ハードウェアレベルでリソースを割り当てます
    • リソースを物理的にVM(仮想マシン)に割り当てるので、他のVMからの影響は受けにくいというメリットがあります。
    • 全く受けない訳ではありません
    • ユーザはハイパーバイザーと呼ばれる上で実行されるVMを使います。
    • そのVMがEC2です

一般的なEC2のインスタンスの場合、AWSコンソールからインスタンスの起動や再起動をすることができますが、これはXenのコマンドを実行しています(詳しくはAWSで働かないとわからないですが。)

xen.png

KVM型

  • 具体的なソフトウェア: Vagrant(Virtualbox)
    • リソースをOSレベルで割り当てます。
    • VMは、アプリとして動作します
    • VMからの影響はハイパーバイザー型よりは受けやすい

kvm.png

コンテナ型

  • 具体的なソフトウェア: Docker
  • アプリ(プロセス)レベルの仮想化です
    • これをAWSの物理マシンから見ると、二重に仮想化しているように見えます。
  • ネステッド(入れ子)といいます
    • このことをNested Virtualizationと言ったりします。

* Vagrantと同じレイヤの仮想化ですが、コンセプトが違います。
* Vagrantでは、OSを仮想的にのせるのに対して、コンテナではOS(厳密にはkernel)レベルを共有します。
* なので、実行は速いです。

container.png

ハイパーバイザー型仮想化のライフサイクル

ハイパーバイザー型仮想化において、VMのプロセスは、実際にVM上で実行されることはありません。
VMのプロセスを実行すると、その実行権限は、その下のハイパーバイザーに渡されます。

ハイパーバイザーがVMのプロセスを代わりに実行して、その結果をVMに返します。

どんな仮想化でも、VMの代わりにその下のレイヤが実行するようになっています。(確か)

  • Xen → xend
  • vagrant(virtualbox) → virtualbox engine
  • Docker → dockerd(docker engine)

おまけ

最近はC5インスタンスはKVMにだそうです。これは知りませんでした。

参考にした記事

AWS歴

ちなみに僕のAWS歴をここに書かせてください。

  • 僕自身AWSをさわりはじめたのは、ここ数ヶ月。

  • 今まで触ったAWSサービス

12
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
8