[和訳] コンテナは仮想マシンを置き換えていくのか? #docker
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本稿は Are Containers Replacing Virtual Machines? (2018/08/30) の和訳です。
8月26日〜30日にラスベガスで開催されたVMworldには、2万人のパートナーと参加者が集まりました。そこで私達は、コンテナが仮想マシン(VM)を置き換えていくかどうかと頻繁に質問を受けました。Docker EEの顧客の多くは、仮想化したインフラ上でコンテナを実行し、残りの顧客はベアメタル上でコンテナを実行しています。Dockerは、アプリケーションをVM、ベアメタル、クラウドなどのどこで実行するか、IT担当者と運用者への選択肢を提供しています。このブログでは、VMとコンテナの関係についていくつかの考えをご紹介します。
ポイント#1: コンテナはVMよりアジャイルである
コンテナが成熟した近年、コンテナが開発者と運用者の両方に、より敏捷性を与えることはほぼ疑いないでしょう。コンテナは迅速にデプロイし、イミュータブルインフラを提供し、古くからの「自分のマシンでは動作したのに」という問題を解決します。コンテナはパッチを適用するという伝統的な手順も置き換えるので、組織がより迅速に問題に対応できるようにし、アプリケーションの保守をより容易にします。
ポイント#2: コンテナはハイブリッドクラウドとマルチクラウドの採用を可能にする
一度コンテナ化したアプリケーションは、VM、ベアメタル、異なったハイパーバイザを実行しているさまざまなパブリッククラウド等、あらゆるインフラにデプロイできます。多くの組織では、仮想化したインフラ上でコンテナを実行することから始めます。それはコードを変更せずにクラウドに移行することに比べると簡単でしょう。
ポイント#3: コンテナを既存のIT手順と統合する
ほとんどのエンタープライズ級の組織は、バックアップ、監視、自動化などの周辺のツールを含む成熟した仮想化環境、およびそれらを構築した人や手順を備えています。仮想化したインフラ上でDocker EEを実行することにより、組織は既存のやり方にコンテナを簡単に統合でき、前記のポイント#1と#2の利点を得ることができます。
ポイント#4: コンテナはVMライセンスを節約する
コンテナ化したアプリケーションは、VM内のCPU使用率を大幅に向上するために、共通のOSおよびソフトウェアのライブラリを共有します。つまり、組織は、環境を運用するために必要なVMの総数を減らし、サーバ上で実行できるアプリケーションの数を増やすことができます。Docker EEの顧客は、コンテナ化を進めた後はサーバの統合率を50%向上させることが多く、ハードウェアコストの削減とVMおよびOSライセンスの節約につながります。
ベアメタルについてはどうですか?
組織が異なるサーバや異なるOSを使用する理由があるように、一部の組織にはベアメタル上でコンテナを直接実行したい理由があります。これは多くの場合、パフォーマンスやレイテンシの問題、またはライセンスとコストの理由によるものです。
セキュリティはどうですか?
コンテナはそれ自体が本質的に安全です。Dockerコンテナは、アプリケーション間、およびアプリケーションとホスト間に分離レイヤを作成し、ホストとコンテナが触れ合う領域を縮小します。これは、ホストへのアクセスを制限することで、ホストとコンテナ、コンテナとコンテナの両方を保護することになります。ベアメタル上で実行しているDockerコンテナは、VM上で実行している場合と同じく、高度な制限が適用されています。しかし、Dockerコンテナは、VM自体を保護しており、ホストのための徹底的な防御を提供しているので、仮想化技術ととても相性が良いのです。
そして、勝者は...
結局のところ、DockerコンテナはVM内またはベアメタル上で実行可能なので、選択はあなた次第です。データセンター内の他のすべての決定と同様に、選択肢はビジネスの優先順位に合わせる必要があります。コンテナはVMとうまく機能しますが、VMを使用せずに実行することも可能です。
コンテナとVMの関係についての詳細は、次のリソースを参照してください:
- コンテナって何?
- vSphereにDocker EEをデプロイする
- eBookをダウンロードする: 仮想化管理者向けDocker