読者です 読者をやめる 読者になる 読者になる

あれのーと

らくがきちょうです。

松屋を支える技術

matsuya ubuntu

 

この記事は年記の3年目と併せて、「松屋 Advent Calendar 2014」19日目の記事になります。

昨日は、いくやさんの「In my 松屋 life」でした。読んだ後で原曲を聞いてみましたが、すごくいい歌でした。曲の歌詞と相まって松屋との思い出をうまく振り返っていましたね。

そして、私の年記も三年目になりました。まだまだ元気でやってますよ。

さて、これまでのAdvent Calendarで書いてきた松屋を愛してやまない方々ほど、熱く語れるものは少ないですが、今回は「松屋を支える技術」として、あれやこれやと調べてみました。とはいえ、外から確認できるレベルでの調査となります。

Webサーバ

まずはWeb。この季節はトンテキ定食ですね。私もよく食べます。

f:id:kazken:20141216004819p:plain

最近のWebクライアントはだいたい「開発者ツール」みたいな感じでいろいろ解析機能も持っていたりしますので、そこから調べることも可能でしょう。

コマンドラインから調べる場合はwget -S [ホスト名]でResponse Headerを表示することが可能です*1

$wget -S www.matsuyafoods.co.jp
--2014-12-17 02:04:18-- http://www.matsuyafoods.co.jp/
www.matsuyafoods.co.jp (www.matsuyafoods.co.jp) をDNSに問いあわせています... 210.168.75.133
www.matsuyafoods.co.jp (www.matsuyafoods.co.jp)|210.168.75.133|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています...
HTTP/1.1 200 OK
Date: Tue, 16 Dec 2014 17:04:16 GMT
Server: Apache
X-Pingback: http://www.matsuyafoods.co.jp/wordpress/xmlrpc.php
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
長さ: 特定できません [text/html]
`index.html' に保存中

[ <=> ] 16,252 --.-K/s 時間 0.03s

2014-12-17 02:04:18 (556 KB/s) - `index.html' へ保存終了 [16252] 

Apacheということがわかりますね。

その下を見ると、CMSとしてWordPressを使っていることがわかります。ということはPHPMySQLを使っているのでしょうね。

ソースを眺めてみる

ではソースを眺めてみましょう。トップページのソースを開いてみるとこんな感じです。

f:id:kazken:20141218022949p:plain

jQueryを使っていますね。ではそのまま最下部に行ってみるとこんな記載があります。

f:id:kazken:20141218023418p:plain

クリックすると、こんな感じのJavaScriptが。

f:id:kazken:20141218023432p:plain

Google Analyticsが使われていますね。

松屋のお弁当について

では、ここで松屋のお弁当の話を。お弁当といっても、松屋店頭で販売している弁当*2ではなく、コンビニと提携して委託販売をしている松屋の弁当があります。メニューも過去にメニューにあった、てりたまハンバーグやチーズハンバーグなどオリジナルな弁当が多いです。

f:id:kazken:20141204122056j:plain

f:id:kazken:20141204122117j:plain

これはてりたまハンバーグ弁当。南青山店か...

f:id:kazken:20141201121133j:plain

f:id:kazken:20141201121149j:plain

これは、キムカル丼弁当ですね。松屋のメニューでは1、2を争う人気です(オレの中で)。

さて、この松屋のオリジナル弁当。調べた感じだと住友系列のビル内にあるリーベンハウスというコンビニで扱っているようです。みなさんももし見かけたら買ってみると幸せになれるかもしれません。

閑話休題。本線に戻しましょう。

IPアドレスでいろいろしてみる

では、松屋のサーバのIPアドレスを調べてみましょう。hostコマンドでIPアドレスは確認することができます。

$host www.matsuyafoods.co.jp
www.matsuyafoods.co.jp has address 210.168.75.133 

-6オプションをつけるとIPv6でlookupします。

$ host -6 www.matsuyafoods.co.jp
;; connection timed out; no servers could be reached 

IPv6の割り当てはないようですね。IPv6でアクセスすると、ウシ松くん泳ぎながら出てくるとかそんな夢も見ていましたが、現実はそう甘くないようです。

 

さて、松屋のサーバはどこで管理されているのでしょうか。これはIPから地理情報を求めることができるgeoip-binを使うと、ある程度調べることができます。

geoip-binは、MaxMind社が提供するgeoipのデータベースにアクセスするバイナリ群で、DebianUbuntuではパッケージで提供されています*3が、githubでもソースが公開されています。


今回はUbuntu 14.10環境を利用していますので、apt-getを使いgeoip-binとgeoip-database-contribをインストールすることにします。

geoip-database-contribは、Ubuntu環境でインストール時にデフォルトで入っているgeoip-databaseを置き換え、 月に一回更新されるgeoipのデータベースを sudo geoip-database-contrib_update を実行することで更新してくれる便利ツールです*4

$ sudo apt-get install geoip-bin geoip-database-contrib

インストールが終わったら、geoip-binに含まれているgeoiplookupコマンド*5で、サーバーの所在を確認してみましょう。

$ geoiplookup www.matsuyafoods.co.jp
GeoIP Country Edition: JP, Japan
GeoIP City Edition, Rev 1: JP, N/A, N/A, N/A, N/A, 35.689999, 139.690002, 0, 0
GeoIP ASNum Edition: AS4694 Yahoo Japan Corporation

なるほどヤフー。AS番号があるのでwhoisで確認してみましょう。

$ whois AS4694
% [whois.apnic.net]
% Whois data copyright terms http://www.apnic.net/db/dbcopyright.html
% Information related to 'AS4608 - AS4864'
as-block: AS4608 - AS4864
descr: APNIC ASN block
remarks: These AS numbers are further assigned by APNIC
remarks: to APNIC members and end-users in the APNIC region
=中略=

% Information related to 'AS4694'
aut-num: AS4694
as-name: IDC
descr: Yahoo Japan Corporation
import:
export:
country: JP
admin-c: MH15688JP
tech-c: AN8394JP
tech-c: MT21278JP
changed: apnic-ftp@nic.ad.jp 19960409
changed: apnic-ftp@nic.ad.jp 20121003
source: JPNIC
% This query was served by the APNIC Whois Service version 1.69.1-APNICv1r0 (UNDEFINED)

 ふむふむ、IDCフロンティア。そういえば、geoiplookupで座標も取れていたので、google mapで確認してみましょう。


上のページにもあるように、google mapで「経度,緯度」の形式で検索を行えば場所をポイントしてくれます。

f:id:kazken:20141217033415p:plain

 おー、新宿中央公園w。geoipの場合、10km範囲の正答率が2割〜3割程度の精度なので、「まあ、新宿なんだろうなー」という感覚でいるのが良さそうです。

おわりに 

今回は松屋のサーバーについてあれこれと調べてみました。もっといろいろな調べ方*6があるかと思いますが、geoipの使い方も理解できたのでまあ良しとしたいと思います。

 

明日は、mizuno_asさんです。「屈辱の松屋なう」。なぜ屈辱なのか気になりますね 。

 

*1:curlだと-Iオプションですかね。

*2:俗に言う松弁

*3:FedoraやArchにもあるようです

*4:インストール時には最新のデータベースに自動的に更新されます。

*5:v6向けにgeoiplookup6もあります

*6:netcraftは除く