Qiitaがどのインフラで運用されているのかを調べる

# このサイトはどこのインフラで運用しているのか
といった疑問がでてきたので、検索方法を調べました。
この方法は、Qiitaに限らず、どのサイトでも有効です。

（2019/6/5 追記）
コメント頂き、訂正させていただきます。
インフラの前にCDNをかましているサイトは、この方法だと判定できないことが分かりました。
最下段のメルカリは、その例です。

# 手順
1. ドメイン名からIPアドレスを入手する
2. `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のその先に使用してるインフラがあると予測できます。