クラウドホスティングの紹介

導入

クラウドホスティングは、オンラインの仮想サーバーを使用する方法であり、必要に応じて作成、変更、破棄できます。クラウドサーバーは、物理的にホストされているサーバーによってCPUコアやメモリなどのリソースが割り当てられ、任意のオペレーティングシステムとそれに付随するソフトウェアで構成することができます。クラウドホスティングは、ウェブサイトのホスティング、ウェブベースのアプリケーションの配布、または他のサービスに使用することができます。

このガイドでは、仮想化の動作方法、仮想環境の構成要素、および他の一般的なホスティング方法との比較など、クラウドホスティングに関連する基本的な概念について説明します。

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

「クラウド」とは、一般的な用語であり、有料のリース契約やソフトウェアやプラットフォームサービスの一部として、一般の利用者が利用できるインターネットアクセス可能なサーバーを指します。クラウドベースのサービスには、ウェブホスティング、ファイルホスティングと共有、ソフトウェアの配布など、さまざまな形態があります。「クラウド」はまた、クラウドコンピューティングを指すこともあります。つまり、複数のサーバー間でタスクを透過的に分散させることです。複雑なプロセスを単一の強力なマシンで実行する代わりに、クラウドコンピューティングはタスクを多数の小さなノードに分散します。

仮想化の仕組み

クラウドホスティング環境は、アプリやウェブサイトをホストできる仮想サーバーと、仮想サーバーを管理する物理ホストの2つの主要な部分に分かれています。仮想化により、ホストと仮想サーバーの関係が柔軟性とスケーリングを提供し、他のホスティング方法では利用できないものです。

仮想サーバー

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

仮想サーバーは物理ホストのハイパーバイザーによって展開および管理されます。各仮想サーバーには、ハイパーバイザーによってインストールされたオペレーティングシステムがユーザーに利用可能です。実際の目的では、仮想サーバーは専用の物理サーバーと同じように使用されますが、仮想サーバーは同じホスト上の他のサーバーと物理ハードウェアリソースを共有する必要があります。

ホスト

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

ホストは、仮想サーバーが起動されるときにメモリ、CPUコア、およびネットワーク接続を割り当てる責任があります。ハイパーバイザーの持続的な義務は、複数の仮想サーバーが同じ物理コアを利用している場合に、プロセスを仮想CPUコアと物理CPUコアの間でスケジュールすることです。ハイパーバイザーは、プロセススケジューリングやリソース共有のニュアンスにおいて異なります。

ハイパーバイザー

現在、クラウドホスト向けにいくつかの一般的なハイパーバイザーが利用可能です。これらの異なる仮想化方法にはいくつかの主な違いがありますが、いずれもホストが必要に応じて仮想サーバーを展開、維持、移動、および破棄するために必要なツールを提供しています。

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

Xenは最も一般的なハイパーバイザの1つです。KVMとは異なり、Xenは独自のマイクロカーネルを使用し、ホストのカーネルを変更せずに仮想サーバをサポートするためのツールを提供します。Xenは、仮想化の2つの異なる方法をサポートしています。ハードウェアをエミュレートする必要がありませんが、仮想サーバのオペレーティングシステムに特別な修正を加える必要がある、パラバーチャル化と、特別なハードウェア機能を使用して仮想サーバを効率的にエミュレートし、修正されていないオペレーティングシステムを使用できるようにするハードウェア支援仮想化(またはHVM)です。HVMは、2006年頃に一般のCPUで広く使用されるようになり、ほとんどのデスクトップやノートパソコンが仮想マシンやマイクロカーネルベースのコンテナ(たとえばDockerを介して)を実行する際に類似の性能を発揮できるようになりました。

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

Hyper-Vは、Windowsサーバーを仮想化する最も人気のある方法の一つであり、Windows Serverのシステムサービスとして利用可能です。これにより、Windowsソフトウェア環境内で作業する開発者にとってHyper-Vは一般的な選択肢となっています。Hyper-Vは、最新バージョンのWindowsに含まれており、既存のWindows Serverのインストールなしで単独のサーバーとしても利用可能です。WSL2、Windows Subsystem for Linuxは、Hyper-Vを介して実装されています。

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

仮想化が提供する機能は、クラウドホスティング環境に適しています。仮想サーバーはさまざまなハードウェアリソース割り当てで構成でき、必要に応じてリソースを追加または削減することができます。一部のクラウドホストは、仮想サーバーを1つのハイパーバイザーから別のハイパーバイザーにほとんどまたは全くダウンタイムなしで移動したり、ノードの障害に備えてサーバーを複製したりすることができます。

カスタマイズ

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

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

スケーラビリティ

クラウドサーバーは、スケーリングの柔軟性に優れています。スケーリング方法は、水平スケーリングと垂直スケーリングの2つの大きなカテゴリに分けることができます。ほとんどのホスティング方法は、どちらか一方の方法でスケーリングできますが、クラウドホスティングは水平方向と垂直方向の両方でスケーリングできる点が特筆されます。これは、クラウドサーバーが構築される仮想環境に起因します。そのリソースは、より大きな物理的プールの割り当てられた部分であり、これらのリソースは他のハイパーバイザーに調整または複製される可能性があります。

水平スケーリング、通常「スケーリングアウト」と呼ばれる、クラスタリングシステムにノードを追加するプロセスです。これには、トラフィックをより効果的に管理するためにより多くのWebサーバーを追加する、レイテンシを減少させるためにリージョンに新しいサーバーを追加する、またはデータ転送速度を向上させるためにより多くのデータベースワーカーを追加するなどが含まれる場合があります。

垂直スケーリング、または「スケーリングアップ」は、単一のサーバーに追加のリソースを搭載するというプロセスです。これには、利用可能なメモリの拡張、より多くのCPUコアの割り当て、またはその他の方法でサーバーの容量を増やすアップグレードが含まれる場合があります。これらのアップグレードは通常、そのサーバー上でデータベースワーカーなどの追加のソフトウェアインスタンスを動作させるための準備をします。水平スケーリングがコスト効果の高い方法になる前は、垂直スケーリングが需要の増加に対応するためのデファクトウェイでした。

クラウドホスティングでは、開発者はアプリケーションのニーズに応じてスケーリングできます。追加のVPSノードを展開することで水平にスケーリングし、既存のサーバーをアップグレードすることで垂直にスケーリングし、サーバーのニーズが大幅に増加した場合には両方を行うことができます。

結論

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

クラウドコンピューティング全体の景色を広く見るには、クラウドコンピューティングの一般的な紹介を読むことができます。

Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-cloud-hosting