cache.iijgio.com の中

6,094
-1

Published on

クラウド・VPS関係者と震災、何ができて何ができなかったのか
http://atnd.org/events/15564

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
6,094
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

cache.iijgio.com の中

  1. 1. cache.iijgio.com の中 <ul>アプリケーションサービス部 川井 浩陽 </ul><ul>「公開情報」 </ul>
  2. 2. 中の人 <ul><li>およそ次のような分担 </li></ul><ul><ul><li>対外向け
  3. 3. システムエンジニアリング
  4. 4. 法務 </li></ul></ul>
  5. 5. cache.iijgio.com 最初期 <ul><li>Varnish </li></ul><ul><ul><li>HTTP キャッシュサーバ(HTTP プロクシ)
  6. 6. これを単純に導入する
  7. 7. オリジンサーバ一覧は wikipedia で手作業でどかっと抜き出す </li><ul><li>*.cache.iijgio.com で見せる
  8. 8. cache.iijgio.com は localhost に bind した Apache httpd を origin にする </li></ul></ul></ul>
  9. 9. 問題 1 <ul><li>Varnish の設定ファイル </li></ul><ul><ul><li>記述されているホスト名は解決できなければならない </li><ul><li>DNS 自体が消失しているようだ…?
  10. 10. アドレス付け替えも頻繁(当時) </li></ul><li>大きな設定ファイルのリロードは重い </li><ul><li>1 分以上かかることも普通 </li></ul></ul></ul>
  11. 11. 問題 2 <ul><li>HTML コンテンツ </li><ul><li>FQDN つきで書かれていることがある </li><ul><li><img src=”....”/>
  12. 12. <a href=”....”></a>
  13. 13. <link href=”....”/> </li></ul><li>トラフィックが逃げてしまって、キャッシュの意味が薄くなる
  14. 14. 「オリジンサイトが**なってればいいのに」 </li></ul><li>CSS
  15. 15. Flash </li></ul>
  16. 16. cache.iijgio.com 現行型 <ul><li>Varnish + Apache httpd + bind </li></ul><ul><ul><li>Varnish はキャッシュ制御の処理に専念する </li><ul><li>Host, Vary など </li></ul><li>Apache httpd </li><ul><li>案内用の wiki を動かす
  17. 17. Host ヘッダ書き換え </li></ul></ul></ul><ul><ul><ul><li>オリジンへ接続(mod_proxy) </li></ul></ul></ul><ul><ul><ul><li>コンテンツ書き換え </li></ul><li>Local DNS </li><ul><li>TTL 制御用 </li></ul></ul></ul>
  18. 18. コンテンツ書き換え 1 <ul><li>HTML </li><ul><li>mod_ext_filter </li></ul></ul><ul><ul><li>Python BeautifulSoup で書き換え </li></ul></ul><ul><ul><li>書き換えがうまくいかないものは disableenv で無効化して制御 </li><ul><li>Frame の閉じタグが無い
  19. 19. Table レイアウトをしているが、閉じタグが無い
  20. 20. IE と互換の HTML 矯正ができれば対応できたかも…html5lib ?
  21. 21. 言語は日本語であることを前提に制御がかかるように調整 </li></ul><li>Content-Transfer-Encoding に注意 </li></ul></ul><ul><ul><ul><li>INFLATE filterで対応(全て展開) </li></ul><li>最初 mod_python の filter で動作させようとした </li><ul><li>Apache httpd bucket brigade の扱いに問題があるようだ…?
  22. 22. 本来コンテンツが継続しているはずなのに、read の返り値が 0 になる場合が…
  23. 23. Varnish が壁になってくれているので、最高のパフォーマンスは目指さず、堅実に動作する方法に持っていった。
  24. 24. mod_ext_filter は pipe をつくり、backet brigade を流し込まれる </li></ul></ul></ul>
  25. 25. コンテンツ書き換え 2 <ul><li>CSS </li><ul><li>パーサがすぐに見つからなかったので、諦めた </li></ul><li>Flash SWF </li><ul><li>crossdomain.xml
  26. 26. swf 書き換えは難易度も高く、やりすぎなので、諦めた </li></ul></ul>
  27. 27. 最後に追加したコンポーネント <ul><li>死活監視 </li><ul><li>計画停電などでアクセス不能になることもしばしば。 </li><ul><li>そのときは入り口も閉じておいたほうがいいよね… </li></ul><li>Cron で監視。
  28. 28. 700 程度のエントリ数
  29. 29. python multithread + SQLite
  30. 30. Pukiwiki plugin で入り口の出しわけをやっていました </li></ul><li>注意深く観測 </li><ul><li>仮サイトで復旧しているなどあれば、適宜誘導 </li></ul></ul>

×