これまで繰り返し説明したように、クラウドサービスでは、仮想サーバの配置や削除を安価かつ素早く行うことができます。また、ロードバランサなどの機能があらかじめ設定されている、仮想アプライアンスと呼ばれるようなプランが用意されている場合も珍しくありません。
したがって、これまでは技術力の問題から専門業者に依頼するしかなかったり、費用や納期の面で二の足を踏まざるを得なかった、サーバ複数台によるシステム構成を、Web作成業者自らが構築可能な時代になってきました。以下では、代表的なサーバ複数台構成システムのいくつかの例を紹介します。
ロードバランサによるクラスタリング構成
ロードバランサとは、簡単に言うと、複数のサーバに仕事を割り振る役割を担う装置です。ロードバランサを利用することにより、スケールアウト型のシステムを構築することができます(図1)。スケールアウト型のシステムは、サーバの台数を増やすだけで、システムの処理能力を増強することができるので、大量のアクセスが予想されるWebサイト用のシステムに最適です。Webアクセスの処理能力向上は、単純にサーバ単体の能力を増強するスケールアップより、スケールアウトの方が効果的です。
また、必要な処理能力に応じて、サーバの台数を自由に増減できるため、どのくらいのアクセスがあるのか予想できないようなサイトを構築する場合に、まずは少ないサーバ台数でスモールスタートし、アクセスが増えるにしたがって、新たなサーバを追加していくような使い方もできます。あるいは、サイトへのアクセスが少ない時は、Webサーバを減らすことも簡単にできるため、特定のタイミングでアクセス集中が起きるようなサイトにおいて、必要な時だけサーバを増強し、不要になった時点でサーバ数を削減することで、サイトのシステムコストを削減することも可能です。
構築に必要なサーバは、ロードバランサと、複数台のWebサーバ、その他必要に応じて、アプリケーションサーバやDBサーバ、共有ストレージなどです。基本的なシステム構成は、インターネットからのアクセスの受け口にロードバランサを配置し、その下に複数台のWebサーバを配置します。その他のサーバ類は、Webサーバの下に適宜配置します。どのWebサーバからも同じコンテンツが参照できるような仕組みを前もって構築しておく必要があります。
アクティブ・スタンバイ構成によるHigh Availability(HA)システム
前項のクラスタリング構成では、実際のアクセスを最初に処理するのはWebサーバではなくロードバランサなので、ロードバランサに障害など問題が発生すると、システム全体がダウンする事になります。その対策として、2台のロードバランサで、「アクティブ/スタンバイ構成によるHigh Availability(HA)システム」を構築する方法があります。
HAとは、日本語で「高可用性」です。可用性とは、「システムが継続して稼動できる能力のこと」なので、HA(高可用性)とは、つまり、「システムが継続して稼動できる能力が高い」ということです。したがって、HAシステムを構築することで、サイトがダウンする可能性を低減させることが可能になります。
HAを実現するための方法はいくつかありますが、一般的なのはアクティブ・スタンバイ構成です。これは、同一構成のサーバを2台用意し、その内の1台をプライマリサーバとして稼働させ、もう1台のサーバは、プライマリサーバに障害が発生して継続利用不可能になった場合の代替用(スタンバイ)サーバ(セカンダリ)として待機させておくものです。
プライマリサーバとセカンダリサーバはお互い定期的に死活監視(稼働しているかどうかの監視)を行っていて、もし、プライマリサーバがダウンしていることをセカンダリサーバが感知すると、自動的にセカンダリサーバがプライマリサーバの機能を引き継いで、代わりに稼働します。プライマリサーバが復旧すると、自動的にセカンダリサーバは再びスタンバイ状態に戻ります(図2)。HAシステムへのアクセスは、通常は仮想IPアドレスと呼ばれる、各サーバとは独立した別のアドレスへ接続されるため、プライマリとセカンダリが切り替わる場合も、アクセス先の変更は生じません。
Web多層アーキテクチャ
アクセスが少ないWebサイトであれば、すべての機能を1台のサーバで実現する、いわばオールインワンのシステム構成でも問題ないかもしれません。しかし、ある程度以上の規模のサイトの場合、1台では到底処理しきれないアクセス数や情報量になってしまいます。この場合、Webサーバやアプリケーションサーバ、DB(コンテンツ)サーバなど、機能によって処理の負荷が異なってくる場合が多いため、前述のクラスタリングやHA構成を採用する場合、単純にオールインワンサーバを増やすのではなく、機能別にサーバを分けて機能に応じた構成にするほうが、システム全体として効率的になります。
このように、サイトの機能ごとに階層分けした構成を、Web多層アーキテクチャと呼び、一般には、二層あるいは三層構造です。それほど規模が大きくない場合は、WebサーバとDBサーバの二層構造で、アクセスが多い大規模サイトであれば、Webサーバ、アプリケーションサーバ、DBサーバの三層構造にします(図3)。三層構造であれば、アクセスの受付をするWebサーバは、前述のクラスタリング構成でスケールアウト型にしてクラウドの利点を活かして必要に応じてどんどんサーバ追加を行い、コンテンツ生成などを行う高負荷のアプリケーションサーバは、クラウドの利点である自由なリソース変更機能を用いてどんどんスケールアップを行い、DBサーバは可用性を高めるためにHA構成を採用したりできます。
もちろん、WebサーバをHA構成にしたり、アプリケーションサーバやDBサーバをクラスタリングする考えもあるでしょう。クラウドを利用すれば、いかなる構成であれ、素早く構築して検証することができますし、構成変更も容易です。