ADP:基本用語
基本用語説明
パターン説明に登場する用語のうち、 クラウドコンポーネント以外の基本的な用語について、簡単に説明する。
Webサーバ
インターネットに面したネットワークに属し、クライアントからのリクエストに応じて、HTMLファイルや画像ファイルなどを返すサーバ。またWebサーバの後ろにアプリケーションサーバを配置するケースも多く、その場合はWebサーバが通信を受け取り、処理をアプリケーションサーバに依頼するケースもある。 InternetExplorerやFireFoxなどのWebブラウザが通信する相手は、通常はWebサーバである。 製品としては、ApacheやIIS、nginxなどが有名。
アプリケーションサーバ
Webアプリケーションを動作させるためのサーバ。アプリケーションサーバ上では、PHPやJava、RubyやC#などのプログラム言語で実装されたアプリケーションを配備して、クライアントからの通信に応じて処理を行い、結果を返す。返す結果は、動的なコンテンツ(通信してきたクラウイアントやDBのデータなどによって内容に変化のあるコンテンツ)が多い。 ApacheにPHPやRubyを動作させるための環境を入れてアプリケーションサーバとしたり、TomcatやJBossなどを利用する。
キャッシュサーバ
Webサーバやアプリケーションサーバから配信されるコンテンツをキャッシュしておき、クライアントに対して代理でコンテンツを返すサーバ。 例えば1時間に一度しか元データが変わらないコンテンツの場合、その元データを元にアプリケーションサーバで生成したコンテンツをキャッシュサーバに置いておくことで、クライアントからのリクエストに対してキャッシュサーバから生成済みのコンテンツを返せるため、レスポンスが向上し、アプリケーションサーバの負荷を低減できる。またキャッシュサーバを、キャッシュ元となるサーバ(オリジンサーバ)から地理的に離れた所に配置することで、オリジンサーバから遠いクライアントに対してのレスポンスを向上させることもできる。 製品としては、Vernishなどがある。
HTTPセッション
Webサーバやアプリケーションサーバにアクセスしてくるユーザ固有の状態(ステート)を保持するための仕組みのこと。 通常Webサーバやアプリケーションサーバは、どのようなユーザがアクセスしてくるかを把握しない。ただしこれだと、例えばECサイトでよく使われるショッピングカートのような機能は実現できない。HTTPセッションはこういったシチュエーションの時に利用する技術で、ユーザ毎にセッションを維持するID(セッションID)を発行し、そのIDをCookieに入れることで、通信の度にセッションIDが送られてくるため、セッションIDをキーにしてユーザごとのステートを保持する事ができる。 なお、このユーザ固有のステート情報をWebサーバやアプリケーションサーバが保持する事を「ステートフル」と言い、保持しないことを「ステートレス」という。
プロキシ/リバースプロキシ
組織や企業のネットワークから外部のネットワークに接続する際に、接続元のクライアントの代わりに外部と通信を行うサーバのことを、プロキシと呼ぶ。 これとは逆に、外部から入ってきた通信を受け取り、内部の別のサーバに代理でアクセスするサーバのことを、リバースプロキシと呼ぶ。 いずれのケースでも、接続元の情報を隠したり、通信の内容をチェクしたりできるため、多くの企業で利用されている。 プロキシ/リバースプロキシとしては、HAProxyやSquidなどが有名。
DR ( Disaster Recovery )
地震や洪水などの自然災害によりシステムが損傷を受けて利用不可能になった場合に、別途用意したシステムを使用して業務を復旧・継続すること。 DRを目的としたバックアップシステムの事をDRシステムと呼んだり、DRシステムの配置してある場所をDRサイトと呼んだりする。
NAT ( Network Address Translation )
プライベートネットワーク内のサーバからパブリックネットワークにあるサーバにアクセスする際、プライベートネットワークで通用するIPアドレスと、パブリックネットワークで通用するIPアドレスを相互変換することで、パブリックネットワークに属するIPアドレス1つで、複数のプライベートIPアドレスからの通信を可能にする技術。 NATを行うためには通常ルータやNAT用の仮想サーバをネットワークに配置し、プライベートネットワーク内のサーバはこれらを通じてパブリックネットワークと通信を行う。
NFS ( Network File System )
ネットワークを経由してファイルを共有するためのシステム。共有ファイルを配置するNFSサーバと、アクセスを行うNFSクライアントから構成される。 複数のNFSクライアントから1つのNFSサーバにアクセスできるため、複数クライアントでファイルを共有することができる。
RAID ( Redundant Arrays of Independent Disks )
ディスクのIO性能や耐障害性を向上させる目的で、複数のディスクを使って構成を組む事を指す。 RAIDには、ディスクの構成方法によりいくつかのレベルがあり、例えばRAID0はストライピングと呼ばれ、データを複数のディスクに分割して書き込むことで、ディスク単体に比べて書き込みおよび読み込み性能を向上させることができる。またRAID1はミラーリングと呼ばれ、複数のディスクに同じデータを書き込むことで、1つのディスクに障害が発生しても、データを失わない構成を作ることができる。
SPOF ( Single Point Of Failure )
ロードバランサ、Webサーバ、データベースなどのシステムを構成する要素のうち、冗長化されておらず、障害が発生して停止するとシステム全体に影響をおよぼす要素のこと。単一障害点ともいう。 例えばデータベースが冗長化されておらず、データベースが停止するとシステム全体が動作しなくなる場合、データベースはSPOFということになる。
SSH ( Secure SHell )
ネットワーク経由でサーバを操作する際に利用するプログラム。サーバとの通信は暗号化されており、安全に通信を行う事ができる。クラウド上に仮想サーバを起動した場合は、通常はSSHを使用して操作を行う。
JSON ( JavaScript Object Notation )
キー項目と、その値のペアで定義されるデータ形式。単純なフォーマットではあるが、階層構造を表現でき、多くのプログラムで容易にパースできるため軽量なデータフォーマットとして利用されている。 名前にJavaScriptと入っているが、特にJavaScriptだけに利用を限られたものではない。
例:簡単なJSONデータ
{ "value":"hoge", "array":["foo","bar"], "object":{ "value":"hom" } }
JSONP ( JSON Padding )
ブラウザにJavaScriptを読み込むscriptタグは、src属性に記載した任意のURLから、JavaScriptのファイルをダウンロードできる。JavaScriptファイルは、scriptタグの書かれたHTMLとは異なるドメインでも読み込むことができるため、この特性を利用して、ドメインを超えた通信(クロスドメイン通信)を行う技術のことを、JSONPと言う。 JSONPを使うと、様々なサーバと通信することができるため、HTMLのダウンロード元サーバを介さずに、クライアントから直接別サーバにデータを取りに行くことができる。
システム監視ソフトウェア
システム全体を効率よく管理するために、サーバ、ネットワーク、OS、アプリケーションなどの状態を適切に把握することが重要である。そのため、常にシステムの稼働状況のデータを収集・監視する「システム監視ソフトウェア」が使われる。システム監視ソフトウェアとしては、Nagios/Zabbix/Heartbeat等がよく用いられる。