序章

クラウドホスティングは、オンデマンドで作成、変更、破棄できるオンライン仮想サーバーを使用する方法です。 クラウドサーバーには、ホストされている物理サーバーによってCPUコアやメモリなどのリソースが割り当てられ、開発者が選択したオペレーティングシステムと付属のソフトウェアで構成できます。 クラウドホスティングは、Webサイトのホスティング、電子メールの送信と保存、およびWebベースのアプリケーションやその他のサービスの配布に使用できます。

このガイドでは、仮想化の仕組み、仮想環境のコンポーネント、他の一般的なホスティング方法との比較など、クラウドホスティングに関連するいくつかの基本的な概念について説明します。

「クラウド」とは何ですか?

「クラウド」とは、インターネットに接続され、有料のリースを通じて、またはソフトウェアやプラットフォームサービスの一部として公開されているサーバーを指す一般的な用語です。 クラウドベースのサービスは、Webホスティング、ファイルホスティングと共有、ソフトウェア配布など、さまざまな形をとることができます。 「クラウド」は、クラウドコンピューティングを指す場合にも使用できます。これは、タスクのワークロードを共有するためにリンクされた複数のサーバーを使用する方法です。 クラウドコンピューティングは、単一の強力なマシンで複雑なプロセスを実行する代わりに、タスクを多数の小さなコンピューターに分散します。

その他のホスティング方法

クラウドホスティングは、今日の顧客と開発者が利用できるさまざまなタイプのホスティングの1つにすぎませんが、それらの間にはいくつかの重要な違いがあります。 従来、低予算でトラフィックの少ないサイトやアプリは共有ホスティングを使用していましたが、より要求の厳しいワークロードは専用サーバーでホストされていました。

共有ホスティングは、小さくてシンプルなサイトを稼働させるための最も一般的で最も手頃な方法です。 このシナリオでは、数百または数千のサイトが、メモリやCPUなどのサーバーリソースの共通プールを共有します。 共有ホスティングは、サーバーの共有性のためにサイトの基盤となるソフトウェアへのアクセスが非常に制限されているため、最も基本的で柔軟性のない機能と価格設定構造を提供する傾向があります。

専用ホスティングは、物理サーバーマシンが単一のクライアントに販売またはリースされる場合です。 開発者はサーバーのハードウェア、オペレーティングシステム、およびソフトウェア構成を完全に制御できるため、これは共有ホスティングよりも柔軟性があります。 専用サーバーは、エンタープライズソフトウェアや、ソーシャルメディア、オンラインゲーム、開発プラットフォームなどの商用サービスなど、より要求の厳しいアプリケーションで一般的です。

仮想化の仕組み

クラウドホスティング環境は、アプリやWebサイトをホストできる仮想サーバーと、仮想サーバーを管理する物理ホストの2つの主要部分に分けられます。 この仮想化は、クラウドホスティングの機能と利点の背後にあるものです。ホストと仮想サーバーの関係は、他のホスティング方法では利用できない柔軟性とスケーリングを提供します。

仮想サーバー

今日のクラウドホスティングの最も一般的な形式は、仮想プライベートサーバー(VPS)の使用です。 VPSは、独自のオペレーティングシステムを備えた実際のコンピューターのように機能する仮想サーバーです。 仮想サーバーはホストによって割り当てられたリソースを共有しますが、それらのソフトウェアは十分に分離されているため、1つのVPSでの操作が他のVPSに影響を与えることはありません。

仮想サーバーは、物理ホストのハイパーバイザーによって展開および管理されます。 各仮想サーバーには、ハイパーバイザーによってインストールされたオペレーティングシステムがあり、ユーザーはその上にソフトウェアを追加できます。 多くの実用的な目的では、仮想サーバーは専用の物理サーバーと同じように使用されますが、仮想サーバーが同じホスト上の他のサーバーと物理ハードウェアリソースを共有しているため、パフォーマンスが低下する場合があります。

ホスト

リソースは、仮想サーバーがホストされている物理サーバーによって仮想サーバーに割り当てられます。 このホストは、ハイパーバイザーと呼ばれるソフトウェアレイヤーを使用して、制御下にある仮想サーバーにリソースを展開、管理、および付与します。 「ハイパーバイザー」という用語は、ハイパーバイザー(およびその仮想サーバー)がインストールされている物理ホストを指すためによく使用されます。

ホストは、仮想サーバーの起動時に、メモリ、CPUコア、および仮想サーバーへのネットワーク接続の割り当てを担当します。 複数の仮想サーバーが同じ物理コアを利用している可能性があるため、ハイパーバイザーの継続的な義務は、仮想CPUコアと物理コアの間のプロセスをスケジュールすることです。 プロセススケジューリングに選択する方法は、異なるハイパーバイザー間の重要な違いの1つです。

ハイパーバイザー

現在、クラウドホストで利用できる一般的なハイパーバイザーソフトウェアがいくつかあります。 これらのさまざまな仮想化方法にはいくつかの重要な違いがありますが、それらはすべて、ホストが必要に応じて仮想サーバーを展開、維持、移動、および破棄するために必要なツールを提供します。

KVM は、「カーネルベースの仮想マシン」の略で、Linuxカーネルに組み込まれている仮想化インフラストラクチャです。 このカーネルモジュールをアクティブにすると、Linuxマシンがハイパーバイザーに変わり、仮想サーバーのホスティングを開始できるようになります。 この方法は、KVMが仮想ホスティングに使用されるカーネルコンポーネントを作成またはエミュレートする必要がないため、他のハイパーバイザーが通常機能する方法とは対照的です。

Xen は、現在使用されている最も一般的なハイパーバイザーの1つです。 KVMとは異なり、Xenはマイクロカーネルを使用します。マイクロカーネルは、ホストのカーネルを変更せずに仮想サーバーをサポートするために必要なツールを提供します。 Xenは、ハードウェアをエミュレートする必要はないが仮想サーバーのオペレーティングシステムに特別な変更を加える必要がある準仮想化と、特別なハードウェア機能を使用して仮想サーバーを効率的にエミュレートするハードウェア支援仮想化の2つの異なる仮想化方法をサポートしています。変更されていないオペレーティングシステムを使用できます。

ESXi は、VMwareが提供するエンタープライズレベルのハイパーバイザーです。 ESXiは、ホストに基盤となるオペレーティングシステムが必要ないという点で独特です。 これは「タイプ1」ハイパーバイザーと呼ばれ、ハードウェアと仮想サーバーの間に「仲介者」がいないため、非常に効率的です。 ESXiのようなタイプ1ハイパーバイザーでは、ハイパーバイザー自体がオペレーティングシステムとして機能するため、ホストにオペレーティングシステムをロードする必要はありません。

Hyper-V は、Windowsサーバーを仮想化する最も一般的な方法の1つであり、WindowsServerのシステムサービスとして利用できます。 これにより、Hyper-Vは、Windowsソフトウェア環境内で作業する開発者にとって一般的な選択肢になります。 Hyper-VはWindowsServer2008および2012に含まれており、WindowsServerを既存にインストールしなくてもスタンドアロンサーバーとして利用できます。

なぜクラウドホスティングなのか?

仮想化によって提供される機能は、クラウドホスティング環境に適しています。 仮想サーバーは、さまざまなハードウェアリソース割り当てを使用して構成でき、多くの場合、時間の経過とともにニーズの変化に応じてリソースを追加または削除できます。 一部のクラウドホストは、ダウンタイムをほとんどまたはまったく発生させずに仮想サーバーをあるハイパーバイザーから別のハイパーバイザーに移動したり、ノードに障害が発生した場合の冗長性のためにサーバーを複製したりできます。

カスタマイズ

開発者は、仮想環境を制御できるため、VPSでの作業を好むことがよくあります。 Linuxを実行しているほとんどの仮想サーバーは、デフォルトでroot(管理者)アカウントまたはsudo特権へのアクセスを提供し、開発者が必要なソフトウェアをインストールおよび変更できるようにします。

この選択の自由は、オペレーティングシステムから始まります。 ほとんどのハイパーバイザーは、LinuxやBSDなどのオープンソースソフトウェアからWindowsなどのプロプライエタリシステムまで、ほぼすべてのゲストオペレーティングシステムをホストできます。 そこから、開発者は、作業に必要なビルディングブロックのインストールと構成を開始できます。 クラウドサーバーの構成には、Webサーバー、データベース、電子メールサービス、または開発されて配布の準備ができているアプリが含まれる場合があります。

スケーラビリティ

クラウドサーバーは、拡張性に非常に柔軟性があります。 スケーリング方法は、水平スケーリングと垂直スケーリングの2つの大きなカテゴリに分類されます。 ほとんどのホスティング方法は、いずれかの方法で拡張できますが、クラウドホスティングは、水平方向と垂直方向の両方に拡張できるという点で独特です。 これは、クラウドサーバーが構築されている仮想環境によるものです。そのリソースはより大きな物理プールの割り当てられた部分であるため、これらのリソースを調整したり、仮想イメージを他のハイパーバイザーに複製したりするのは簡単です。

水平スケーリングは、「スケールアウト」と呼ばれることが多く、クラスター化されたシステムにノードを追加するプロセスです。 これには、トラフィックをより適切に管理するためのWebサーバーの追加、遅延を減らすためのリージョンへの新しいサーバーの追加、またはデータ転送速度を上げるためのデータベースワーカーの追加が含まれる場合があります。 CoreOS、Docker、Couchbaseなどの多くの新しいWebユーティリティは、効率的な水平スケーリングを中心に構築されています。

垂直スケーリング、つまり「スケールアップ」は、単一のサーバーが追加のリソースでアップグレードされる場合です。 これは、使用可能なメモリの拡張、より多くのCPUコアの割り当て、またはそのサーバーの容量を増やすその他のアップグレードである可能性があります。 これらのアップグレードは通常、データベースワーカーなどの追加のソフトウェアインスタンスがそのサーバー上で動作するための道を開きます。 水平スケーリングが費用効果が高くなる前は、垂直スケーリングは需要の増加に対応するための最適な方法でした。

クラウドホスティングを使用すると、開発者はアプリケーションのニーズに応じて拡張できます。追加のVPSノードを展開してスケールアウトしたり、既存のサーバーをアップグレードしてスケールアップしたり、サーバーのニーズが大幅に増加したときに両方を実行したりできます。

結論

これまでに、ハイパーバイザーとそれらが担当する仮想サーバーとの関係や、クラウドホスティングが他の一般的なホスティング方法とどのように比較されるかなど、クラウドホスティングがどのように機能するかを十分に理解しているはずです。 この情報を念頭に置いて、ニーズに最適なホスティングを選択できます。