サーバーの種類
サーバのOSには、商用UNIX(Solaris、HP-UX、AIX)、フリーUNIX(Linax、FreeBSD)、Windows Serverなどがあります。代表的なサーバは以下のとおりです。
- ウェブサーバとは
- HTML、画像ファイルなどをウェブブラウザへ配信するサーバー。CGI、SSIなどの拡張機能やアクセス認証、ログファイル出力なども行う。
- データベースサーバとは
- データベースを保有し、クライアントから検索や更新などの要求を受けたときに処理を行い、結果をアプリケーションに返すサーバー。
代表例:Oracle(日本オラクル)、SQL Server(マイクロソフト)
- DNSサーバとは
- コンピュータのリクエストに対し、ホスト名を元に DNS に登録された情報を検索して IP アドレスを調べて返すサーバー。イントラネットでは、IP アドレスを管理に使われたり電子メールのアドレスの設定にも使用される。
- メールサーバとは
- 電子メールを受信するための「POPサーバ」と送信するための「SMTPサーバ」の2種類ある。タイトルや本文に応じて処理を切り替えたり(POPサーバ)、入力フォームに入力した情報を、管理者にメール送信したり(SMTPサーバ)することができる。
ウェブサーバの運用
ウェブサーバの運用方法には、専用サーバ、共有サーバ、VPS に分けられます。
- 専用サーバとは
- サーバを単一のユーザが占有できるサーバ。設定やソフトウェアのインストールを自由にすることができる。比較的コストは高い。
- 共用サーバとは
- 複数のユーザが使用する共有サーバ。プログラムのインストールや設定などが制限されており、アクセス負荷のリスクもあるがコストは低い。
- VPS とは
- 仮想占有サーバ(Virtual Priate Server)の略。物理的には共用サーバなのでコストは低いが、ソフトウェアを使用して仮想的に専用サーバのように利用できる。
オペレーティングシステム(OS)の運用
OSの標準の管理者アカウント(root、administrator、admin、superviorなど)は、安全なサーバ運用のためには無効化すべきです。また、OSのサポートライフサイクルが終了した場合、修正モジュールなどによる更新が実施されなくなるため、利用を中止することが望ましいとされています。
Apache の設定
Apacheの設定で代表的なものを以下にあげます。
- DocumentRoot とは
- ウェブサーバのファイルシステム上のどのフォルダがURLにおけるトップ階層になるかの対応を定義する記述のこと。
例:ローカルホストで動作しているApacheの設定ファイルに
DocumentRoot /var/www/htdocs/ の記述があり有効である場合
http://localhost/web/index.html へアクセスした時のファイルシステムは/var/www/htdocs/web/index.html へのアクセスになる。
- DirectoryIndex とは
- URLの最後に / が指定されたときに応答されるファイルを指定する。
http://localhost/ を要求する場合、http://localhost/index.html の存在を確認してあればファイルを返す。DirectoryIndex に index.htm が記述されていない場合は 403 Forbiddenと表示される。
例:ローカルホストで動作しているApacheの設定ファイルに
DirectoryIndex index.html index.htm index.php の記述がある場合
http://localhost/ を要求すると
index.html と index.htm と index.php を順番に検索して返してくる。
- Listen とは
- Listenディレクティブは、Apacheが外部からリクエストを受け付けるポート番号を指定します。httpd.confファイルにListen 80を記述するとポート80番でのリクエストを受け付けるようになります。
- Aliasとは
- Aliasを使って、別のディレクトリにあるファイルをドキュメントルートの配下に配置されているように見せかけることができる。
例:ローカルホストで動作しているApacheの設定ファイルに
Alias /Web//var/www/htdocs の記述がある場合
http://localhost/Web/index.html へアクセスした時のファイルシステムは/var/www/htdocs/index.html へのアクセスになる。
- mod_rewrite とは
- ApacheのモジュールのひとつでアクセスURLを正規表現で書き換える、いわゆるリダイレクト(URIのリライト)の処理を行う。
TCP/IPネットワーク
TCP/IP ネットワーク管理のための代表的なコマンドは以下のとおりです。
- arp とは
- アドレス解決プロトコル (ARP) で使われるテーブルの表示・修正をする。
- ifconfig / ipconfig とは
- 現在の TCP/IP ネットワーク構成値をすべて表示する。
- hostname とは
- 現在のホスト名(コンピュータ の名前)を出力する。
- netstat とは
- ネットワーク接続の状態を表示する。
- nslookup とは
- DNSサーバに名前解決の問合せを行う。
- ping とは
- ネットワークの疎通確認をする。
- route とは
- IPパケットをルーティングするためのルーティングテーブルの内容表示と設定を行う。
- traceroute とは
- IPパケットの生存時間を示すTTL(Time To Live)の仕組みを活用して、通過経路を確認する。
システム運用のリスク対策
サーバの稼働率(可用率)でどの程度問題なく使用できるかがわかります(99.9%なら年間8.76時間のダウンタイムが想定される)。大規模自然災害時のディザスタリカバリなどを前提に復旧対策を検討する必要があります。
サーバのパフォーマンスを上げるために、スケールアップとスケールアウトなどの方法があります。また、サーバのデータ保護のためにRAIDという方法がとられることがあります。
- スケールアップとは
- CPUなどの機能自体の性能を上げること。
- スケールアウトとは
- サーバの数を複数台に増やして負荷を分散させること。
- RAID とは
- 複数台のハードディスクを使用して書き込むデータに冗長性を持たせること。
RAIDとは
Redundant Arrays of Inexpensive Disks (低価格ディスクの冗長配列:直訳)の頭文字。複数のハードディスクを組み合わせて一台の装置として管理し、記憶装置の冗長性と容量増大を実現する仕組みです。RAIDレベルは冗長性のあるRAID1~5と冗長性のないRAID0があります。実際に使用されているのは、主にRAID1とRAID5の2種類だけです。運用上は、RAID5以外にテープドライブやNAS等を利用したバックアップが必要です。
LAMPとは
LAMPとは、Linux+Apache+MySQL+PHP/Perl/Pytho の略。データベース連動型のWebアプリケーションの開発で人気の高い定番のオープンソースソフトの組み合わせで、OSにLinux、WebサーバにApache、データベースにMySQL、プログラミングにPHP(またはPerlかPython)を用いたシステムのことです。データベースにPostgreSQLを使う組み合わせはLAPPといいます。
DBMSとは
データベースマネンジメントシステム(DataBase Management System)の略。
データベースを構築するためのシステムやソフトウェアを指します。データベースの中でも関係モデルという考え方をベースに情報をテーブル(表)で管理してテーブルの関連を定義するリレーショナルデータベースという形式が広く利用されています。データの一つ一つをカラム(列)とレコード(行)の中にまとめ、それらをテーブルの中に並べます。1件のデータを複数のフィールド(項目)の集合として表現する方式で、ID番号や名前などのキーとなるデータを利用してデータの結合や抽出を容易に行うことができます。
RDBMSとは
リレーショナルデータベースマネンジメントシステム(Relational DataBase Management System)の略。
リレーショナルデータベースの管理システム(ソフトウェア)のことをいいます。SQL などの問合せ言語(Query Language)を使ってデータの定義・操作・制御を行います。商用として、代表的なものにOracle Database、オープンソースとしてはMySQL があります。また、オブジェクト指向を取り入れたORDBMS(Object-Relational DataBase Management System)がありOracle Database、PostgreSQLが該当します。
サーバーサイドスクリプトとは
サーバーサイドスクリプトとは、ウェブ上で動く掲示板やチャットなどを作成するのに便利なプログラム言語です。サーバーサイドスクリプトの種類は以下のとおり。代表的なものに、PHP、CGI、JSP、ASPなどがあります。
- PHPとは
- ハイパーテキスト プリプロセッサー(Hypertext Preprocessor)の略。
ウェブサーバに置かれるソフトウエアのApacheモジュールとして動作するオープンソースのサーバーサイドスクリプト言語。特にウェブ開発に適しており、HTMLに埋め込むことができる。記述されたスクリプトをPHPが実行し、結果をHTMLデータとしてウェブブラウザに出力する。クライアントサイドスクリプトのJavaScript と違い、コードがサーバーで実行され、その結果がクライアントに送信されるためユーザーは出力を作成したコードに何があるかを見分けることができない。
フォームからデータを取得したり、動的にページの内容を生成したり、Cookieを送信・受信するといった他のCGIプログラムにできることを実現できる。PHPではリクエストのたびにプログラムを起動することがなく、サーバーに負担がかかりにくいためCGIと比べて処理速度が速い。
- CGIとは
- コモン ゲートウェイ インターフェース(Common Gateway Interface)の略。
フォームが送信したデータはウェブサーバを経由してプログラムに渡される。このサーバとプログラムの間のやり取りの手順(仕組み)をCGI(CGIプログラム)という。プログラムがデータベースなどの外部プログラムを実行することが考えられたため、橋渡し役(Gateway)とのやり取りのルール(Interface)という名前が付いている。CGIプログラムはPerl やCなどがよく使われる。自作のCGIプログラムをアップロードして利用できるプロバイダもある。
- JSPとは
- ジャバ サーバ ページ(Java Server Pages)の略。
Java言語を利用してウェブサーバで動的にウェブページを生成し、クライアントに送信する技術。HTMLファイルの中にJavaプログラムを埋め込んでおき、クライアントの要求に応じてプログラムを実行、処理結果のみをクライアントに送信する。結果は通常のHTML形式になるため、ウェブブラウザに特殊な機能を組みこむことなくウェブアプリケーションを構築できる。
- ASPとは
- Microsoft社のウェブサーバであるIISで利用できるウェブサーバの拡張機能の一つ。通常はウェブブラウザに渡されてから処理されるJavaScriptやVBScriptなどで記述されたスクリプトをサーバ側で処理し、処理結果のみをブラウザに送信する。ブラウザからデータを受け取ってファイルに記録したり、データベースと連携した動的なウェブページを作成したりすることができる。
サーブレットとは
サーブレットとは、Javaサーブレット(Java Servlet)のことです。ウェブサーバ上で実行されるモジュール(部品)化されたJava言語のプログラムで、ウェブサーバの機能を拡張できます。OSやハードウェアに依存することがなく、サーブレットAPIを実装したあらゆるウェブサーバで稼動させることができます。ブラウザからウェブサーバーのサーブレットが呼び出されると、HTML文書を動的に生成してブラウザに返送します。
アクセスログ解析とは
アクセスログ解析とは、ウェブページのPV、訪問者数、ヒット数などの閲覧記録を分析することをいいます。アクセスログ解析ツールには、ウェブビーコン を使って特定するものなどがあります。
- PVとは
- ページビュー(Page View)の略。
ウェブページが表示される回数を基準にするアクセス数。
- ユーザ数とは
- 訪問者の合計数で、同じユーザが複数回アクセスしてもカウントされる。
- ユニークユーザ数とは
- 同じユーザが複数回訪問しても1としてカウントされる。
- ヒット数とは
- ウェブサーバに対して要求された全てのファイル数。HTMLだけでなくCSS、JS、GIFファイルなども含まれる。