タグ

ブックマーク / blog.xcir.net (15)

  • CDNとの付き合い方 – cat /dev/random > /dev/null &

    最近何かと話題なCDNですが、そもそもCDNってなんだろう・・・どんなことに使えるんだろう?的なことを書いてみようと思います。 一応先に言っておくと、私はCDN業者に所属したことないのであくまでも利用者として見た時の話を書きます。 また、私の考えであり、様々なワークロードがあるなかでこれがすべてではありませんので、こんな考えもあるんだなぁぐらいに思ってもらえると助かります。 そもそもCDNってなんだろうか そもそもCDNはContent Delivery Networkの略であってCache Delivery Networkの略ではありません。 要はコンテンツをクライアントに対して高速・効率的に配信するためのネットワークです。 良くCDNといえばその成り立ちからキャッシュというイメージはありますが、重要な要素の一つではあるもののCDNの全てではありません。 さらに言えばAkamaiのInt

    hiro_y
    hiro_y 2017/07/02
  • Varnishのストレージの話 – cat /dev/random > /dev/null &

    Varnishは様々なオブジェクトのキャッシュを行いますが その際にオブジェクトの保存を何処に行うかを選択することができます。 現在のバージョンでは malloc file persistent といった3つのストレージが存在しており、それぞれに特徴があります。 今回は特にpersistentに焦点をあてて解説します。 malloc メモリ上にストレージを置いているVarnishで一番高速なストレージです。 メモリ上に置くため当然のことながらサーバの移設での一時停止や再起動、 workerのpanicでの自動再起動などでキャッシュが吹き飛んでしまいます。 file ファイル上にストレージを置く、若干遅いストレージです。 ファイルと名前はついているものの永続化を目的としておらず、 ストレージへの書き込み時にflushしません。 読み書きはページ・バッファキャッシュ、つまりOSに任せており V

    hiro_y
    hiro_y 2012/11/14
  • VarnishでAmazon S3の認証ヘッダを作るVMODを作ってみた – cat /dev/random > /dev/null &

    hiro_yさんからこんな質問を受けたので @xcir VarnishからS3の認証突破する方法とかご存知ないですか…と思いまして — 山岡広幸さん (@hiro_y) 7月 2, 2012 AWSの勉強がてら作ってみました。 S3のREST-APIのAuthorizationヘッダは、日付やリソースの場所などを改行で結合して HMAC-SHA1でハッシュ化して、BASE64エンコードする必要があります。 HMAC-SHA1については、Varnish公式が公開しているvmod-digestを使うことでできるのですが 出力をBASE64にすることができないので、コードを拝借して今回のVMODを作ってみました。 ちなみに改行を扱うことについても、インラインCかVMODを使う必要があります。 使い方 import awsrest; backend default { .host = "s3.am

    hiro_y
    hiro_y 2012/07/11
  • varnishlogを見やすくするツールを作ってみた – cat /dev/random > /dev/null &

    みなさんVarnish使ってますか?僕はよく使ってます。 VCLの動作を調査するときなどによくvarnishlogを使うと思うのですが これが若干わかりづらいと思います。 例えば下はESIを一つ含んだvarnishlogの出力です 13 BackendOpen b default 192.168.1.199 36011 192.168.1.199 81 ★ここでバックエンド開いてる 13 TxRequest b GET 13 TxURL b /test2.html 13 TxProtocol b HTTP/1.1 13 TxHeader b User-Agent: Wget/1.12 (linux-gnu) 13 TxHeader b Accept: */* 13 TxHeader b Host: 192.168.1.199:6081 13 TxHeader b X-Varnish: 17

    hiro_y
    hiro_y 2012/01/31
    見づらいvarnishlogの出力を整形
  • ライブドアのsmalllightを使って動的に画像をリサイズしてみる – cat /dev/random > /dev/null &

    small lightシリーズ [1] ライブドアのsmalllightを使って動的に画像をリサイズしてみる [2] いろいろsmalllightを使って動的に画像をリサイズしてみる [3] smalllightでのエンジンの選択の仕方 [4] smalllightでのエンジンの選択の仕方 (ヒントオプション追加) 最近、動的に画像をリサイズするのが流行っているようです。 ゆめみラボのmod_ktaiクックパッドのmod_tofu、livedoorラボEDGEのsmall_lightなどいろいろありますが 今回small_lightを使ってみたので記事を書いてみます。 ついでに速いと噂のlibjpeg-turboも入れてみます。 smalllightとは 公式を見るのが一番早いとは思うので一度見てみてください。(→smalllight) 僕がsmalllightで特にいいなぁと思ったのが

    ライブドアのsmalllightを使って動的に画像をリサイズしてみる – cat /dev/random > /dev/null &
    hiro_y
    hiro_y 2011/11/20
    smalllight使ってる、libjpeg-turboと
  • 夏に出したVarnishCache入門をPDFで公開しました – cat /dev/random > /dev/null &

    夏コミで同人誌でだしたVarnishCache入門ですがPDFで公開します。 幾つか公開したかった理由はあったのですが、実際コミケまで足を運んで買っていただいた方にちょっと申し訳ないかなと 電子出版での有料配布も考えていたのですが 64P程度で大げさかなというのと、もう一ヶ月経って3.0.1も出たしいいかなと思い公開します。 内容的には初心者向けとなっていますので、そこまで高度な内容については記述していません。 なお3.0.1が公開されたためページ数が変わらない範囲で、その内容についても一部加筆しています。(fallback directorとか) Varnishを使ってみようと考えている方の参考になればと考えています。 PDFのダウンロード ちなみに、時間と印刷費の関係で書ききれなかった事がたくさんあるのですが(転記されないパラメータやら、varnishtestとか・・・) そういうこと

    夏に出したVarnishCache入門をPDFで公開しました – cat /dev/random > /dev/null &
    hiro_y
    hiro_y 2011/09/12
    Varnish使うのに。
  • varnishでのif-modified-sinceの無視のやりかた – cat /dev/random > /dev/null &

    HTTPでの要求でIMS(if-modified-since)というものがあります ようはこんな感じのやりとりです ブラウザ「今この日付でオブジェクトもってるんだけどこれって最新?使ってもいい?」 (If-Modified-Since: Sun,14 Feb 2010 03:01:19 GMT) サーバ「最新だからそれ使ってもいいよ」 (304 Not Modified) 普通であればまったく問題ないやり取りです ただトラフィックが非常に大きいサーバの場合深刻な問題になります さっきのやり取りをもうちょい具体的にかくと ブラウザ「今この日付でオブジェクトもってるんだけどこれって最新?使ってもいい?」 (If-Modified-Since: Sun,14 Feb 2010 03:01:19 GMT) サーバ「ちょっとまってね(HDDのファイルの更新日時を調べる・・・)最新だからそれ使ってもい

    hiro_y
    hiro_y 2011/08/30
    If-Modified-Sinceヘッダ対応
  • Varnish3で多くのオブジェクトを持つサイトを運営するときに注意するべきたった一つのこと(Transient storage) « cat /dev/random > /dev/null &

    一回こんなタイトルで書いてみたかったいわなちゃんです。 別にこれだけ注意しとけ!というわけではないのですが、とりわけドハマリしそうでまず注意しておきたいポイントに付いて解説します。 Varnish3の新パラメータに shortlived というモノがあります。 これは指定TTLより短い秒数しかキャッシュしない場合テンポラリストレージ(Transient storage)に保存するというものです。 これはTTLが短い場合このストレージに保存することでパフォーマンスをあげようというものです(多分) パフォーマンスをあげようというものなのでこいつはメモリストレージで確保されます storage.list 200 Storage devices: storage.Transient =★★ malloc ★★ storage.s0 = malloc 問題 以下の設定の時Transientストレージ

    hiro_y
    hiro_y 2011/07/18
    shortlivedの設定。
  • 画像が404の時にデフォルトの画像を出す方法(restart) – cat /dev/random > /dev/null &

    Varnishはバックエンドが複数ある場合、そのうちひとつが死んでも残りのバックエンドを使うfailover機能がありますが バックエンドに画像が何もなかったときはどうなるでしょうか?通常の場合はそのまま404を返します。 しかし、画像が投稿されてから非同期でサムネを作成したり、何らかの画像処理を行ったりで一時的にデフォルトの画像を出したいことがあります。 いわばファイル版のfailoverみたいなもんですね。方法がありますので書いてみます。 通常varnishがファイルに対して存在するかしないかを判定できるのはvcl_fetchですが その段階からこのファイルをもう一回リクエストして!みたいなことはできません。 そこで利用するのがrestartです。 これを使うとvcl_pass,miss,hit,fetch,deliver,errorから再度vcl_recvへ処理を戻すことができます。

    hiro_y
    hiro_y 2011/07/02
    404のデフォルト画像を表示
  • Tokyo.vclでVarnishCache3の新機能とVUPの仕方を話してきました – cat /dev/random > /dev/null &

    hmskさん主催の第一回のTokyo.vclでVarnishの話をしてきました。 5分~15分の長さでと言われたのでのんびりいっぱい喋れる! ・・・と思ったら詰め込みすぎて結構早口で聞き取りにくかったかもしれません。 申し訳ないです。 内容はVarnishCache3.0の新機能と2.1/2.0系からVUPするときの変更点についてです。 UST(5分あたりから喋ってます) あといくつか資料で補足したい点がありましたので・・・ 別にESI使わなくてもgzip対応の恩恵は受けられるよ! おもいっきりESIでgzipサポートとは書いていますが別にESIに限ったことではないのでESIを使わなくてもgzipは使えます。 スライド中には一行でしか書いてないのですが、 今まではVarnishではgzipの処理ができなかったので1つのオブジェクトに対してgzip・圧縮されてないコンテンツを持つ場合 両方を

    hiro_y
    hiro_y 2011/06/20
    Varnish 3.0の機能、アップデート方法軽く
  • qpstudy#05行ってきたよ! – cat /dev/random > /dev/null &

    qpstudy#05でまたまたVarnishのLTしてきました。 当はVarnishとバージョンが偶然一致しているTrafficServerの話をしようとしていたのですが検証時間が取れなく結局また・・・という感じで (今両方とも2.1.5です) 詳しい内容についてはきっと誰かがまとめてくれてると思うので僕の感想など ■メインセッション ディストリビューション愛(ディスラブ) ~俺のOSがこんなに可愛いわけがない(Linuxディストリビューション編)~ みなさんの掛け合いがスゴイおもしろすぎます 今僕は仕事だとCentOSを使っていますがこれを聞いて他のも触ってみたいと思いました まずはGentooのインストールをやってみて初心者から抜け出したいと思います ■LT インフラエンジニアのためのUstream入門 @H_Shinonome さん いつも機材すごいなーと思っていたのですが意外とリ

    hiro_y
    hiro_y 2011/02/13
    varnishstat/varnishlogについて
  • qpstudy#03でVarnishのVCLを書くときのTipsについてLTしてきました – cat /dev/random > /dev/null &

    またまたVarnishのLTをqpstudy#03でやってきました 今回はVCLを記述する際に分かりづらいサブルーチンのところとデバッグの仕方を軽く話しました 正直5分という時間で詰め込みすぎた感があって今後の課題かなーと思いつつ Varnishを使う際の一助になれば幸いだと思っています 発表資料 UST(僕が話してるのは1:35:00あたりからです) UST中で言及しているinitrcの改造は Varnishのinitスクリプト改造(graceful対応) また二次会かビアバッシュで話したパージについては マルチドメイン環境でHTTP経由でPurgeを行うVCL設定とスクリプト 参加された方々お疲れ様でした楽しかったです! また、会場を貸していただきサポートしていただいたニフティの方々ありがとうございました! qpstudy公式 追記: ビアバッシュで話したApacheTrafficSe

    hiro_y
    hiro_y 2010/10/11
    VCLの各ルーチンの流れとデバッグの仕方
  • 画像キャッシュだけじゃないVarnishってテーマで飛び入りLTしてきました(qpstudy#02) – cat /dev/random > /dev/null &

    昨日池袋でインフラ勉強会のキユーピー3分インフラクッキングでESIとインラインCについてちょこっと話してきました。 LT自体が始めて+飛び入りLTだということでいろいろ自身にツッコミを入れたいところとか多々あるんですが、次回以降の改善点として考えています。 発表資料

    hiro_y
    hiro_y 2010/10/06
    VarnishのESIについて
  • ちょっとしたメモ(Varnish2.0.xから2.1.xに変更するときの注意点) – cat /dev/random > /dev/null &

    現在Varnishは2.1.2までバージョンがあがっていますが2.0.xを使っている方も多いと思います VCLの記法が変わったり同じパラメータで番投入したら挙動が違うといったこともあるので注意が必要です 僕もまだ完全につかんでいませんがメモ程度に vcl_fetchにおいてobj.*が使えなくなった obj.*は使えなくなりましたberesp.*に置き換えればOKです fetch;pass;などをreturnで囲まなくてはならなくなった 今まで補完してくれていたのでしょう 単にreturnで囲めばOKです ex:pass; -> return(pass) ; 一部起動パラメータが使えなくなった 全部は把握してないのでそのうち調べて表にしますがたとえば srcaddr_ttl は使えなくなっています 最近ウノウラボさんが記事を出されていましたがあのパラメータだと起動しません まとめました→

    hiro_y
    hiro_y 2010/09/22
    Varnish 2.0/2.1の相違点
  • Varnishを再起動無しで設定を適用する方法(修正版) – cat /dev/random > /dev/null &

    昨日プロセスを強引にとる手法でやったところ もっといい方法があるよと@mikedaさんが教えてくれましたので修正しました 自前で作るRPMのvarnishのinit.dはこれでいこうかなーと /etc/init.d/varnish #! /bin/sh # # varnish Control the varnish HTTP accelerator # # chkconfig: - 90 10 # description: Varnish is a high-perfomance HTTP accelerator # processname: varnishd # config: /etc/sysconfig/varnish # pidfile: /var/run/varnish/varnishd.pid ### BEGIN INIT INFO # Provides: varnish #

    hiro_y
    hiro_y 2010/09/22
    Varnishをreloadなしで設定変更を適用
  • 1