6. 社外向けシステム

図に使用される表記の凡例
図に使用される表記の凡例

6.1. 想定するシステム

「社外向けシステム」を想定したソリューション例について解説します。
「社外向けシステム」とは、EC(Electronic Commerce、電子商取引)サイトや顧客とのコミュニケーションを図るWebアプリケーションシステムなどであり、以下のような特徴を持つシステムを対象としています。
  • 24時間365日稼働を前提とし、メンテナンス時間はあってもサービス停止は最小限とする。
  • インターネットからのアクセスに対して、各種セキュリティ対策を実施する。
  • Webサーバー、アプリケーションサーバー(APサーバー)については負荷分散構成で処理量を増やす。
  • mySQL等の無償版DBMS(DataBase Management System、データベース管理システム)を利用する。
  • データベースサーバー(DBサーバー)は負荷を下げるためのマスター+リードオンリーレプリカ+バックアップ用レプリカの複数台構成とする。
  • DBサーバーは高IOPS(Input/Output Per Second)ディスクを必要とし、処理も高レスポンスが求められる。
  • https通信に対応するため、SSL終端機能が必要。
  • 他システム、外部メール送信、メルマガ配信などと連携。
  • アクセス量が多い場合、コンテンツデリバリネットワーク(CDN)サービスを利用。

6.2. システム構成

本システムは、DR(Disaster Recovery、災害復旧)対策を想定して、地理的に離れたメインサイトとDRサイトの2拠点から構成されます。以下では、メインサイトのシステム構成とDRサイトのシステム構成について説明します。

注釈

DRサイトとして利用できるリージョンについては、各リージョンで提供しているサービス を参照してください。


6.2.1. メインサイトのシステム構成

メインサイトでは、平時に稼働する本番系システムを収容しており、以下のような構成を想定しています。(開発/検証用環境は省略しています。)
  • UTM、WAFメニューを利用したサイト保護
  • 物理分散したアプリケーションサーバー構成と負荷状況に応じたスケールアウト
  • 物理分散が保証された複数台のMySQLレプリカ構成
  • マスタDBとバックアップ用レプリカDBによるバックアップ構成
  • DNSメニューを利用した外部向けの名前解決

システム構成図は以下の通りです。
メインサイトのシステム構成
続いて、構成上のポイントをご説明します。

6.2.1.1. セキュアなネットワーク

本サービスが提供するインターネット接続は、標準でDDoS軽減装置を導入しています。また、IDS/IPS機能を含むUTM(Managed UTM)をインラインで設置することで、外部からの不正なアクセスを検知・防御することが可能です。さらにWAF(Managed WAF)を導入することで、Webサーバー/アプリケーションサーバー(APサーバー)に対するHTTP/HTTPS通信をより詳細に検査することが可能となり、増加するWebサイトへの攻撃通信を検知・防御することができます。これにより、セキュアなネットワーク環境を構築することができ、効果的にサイトを保護することができます。
(Managed UTMはファイアウォール機能も含まれるため、トラフィック量に応じて、FirewallとUTMを1台にまとめた構成も可能です。)

6.2.1.2. 物理分離されたWeb/APサーバー構成とスケールアウト

利用ユーザーからの大量のトラフィックを処理するために、Web/APサーバーを複数台設置し、ロードバランザーを用いた負荷分散と冗長化を図ります。ここでは、 仮想サーバー(インスタンスおよびボリューム)を用いてWeb/APサーバーを構築しますが、仮想サーバーが同一の装置に収容されていた場合、物理障害に伴ってすべての仮想サーバーが同時にダウンする可能性があります。このようなリスクに備えて、仮想サーバーを異なるグループに分散して配置します。これにより、Web/APサーバーを物理的に冗長化することができます。
また、ECサイトの特性として、アクセス殺到に伴った急激な負荷の増大ということを考えねばなりません。ライセンスの点ではWeb/APサーバーは台数の増減を頻繁にした場合にもコスト負担が少ないように、仮想サーバー向けにはCentOS等の無償OSのテンプレートが用意されています。負荷の発生に応じた増減の実施は、仮想サーバーのスケールにて対応します。まず最初に、事前作業として、仮想サーバーで構築したWeb/APサーバーをプライベートテンプレート化しておきます。その後、定期的に仮想サーバーの負荷状況をモニタリングし、負荷が増大を検知した場合には、事前作成しておいたイメージ保存領域のプライベートテンプレートを用いてWeb/APサーバーの追加を行います。モニタリングおよび仮想サーバー追加はAPI経由で実施できるので、必要に応じて一連の作業を無人化することもできます。
物理分離されたWeb/APサーバー構成とスケールアウト

6.2.1.3. 物理分離されたDBサーバー

本例では、MySQLレプリカ構成を使用して、DB負荷の分散構成をとっています。Web/APサーバーと同様に、仮想サーバー(インスタンスおよびボリューム)のグループ分けによる物理分散はもちろんのこと、DBのデータ領域を格納するためのブロックストレージのLUN(Logical Unit Number、サーバーから1台の物理ハードディスクとして認識される単位)もマスターとレプリカでグループを分けて構成することにより耐障害性を高めることができます。
物理分離されたDBサーバー

6.2.1.4. データベースのバックアップ

マスタDBへの負荷を抑えるためバックアップ処理用のレプリカインスタンスを作成し、バックアップ用レプリカは別グループのインスタンス、ブロックストレージのLUNを使用します。これによりレプリカ自体が物理的に異なるストレージにデータを保存し、また、mysqldump等で複数世代のデータバックアップを行う際にも、物理的に分かれたストレージにバックアップができます。

6.2.1.5. 外部サービスの活用

NTTコミュニケーションズ株式会社が提供する他サービスをWebシステムに組み込むこともできます。
例えば、コンテンツデリバリネットワーク(CDN)サービスを利用することで、グローバルに分散配置したキャッシュサーバーにより、配信量が急増しても安定したレスポンスを実現することが可能です。さらに、サービスプロバイダが運用する信頼性の高いサービス併用することによって、システム全体の信頼性を向上させることができます。
また、大量に発生するログについては、アーカイブデータとしてCloudn Object Storageを利用することで、大容量を安価に保存することができます。Cloudn Object Storageは、複数データセンタにまたがった3分散のデータ保管による冗長化を図っており、99.999999999%(eleven nine)を達成しています。そのため、天災などによってメインサイトにサイト障害が発生しても、データの損失を防ぐことができます。インターネット接続は複数の接続が可能なため、サービスアクセス用とObject Storage用のゲートウェイを分けて設計することが可能です。

注釈

Cloudn Object Storageは、日本国内のみの提供です。


6.2.2. DRサイトのシステム構成

社外向けのECサイトなどのようにデータベースが常時更新がされるシステムでは、ネットワークのレイテンシにより完全なAct-Act構成のDBをDRサイトに構成することは難しいため、遠隔データセンター接続を利用してデータベースの非同期レプリカをDRサイトに用意する形でのDR構成とします。DBサーバーの監視とマスタ、レプリカの切り替え、Web/APサーバーのプロビジョン、DNS切替の連動などAPIを利用して自動化することも考えられますが、障害状況を確認して対応することを想定し、本ガイドではDRサイトにレプリカDBを配置し、Web/APサーバーの起動ができる状態とすることまでを記載します。

システム構成図は以下の通りです。
DRサイトのシステム構成
続いて、構成上のポイントをご説明します。

6.2.2.1. 遠隔データセンター接続を利用したデータベースレプリカ、NFS上の共通コンテンツのレプリカ

遠隔データセンター接続は、お客さまのネットワーク上の望む場所にGWとして接続できますので、DBレプリカのためのセグメントに接続してDRサイトとレプリケーションをすることができます。MySQLのレプリカ機能でのトラブルに備え、メインサイトで出力したバックアップファイルを転送することも可能です。Webサーバーの共通コンテンツを置くNFSサーバーを立てた場合に、共通コンテンツも遠隔データセンター接続を利用してrsync等でDRサイトと同期することが可能です。

6.2.2.2. 低コストでのDR環境準備

DRサイトのコストを低く抑えるため、Web/APサーバーはプライベートテンプレートをDRサイトにもアップロードしDRサイト使用時にプロビジョンすることもできます。chefやansible等の構成管理ツールで構築する場合、それに対応したプライベートテンプレートを配置しておき、事前にスクリプトを用意しておくことで、作業自体を短縮することもできます。ファイアウォールもNativeのAPI/CLIを公開していますので、設定作業をスクリプト化することが可能で、必要時にプロビジョンしてから短時間で設定することも可能です。
インターネット接続はDNS切替準備のため、グローバルIPと最低限の帯域で契約しておきます。そして、切替時間がかかることが許容されるのであれば、待機中はファイアウォール、ロードバランサ―等はすべて接続しない構成とし、DR発動時にAPI経由でプロビジョンするということも可能です。上記構成図ではコンテンツ同期のためのNFSサーバーとレプリカのDBサーバーのみを常時起動としています。