このサイトはどこのインフラで運用しているのか
といった疑問がでてきたので、検索方法を調べました。
この方法は、Qiitaに限らず、どのサイトでも有効です。
(2019/6/5 追記)
コメント頂き、訂正させていただきます。
インフラの前にCDNをかましているサイトは、この方法だと判定できないことが分かりました。
最下段のメルカリは、その例です。
手順
- ドメイン名からIPアドレスを入手する
-
http://ip-api.com/
を使用して、IPアドレスからインフラ情報を取得する
IPアドレスの入手
dig
コマンドで検索します。
QiitaのURIはhttps://qiita.com/
なので、ドメイン名はqiita.com
となります。
mbp:~ mac$ dig qiita.com
; <<>> DiG 9.10.6 <<>> qiita.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4389
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 5
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;qiita.com. IN A
;; ANSWER SECTION:
qiita.com. 60 IN A 54.250.191.52
qiita.com. 60 IN A 54.178.172.4
qiita.com. 60 IN A 54.65.166.180
;; AUTHORITY SECTION:
qiita.com. 237 IN NS ns-1049.awsdns-03.org.
qiita.com. 237 IN NS ns-171.awsdns-21.com.
qiita.com. 237 IN NS ns-772.awsdns-32.net.
qiita.com. 237 IN NS ns-1956.awsdns-52.co.uk.
;; ADDITIONAL SECTION:
ns-1049.awsdns-03.org. 92828 IN A 205.251.196.25
ns-171.awsdns-21.com. 163988 IN A 205.251.192.171
ns-1956.awsdns-52.co.uk. 92802 IN A 205.251.199.164
ns-772.awsdns-32.net. 92820 IN A 205.251.195.4
;; Query time: 3204 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Wed Jun 05 09:38:57 +07 2019
;; MSG SIZE rcvd: 287
この結果のうち必要となるのは下記情報です
;; ANSWER SECTION:
qiita.com. 60 IN A 54.250.191.52
qiita.com. 60 IN A 54.178.172.4
qiita.com. 60 IN A 54.65.166.180
QiitaはIPアドレスを3つ所持しているのがわかりますが、これはロードバランサがIPアドレスを3つ所持しているためと推測できます(この段階でAWSを使用している可能性が高い)
IPアドレスからインフラ情報を取得する
http://ip-api.com/
はIPアドレスを入力すると、地理的位置情報を返してくれるサービスです。
変換形式を指定できるので、jsonで帰るようにcurl
を叩きます。
mbp:~ mac$ curl http://ip-api.com/json/54.250.191.52
{"as":"AS16509 Amazon.com, Inc.","city":"Tokyo","country":"Japan","countryCode":"JP","isp":"Amazon Technologies Inc.","lat":35.709,"lon":139.732,"org":"Amazon.com, Inc.","query":"54.250.191.52","region":"13","regionName":"Tokyo","status":"success","timezone":"Asia/Tokyo","zip":""}
"as":"AS16509 Amazon.com
より、AWSを使用していることが分かりました。
更に"regionName":"Tokyo"
より、東京リージョンを使用していることも分かります。
応用
同じ要領で、メルカリがどのインフラを使用しているか調べてみます。
メルカリのURI:https://www.mercari.com/jp/
より、ドメイン名はwww.mercari.com
です。
mbp:~ mac$ dig www.mercari.com
; <<>> DiG 9.10.6 <<>> www.mercari.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46009
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 5
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.mercari.com. IN A
;; ANSWER SECTION:
www.mercari.com. 300 IN CNAME mercari.map.fastly.net.
mercari.map.fastly.net. 30 IN A 151.101.10.128
;; AUTHORITY SECTION:
fastly.net. 5442 IN NS ns2.fastly.net.
fastly.net. 5442 IN NS ns3.fastly.net.
fastly.net. 5442 IN NS ns4.fastly.net.
fastly.net. 5442 IN NS ns1.fastly.net.
;; ADDITIONAL SECTION:
ns1.fastly.net. 3228 IN A 23.235.32.32
ns2.fastly.net. 1360 IN A 104.156.80.32
ns3.fastly.net. 35 IN A 23.235.36.32
ns4.fastly.net. 1360 IN A 104.156.84.32
;; Query time: 186 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Wed Jun 05 09:56:19 +07 2019
;; MSG SIZE rcvd: 232
mbp:~ mac$ curl http://ip-api.com/json/151.101.10.128
{"as":"AS54113 Fastly","city":"Singapore","country":"Singapore","countryCode":"SG","isp":"Fastly","lat":1.28009,"lon":103.851,"org":"Fastly","query":"151.101.10.128","region":"","regionName":"","status":"success","timezone":"Asia/Singapore","zip":""}
Fastlyというインフラを使用しているようです。
初めて聞くクラウドサービスでした、、、
https://www.fastly.com/
(2019/6/5 追記)
正しくはCDNでした。
メルカリは大量の画像データ等を使用しているので、レスポンスの観点からCDNを使用してキャッシュうしているのだと思われます。
この場合、CDNのその先に使用してるインフラがあると予測できます。