(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-26
(45)【発行日】2024-08-05
(54)【発明の名称】サーバ管理システム及びプログラム
(51)【国際特許分類】
G06F 11/20 20060101AFI20240729BHJP
G06F 21/55 20130101ALI20240729BHJP
【FI】
G06F11/20 633
G06F21/55
(21)【出願番号】P 2019202502
(22)【出願日】2019-11-07
【審査請求日】2022-09-15
(73)【特許権者】
【識別番号】302064762
【氏名又は名称】株式会社日本総合研究所
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】武田 成広
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2005-190286(JP,A)
【文献】特開2006-350866(JP,A)
【文献】特許第5925373(JP,B1)
【文献】特開2017-016462(JP,A)
【文献】国際公開第2013/027332(WO,A1)
【文献】特開平04-005735(JP,A)
【文献】中国特許出願公開第101741619(CN,A)
【文献】特開2014-164427(JP,A)
【文献】中国特許出願公開第105933318(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/20
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
予め定められたサーバ生成情報に基づいてサーバを生成してサービスを提供させるとともに、前記サーバ生成情報に基づいてサーバを再生成して前記サービスの提供を継続させるサーバ再生部と、
前記サーバの再生成を
予め定められた時間間隔で繰り返し実行させる制御部と
を備え、
前記制御部は、前記サービスを提供しているサーバのセキュリティリスクが高まった場合に、前記予め定められた時間間隔を短くし、
前記サーバは、仮想サーバであり、
前記サーバ生成情報は、前記仮想サーバの初期状態のイメージであり、
前記サーバの再生成は、前記仮想サーバを前記初期状態に戻すことである
サーバ管理システム。
【請求項2】
前記制御部は、
一の前記サーバが前記サービスを提供している間に、前記サーバ生成情報に基づいて前記サーバ再生部に他の前記サーバを再生成させ、
他の前記サーバが前記サービスの提供を開始した後に、動作中の一の前記サーバによる前記サービスの停止及び動作中の一の前記サーバの破棄を行い、
前記サーバの再生成、前記サービスの停止、及び前記サーバの破棄を繰り返し実行させる
請求項1に記載のサーバ管理システム。
【請求項3】
動作中の一の前記サーバを破棄する前に、一の前記サーバが記録したログ情報を収集し、動作中の他の前記サーバを破棄する前に、他の前記サーバが記録したログ情報を収集するログ収集部
をさらに備える請求項2
に記載のサーバ管理システム。
【請求項4】
前記制御部は、
一の前記サーバが前記サービスを提供している間に、前記サーバ生成情報に基づいて前記サーバ再生部に他の前記サーバを再生成させ、他の前記サーバに前記サービスの提供を開始させ、
他の前記サーバが前記サービスの提供を開始した後に、一の前記サーバ及び他の前記サーバの少なくとも一方が前記サービスを提供している間に、前記サーバ生成情報に基づいて前記サーバ再生部に新たな他の前記サーバを再生成させ、新たな他の前記サーバに前記サービスの提供を開始させ、
前記サービスを提供可能な前記サーバが1つ以上存在するように、前記サーバの再生成、前記サービスの停止、及び前記サーバの破棄を繰り返し実行させる
請求項1に記載のサーバ管理システム。
【請求項5】
前記制御部は、前記サーバが前記サービスを提供する必要がない場合に、動作中の全ての前記サーバによる前記サービスの提供を停止する、又は、動作中の全ての前記サーバを破棄する
請求項2から
4のいずれか一項に記載のサーバ管理システム。
【請求項6】
前記サーバ生成情報は、前記仮想サーバの前記初期状態のスナップショットのイメージである
請求項1から
5のいずれか一項に記載のサーバ管理システム。
【請求項7】
前記制御部は
さらに、前記サービスを提供している前記サーバ
が外部から受信したパケット数が予め定められた閾値に達した場合
に、前記サーバ再生部に前記サーバを再生成させる
請求項1から
6のいずれか一項に記載のサーバ管理システム。
【請求項8】
前記サーバ再生部は、前記サーバを再生成する場合に、前記再生成される前記サーバのIPアドレスを変更する
請求項1から
7のいずれか一項に記載のサーバ管理システム。
【請求項9】
前記サーバ再生部は、前記サービスを提供している前記サーバにセキュリティリスクが高まった場合に、前記再生成される前記サーバのIPアドレスを変更する
請求項
8に記載のサーバ管理システム。
【請求項10】
前記サーバが再生成される場合、前記サーバのオペレーションシステム領域の全部又は一部は、揮発性メモリ上、又は、冗長性を持たない記憶装置上に、配置される
請求項1から
9のいずれか一項に記載のサーバ管理システム。
【請求項11】
コンピュータを、請求項1から
10のいずれか一項に記載のサーバ管理システムとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバ管理システム及びプログラムに関する。
【背景技術】
【0002】
メイン仮想マシンに障害が生じていることが検出された場合、サブ仮想マシンを新たなメイン貸そうマシンに切り替えるように制御する技術が知られている(例えば、特許文献1参照)。
[先行技術文献]
[特許文献]
[特許文献1]特開2017-73763号公報
【発明の概要】
【発明が解決しようとする課題】
【0003】
サーバのセキュリティを高めることが望まれている。
【課題を解決するための手段】
【0004】
本発明の第1の態様においては、サーバ管理システムが提供される。サーバ管理システムは、予め定められたサーバ生成情報に基づいてサーバを生成してサービスを提供させるとともに、前記サーバ生成情報に基づいてサーバを再生成して前記サービスの提供を継続させるサーバ再生部を備える。サーバ管理システムは、サーバの再生成を繰り返し実行させる制御部を備える。
【0005】
制御部は、一の前記サーバが前記サービスを提供している間に、前記サーバ生成情報に基づいて前記サーバ再生部に他の前記サーバを再生成させ、他の前記サーバが前記サービスの提供を開始した後に、動作中の一の前記サーバによる前記サービスの停止及び動作中の一の前記サーバの破棄を行い、前記サーバの再生成、前記サービスの停止、及び前記サーバの破棄を繰り返し実行させてよい。
【0006】
制御部は、一の前記サーバのセキュリティリスクが高まった場合に、前記サーバ再生部に他の前記サーバを再生成させて一の前記サーバを破棄させ、他の前記サーバのセキュリティリスクが高まった場合に、前記サーバ再生部に新たな他の前記サーバを再生成させて他の前記サーバを破棄させてよい。
【0007】
サーバ管理システムは、動作中の一の前記サーバを破棄する前に、一の前記サーバが記録したログ情報を収集し、動作中の他の前記サーバを破棄する前に、他の前記サーバが記録したログ情報を収集するログ収集部をさらに備えてよい。
【0008】
前記制御部は、一の前記サーバが前記サービスを提供している間に、前記サーバ生成情報に基づいて前記サーバ再生部に他の前記サーバを再生成させ、他の前記サーバに前記サービスの提供を開始させ、他の前記サーバが前記サービスの提供を開始した後に、一の前記サーバ及び他の前記サーバの少なくとも一方が前記サービスを提供している間に、前記サーバ生成情報に基づいて前記サーバ再生部に新たな他の前記サーバを再生成させ、新たな他の前記サーバに前記サービスの提供を開始させ、前記サービスを提供可能な前記サーバが1つ以上存在するように、前記サーバの再生成、前記サービスの停止、及び前記サーバの破棄を繰り返し実行させてよい。
【0009】
制御部は、前記サーバが前記サービスを提供する必要がない場合に、動作中の全ての前記サーバによる前記サービスの提供を停止する、又は、動作中の全ての前記サーバを破棄してよい。
【0010】
制御部は、前記サービスを提供しているサーバのセキュリティリスクが高まった場合に、前記サーバを再生成させる時間間隔を短くしてよい。
【0011】
制御部は、前記サービスを提供している前記サーバの通信量が予め定められた閾値に達した場合及び/又は前記サービスを提供している前記サーバの処理量が予め定められた閾値に達した場合に、前記サーバ再生部に前記サーバを再生成させてよい。
【0012】
サーバ再生部は、前記サーバを再生成する場合に、前記再生成されるサーバの管理者ユーザのログインID、前記再生成されるサーバの管理者ユーザのパスワード、前記再生成される前記サーバのホスト名、前記再生成される前記サーバのIPアドレス、前記再生成される前記サーバに格納される特定のプログラムのファイル構成、演算処理装置数、メモリ容量、ストレージ容量、及びネットワークインタフェース設定の少なくとも一つを変更してよい。
【0013】
サーバ再生部は、前記サービスを提供している前記サーバにセキュリティリスクが高まった場合に、前記再生成されるサーバの管理者ユーザのログインID、前記再生成されるサーバの管理者ユーザのパスワード、前記再生成される前記サーバのホスト名、前記再生成される前記サーバのIPアドレス、及び前記再生成される前記サーバに格納される特定のプログラムのファイル構成の少なくとも一つを変更してよい。
【0014】
サーバのオペレーションシステム領域の全部又は一部を、揮発性メモリ上、又は、冗長性を持たない記憶装置上に、配置してよい。
【0015】
本発明の第2の態様においては、プログラムが提供される。プログラムは、コンピュータを、上記のサーバ管理システムとして機能させる。
【0016】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0017】
【
図1】サーバを再生成するための第1の手法を概念的に示す。
【
図2】サーバを再生成するための第2の手法を概念的に示す。
【
図3】2台のサーバを用いてサーバの再生を繰り返す手法を示す。
【
図4】サーバの再生を行うシステム10の全体構成を示す。
【
図5】再生成タイミングの初期値を示すタイミング情報のデータ構造を示す。
【
図6】本実施形態に係るコンピュータ2000の例を示す。
【発明を実施するための形態】
【0018】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、図面において、同一または類似の部分には同一の参照番号を付して、重複する説明を省く場合がある。
【0019】
図1は、サーバを再生成するための第1の手法を概念的に示す。まず、サービスを提供するサーバ100を生成する元となるサーバとして、原サーバ120が準備されている。原サーバ120は、セキュアなサーバである。原サーバ120は、例えば、インターネット等のネットワークに接続されていないセキュアな環境でオペレーティングシステム(OS)及びサービス提供するためのプログラム等をインストールすることによって得られる。
【0020】
原サーバ120は、例えば、イメージファイルとして準備される。本実施形態において、サーバ100は仮想サーバである。原サーバ120は、仮想サーバのイメージファイルとして、DVD-ROM等の読み取り専用記録媒体又はライトワンス型の記録媒体に記録された状態で準備されてよい。
【0021】
次に、原サーバ120に基づいて、サービスを提供するためのサーバ100をデプロイする。例えば、原サーバ120のイメージファイルを物理サーバ上に転送する。そして、物理サーバ上に転送された原サーバ120のイメージファイルを用いて、仮想サーバとしてのサーバ100を起動する。このとき、原サーバ120のイメージファイルに予め定められた変更を加えてから、サーバ100を起動してよい。これにより、サーバ100は、デプロイ直後の状態101となる。
【0022】
次に、サーバ100の初期状態のスナップショット102を生成する。サーバ100のスナップショット102が生成された後、サーバ100は稼動中の状態103となってサービス提供を続ける。スナップショット102を生成した後、予め定められた時間が経過すると、サーバ100は、スナップショット102を用いて、スナップショット102の状態に戻る。その後、サーバ100は再びサービス提供を続ける。
【0023】
サーバ100は、スナップショット102の初期状態に戻った後、予め定められた時間が経過する毎に、スナップショット102を用いてスナップショット102の初期状態に戻ってサービス提供を続けるという動作を繰り返す。
【0024】
このように、サーバ100は、予め定められた時間が経過する毎に、原サーバ120に基づいて生成されたスナップショット102の状態に戻る処理を繰り返しながら、サービス提供を続ける。一例として、サーバ100は、スナップショット102の状態に戻る処理を、5秒毎に繰り返す。これにより、例えばハッカーがサーバ100に進入しようとした場合、サーバ100への進入が成功するまでの間にサーバ100は初期状態に戻る。そのため、サーバ100は、セキュアな状態でサービスを提供することができる。
【0025】
図2は、サーバを再生成するための第2の手法を概念的に示す。第2の手法は、スナップショットを作成しない点で、第1の手法と異なる。すなわち、サーバ200は、デプロイ直後の状態101となった後に、稼働中の状態103となる。サーバ100が稼働中となって予め定められた時間が経過すると、最初に生成されたサーバ100は破棄されるとともに、原サーバ120に基づいて稼動用の新たなサーバ100がデプロイされて稼働中の状態となる。このように、サーバ100のデプロイ及び破棄を繰り返すことにより、原サーバ120に基づくサーバ100が繰り返し生成され続ける。第2の手法によっても、ハッカーがサーバ100に進入する前にサーバ100は原サーバ120の状態に戻るので、サーバ100はセキュアな状態でサービスを提供することができる。これによりサーバが破棄された後に、サーバを再生成することで、従来サーバ活性状態のままでは構成変更不可能であったケースでもサーバを変更することができる。サーバの変更について、詳細は後述する。
【0026】
図3は、2台のサーバを用いてサーバの再生を繰り返す手法を示す。まず、第1のサーバ310が原サーバ120に基づいてデプロイされて、デプロイ直後の状態311となる。続いて、第1のサーバ310は、稼働中の状態312~314になる。
【0027】
第1のサーバ310が稼働中の状態312~314にある間に、第2のサーバ320がデプロイされて、デプロイ直後の状態321となり、続いて起動状態322となる。起動状態とは、サービスを提供していない状態のことをいう。
【0028】
第2のサーバ320が起動状態322になると、サービスの提供権が第1のサーバ310から第2のサーバ320に移管される。これにより、第2のサーバ320は、稼動中の状態323~327となって、第2のサーバ320がサービスの提供を継続する。一方、第1のサーバ310は、起動状態315となった後に停止状態316となり、停止後に破棄される。
【0029】
第2のサーバ320が稼働状態323~327にある間に、第1のサーバ310は、原サーバ120から再びデプロイされて、デプロイ直後の状態317となり、続いて起動状態318となる。
【0030】
第1のサーバ310が起動状態318になると、サービスの提供権が第2のサーバ320から第1のサーバ310に移管される。これにより、第1のサーバ310は、稼動状態319・・・となって、第1のサーバ310がサービスの提供を継続する。一方、第2のサーバ320は、起動状態328となった後に停止状態329となり、停止後に破棄される。
【0031】
このように、第1のサーバ310の生成及び破棄と、第2のサーバ320の生成及び破棄を繰り返す。これにより、
図2に関連して説明した手法に比べて、極めて短いタイムラグでサーバのサービスを提供し続けることができる。
【0032】
なお、第1のサーバ310及び第2のサーバ320は、同一の物理サーバで実行されてよい。第1のサーバ310及び第2のサーバ320は、互いに異なる物理サーバで実行されてよい。また、
図3では、2個のサーバを並列に用いてサーバの再生を繰り返す方法を説明したが、3個以上のサーバを並列に用いてサーバの再生を繰り返してもよい。
【0033】
図4は、サーバの再生を行うシステム10の全体構成を示す。システム10は、管理サーバ400と、クラウドサーバA及びクラウドサーバBを備える。管理サーバ400は、ネットワーク11を通じて、クラウドサーバA及びクラウドサーバBと通信する。
【0034】
ネットワーク11は、任意のネットワークである。ネットワーク11は、インターネットと、いわゆる3G(3rd Generation)、LTE(Long Term Evolution)、4G(4th Generation)及び5G(5th Generation)等の移動電話網、公衆通信網、及び専用網の少なくともいずれかを含んでもよい。ネットワーク11はローカルネットワークであってよい。ネットワーク11は仮想ネットワークであってよい。
【0035】
クラウドサーバA及びBは、互いに異なる物理サーバであってよい。クラウドサーバA及びBは、互いに異なるリージョンにある物理サーバであってよい。クラウドサーバA及びBは、上述したサーバの再生を繰り返す。例えば、クラウドサーバAはサーバ310の再生を繰り返し、クラウドサーバBはサーバ320の再生を繰り返す。サーバ310及びサーバ320は、例えば、WEBサーバ、メール転送サーバ、社内業務サーバ等である。
【0036】
管理サーバ400は、クラウドサーバA及びBにおけるサーバの再生を制御する。管理サーバ400は、クラウドサーバA及びBとは独立して稼動するサーバであってよい。管理サーバ400は、クラウドサーバA及びBの少なくとも一方で稼動してよい。管理サーバ400は、複数の仮想サーバを集中管理するソフトウエアと連係して各種の処理を行ってよい。管理サーバ400は、クラウドサーバA及びBで動作する補助プログラムと連係して各種の処理を行ってよい。管理サーバ400は、サーバ管理システムとして機能する。
【0037】
管理サーバ400は、サーバ再生部410と、制御部420とを備える。サーバ再生部410は、予め定められたサーバ生成情報に基づいてサーバを生成してサービスを提供させるとともに、予め定められたサーバ生成情報に基づいてサーバを再生成してサービスの提供を継続させる。制御部420は、サーバの再生成を繰り返し実行させる。サーバ生成情報は、例えば、原サーバ120のイメージである。サーバ生成情報は、例えば、仮想サーバを生成するためのテンプレートイメージであってよい。サーバ生成情報は、仮想サーバの初期イメージをスクラッチから生成するために用いる仮想サーバの初期構成情報であってよい。なお、サーバ生成情報は、サーバを生成するための全ての情報であってよく、サーバを生成するために常に使用される一部の情報であってもよい。例えば、サービスを提供するサーバをシームレスに切り替えるために、切り替えを行うサーバ間でIPアドレスを異ならせる場合がある。このような場合、サーバ生成情報はIPアドレスを含まない。一方、サービスを提供するサーバをシームレスに切り替える必要がない場合等のように、切り替えを行うサーバ間でIPアドレスを同一にする場合は、サーバ生成情報はIPアドレスを含んでよい。
【0038】
制御部420は、一のサーバがサービスを提供している間に、サーバ生成情報に基づいてサーバ再生部410に他のサーバを再生成させ、他のサーバがサービスの提供を開始した後に、動作中の一のサーバによるサービスの停止及び動作中の一のサーバの破棄を行う。制御部420は、このようなサーバの再生成、サービスの停止及びサーバの破棄を繰り返し実行させる。
【0039】
例えば、
図3に関連して説明した切り替え方式のように、サーバ再生部410は、第1のサーバ310がサービスを提供している間に、予め定められたサーバ生成情報に基づいてサーバ再生部410に第2のサーバ320を再生成させ、第2のサーバ320がサービスの提供を開始した後に、動作中の第1のサーバ310を破棄し、第2のサーバ320がサービスを提供している間に、サーバ生成情報に基づいて新たに第1のサーバ310をサーバ再生部410に再生成させ、新たな第1のサーバ310がサービスの提供を開始した後に、動作中の第2のサーバ320を破棄する。
【0040】
例えば、サーバ再生部410は、クラウドサーバAにアクセスして、クラウドサーバAに転送した仮想サーバのイメージを用いて、第1のサーバ310を生成させる。また、サーバ再生部410は、クラウドサーバBにアクセスして、クラウドサーバBに転送した仮想サーバのイメージを用いて、第2のサーバ320を生成させる。また、サーバ再生部410は、クラウドサーバA及びクラウドサーバBにアクセスして、クラウドサーバAで生成させた第1のサーバ310及びクラウドサーバBで生成させたサーバ320の起動状態、稼動状態、及び停止状態を遷移させるとともに、停止させたサーバを破棄する。
【0041】
制御部420は、第2のサーバ320の再生成及び第1のサーバ310の破棄と、新たな第1のサーバ310の再生成及び第2のサーバ320の破棄とを、繰り返し実行させる。例えば、制御部420は、予め定められたイベントが生じる毎に、サーバ再生部410に、各サーバの再生成及び破棄を行うよう指示することにより、各サーバの再生成及び破棄を繰り返し実行させる。また、制御部420は、第1のサーバ310と第2のサーバ320との間のサービスの提供権の切り替えを制御する。制御部420は、第1のサーバ310及び第2のサーバ320の停止及び破棄を制御する。
【0042】
なお、制御部420は、サーバ再生部410による各サーバの再生成及び破棄を能動的に指示してよい。また、第1のサーバ310及び第2のサーバ320は、それぞれの稼動期間が終了する場合に、稼動期間の終了通知を管理サーバ400に通知してよい。この場合、管理サーバ400は、第1のサーバ310から稼動期間の終了通知を受信した場合に、第2のサーバ320を再生成するようサーバ再生部410に指示してよい。第1のサーバ310及び第2のサーバ320は、サービス提供権を他方のサーバに移管した後、自らの動作を終了する機能を有してよい。
【0043】
また、第1のサーバ310から第2のサーバ320にサービス提供権を移管する場合、第1のサーバ310は、第1のサーバ310がクライアントから受け付けた処理リクエストのうち未処理の処理リクエストを、管理サーバ400に送信又はクライアントに返却してよい。未処理の処理リクエストを受け取った管理サーバ400又はクライアントは、第2のサーバ320に未処理の処理リクエストを再送してよい。
【0044】
制御部420は、一のサーバにセキュリティリスクが高まった場合に、サーバ再生部410に他のサーバを再生成させて一のサーバを破棄させ、他のサーバにセキュリティリスクが高まった場合に、サーバ再生部410に新たな他のサーバを再生成させて他のサーバを破棄させる。例えば、制御部420は、第1のサーバ310にセキュリティリスクが高まった場合に、サーバ再生部410に第2のサーバ320を再生成させて第1のサーバを破棄させてよい。また、制御部420は、第2のサーバ320にセキュリティリスクが高まった場合に、サーバ再生部410に新たな第1のサーバ310を生成させて第2のサーバ320を破棄させてよい。「セキュリティリスクが高まった場合」は、クラッキング等の不正利用を検出した場合を含む。例えば、「セキュリティリスクが高まった場合」としては、Dos攻撃を検出した場合、不正パケットを検出した場合、不正なデータ送信を検出した場合等を例示することができる。また、「セキュリティリスクが高まった場合」は、セキュリティリスクの高さを示す指標が閾値を超えた場合を含む。例えば、セキュリティリスクの高さを示す指標としては、サーバの稼働時間の長さ、サービスの通信量、サーバの処理量等を例示することができる。従来技術では、サーバの演算装置やメモリDISKサイズの変更といったスペック変更を業務的継続性を維持しながら活性で行うには制限が多くできないケースがあった。これは、仮想化ハイパーバイザーや仮想化ゲストのOSやミドルにおいて、ゲストの停止&起動が必須のケースが多くあったためで、本件のサーバ再生技術で停止&起動を繰り返す方式では、この問題を解決している。なお、第1のサーバ310及び第1のサーバ310は、それぞれのサーバで検出したセキュリティリスクを管理サーバ400に通知してよい。
【0045】
ログ収集部430は、動作中の第1のサーバ310を破棄する前に、第1のサーバ310が記録したログ情報を収集し、動作中の第2のサーバ320を破棄する前に、第2のサーバ310が記録したログ情報を収集してよい。ログ収集部430は、クラウドサーバA及びクラウドサーバBにアクセスして、各サーバからログ情報を収集してよい。ログ情報としては、各サーバのシステムログ、アクセスログ、ユーザ認証ログ等である。ログ収集部430は、クラウドサーバA及びクラウドサーバBから収集したログ情報を時系列で出力してよい。ログ収集部430は、クラウドサーバA及びクラウドサーバBのそれぞれの稼働時間毎にログ情報を出力してよい。ログ収集部430は、ログ情報だけでなく、シャーナルや処理結果情報を収集してもよい。
【0046】
制御部420は、サービスを提供しているサーバにおいてセキュリティリスクが高まった場合に、速いタイミングでサーバを破棄してよい。これにより、攻撃を受けたサーバを速やかに破棄することができる。また、制御部420は、サービスを提供しているサーバの通信量が予め定められた閾値に達した場合及び/又はサービスを提供しているサーバの処理量が予め定められた閾値に達した場合は、予め定められた閾値に達していない場合に比べて、遅いタイミングでサーバを破棄してよい。これにより、サーバの負荷が高い場合に、サーバが破棄されることを遅らせることができる。
【0047】
制御部420は、一のサーバがサービスを提供している間に、サーバ生成情報に基づいてサーバ再生部410に他のサーバを再生成させ、他のサーバにサービスの提供を開始させ、他のサーバがサービスの提供を開始した後に、一のサーバ及び他のサーバの少なくとも一方がサービスを提供している間に、サーバ生成情報に基づいてサーバ再生部410に新たな他のサーバを再生成させ、新たな他のサーバにサービスの提供を開始させる。制御部420は、サーバの再生成及び破棄を、サービスを提供可能なサーバが1つ以上存在するように、サーバの再生成、サービスの停止、及びサーバの破棄を繰り返し実行させる。これにより、複数のサーバでサービスを提供することを可能としつつ、短い時間間隔でサーバの再生成と破棄を繰り返すことができる。また、各サーバを再生成するタイミング及び破棄するタイミングを自由に調整することができる。
【0048】
なお、制御部420は、サービスを提供する必要がない場合に、動作中の全てのサーバによるサービスの提供を停止する、又は、動作中の全てのサーバを破棄してよい。例えば、サーバが業務用サービスを提供する場合、サービスを提供しなくても業務上問題がない場合は、サーバによるサービスの提供の停止や、動作中の全てのサーバの破棄を行ってよ。
【0049】
制御部420は、ランダムな時間間隔でサーバ再生部410にサーバを再生成させてよい。例えば、制御部420は、第1のサーバ310が稼動状態になってから、第2のサーバ320を生成するまでの時間間隔をランダムに決定してよい。
【0050】
制御部420は、サービスを提供しているサーバにおいてセキュリティリスクが高まった場合に、サーバにおいてセキュリティリスクが検出されていない場合に比べて、短い時間間隔でサーバを再生成させてよい。また、セキュリティリスクが低くなった場合は、長い時間間隔でサーバを再生成させてよい。例えば、制御部420は、30分間隔で第1のサーバ310と第2のサーバ320とを交互に再生成している場合に、第1のサーバ310にセキュリティリスクが高まった場合に、15分間隔で第1のサーバ310と第2のサーバ320とを交互に再生成するようにしてよい。
【0051】
制御部420は、サービスを提供しているサーバの通信量が予め定められた閾値に達した場合及び/又はサービスを提供しているサーバの処理量が予め定められた閾値に達した場合に、サーバ再生部410にサーバを再生成させてよい。例えば、制御部420は、第1のサーバ310と外部から受信したパケット数が予め定められた閾値に達した場合に、第2のサーバ320を再生成させてよい。制御部420は、第1のサーバ310を稼動させるためのプロセッサの演算量又は使用時間が予め定められた閾値に達した場合に、第2のサーバ320を再生成させてよい。
【0052】
サーバ再生部410は、サーバを再生成する場合に、(i)再生成されるサーバの管理者ユーザのログインID、(ii)再生成されるサーバの管理者ユーザのパスワード、(iii)再生成されるサーバのホスト名、(iv)再生成されるサーバのIPアドレス、(v)再生成されるサーバに格納されるファイル構成、(vi)演算処理装置の種類・数・設定、(vii)メモリ容量の種類・数・設定、(viii)ストレージ容量の種類・数・設定、及び(ix)ネットワークインタフェースの種類・数・設定、(x)スペック、(xi)デバイス、(xii)コンポーネント種類別の利用するしないの設定、及び(xiii)サービスの有効無効・多重度の少なくとも一つを変更する。スペックは、性能分析結果及びリソース分析結果に基づき、自動であるいは手動で変更してもよい。デバイスは、例えば、USBデバイスなどであり、再生の都度異なることで、異なるNWに接続したり、全く異なる用途のサーバに変化するようにしてもよい。コンポーネントとは、データベース管理ソフトやアンチウィルスソフトなどの一部の機能を有するソフトウェアであってもよい。「管理者ユーザ」とは、例えば、アドミニストレータやルートユーザ等の、OSやシステムの管理権限を持つユーザである。サーバ再生部410がサーバを再生成する毎に管理者ユーザのログインIDやパスワードを変更することで、管理者ユーザで不正アクセスが行われる可能性を低くすることができる。また、サーバ再生部410がサーバを再生成する毎にホスト名やIPアドレスを変更することで、不正アクセスやDos攻撃等を継続しにくくすることができる。
【0053】
「演算処理装置数」は、複数のコアを備えるプロセッシングユニットのうち、サーバの動作に割り当てられるコアの数であってよい。「演算処理装置数」は、1以上のコアを備えるプロセッシングユニットの数であってよい。プロセッシングユニットは、例えば、CPUやGPU等である。「メモリ容量」は、例えば、サーバの動作に割り当てられる揮発性メモリの容量である。「ストレージ容量」は、例えば、サーバの動作に割り当てられる不揮発性記録媒体の容量である。「ネットワークインタフェース設定」は、仮想ネットワークインタフェース固有の設定である。例えば、「ネットワークインタフェース設定」は、MACアドレスの設定であってよい。ネットワークインタフェース設定を変更することは、ネットワークインタフェースを削除すること、及び/又はネットワークインタフェースを追加することを含む。
【0054】
IPアドレスを変更することにより、サービスを提供するサーバを実質的にシームレスに切り替えることができる。例えば、サービスを提供するサーバを第1のサーバ310から第2のサーバ320に切り替える場合、第1のサーバ310で処理リクエストの受け入れを停止するとともに、第2のサーバ320で処理リクエストの受け入れを開始し、第1のサーバ310がクライアントから受け入れ済みの処理リクエストの処理が完了した後に、第2のサーバ320で処理リクエストの処理を開始させて、第1のサーバ310を消滅させてよい。
【0055】
なお、ファイル構成の変更とは、例えばプログラムのパス名を変更することであってよい。例えば、第1のサーバ310において暗号化テキストを復号するための復号プログラムのパスが「/export/bin/xxx.sh」である場合、次に生成される第2のサーバ320には、同じ復号プログラムのパスを「/export2/bin/yyy.sh」としてよい。パス名を変更は、ディレクトリ名及びファイル名の少なくとも一方を変更することにより行うことができる。
【0056】
サーバ再生部410は、サービスを提供しているサーバに対するセキュリティリスクが高まった場合に、(i)再生成されるサーバの管理者ユーザのログインID、(ii)再生成されるサーバの管理者ユーザのパスワード、(iii)再生成されるサーバのホスト名、(iv)再生成されるサーバのIPアドレス、及び(v)再生成されるサーバに格納されるファイル構成の少なくとも一つを変更してよい。
【0057】
サーバ再生部410は、サーバを再生成する場合に、ユーザデータは変更しない。例えば、サーバ再生部410は、サーバを利用するためにサーバのユーザが入力する必要がある情報は変更しない。例えば、サーバ再生部410は、サーバが利用者を認証するためにユーザが入力する必要があるユーザIDやパスワードは、サーバを再生成する場合に変更しない。ユーザの認証情報であっても、APIキーや証明書など、ユーザが意識的に管理する必要がない情報については、サーバを再生成する毎に変更してよい。それらの認証情報については、ユーザ端末に別途送信することで伝達することができる。一方、サーバがサービス提供を維持するために必要な情報については変更しない。ただし、サーバがサービス提供を維持するために変更が必要となる場合はその限りではない。例えば、サーバの実行環境のネットワーク上のロケーションが変わった場合には、通信を維持するために、ファイアウォール設定を変更してよい。
【0058】
制御部420は、25時間以下の時間間隔で、サーバを再生成させてよい。制御部420は、30分以下の時間間隔でサーバを再生成させてよい。制御部420は、5分以下の時間間隔でサーバを再生成させてよい。制御部420は、5秒以下の時間間隔でサーバを再生成させてよい。
図1に関連して説明したように、初期状態のスナップショットに戻ることを繰り返し行う手法によれば、物理サーバの処理能力によっては、秒単位の時間間隔でサーバを再生成することは十分に可能である。
【0059】
サーバのオペレーションシステム領域の全部又は一部は、揮発性メモリ上、又は、冗長性を持たない記憶装置上に配置してよい。例えば、物理ホスト上で直接又は間接的に動作している仮想化ハイパーバイザ上にサーバ用のゲストOSが管理するファイルシステムを構築する場合、物理サーバが備えるDRAM等の揮発性メモリ領域にゲストOSが管理するファイルシステムの全部又は一部を構築してよい。揮発性メモリ領域にゲストOSのファイルシステムを構築することで、特にサーバの再生成時等に発生する大量のディスクIOを短時間で処理することができる。これにより、サーバの再生に要する時間を短縮することができる。また、サーバの動作時のディスクIOに要する時間を短縮することができる。また、冗長性を持たない記憶装置に構築してもよい。この場合も、冗長性を持つ記憶装置上にゲストOSのファイルシステムを構築する場合に比べて、サーバの再生等に要する時間を短縮することができる。本実施形態のサーバ管理システムによれば、仮にファイルシステムに障害が発生しても、サーバ生成情報を用いてサーバを再生してサービスの提供を継続することができるので、揮発性メモリや冗長性を持たない不揮発性記憶装置をサーバのストレージ領域として使用することが可能になる。
【0060】
図4に示すネットワーク構成において、クラウドサーバA及びBが同じサービスを提供するWEBサーバであり、クラウドサーバA及びBが同時に動作している場合にクラウドサーバAの再生成を行う処理を説明する。クライアントからのリクエストは、ロードバランサ等の振り分け装置によってクラウドサーバA又はクラウドサーバBに振り分けられるものとする。クラウドサーバAで再生成が行われる場合、制御部420は、振り分け装置がクラウドサーバA宛てに新たにリクエストを振り分けることを停止させる。クラウドサーバAが、これまでに振り分け装置から振り分けられた全てのリクエストを処理してクライアントへのレスポンスの返却が終了すると、制御部420は、クラウドサーバAの再生成を開始させる。クラウドサーバA及びクラウドサーバBがそれぞれ管理するセッション情報は、分散共有メモリによってクラウドサーバA及びクラウドサーバBで共有されてよい。クラウドサーバAの再生成が開始した後、クラウドサーバAがサービスの提供を開始するまでの間に、クラウドサーバAが管理するセッションに関連するリクエストが生じた場合、そのリクエストはクラウドサーバBに振り分けられる。この場合、クラウドサーバBは、共有分散メモリで共有されるセッション情報に基づいて、クラウドサーバAで行われていた処理を引き継いでリクエストを処理することができる。また、クラウドサーバAの再生成が完了してクラウドサーバAがサービスの提供を開始した後に、再生成前のセッションに関連するリクエストが生じた場合も同様に、そのリクエストが振り分けられたクラウドサーバA及びクラウドサーバBの一方は、共有分散メモリで共有されるセッション情報に基づいて、再生成前のクラウドサーバAで行われていた処理を引き継いでリクエストを処理することができる。
【0061】
図5は、再生成タイミングの初期値を示すタイミング情報のデータ構造を示す。再生成タイミング情報は、「サーバ用途」と「再生成周期の初期値」とを対応づける。「サーバ用途」は、サーバの用途を示す情報である。サーバの用途は、例えば、WEBサーバ、社内業務サーバ、メール転送サーバ等であってよい。「再生成周期の初期値」は、サーバを再生成する周期のデフォルト値である。
【0062】
管理サーバ400には、再生成タイミング情報が予め登録されている。制御部420は、再生成タイミング情報に基づいて、サーバを再生成する周期を決定する。例えば、第1のサーバ310及び第2のサーバ320がWEBサーバとして機能する場合、第1のサーバ310の生成と第2のサーバ320の生成とを1時間毎に繰り返してよい。なお、上述したように、再生成周期は、セキュリティリスクの発生等のイベントによって、変更され得る。したがって、「再生成周期の初期値」に格納される値は、サーバの再生成をする時間間隔の基準値であってよい。サーバを再生成する時間間隔は、状況に応じてランダムとしてよく、基準値に対して短くしたり長くしたりしてもよい。
【0063】
上述したように、通信量やプロセッサの演算量等に応じてサーバを再生成する形態を採用する場合には、再生成タイミング情報として、「再生成周期の初期値」に代えて、通信量の初期値やプロセッサの演算量の初期値等とサーバの用途とを対応づける形態を採用してもよい。
【0064】
以上に説明したように、サーバの再生成を繰り返すことにより、セキュリティリスクを抑制することができる。例えば、サーバは、短い時間間隔で繰り返し特定の状態に戻るので、ハッカーがサーバに侵入したり、サーバ内にウイルスプログラムを導入することが非常に困難となる。そのため、アンチウイルスソフトや、OS等のセキュリティパッチを頻繁に適用しなくても、セキュリティリスクが大きく高まることがない。また、不正アクセスの監視を省略しても、セキュリティリスクが大きく高まることがない。OS等のセキュリティパッチやバグ修正パッチについては、必要に応じて原サーバ120やテンプレートに適用すればよい。
【0065】
また、サーバを再生成する毎に、管理者ユーザのログインIDやパスワードを変更することによって、管理者ユーザの認証情報を短時間で変更し続けることができる。これにより、セキュリティリスクを軽減することができる。
【0066】
以上の説明では、サーバ生成情報として、原サーバ120やテンプレートに基づいてサーバを生成するものとした。しかし、サーバ生成情報として、システムバックアップデータやサーバのディスクイメージを用いてもよい。
【0067】
また、特に
図3に関連して説明したように、サービス提供のタイムラグを短くするために、複数のサーバを並列的に交互に生成するものとした。しかし、外部からのアクセスがない場合はサーバを稼動せず、外部からサーバに向かうアクセスを監視して、外部からのアクセスをトリガにサーバを再生成した後、要求された処理を行う形態を採用してもよい。この形態は社内向けの業務サーバに特に好適である。
【0068】
また、特に
図3に関連して説明したように、サーバは、一定期間連続して稼働した後、停止される。しかし、サーバは、一定期間して稼働した後、一時停止状態となり、再開と一時停止状態を繰り返した後に停止されてよい。また、サーバの停止後にサーバを破棄することは必ずしも必要ではない。また、以上において、実質的に1つのサーバが稼働状態にある形態を説明したが、同時に複数のサーバが稼働状態にある形態を採用してもよい。これにより、サーバへの不正アクセスを分散させることができる。
【0069】
図6は、本実施形態に係るコンピュータ2000の例を示す。コンピュータ2000にインストールされたプログラムは、コンピュータ2000に、実施形態に係る管理サーバ400等の装置又は当該装置の各部として機能させる、当該装置又は当該装置の各部に関連付けられるオペレーションを実行させる、及び/又は、実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ2000に、本明細書に記載の処理手順及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU2012によって実行されてよい。
【0070】
本実施形態によるコンピュータ2000は、CPU2012、及びRAM2014を含み、それらはホストコントローラ2010によって相互に接続されている。コンピュータ2000はまた、ROM2026、フラッシュメモリ2024、通信インタフェース2022、及び入力/出力チップ2040を含む。ROM2026、フラッシュメモリ2024、通信インタフェース2022、及び入力/出力チップ2040は、入力/出力コントローラ2020を介してホストコントローラ2010に接続されている。
【0071】
CPU2012は、ROM2026及びRAM2014内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。
【0072】
通信インタフェース2022は、ネットワークを介して他の電子デバイスと通信する。フラッシュメモリ2024は、コンピュータ2000内のCPU2012によって使用されるプログラム及びデータを格納する。ROM2026は、アクティブ化時にコンピュータ2000によって実行されるブートプログラム等、及び/又はコンピュータ2000のハードウエアに依存するプログラムを格納する。入力/出力チップ2040はまた、キーボード、マウス及びモニタ等の様々な入力/出力ユニットをシリアルポート、パラレルポート、キーボードポート、マウスポート、モニタポート、USBポート、HDMI(登録商標)ポート等の入力/出力ポートを介して、入力/出力コントローラ2020に接続してよい。
【0073】
プログラムは、CD-ROM、DVD-ROM、又はメモリカードのようなコンピュータ可読媒体又はネットワークを介して提供される。RAM2014、ROM2026、又はフラッシュメモリ2024は、コンピュータ可読媒体の例である。プログラムは、フラッシュメモリ2024、RAM2014、又はROM2026にインストールされ、CPU2012によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ2000に読み取られ、プログラムと上記様々なタイプのハードウエアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ2000の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
【0074】
例えば、コンピュータ2000及び外部デバイス間で通信が実行される場合、CPU2012は、RAM2014にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース2022に対し、通信処理を命令してよい。通信インタフェース2022は、CPU2012の制御下、RAM2014及びフラッシュメモリ2024のような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取った送信データをネットワークに送信し、ネットワークから受信された受信データを、記録媒体上に提供される受信バッファ処理領域等に書き込む。
【0075】
また、CPU2012は、フラッシュメモリ2024等のような記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM2014に読み取られるようにし、RAM2014上のデータに対し様々な種類の処理を実行してよい。CPU2012は次に、処理されたデータを記録媒体にライトバックする。
【0076】
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理にかけられてよい。CPU2012は、RAM2014から読み取られたデータに対し、本明細書に記載され、プログラムの命令シーケンスによって指定される様々な種類のオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々な種類の処理を実行してよく、結果をRAM2014にライトバックする。また、CPU2012は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU2012は、第1の属性の属性値が指定されている、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0077】
上で説明したプログラム又はソフトウェアモジュールは、コンピュータ2000上又はコンピュータ2000近傍のコンピュータ可読媒体に格納されてよい。専用通信ネットワーク又はインターネットに接続されたサーバーシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読媒体として使用可能である。コンピュータ可読媒体に格納されたプログラムを、ネットワークを介してコンピュータ2000に提供してよい。
【0078】
コンピュータ2000にインストールされ、コンピュータ2000を管理サーバ400として機能させるプログラムは、CPU2012等に働きかけて、コンピュータ2000を、管理サーバ400の各部としてそれぞれ機能させてよい。これらのプログラムに記述された情報処理は、コンピュータ2000に読込まれることにより、ソフトウエアと上述した各種のハードウエア資源とが協働した具体的手段であるサーバ再生部410及び制御部420として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ2000の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の管理サーバ400が構築される。
【0079】
様々な実施形態が、ブロック図等を参照して説明された。ブロック図において各ブロックは、(1)オペレーションが実行されるプロセスの段階又は(2)オペレーションを実行する役割を持つ装置の各部を表わしてよい。特定の段階及び各部が、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウエア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、論理AND、論理OR、論理XOR、論理NAND、論理NOR、及び他の論理オペレーション、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等のようなメモリ要素等を含む、再構成可能なハードウエア回路を含んでよい。
【0080】
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、処理手順又はブロック図で指定されたオペレーションを実行するための手段をもたらすべく実行され得る命令を含む製品の少なくとも一部を構成する。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0081】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
【0082】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ又はプログラマブル回路に対し、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供され、説明された処理手順又はブロック図で指定されたオペレーションを実行するための手段をもたらすべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0083】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。また、技術的に矛盾しない範囲において、特定の実施形態について説明した事項を、他の実施形態に適用することができる。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0084】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0085】
10 システム
11 ネットワーク
400 管理サーバ
410 サーバ再生部
420 制御部
430 ログ収集部
2000 コンピュータ
2010 ホストコントローラ
2012 CPU
2014 RAM
2020 入力/出力コントローラ
2022 通信インタフェース
2024 フラッシュメモリ
2026 ROM
2040 入力/出力チップ