G 社は,一般消費者向け商品を取り扱う流通業者である。インターネットを介して消費者へ商品を販売する EC サイトを運営している。G 社の EC サイトは,G 社データセンターに Web システムとして構築されているが,システム利用者の増加に伴って負荷が高くなってきていることや,機器の老朽化などによって,Web システムの更改をすることになった。
〔現行のシステム構成〕
G 社のシステム構成を図 1 に示す。
- Web システムは DMZ に置かれた Web サーバ,DNS サーバ及びサーバセグメントに置かれた AP サーバから構成される。
- EC サイトのコンテンツは,あらかじめ用意された静的コンテンツと,利用者からの要求を受けてアプリケーションプログラムで生成する動的コンテンツがある。
- Web サーバでは HTTP サーバが稼働しており,静的コンテンツは Web サーバから直接配信される。一方,AP サーバの動的コンテンツは,Web サーバで中継して配信される。この中継処理の仕組みを a プロキシと呼ぶ。
- DMZ の DNS サーバは,G 社のサービス公開用ドメインに対する b DNS サーバであると同時に,サーバセグメントのサーバがインターネットにアクセスするときの名前解決要求に応答する c DNS サーバである。
〔G 社 Web システム構成見直しの方針と実施内容〕
G 社は,Web システムの更改に伴うシステム構成の変更について次の方針を立て,担当者として情報システム部の H さんを任命した。
- Web システムの一部のサーバを J 社が提供するクラウドサービスに移行する。
- 通信の効率化のため,一部に HTTP/2 プロトコルを導入する。
H さんは,システム構成変更の内容を次のように考えた。
- DMZ の Web サーバで行っていた処理を J 社クラウドサービス上の仮想サーバで行うよう構成を変更する。また,この仮想サーバは複数台で負荷分散構成にする。
- 重要なデータが格納されている AP サーバは,現構成のまま G 社データセンターに残す。
- J 社の負荷分散サービス(以下,仮想 LB という)を導入する。仮想 LB は,HTTP リクエストに対する負荷分散機能をもち,HTTP/1.1 プロトコルと HTTP/2 プロトコルに対応している。
- Web ブラウザからのリクエストを受信した仮想 LB は,リクエストの URL に応じて AP サーバ又は Web サーバに振り分ける。
- Web ブラウザと仮想 LB との通信を HTTP/2 とし,仮想 LB と AP サーバ及び Web サーバとの間の通信を HTTP/1.1 とする。
H さんが考えた Web ブラウザからサーバへのリクエストを図 2 に示す。
H さんは,次に HTTP/2 プロトコルについて調査を行った。
〔HTTP/2 の概要と特徴〕
HTTP/2 は,HTTP/1.1 との互換性を保ちながら主に通信の効率化を目的とした拡張が行われている。H さんが注目した HTTP/2 の主な特徴を次に示す。
- 通信の多重化:HTTP/1.1 には,同一の TCP コネクション内で通信を多重化する方式として HTTP パイプラインがあるが,HTTP/2 では,TCP コネクション内で複数のリクエストとレスポンスのやり取りを d と呼ばれる仮想的な通信路で多重化している。①HTTP パイプラインは,複数のリクエストが送られた場合にサーバが返すべきレスポンスの順序に制約があるが,HTTP/2 ではその制約がない。
- ヘッダー圧縮:HPACK と呼ばれるアルゴリズムによって,HTTP ヘッダー情報がバイナリフォーマットに圧縮されている。ヘッダーフィールドには,e,:scheme,:path といった必須フィールドがある。
- フロー制御:d ごとのフロー制御によって,一つの d がリソースを占有してしまうことを防止する。
- 互換性:HTTP/2 は,HTTP/1.1 と互換性が保たれるように設計されている。一般的に HTTP/2 は,HTTP/1.1 と同じく "https://" の URI スキームが用いられる。そのため,通信開始処理において f プロトコルの拡張の一つである ②ALPN(Application-Layer Protocol Negotiation)を利用する。
〔HTTP/2 における通信開始処理〕
HTTP/2 では,通信方法として,h2 という識別子で示される方式が定義されている。その方式の特徴を次に示す。
- TLS を用いた暗号化コネクション上で HTTP/2 通信を行う方式である。
- TLS のバージョンとして 1.2 以上が必要である。
- HTTP/2 の通信を開始するときに,ALPN を用いて ③クライアントとサーバとの間でネゴシエーションを行う。
H さんが理解した h2 の通信シーケンスを図 3 に示す。
このシーケンスによって,上位プロトコルが HTTP/2 であることが決定される。
〔新 Web システム構成〕
H さんは新たな Web システムの構成を考えた。H さんが考えた新 Web システム構成を図 4 に示す。
図 4 の新 Web システム構成に関する H さんの考えを次に示す。
- J 社クラウドの VPC サービスを用いて,G 社用 VPC を確保する。G 社用 VPC セグメントでは IP アドレスとして,172.21.10.0/24 を用いる。
- G 社用 VPC セグメントの仮想ルータと G 社データセンターの L3SW との間を,J 社が提供する専用線接続サービスを利用して接続する。専用線接続の IP アドレスとして,172.21.11.0/24 を用い,L3SW の IP アドレスを 172.21.11.1 とし,仮想ルータの IP アドレスを 172.21.11.2 とする。
- G 社データセンターと J 社クラウドとの間で通信できるように,L3SW 及び仮想ルータに表 1 の静的経路を設定する。
表 1 静的経路設定| 機器 | 宛先ネットワーク | ネクストホップ |
|---|
| L3SW | ア | イ |
| 仮想ルータ | 0.0.0.0/0 | ウ |
- G 社用 VPC セグメント中に,仮想サーバを複数起動し,Web サーバとする。
- G 社用 VPC セグメントの Web サーバは静的コンテンツを配信する。
- G 社データセンターのサーバセグメントの AP サーバは動的コンテンツを配信する。
- Web サーバ及び AP サーバは,これまでと同様に G 社データセンターの DMZ の DNS サーバを利用して名前解決を行う。
H さんは,J 社クラウドの仮想 LB の仕様について調べたところ,表 2 に示す動作モードがあることが分かった。
表 2 仮想 LB の動作モード| 動作モード | 説明 |
|---|
| アプリケーションモード | レイヤー 7 で動作して負荷分散処理を行う。 |
| ネットワークモード | レイヤー 4 で動作して負荷分散処理を行う。 |
④H さんは,今回のシステム構成の変更内容を考慮して仮想 LB で設定すべき動作モードを決めた。
H さんは,ここまでの検討内容を情報システム部長へ報告し,承認を得た。