提供するサービスの検討
-
サービスの内容→アプリケーションに必要な機能・デザイン→システム基盤に必要な機能を順に検討していく。
-
システム基盤に求められる機能:データベースが必要ならDBサーバー、機密性が高いならセキュリティを高めるための機器が必要か
利用言語、ソフトウェアの検討
- プログラミング言語:それぞれの言語には処理の不得意があり、対応しているフレームワークもそれぞれ異なる。
言語 | 説明 |
---|---|
JavaScript | ・ブラウザ上でも動作するため、クライアントサイドで利用可能 ・サーバーサイドでも使われるケースが増えてきている ・機能がシンプルで動作が軽快 |
Java | ・実行環境をインストールしないと動作させられない ・GUIも複雑な処理もできる |
Visual Basic C# |
・MicrosoftのフレームワークであるASP.NETでよく用いられる ・GUIが得意 |
PHP | ・HTML内に埋め込んで実行可能 ・広く使われており、ノウハウが多い |
Perl Ruby Python |
・文字列処理が得意 ・フレームワークが豊富 ・Linuxでは実行環境が標準装備、Windowsでは別途環境の構築が必要 |
- サーバーのオペレーティングシステム(OS):基本的にはWindowsかLinuxのどちらかを選択する。
OS | 説明 |
---|---|
Windows | ・一般向けPCでも広く普及 ・GUIでの操作が基本 ・高価 ・脆弱性を狙われやすい |
Linux | ・Windowsと操作感が異なる ・CUIでの操作が基本 ・無償もしくは安価 ・Microsoft系のソフトウェアは使えないことが多い |
- ミドルウェア:OSとアプリケーションの中間に位置する。(Webサーバー、APサーバー、DBMSなど)
Webサーバー
名前 | 説明 |
---|---|
Apache | ・無償 ・Windows/Linuxで利用可 ・最も利用されているWebサーバー |
nginx | ・有償でサポートを受けられる ・Windows/Linuxで利用可 ・機能がシンプルで動作が軽快 |
IIS | ・Windowsに標準装備 ・Linuxでは使えない ・APサーバーの機能も持つ |
APサーバー
名前 | 説明 |
---|---|
Tomcat | ・無償 ・Windows/Linuxで利用可 ・Apacheとの組み合わせでよく利用される |
JBoss | ・有償 ・Windows/Linuxで利用可 |
IIS | ・Windowsに標準装備 ・Linuxでは使えない ・Webサーバーの機能も持つ |
DBMS
名前 | 説明 |
---|---|
Oracle | ・高機能 ・かなり高価 ・Windows/Linuxで利用可 |
MySQL PostgreSQL SQLite |
・シンプルな機能 ・無償 ・Windows/Linuxで利用可 |
SQL Server | ・高機能 ・高価 ・Windowsで利用可 |
ネットワーク構成の検討
-
ネットワークの分割:大きく3種類に分割
サーバー構成の検討
-
ロードバランサー:Webサーバーを冗長化する際、システムに届くリクエストをどのWebサーバーに渡すかを考える際に、振り分け作業をおこなう。
-
構成するシステムの用途や要件によって、「コストを重視し、最低限のサーバー機器を配置する」「可用性を重視し、機器故障によるサービス停止を極力なくす」などの方針を決め、サーバー構成をする。
サーバー基盤の検討
-
オンプレミス:「自社運用」を表す。自分で機器を購入して利用する方法。設置場所の確保や機器の購入など、掛かる費用は大きいが、構成の自由度はかなり高い。安価でそれなりの自由度があるクラウドの登場により徐々に少なくなっているのが実情。
-
レンタルサーバー:費用が安く、運用の手間が少ないので個人での利用に向いている。反面、構成の自由度はほぼないため、企業で利用されることはあまりない。
-
クラウド:使った分利用料が掛かるという課金体系で気軽に使い始めることができ、企業・個人にかからず利用者が急増している。また、構成自由度が高いのも魅力。
負荷分散
-
Webシステムにおける負荷分散では、ロードバランサーでリクエストを各Webサーバーに分散し、個々のサーバー機器の負担を軽減する。1つのサーバーが故障しても、ほかのサーバーが稼働していれば全体としてサービスの継続が可能になる。
サーバー設計・構築
データベース設計
アプリケーション設計
バックアップ運用
- システムを構成するデータを複製して保管(バックアップ)しておけば、問題が発生しても複製されたデータでサービスを再開できる。このときの複製データをバックアップデータ、バックアップデータの取得や不要なものを削除することなどをバックアップ運用と呼ぶ。
- バックアップの対象は、アプリケーションやコンテンツのようなファイルとデータベースの中身。
ログ運用
-
ログファイル:サーバーやネットワーク機器は動作中の状態の変化や自分の行った処理を記録したテキストファイル。
- システムログ:OSが発生したイベントやエラーを記録
- アプリケーションログ:ミドルウェアなどのアプリケーションが動作履歴を記録
- アクセスログ:Webサーバーなどが受けたリクエストを記録
-
ログ運用、ログメンテナンス:ログファイルはどんどん追記されていくため、何もしないと膨大なサイズになってしまい、可読性が低下し、ハードディスクの容量を圧迫する。これを適当なタイミングで別ファイルに切り分けたり、古いものを削除したりすること。
-
アクセスログ解析:アクセスログを解析して参考となる情報を得ること。
Webサイトのパフォーマンス
-
パフォーマンス:Webシステムは利用者が多くなると受けるリクエストが増え、レスポンスの効率が低下する。リクエストが送られてから、ユーザーに対して画面に表示されるまでの時間などのこと。ユーザー満足度の1つ。
指標名 | 内容 |
---|---|
応答時間 | クライアントのリクエスト送信からレスポンス受信までの所要時間 |
表示完了時間 | クライアントのリクエスト送信からコンテンツがすべて表示されるまでの所要時間 |
ページ読み込み時間 | クライアントが最初のコンテンツを受信し始めてからコンテンツがすべて表示されるまでの所要時間 |
可用性 | エラーなくWebサイトにアクセスできた確率 例:1年間(8760時間)で10時間だけサイトが障害で停止した →(8760-10)÷8760×100≒99.886% |
脆弱性診断
-
インターネットに公開されるWebシステムで、セキュリティ確保のために脆弱性対策をすることは重要。運用している間に使用しているOSやミドルウェアに新たな脆弱性が発見されることがある。この対策として、脆弱性情報データベースを定期的に確認し、利用している製品の脆弱性の有無を把握しておく必要がある。
-
脆弱性対策が予想外の障害をもたらすこともある。安易にシステムに変更を加えると想定外の障害が発生することがある。事前にテスト環境でサービスに影響がないかを確認することが大事。
参考:Web技術の基本