コンテナ化とは
コンテナ化は、アプリケーションレベルの仮想化の一種であり、単一のカーネル上で複数の分離されたユーザースペースインスタンスを実現します。これらのインスタンスはコンテナと呼ばれます。
コンテナは、アプリケーションのコード、ランタイム、システムツール、システムライブラリ、および構成を 1 つのインスタンスとしてパッケージ化する標準的な方法を提供します。コンテナは、ハードウェアにインストールされた 1 つのカーネル(オペレーティング システム)を共有します。
コンテナのメリット
- 軽量性
コンテナは仮想マシンに比べてサーバー上で占める容量が小さく、起動にかかる時間は通常数秒です。 - 弾力性
コンテナは非常に柔軟で、あらかじめ一定量のリソースを割り当てる必要がありません。つまり、サーバーのリソースをより効率的かつ動的に活用できます。あるコンテナの需要が減少すると、余剰リソースが解放されて他のコンテナで利用されます。 - 密度
密度とは、1 台の物理サーバーで同時に実行できるオブジェクトの数を指します。コンテナ化により、ホストサーバーのリソースを余すことなく活用する高密度環境を構築できます。従来の仮想化と比較して、コンテナは独自のオペレーティング システムを持つ必要がないため、より高密度な環境を実現できます。 - パフォーマンス
リソース負荷が高い場合、アプリケーションのパフォーマンスはハイパーバイザーよりもコンテナの方がはるかに優れています。従来の仮想化では、ゲスト OS が自身のメモリ要件も満たす必要があり、ホストから貴重なメモリを消費してしまうためです。 - メンテナンス効率
OS カーネルが 1 つだけなので、OS レベルの更新やパッチ適用は 1 回だけで済み、すべてのコンテナに変更が反映されます。これにより、サーバーの運用とメンテナンスがより効率的になります。
コンテナ オーケストレーションとは
アプリケーションをサポートするためのコンテナの展開と編成はコンテナ オーケストレーションと呼ばれ、コンテナ オーケストレーションツールを通じて行われます。代表的なオープンソースのコンテナ オーケストレーションツールには、Kubernetes、Docker Swarm、LXC があります。
コンテナを使用するタイミング
迅速かつ頻繁に変更と再展開が必要なアプリケーションのほとんどは、コンテナ化に適しています。マイクロサービス アーキテクチャを採用したアプリケーションも、自然な選択肢と言えます。
Alibaba Cloud はContainer Service for Kubernetes を提供しています。Containers as a Service の詳細については、こちらをクリックしてご確認ください。
関連記事
-
クラウドコンピューティングとは
ナレッジベースチーム
-
仮想化とは
ナレッジベースチーム
-
ハイパーバイザーとは
ナレッジベースチーム
-
コンテナと仮想マシンの違い
ナレッジベースチーム
