■物理サーバー
概要:物理的に用意されたサーバー
cons:
- デカい(一台あたり畳半分ほどの場所が必要となる)
- 導入の時間的・金銭的コストが大きい(問い合わせ→見積→予算獲得→発注→サーバーを納入→初期設定→データセンター構築作業→テストの流れが必要で、一般的に二ヶ月~三ヶ月の期間がかかる)
- 運用保守のコストが高い(インフラエンジニア必須)
■仮想サーバー(VM)
概要:物理サーバー内で複数の物理サーバーがあるかのように動作する。物理サーバー内でのVMの管理はハイパーバイザーによってなされる。
pros:
- VM自体は幅を取らない
- 構築の時間的コストが低い(1時間ほど)
- リソースの使用効率が高い(物理サーバーのリソース使用率には常に余り=無駄がある)
■Docker
概要:単一のサーバー上で複数のコンテナを動作させるコンテナ技術の一種。サーバー内でのコンテナの管理はDockerエンジンによってなされる。
pros:
- 小さいサイズでも動作する(VMは最初でも20G消費するが、コンテナは300MB程度から動作する)ため、集約度が高い
- コンテナの削除→再作成が可能であうためり、多大な工数が削減できるように
cons:
冗長性確保・スケジューリング・セルフヒーリング・サービスディスカバリ・ストレージといった(サーバーをまたいだ)管理コストが大きい。
■Kubernetes
概要:複数のサーバーの集合(Cluster)をKubernetesにより管理する技術。
pros:サーバーをまたいだコンテナの管理が可能となり、Dockerの様々な弱点が解消される。
cons:エンジニアの学習コストが高い
■結論
Kubernetes>Docker>VM>物理サーバー