この記事の概要
AWSソリューションアーキテクトアソシエイトの認定試験のために勉強している内容を記載しています。
今回のテーマは「仮想化技術」です。
バーチャルってことですね!
はじめに
エンジニア見習いのTeyo3Mと申します。
JavaとAWSをメインに勉強しています。
仮想化とは
仮想化とは、1台の物理的なサーバーやPCのリソース(CPU、メモリ、ストレージなど)を、仮想的に分割して複数の環境を動作させる技術のことです。
仮想化でできること
仮想化技術を活用すると、以下のようなことが可能になります。
- 1つのPCでMac環境もLinux環境もWindows環境も使いたい! → 可能!
- 本番環境と同じ環境を手元で再現したい → 可能!
- 1つのサーバーを分割して、異なる用途のシステムを動かしたい! → 可能!
もう物理的な制約に縛られる時代は終わりました…!
仮想化の対象
仮想化には、以下のような種類があります。
1. サーバーの仮想化
- 1台の物理サーバー上に複数のOSを動作させる技術
- 主な方式: ハイパーバイザ型、ホスト型、コンテナ方式
2. ストレージの仮想化
- 複数のストレージを仮想的に統合して1つの大きなストレージプールを構成する技術
- 主な方式: ブロックレベル仮想化、ファイルレベル仮想化
3. ネットワークの仮想化
- ソフトウェアにより動的に仮想ネットワークを構築・制御する技術
- 主な方式: SDN(Software-Defined Networking)、VLAN(Virtual LAN)
4. デスクトップの仮想化
- サーバー上のPC環境を遠隔地の端末に転送する技術
- 主な方式: 仮想PC方式、ブレードPC方式
- メリット: セキュリティ向上(ローカルにデータを保存できない)
- 例: AWS WorkSpaces(会社のPCを家でも使えたら便利ですよね!)
サーバー仮想化の種類
サーバー仮想化は、OSの動作方式によっていくつかの種類に分けられます。
1. ホスト型
- 物理サーバー上にホストOSをインストールし、その上に仮想化ソフトウェアを導入して仮想マシンを稼働させる方式
- 特徴: 主にテスト環境などで使用
- 代表的なソフトウェア: VirtualBox, VMware Workstation, Parallels Desktop
2. ハイパーバイザ型
- 物理サーバーに直接ハイパーバイザーをインストールし、仮想マシンを動作させる方式
- 特徴: ホストOSが不要なため、動作が高速
- 代表的なソフトウェア: VMware ESXi, Microsoft Hyper-V, KVM(Linux), Xen
3. コンテナ型
- ホストマシンのカーネルを共有しながら、プロセスやユーザを分離する仮想化方式
- 特徴: 軽量で起動が高速、環境をコードで管理できる
- 代表的なソフトウェア: Docker, Kubernetes, LXC(Linux Containers)
ざっくり用語解説
- コンテナ: コンテナエンジンによって分割された1つの単位
- カーネル: OSを動かすための仕組み
仮想化のメリット
仮想化には多くのメリットがあります。
-
サーバースペースの削減 / データセンター費用の削減
- 物理サーバーの台数を減らし、運用コストを削減
-
効率的なサーバー利用によるコスト削減
- 必要最低限のリソースを確保し、無駄を削減
-
調達の迅速化
- 仮想マシンを即座に作成できるため、新規システムの導入がスムーズ
-
構成変更やメンテナンス対応の柔軟性
- 仮想環境であれば、リソースの変更やシステムの移行が簡単
-
セキュリティの向上
- アクセス制御を厳格に管理できる
コンテナ技術の活用
コンテナ技術は、従来の仮想化技術と比較して次のようなメリットがあります。
-
環境構築のコード化
- 環境設定をコードとして管理し、同じ環境を再現しやすい
-
配布・共有が容易
- コードを共有するだけで、他の人も同じ環境を構築可能
-
CI/CDの促進
- 環境の即時構築や削除が可能で、開発の自動化がしやすい
SDI(Software-Defined Infrastructure)とは
SDIは、インフラをソフトウェアによりコード化して管理する技術です。
-
特長:
- JSONやYAMLなどのコードに基づいて仮想化インフラを構築可能
- ビジネスの変化に柔軟かつ迅速に対応できる
SDIのメリット:
- 仮想化の自由度が高い → 必要な範囲で柔軟に仮想化を適用できる
- インフラの自動管理が可能 → 人手を介さずシステム構成を変更できる
まとめ
仮想化は、物理的なリソースを効率的に活用するための技術であり、サーバー、ストレージ、ネットワーク、デスクトップなど様々な分野で活用されています。
特に、サーバー仮想化には「ホスト型」「ハイパーバイザ型」「コンテナ型」の3つがあり、それぞれ用途や特徴が異なります。
仮想化技術を活用することで、コスト削減や運用の効率化を実現し、よりスムーズなシステム管理が可能になります。