Twitterの画像置き場がAkamaiに変わっていた

Twitter の画像(ユーザのアイコン画像・背景画像)置き場は Amazon S3 だった記憶があるのだけど,tcpdump を眺めていたら,いつのまにか Akamai に変わっていたことに気づいた.

調べてみたところ a[0-5].twimg.com というホストを使っていて,その時は Akamai が見えたのだけど,どうも footprint.net という CDN も使っているらしい.ググルとアヤシイ・危険な情報ばっかりみつかる.Amazon が cloudfront (っていうCDN)をやっているのに,footprint.net を使っているという記事もある.

a0, a4, a5 は同じ footprint.net を指している.a1, a2, a3 はそれぞれ別の Akamai を指しているようだ.

追記:s.twimg.com もあるようだ.これは AmazonCDN, CloudFront を指している.

画像置き場 CNAME CDN 使用
a0.twimg.com. a1.twimg.com.c.footprint.net. footprint アイコン
a1.twimg.com. a1.twimg.com.edgesuite.net. Akamai アイコン,背景
a2.twimg.com. a2.twimg.com.edgesuite.net. Akamai アイコン
a3.twimg.com. a3.twimg.com.edgesuite.net. Akamai アイコン,背景
a4.twimg.com. a1.twimg.com.c.footprint.net. footprint なし
a5.twimg.com. a1.twimg.com.c.footprint.net. footprint なし
s.twimg.com d2rdfnizen5apl.cloudfront.net. Amazon アイコン,背景

僕のアイコンは http://a0.twimg.com/profile_images/529565780/puchiko09.gif.png なので footprint にあるようだ.

http://a0.twimg.com/profile_images/529565780/puchiko09.gif.png

規則性

僕の friends 2200 人ほどを調べた結果,規則性が判明した.

画像の URL http://a0.twimg.com/profile_images/529565780/puchiko09.gif.png の 529565780 を便宜上「画像 ID」と呼ぶ.最近アイコンを変えた人の画像 ID から順に小さくなっているので(一番最近にアイコンを変えた人の画像IDが一番大きい,ただしデフォルト画像を除く),この値は全ユーザでの通し番号だと思われる.

イコン画像の CDN ホストは,画像 ID が約1,280,000,000以上であれば s.twimg.com で,それ以外は4で割った余りで a[0-3].twimg.com に振り分けられている.

背景画像の CDN ホストは,画像 ID が同様に約1,280,000,000以上であれば s.twimg.com で,それ以外は2で割った余りが 0 なら a1.twimg.com,1 なら a3.twimg.com になっている.

私の friends では背景画像 ID が 170,000,000 台から急に 1,280,000,000 台に飛んでいる.なんでだろう.一方でアイコン画像 ID は連続している.

まとめ

イコン画像は最近のものは Amazon に置かれている.残りのうち画像IDが4の倍数のものが footprint,それ以外は余りに応じて3箇所の Akamai に置かれる.

背景画像は最近のものは Amazon に置かれている.残りは偶奇に応じて2箇所の Akamai に置かれる.

dig の結果

;; QUESTION SECTION:
;a0.twimg.com.			IN	A

;; ANSWER SECTION:
a0.twimg.com.		1	IN	CNAME	a1.twimg.com.c.footprint.net.
a1.twimg.com.c.footprint.net. 148 IN	A	192.221.68.126
;; QUESTION SECTION:
;a1.twimg.com.			IN	A

;; ANSWER SECTION:
a1.twimg.com.		30	IN	CNAME	a1.twimg.com.edgesuite.net.
a1.twimg.com.edgesuite.net. 12122 IN	CNAME	a1784.l.akamai.net.
a1784.l.akamai.net.	20	IN	A	60.254.185.96
a1784.l.akamai.net.	20	IN	A	60.254.185.89
;; QUESTION SECTION:
;a2.twimg.com.			IN	A

;; ANSWER SECTION:
a2.twimg.com.		20	IN	CNAME	a2.twimg.com.edgesuite.net.
a2.twimg.com.edgesuite.net. 12606 IN	CNAME	a1907.l.akamai.net.
a1907.l.akamai.net.	10	IN	A	60.254.185.151
a1907.l.akamai.net.	10	IN	A	60.254.185.158
;; QUESTION SECTION:
;a3.twimg.com.			IN	A

;; ANSWER SECTION:
a3.twimg.com.		7	IN	CNAME	a3.twimg.com.edgesuite.net.
a3.twimg.com.edgesuite.net. 11898 IN	CNAME	a948.l.akamai.net.
a948.l.akamai.net.	20	IN	A	60.254.185.135
a948.l.akamai.net.	20	IN	A	60.254.185.137
;; QUESTION SECTION:
;a4.twimg.com.			IN	A

;; ANSWER SECTION:
a4.twimg.com.		30	IN	CNAME	a1.twimg.com.c.footprint.net.
a1.twimg.com.c.footprint.net. 26 IN	A	192.221.68.126
;; QUESTION SECTION:
;a5.twimg.com.			IN	A

;; ANSWER SECTION:
a5.twimg.com.		30	IN	CNAME	a1.twimg.com.c.footprint.net.
a1.twimg.com.c.footprint.net. 1	IN	A	192.221.68.126
;; QUESTION SECTION:
;a6.twimg.com.			IN	A