システムの構成
要点と定義
システム構成は、処理をどの機器に割り当て、機器同士をどう接続するかを表します。適切な構成は、処理性能、障害への強さ、運用のしやすさに影響します。構成を考えるときは、各機器の役割と処理の流れ、障害時に残る機能を対応づけます。
Webシステムでは、Webサーバがブラウザからの要求を受け、静的なコンテンツの配信などを行います。動的な処理や業務ロジックをアプリケーションサーバ(APサーバ)に分担させ、データベースへのアクセスもそこで扱う構成があります。サーバを分けると、要求の種類に応じた処理分担や、役割ごとの負荷調整ができます。物理サーバを分離しただけで、文字コードの変換やクライアント側の実行環境が自動的に実現するわけではありません。
システムの信頼性を高める基本的な方法に、構成要素の冗長化があります。フォールトトレラントは、部品が故障しても影響を抑えてシステム全体の処理を続ける設計です。故障した部品を別の構成要素で補えるように、予備や代替経路を用意します。
現用系と待機系を用いる構成では、待機系の準備状態によって切替えにかかる時間が異なります。ホットスタンバイは待機系でも必要なプログラムを起動しておき、現用系に障害が起きた際に速やかに切り替える方式です。コールドスタンバイは待機系を停止状態などで待たせ、障害後に起動や準備をして切り替えます。
デュアルシステムは、二つの系統が同じ処理を独立して行い、結果を照合する構成です。待機系へ切り替える方式とは目的が異なります。
スケールアウトはサーバを追加して台数を増やし、システム全体の処理能力を高める方法です。サーバ自体をより高性能なものに置き換えるスケールアップと区別します。
適用条件と例
WebサーバとAPサーバの分担では、たとえば画像や固定ページの配信をWebサーバで処理し、検索要求に応じた計算やデータベースアクセスをAPサーバで処理できます。静的な要求と動的な要求で負荷の性質が異なる場合、役割ごとの処理分担が有効です。実際の役割分担はシステムの設計によります。
障害の切り分けでは、成功した通信がどの機器や機能を通ったかを確認します。たとえば、同じネットワーク内の端末から対象端末への応答が確認できても、特定の遠隔操作機能が正常とは限りません。応答確認に使った通信と遠隔操作の通信では、使用する機能や許可設定が異なることがあるためです。また、別の端末からの接続が成功していれば、その通信経路で使われた機器は動作していると判断する根拠になります。ポート番号や送信元・宛先を指定する通信制御では、許可設定が通信の方向やサービスに合っているかを確かめます。
待機系への切替えや複数経路の用意は、単一の障害で全体が停止する可能性を下げます。ただし、冗長化しただけで常に処理が続くとは限りません。切替えの仕組み、待機側の状態、必要なデータが利用可能かが条件です。予備系が稼働準備済みなら切替えを速めやすく、起動や復旧作業が必要なら再開まで時間がかかります。
写真を投稿する仕組みと検索する仕組みでは、必要な構成要素が異なることがあります。投稿時にストレージへ写真を保存し、複製先へ定期的にコピーする構成なら、検索時に複製先から写真を配信できます。そのため、検索のたびに元のストレージを読み出す負荷を抑えられ、複製が利用できる間は元のストレージに障害があっても検索を続けられる場合があります。一方、投稿時の保存先が使えなければ、新しい写真の保存はできません。検索用の複製は、元の保存先への書込みを代替するものではありません。
この節の続き
- 誤りやすい点
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む