【メモ】ツタヤ図書館における Webサイトの構成に関する考察

さて、ツタヤ図書館としては、四館目となる高梁市図書館。建物も出来上がり、おそらく今頃排架作業の真っ最中というとことでしょう。

並行して図書館の Web サイトも新しいものの準備が進んでいるんであろうなぁ、ということで、いままで blog のエントリーとして書いた情報を踏まえつつ、HTTP レスポンスなどの通常アクセスの範囲で調べてみてわかった内容などから、特に Web サイト周りについてまとめておく。

以前にも書いたのだけど、海老名市図書館のサイトオープン当初、使っている SSL 証明書がワイルドカード証明書だったことから「今後、オープンするであろうツタヤ図書館の Web サイトでは、証明書使いまわすんじゃね?」と予想していたのですが、この点については改善され、各地自体別に CCC 名義での EV SSL 証明書を用意する形に変更されました。

ワイルドカード証明書になっている点と、海老名市が "ebina.city-library.jp" となっている時点で、今後オープン予定となっている多賀城市や高梁市のサイトを、"tagajo.city-library.jp" 、 "takahashi.city-library.jp" とすれば、同じ証明書を使い回せる、ってことを考えていてもおかしくはなさそうです。

[From 海老名市立図書館の新しいWebサイトで気になること、あれこれ - Soukaku's HENA-CHOKO Blog]

そのエントリーの影響なのかどうかは定かではありませんが、最近確認したところ、 ebina.city-library.jp と tagajo.city-library.jp に対して、それぞれ別 IP を割り当てるよう DNS 的な変更が行われ、https://tagajo.city-library.jp/ にアクセスするとリダイレクトにより、https://ebina.city-library.jp/library/another_top へ誘導するよう設定されていた Web サーバも、リダイレクトを行わない設定に変更されていました。( Web サーバは、おそらく 12 月中頃、17 日あたりに変えた?)

[From メンテ後の海老名市立図書館のWebサイトの状況から、多賀城市がどうなるかを推察してみる - Soukaku's HENA-CHOKO Blog]

EV SSL証明書使うようにしたのはいいけど、それもちょっと違うんじゃない的な話もありますけど。

これを海老名市に当てはめると、本来主である海老名市がそのドメインを使用し海老名市名義で証明書を取得して運用すれば良いのに、なぜか指定管理者となった企業がそれを表立って仕切っているというのが今回における違和感の原因。指定管理者として業務代行ということは、あくまで主は海老名市なのだから、そこを譲ってはいかんだろうと考えるのだけど違うのか。

[From 海老名市立図書館サイトとEV SSL証明書に関して雑感 | 脳無しの呟き《土鍋と麦酒と炬燵猫》]

今回は、まさに例と同じことが起きている。海老名市の施設のサイトなのにCCCが持っているドメインにCCCが『ドメイン名所有権の確認」、「申請責任者の権限の認証」、「企業実在性の認証」』を受けている。CCCのものであることは高いwレベルで証明されるが、海老名市のものであることは証明されていない。サーバ証明書と関係ない世界で、CCCが海老名市立図書館の運営を受託していることは知れているので、この一点だけでは攻めどころが難しいが。

[From 海老名市立図書館はCCCのEV SSL証明書を使っているということは私立図書館? #公設ツタバ館 #CCC - いろいろやってみるにっき]

#色んな人が指摘していことを、中の人は把握していて、色々変更しているように感じなくもない。

ただ、PC 用サイトとスマホ用サイトで、ドメイン名を変えているせいで、それそれのサイトに合わせた EV SSL 証明書を取得せざるを得ない状態なんですよね…。レスポンシブな Web デザインにしておけば、PC 用とスマホ用で URL 自体を変えずに対応できるように出来るはずなのだけど、何かしら理由でそういうデザインに出来ないのかもしれませんね。
もしかしたら、レスポンシブ対応するよりも、EV SSL 証明書のほうがコスト的に安い、って判断だったりするのかも、しれませんけど。

あと、割と早い時期から、BIG-IP を何らかの形で導入してるようだ、というのには気がついてたんですけど、

この "BIG-IP" というキーワードを中心に、いろいろと情報がつながってきた感じがあるのが、公開されている Web サイトの構成に関すること。


まず、実際の HTTP レスポンスは、以下の通りなのだけど、よく見ると cookie が2つセットされているのがわかる。

soukaku@nexus01:[~]$ GET -ed  https://ebina.city-library.jp/library/
200 OK
Cache-Control: public, max-age=0
Connection: close
Date: Fri, 13 Jan 2017 11:20:42 GMT
Pragma:
ETag: "1484306442-0"
Server: Apache
Vary: Cookie
Content-Language: ja
Content-Type: text/html; charset=utf-8
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Fri, 13 Jan 2017 11:20:42 GMT
Client-Date: Fri, 13 Jan 2017 11:20:45 GMT
Client-Peer: 210.170.110.8:443
Client-Response-Num: 1
Client-SSL-Cert-Issuer: /C=JP/O=Cybertrust Japan Co., Ltd./CN=Cybertrust Japan EV CA G2
Client-SSL-Cert-Subject: /jurisdictionC=JP/serialNumber=0110-01-030450/businessCategory=Private Organization/C=JP/ST=Tokyo/L=Shibuya-ku/O=Culture Convenience Club Co.,Ltd./OU=IT Dept./CN=ebina.city-library.jp
Client-SSL-Cipher: AES256-SHA256
Client-SSL-Socket-Class: IO::Socket::SSL
Client-Transfer-Encoding: chunked
Link: </library/sites/all/themes/library/favicon.ico>; rel="shortcut icon"; type="image/vnd.microsoft.ico"
Set-Cookie: SSESSf991a209920d5a172adb421c830b7740=j1pduvjeiYawX97yQ7iWAODChL_GOf97HQBVNBLfQRE; path=/library/; domain=.ebina.city-library.jp; secure; HttpOnly
Set-Cookie: BIGipServertsutaya_libweb_honban_www_80_pool=rd10o00000000000000000000ffff0a0c107ao80; path=/
Title: 海老名市立図書館
X-Frame-Options: SAMEORIGIN
X-Meta-Description: 海老名市立中央図書館では、従来の図書貸出はもちろんのこと、蔦屋書店の併設により、本や物販商品の購入が可能です。また、館内にはスターバックス コーヒーも併設され、コーヒーを飲みながら本を読むこともできます。
X-UA-Compatible: IE=edge
soukaku@nexus01:[~]$ GET -ed  https://tagajo.city-library.jp/library/
200 OK
Cache-Control: no-cache, no-store
Connection: close
Date: Fri, 13 Jan 2017 11:20:59 GMT
Pragma: no-cache
Server: Apache
Content-Language: ja
Content-Type: text/html; charset=utf-8
Expires:
Last-Modified:
Client-Date: Fri, 13 Jan 2017 11:21:00 GMT
Client-Peer: 210.170.111.209:443
Client-Response-Num: 1
Client-SSL-Cert-Issuer: /C=JP/O=Cybertrust Japan Co., Ltd./CN=Cybertrust Japan EV CA G2
Client-SSL-Cert-Subject: /jurisdictionC=JP/serialNumber=0110-01-030450/businessCategory=Private Organization/C=JP/ST=Tokyo/L=Shibuya-ku/O=Culture Convenience Club Co.,Ltd./OU=IT Dept./CN=tagajo.city-library.jp
Client-SSL-Cipher: AES256-SHA256
Client-SSL-Socket-Class: IO::Socket::SSL
Client-Transfer-Encoding: chunked
Link: </library/sites/all/themes/library/favicon.ico>; rel="shortcut icon"; type="image/vnd.microsoft.ico"
Set-Cookie: SSESSd8eabf22ba05312c0c2e1cf173138077=uUuG7gmiBHDzvxsA1mda9fbw78O9IU9KVLPo5noinqg; path=/library/; domain=.tagajo.city-library.jp; secure; HttpOnly
Set-Cookie: BIGipServerlibweb_tagajo_www_80_pool=rd50o00000000000000000000ffff0a041566o80; path=/
Title: 多賀城市立図書館
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Meta-Description: 多賀城市立図書館は3月21日に多賀城駅前に移転しました。
X-Meta-Keywords: 多賀城市立図書館,山王,山王分室,大代,大代分室,移動図書館車,多賀城市,図書館,tagajo,tagajyo,tagajocity,tagajyocity,library
X-UA-Compatible: IE=edge

海老名、多賀城ともに "SSESS" で始まるものと、"BIGipSserver" で始まるものの2種類があり、 "SSESS" からのものは httpd のもので、"BIGipServer" のほうは、その文字列の通り ロードバランサとして有名な BIG-IP が付与したものだろうと…。
ちなみに、スマホ用サイトの HTTP レスポンスにも、"BIGipSserver" で始まる cookie が付与されているのは確認済み。

海老名市のオープン頃に思っていたことを図にしたのが、以下のような構成。

想定システム構成図その1

各自治体の単位で、BIG-IP と Web サーバ を用意している、というものなんだけど、これ実は違うんじゃないか、と思い始めたのが最近のこと。「そーいえば、cookie 使って、Webアクセスのバランシグを制御するのって、ロードバランサとしては普通にできるよな?」というのを思い出したからなんですけどね。
で、クッキー・パーシステンス をキーワードに調べてみたら、BIG-IP のそのものズバリのドキュメントを発見。

ロードバランサと組み合わせて複数の Web サーバを運用しているの場合、提供しているサービスによっては、クライアントと Web サーバ間のセッション制御が肝になる事があるんだけど、このセッション制御の方法の一つがクッキー・パーシステンス。ロードバランサがクライアントからの HTTP リクエストを特定の Web サーバに振り向けるため判断の手段に ロードバランサが付与した cookie を利用するという方法なんだけど、ツタヤ図書館の Web システムでも、コレを使ってセッションのコントロールをしているのではないか、という訳だ。

実際、 BIG-IP だって、そう安いものではないんで「各自治体毎に用意するんじゃなくて、 1 台の BIG-IP の下に複数の自治体のWeb サーバ置いても問題なくね?構築費も安く出来るし。」と中の人が考えてもおかしくないよなと、思って考え直した構成が、以下の形。

想定システム構成図その2

これだと、 CCC が指定管理を受けるたびに BIG-IP を買い足さなくてもいいので、コスト的なもんは抑えられますしね。
#BIG-IP が死んだら、全自治体に影響が出るというリスク有るけど、そのへんは流石に考えた構成になってるよね?

んでもって、ここにきて、同日同時間帯に海老名市と多賀城市でシステムメンテナンスやるってアナウンスが出た、ってのもポイント。

同日同時間帯のメンテナンスの謎

異なる自治体に向けて提供している Web サーバは独立したもので運用しているはずなので、システムメンテナンスを同日同時間帯にやる必然性は、まったくないはずなんですよ。これが、1 台のサーバ上でバーチャルドメインでサービス提供しているとか、データセンタ基幹部分のネットワーク機器弄るとかじゃなければ。

あるとしたら、

  • 高梁市の新しい図書館 Web サイトの準備のために、全自治体で共有している BIG-IP の設定変更作業をやる必要があるから

ということじゃないかなー、と。
BIG-IP を共有している構成であれば、異なる自治体であるにも関わらず、同日同時刻でメンテナンスのための時間を確保しなくちゃいけない、ということの説明にはなるんですよね…。

本当に高梁市図書館の Web サイトの準備作業のために 6 時間確保した作業枠の中の 1 分間だとして、他の自治体のサイトにも影響があるわけですから

という意見が出てくるのは、至極当然なことと思うわけです。

ま、周南市のツタヤ図書館開館前に、同じような一斉メンテナンスがアナウンスされるかもしれない、というのは気のしておいてもいいかもしれませんね。

あと、BIG-IP をなんで使おうか、と考えたのかは、全くもってして不明。
最近の BIG-IP だと UTM 的な機能も持たせられるみたいだから、そういう機能も含めてってことなのかな?というのはあるかもしれない…。

トラックバック(0)

コメントする