VIOPS07: CDNの困ったネタ

347 views
281 views

Published on

VIOPS07: CDNの困ったネタ

NTT Resonant Inc.
S.Hirose

2012年7月20日(金曜日)10:00-18:00
VIOPS07 WORKSHOP
Virtualized Infrastructures Workshop [07]

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
347
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

VIOPS07: CDNの困ったネタ

  1. 1. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. CDNの困ったネタ NTT Resonant Inc. S.Hirose
  2. 2. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. 自己紹介など。 • NTT Resonant に所属。 • いわゆるgooの裏方エンジニア。 • gooのCDNの運用は2006年頃から。 2009年頃から私が担当。
  3. 3. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. なぜこの話題!? • CDNを利用している人の意見交換の機会が少ない。 • ユーザ会とか意見交換会とか皆無。 -> 2005年頃?にはあったが、その後絶滅!? • なので、まずは僕から情報を発信してみます。
  4. 4. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. gooの紹介 gooの紹介をさせていただきます。
  5. 5. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. gooでは・・・ • ごく一般的なCDNの使い方。 CDN
  6. 6. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. こんな感じで運用してます。 • 国内外のサーバからの配信に利用 • 特にBlogの写真などが半分以上を占めている。 • そのほかcss,jsファイルなど。 • 現在はほぼ1人で運用 (専任でもない) • 比較的安定、配信不能状態に陥ったことはない。
  7. 7. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. 困った。その1 – CNAMEの罠。 ホスト名の記述のないFQDNをCDNに乗せようとした。 zoneファイル - goo.ne.jp.zone: ~省略~ IN CNAME cdn.example.net. •ホスト名のないFQDNのCNAMEを書くことはRFC違反。 ※RFC1034 3.6.2 Aliases and canonical names 厳密にはちょっと違いますが… •この件、RFC1912でも間違いとして指摘。 ※RFC1912 2.4 CNAME records の他、Livedoor Tech Blogでも紹介されている。 http://blog.livedoor.jp/techblog/archives/65340720.html •結論:CNAMEを利用する仕様のCDNはホスト名必須。
  8. 8. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. 困った。その2 – 更新されないDNSクエリ • CDN業者を変更するためにDNS切り替え。 • 1週間の並行運用後、旧CDN設備を切り離し。 • 一部ユーザからアクセス不能。 DNSが変更されていないことが判明。 • ユーザの入っているISPのサポートに連絡して、DNS キャッシュクリアにて復旧。 • 結論: なかなかキャッシュを更新しないDNSがあるという ことを意識。
  9. 9. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. CDN-AからCDN-Bへ切り替え ISP-α DNS: ISP-β DNS: 192.0.2.200 goo.ne.jp CDN-A 192.0.2.100 CDN-B 192.0.2.200 DNS: 192.0.2.200 goo.ne.jp TTL 60 ??192.0.2.100 goo.ne.jp ×
  10. 10. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. 困った。その3 – CDNを切り替えたら火を噴いた • CDN切り替え前にキャッシュを貯めようとした。 • Originの回線と別の回線からコンテンツを事前にGET。 • CDNを切り替え直後にOriginの負荷が急増。 • 結論:キャッシュの温めはあまり期待できない。 • その他、DNSのTTLを長くすることで若干のスロースター ト効果。(例:TTL=7200sec)
  11. 11. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. キャッシュの温め失敗例。 CDN CDN CDN CDN CDN キャッシュは一箇所じゃない。
  12. 12. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. 困った。その4 – 1Byte・・・ • 動的生成した画像をキャッシュ。しかしキャッシュヒット率が 上がらない。 • URLをたたいてもwgetしてみてもコンテンツサイズ測っても 正常。 • tcpdumpで原因追求の結果、改行コードの1文字が 原因はPHPで書かれたソースの改行。 • 結論:ソースコードもキャッシュヒット率に影響。
  13. 13. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. 1 Byte増えた理由。 <img src=“resize.php?f=hoge.jpg”> resize.php : <? php ~省略~ $resize_img = resize(org_img); print $resize_img; ?> [EOF] この改行が問題。 ?>[EOF] #・・・これが正解。
  14. 14. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. 困った。その5 – 突然Originへアクセス集中 • 例えばCDN設備のFailOver等 • 設備がコールドスタートだった場合に、Originへアクセスが 集中することも。 • 結論:CDN利用でもOriginの高トラフィック対策は必要。
  15. 15. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. 突然Originにアクセス集中 CDN FailOver CDN cache cache × 空の状態からスタート
  16. 16. Copyright:(C)2012 NTT Resonant Inc. All Rights Reserved. 今日伝えたいこと。 • CDNを利用する上で、まずはそれぞれの仕様にあわせ た構築・設計を行うことは重要。 • その上で共通的に使えるノウハウもある。 • しかし、あまり共有されていないので、先ずは私から紹介。 • 今後はCDNの利用も増えてくる(と思う)ので、ノウハウ の交換をしませんか? (私にも成功事例・失敗事例を教えてください)

×