Webシステム構築とは?Webシステムの基本から構築方法まで解説
IT技術の発展に伴い、システムには利用者ニーズへの柔軟な対応力が求められるようになりました。スマートフォンの普及もあり、インターネットの利用者数も増加傾向にある中、Webシステムへの需要も高まっています。
本記事では、Webシステムに関して、その定義や特徴などの基本的内容からWebシステムで構築するメリットや注意点について解説します。
なお、システム構築に関する基本的な内容は別の記事で説明していますので、こちらの記事も是非参照してください。
Webシステムとは
まず、「Webシステムの定義とは?」、「どのような特徴があるのか」といった基本的な内容について確認しましょう。
Webシステムの定義
Webシステムとは、その名の通り「Web」を利用したシステムのことです。つまり、Webシステムを理解するには「Web」という言葉の意味を押さえる必要があります。
Webは、プログラミングの仕組みです。少々難しい説明をすると、同一ファイルにソースコードと関連するドキュメントを記述した「Web」と呼ばれるメタソースを利用することで、情報の同一性を担保する仕組みをWebシステムといいます。
よくWebシステムを説明する際に “インターネット”が絡むような説明がされ、実際に ”Webシステムとは” で検索するとそのような説明をしているページが多くヒットします。
しかし、これは本質的な説明ではありません。
私がWebシステムの定義を説明するなら、”ハイパーリンクという仕組みで、ページからページへ次々と移動してドキュメントを表示できるシステム”と言います。
普段、PCやスマホでインターネット上のページを参照する際、ページ上のボタンやリンクをクリックあるいはタップすることで、まるで蜘蛛の巣(web)を辿るように次々とページを移動して内容を表示できると思います。この特徴を持っているシステムであれば、インターネットに繋がっていようがいまいが、Webシステムと言えます。
Webシステムの特徴
Webシステムには、次のような特徴があります。
- クライアント・サーバ方式のシステム構成となる
- 不特定多数のクライアントが同時にアクセス可能
- クライアントはWebブラウザを利用する
- HTTP/HTTPSを利用して通信する
クライアント・サーバ方式のシステム構成となる
クライアント・サーバ方式とは、数あるコンピュータネットワーク構成タイプの1つです。
サービスを提供する「サーバ」というコンピュータと、「サーバ」にアクセスしてサービスを受け取る「クライアント」からなるコンピュータネットワーク構成です。
Webシステムの場合、Webサービスを提供する役割を持つWebサーバと、このWebサーバにネットワーク経由でアクセスするクライアントという構成になります。
不特定多数のクライアントが同時にWebサーバへアクセス可能
Webシステムでは、不特定多数のクライアントが同時にWebサーバへアクセスし、Webサーバが持つ情報を更新・削除することが可能です。
クライアントはWebブラウザを利用する
Webシステムにおけるクライアントは、Webブラウザというソフトウェアを利用してWebサーバの情報にアクセスします。
よく利用されている代表的なWebブラウザとして、Microsoft Edge、Google Chrome、Safari、Mozilla Firefox などが挙げられます。
HTTP/HTTPSを利用して通信する
HTTP/HTTPSとは、WebシステムにおいてWebサーバとクライアント(Webブラウザ)が通信する際の方式(プロトコル)です。HTTPという通信上のルールに則って、クライアントのWebブラウザはWebサーバが持つ情報にアクセスします。
HTTPとHTTPSの違いは通信パケットの暗号化が行われているか否かです。HTTPSは通信パケットを暗号化して情報をやりとりするため、改ざんや盗聴への対策が強化されています。
Webでシステムを構築するメリット
前章で説明したWebシステムの特徴は、次のようなメリットをもたらします。
- メンテナンスが容易
- 数多くのユーザがシステムを利用できる
- クライアントのプラットフォームを限定しない
- ユーザに動的コンテンツを提供できる
メンテナンスが容易
Webシステムは、クライアント・サーバ方式のシステム構成となりますが、これはメンテナンスを容易にするというメリットをもたらします。
Webシステムにおける通信は、クライアントのWebブラウザがWebサーバに情報の提供をリクエストする形で行われます。したがって、システムに保存される情報は、基本的にWebサーバで一元管理する仕組みとなります。
システムの環境設定や管理するファイル、モジュールを更新する際、Webサーバの情報を更新すればよく、クライアント側の更新をする必要は無いため、メンテナンスが容易であると言えます。
数多くのユーザがシステムを利用できる
Webシステムは、不特定多数のクライアントが同時にWebサーバへアクセス可能であるため、数多くのユーザがシステムを利用する場合に有効な選択肢となります。
Webシステムの例として、インターネットショッピングサイトやニュースサイトなどのWebサイトを挙げることができますが、大きいWebサイトだと1日に数億を超えるアクセス数をカウントする場合もあります。
クライアントのプラットフォームを限定しない
Webシステム上のクライアントは、Webブラウザを利用してWebサーバにアクセスします。Webブラウザが稼働するOSやミドルウェアといったプラットフォームを限定しません。例えば、多くのWebサイトはコンピュータだけでなくスマートフォンからも参照可能です。また、Windows OS、MacOS、 iOSというようにOSが違えども、Webブラウザさえあれば同じようにWebシステムへアクセスすることができます。
ユーザに動的コンテンツを提供できる
Webシステム上のクライアントは、Webブラウザを利用してWebサーバにアクセスします。Webサーバから提供される情報の1つにWebページがありますが、Webページにて動的コンテンツを提供することができます。
例えば、ユーザがWebページ上で行った操作によって、ページに表示される内容を変えたり、ページ上のデータをリアルタイムで更新することも可能です。Webシステムであれば、ユーザは自身のニーズに合った最新かつ最適な情報にアクセスすることができます。
Webシステムを構築するには
Webシステムの基本的な内容を踏まえ、ここではWebシステムの構築に関して理解していきましょう。
構築するシステムの要件を定義
Webシステムを構築する場合も、一般的なシステム構築の考え方と同じです。
まずは、構築するWebシステムの要件定義を行い、Webシステムの要件を決めていきます。
要件定義とは、構築するシステムの機能や性能、制約条件といったシステムに求める要件を明確に定義する作業のことです。
システムの要件は「機能要件」と「非機能要件」に大別されます。違いは次の通りです。
機能要件:システムが実行する必要がある機能に関する要件
非機能要件:機能要件を補足するための機能以外の部分や品質に関する要件
誤解を恐れずに言うと、機能要件は開発するソフトウェアに実装する機能とリンクします。非機能要件は、開発するソフトウェアが稼働するシステム基盤(インフラ)およびシステムが提供するサービスの品質に求める要件となります。
非機能要件において検討すべき具体的な要件に関しては、IPAが公開している非機能要件グレードを参考にしてください。
▼情報処理推進機構 システム構築の上流工程強化(非機能要求グレード)紹介ページ
https://www.ipa.go.jp/archive/digital/iot-en-ci/jyouryuu/hikinou/ent03-b.html
非機能要求グレードは、上記ページにて、以下赤枠で囲ったリンクのどちらかをクリックすることで入手可能です。”2018”とありますが、現時点で最新版となります(2024年8月時点)。
構築環境の選択
昨今は、多様なニーズに迅速かつ柔軟に応えられることを期待し、クラウドコンピューティングサービス(パブリッククラウド)の利用も増えています。
本章では、Webシステムをオンプレミス環境に構築するか、クラウド環境に構築するかの選択におけるポイントを説明します。
オンプレミスでの構築
Webシステムに次のような要件を求める場合、オンプレミス環境で構築する方が望ましいでしょう。
- システムを自由にカスタマイズしたい
- クラウド事業者に依存せず自社でリスクを管理したい
システムを自由にカスタマイズしたい
オンプレミス環境の場合、クラウド環境よりも柔軟かつ自由なカスタマイズができます。
オンプレミス環境での構築は、ハードウェア基盤からすべて構築するため、多様なコンポーネントを組み合わせることや細かい設定が可能であり、複雑であったり独自性が高いシステム要件の実現を期待できます。
クラウド事業者に依存せず自社でリスクを管理したい
オンプレミス環境では、システムに潜むリスクに関して自社でリスク管理できます。
例えば、システム要件を定義する際に、実現するサービスレベルやセキュリティへの対策の検討において、自社独自のセキュリティ指針やコンプライアンスに沿っているかがポイントになることがあります。
クラウド環境での構築では、クラウド事業者が提供するサービスの仕様や規約に依存する形になるため、先述のようなセキュリティ指針やコンプライアンスに沿うのが困難となるケースがあります。そのような場合は、オンプレミス環境での構築が好ましいでしょう。
クラウドでの構築
一方、Webシステムに次のような要件を求める場合、クラウド環境での構築が望ましいでしょう。
- 導入費用を抑えたい
- ハードウェアの管理をクラウド事業者に任せたい
- システムに弾力性や拡張性を持たせたい
- 幅広い拠点に高パフォーマンスでサービスを提供をしたい
導入費用を抑えたい
クラウド環境での構築は、資本的支出が発生しないため、導入費用を抑えられます。
資本的支出とは、システムを構築する際に掛かるハードウェアやソフトウェアの購入費や管理費です。オンプレミス環境では、ハードウェアやソフトウェアを購入し、会社の資本として管理することになりますが、クラウド環境ではクラウド事業者の責任範囲で管理します。
資本的支出が無くなることで、オンプレミス環境での構築と比較して、初期費用が抑えられます。
ハードウェアの管理をクラウド事業者に任せたい
クラウド環境の場合、機器やデータセンタ等の施設を含むハードウェア、一部ミドルウェアの管理をクラウド事業者の責任範囲として管理します。
要するに、システム保守に要する人員や時間等の作業コストを抑えることに繋がります。
そのようなリソースを十分に確保できない状況の場合に、大きなメリットとなるでしょう。
システムに弾力性や拡張性を持たせたい
クラウド環境では、Webシステムに高い弾力性、拡張性を持たせることができます。
弾力性とは、システムの負荷や利用状況に応じてリソースを自動的に増減させる性質です。一方で拡張性とは、システム上のハードウェア、ソフトウェア等のリソースを後から拡張できる性質です。
Webシステムは、時間帯によってアクセスが集中する時とそうでない時があります。アクセスが集中する時にリソースを自動的に増やし、そうでない時は減らすことでパフォーマンスや運用コストを最適化できます。
また、インターネットに公開するWebシステムは、時の経過によってアクセス数が増えることも考えられ、そうなった場合に容易にシステムを拡張できることは重要なことです。
幅広い拠点に高パフォーマンスでサービスを提供をしたい
国内あるいは世界のあらゆる拠点にWebシステムの利用者が存在し、それぞれの拠点で高パフォーマンスでサービスを提供したい場合、クラウド環境での構築が望ましいかもしれません。
パブリッククラウドでは、世界中のあらゆる拠点にデータセンターが存在し、Webシステムの利用者に最も近い拠点でサービスを提供することができます。
CDN(Contents Delivery Network)をはじめ、Webシステムが複数拠点で高パフォーマンスを発揮するのを支援するサービスも利用できます。
Webシステムを構築する際の注意点
Webシステムを構築する際の注意点に関して、次の内容を説明します。
- セキュリティ攻撃への対策は十分に行う
- サービスレベルに応じて可用性を高める
- 利用者数を十分に考慮する
セキュリティ攻撃への対策は十分に行う
DoS攻撃やHTMLインジェクションなど、Webシステムをターゲットとしたセキュリティ攻撃は数多くあります。インターネットに接続されるWebシステムは、それらの脅威に特にさらされており、セキュリティ対策は十分に行う必要があるでしょう。
サービスレベルに応じて可用性を高める
Webシステムを構築するメリットとして、数多くのユーザがシステムを利用できる点は先述した通りです。要するに、数多くのユーザにサービスを提供したい場合に有効なのですが、24時間サービス提供を行うWebシステムを構築するケースは珍しくありません。
24時間サービスを提供する場合、システムの可用性を十分に高める必要があります。
可用性とは、障害等が起きてもシステムが停止することなく稼働し続ける能力を言います。
可用性を高めるには、機器の冗長化や専用のソフトウェアが必要となるためコストが掛かります。したがって、システム構築の予算と相談することになりますが、システム要件で定めたサービスレベルを達成するのに十分な可用性を持たせるべきでしょう。
利用者数を十分に考慮する
Webシステムを構築するにあたり、利用者数やシステムへのアクセス数を見積ることは重要です。見積りが実際より不足していた場合、システムが利用ピークに耐えられず十分なサービス提供ができなくなる可能性があります。逆に見積りが実際より過足であった場合、システムの構築・運用に無駄なコストを支払うことになります。
最適化するためには、見込まれる利用者数やアクセス数を高い精度で予測し、予測が難しい場合はクラウド環境での構築を検討すべきでしょう。
まとめ
さて、今回はWebシステムに関する基礎と構築のポイントなどを説明しましたが、いかがでしたでしょうか。
Webシステムの特徴や利点を押さえていただき、システム構築においてどのようなケースでWebシステムが望ましいのか、本記事が構築を検討する際の第一歩となれば幸いです。