SlideShare a Scribd company logo
1 of 95
Download to read offline
設計段階から実装まで、今すぐ始める高速化




                 設計段階から実装まで、今すぐ始める高速化
                                              CSS Nite LP Disk 23
                                                         ,

                                              こもりまさあき




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




自己紹介を…
こもりまさあき                              http://protean.im



1990年代前半に都内のDTP系デザイン会社にてアルバイトをはじめる。大
学卒業後そのまま正社員となり、入出力業務、デザイン業務、ネットワーク
関連業務に並行して従事。2001年、会社を退職しフリーランスの道へ。
案件ごとに業務内容や立ち位置が異なるため、職域的な肩書きはなし

近著に『レスポンシブ・ウェブデザイン標準ガイド(MdN刊)』
『WordPress 高速化&スマート運用必携ガイド(共著・MdN刊)』、など


Twitter: @cipher / @proteanbm
Facebook: gaspanik
Instagram: @cipher




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                   Webサイトが遅い原因の80%は、
                   フロントエンドの処理だと言われる




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                        「フロントエンドの処理」って、
                        実装する人だけが考えること?




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                         いやいや、ちょっと待って。
                        実装前から考える方が良くない?




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                              バックエ
                                                  ンドの
                                              話もまと
                                                   めて

                            今日は、そんな設計段階から
                            実装に関わる部分までの話を




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                 これからお話しすること
                             •      コンテンツのロードを速くしよう

                             •      キャッシュを使いこなそう

                             •      外部要因による遅延を改善しよう

                             •      リクエストを分散させてより高速に




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                        キレイなサイト、面白いサイト、
                        完成すればそれで良いのかな?




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                      ブロードバンドの普及、
                                      スマートデバイスの登場




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                              相反する回線環境




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                       ネットワークの仕組みを理解し、
                       より速く配信することを考えよう




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




         表示が速すぎても、誰も文句は言いません




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                       目には見えない部分を改善する、
                       それもデザインのひとつですから




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                       みんなで考えましょうよ




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                              誰のためのWebサイトなのか




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




コンテンツのロードを速くするためにできること




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




コンテンツがロードされる様子、アゲイン




Pingdom Tools: http://tools.pingdom.com/fpt/

2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




箱作りのベースは速く、とにかく速く

 • HTML
 • CSS
 • JavaScript




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




周りを見渡せば、意外と多いこんな状況

 • コンテンツ量が多く、
        HTMLのサイズそのものが大きい
 • 制作効率、メンテナンス効率、
        そこを重視するあまり、
        分割されすぎたCSSファイル
 • あれもこれもと追加されたJavaScript

2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




@import、えっと…
                                                           @import url(contents_base2.css);
                                                           @import url(base.css);
                                                           @import url(layout.css);
                                                           @import url(common.css);
                                                           @import url(menu.css);
                                                           @import url(contents_base.css);
<link rel="stylesheet"
   … href="import.css">                       import.css   @import url(search.css);
                                                           @import url(top.css);
                                                           @import url(news.css);
                                                           @import url(chmn.css);
                                                           @import url(map.css);
                                                           @import url(faq.css);
                                                           @import url(logo.css);
                                                           @import url(background.css);




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




これだと、こういう結果になる
                                       example.html
                                       import.css
                                       base.css
                                       layout.css
                                       common.css
                                       menu.css
                                       contents_base.css
                                       search.css
                                       top.css
                                       news.css
                                       chmn.css
                                       map.css
                                       faq.css
                                       logo.css
                                       …




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                              当たり前の話




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




リクエストとレスポンス、同時接続数

 • クライアントとサーバのやりとり
 • ブラウザの同時接続数
 • 初期段階のロードから
        コンテンツの整形までを速くするには、
        この部分に着目することが大事



2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                   いかにして速くブラウザに届けるか




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




ファイルをまとめる、余分な要素は除去

 • 分割されすぎたCSS、JavaScriptは、
        可能な限りまとめる
 • ファイルに含まれる余分な要素、
        たとえば、改行やコメントなどを除去する




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




さっきの@importもまとめてしまえば
                                       example.html
                                       compact.css
                                       jQuery.js
                                       plugin.js
                                       imageA.png
                                       imageB.png
                                       imageC.png
                                       imageD.png
                                       imageE.png
                                       imageF.png
                                       imageG.png
                                       imageH.png
                                       imageI.png
                                       imageJ.png
                                       …




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                 余分なリクエストは減り、
                                 その分だけ速く他の要素へ




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                 でも効率が…、手間だし…
                                 嫌がる人が多いのも事実




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




ツールやサービスを使えば、比較的簡単

                                                     OS X 環
                                                             境な
 • excssive                                          CodeKit   ら
                                                             便利 !
        http://www.excssive.com/


 • YUI Compressor
        http://developer.yahoo.com/yui/compressor/


 • Closure Compiler Service
        http://closure-compiler.appspot.com/home




CodeKit: http://incident57.com/codekit/

2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




excssive なら画面内にファイルをドラッグ




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




            運用体制をどうするか?の話でしかない




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                          「それでも面倒」と言うなら、
                          テキストデータを圧縮しちゃえ




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




テキストをGzip圧縮して高速化

 •      バックエンドのサーバ側で
        Gzipを使った符号化をおこなう

 •      1/5∼1/3ぐらいにファイルサイズは小さく

 •      特に不安定な回線に対して有効




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




Apacheの場合はこのように

 •      2.x系なら、mod_deflateを有効にする
         <IfModule mod_deflate.c>
         SetOutputFilter DEFLATE
         BrowserMatch ^Mozilla/4 gzip-only-text/html
         BrowserMatch ^Mozilla/4.0[678] no-gzip
         BrowserMatch bMSI[E] !no-gzip !gzip-only-text/html
         SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
         Header append Vary User-Agent env=!dont-vary
         </IfModule>


mod_deflateの記述例: https://httpd.apache.org/docs/2.2/mod/mod_deflate.html

2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




転送データサイズはここまで変わる




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




HTMLをピ ク ッ
      ッ ア プ




            27.5k
            Gzipしない元のファイル
                                              8.6       k
                                              Gzip後の転送サイズ




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                               小さくなれば、より速く届く




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                   もっと簡単にいろいろできないの?




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




Google謹製、mod_pagespeedの導入

 • Apacheのモジュール「mod_pagespeed」
        https://developers.google.com/speed/pagespeed/mod


 • さまざまな高速化の施策をサーバ側で
 • サーバ側の負荷、動作確認など、
        事前に徹底的な検証が必要




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                              繰り返します




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                       箱作りのベースは、とにかく速く




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                              方法はいろいろ。
                                              どこまでやるか、
                                              どうやってやるか




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




必要なファイルだけを配信。キャッシュを使おう




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




もう一度おさらい、リクエストとレスポンス

 •      構成要素の数だけ繰り返される
        リクエストとレスポンス

 •      サイトにアクセスするたびに
        ファイルをダウンロードさせるのは非効率

 •      変更のないファイルは、
        ダウンロードさせたくない


2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




キャッシュといってもいろいろある

 •      ブラウザが持っているキャッシュ

 •      アプリケーションキャッシュ

 •      サーバサイドによるキャッシュ

 •      その他、DNSのキャッシュなど、いろいろ




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




キャッシュ対象になるもの

 •      変更頻度が極端に少ない
        サイト内で使い回す画像ファイル

 •      定期的な改修でしか触らない
        CSS、JavaScript

 •      jQueryなどのライブラリ



2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




ファイルに有効期限を設定するには

 •      Apacheなら、mod_expires を有効にする
         <ifModule mod_expires.c>
         ExpiresActive On
         ExpiresDefault "access plus 1 seconds"
         ExpiresByType image/x-icon "access plus 1 years"
         ExpiresByType image/jpeg "access plus 10 years"
         ExpiresByType image/png "access plus 10 years"
         ExpiresByType text/css "access plus 1 years"
         …
         </ifModule>



2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




ファイルに有効期限を設定すると




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




結果として、HTTPリクエストは減る




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




もう一度、全文掲載
         <ifModule mod_expires.c>
         ExpiresActive On
         ExpiresDefault "access plus 1 seconds"
         ExpiresByType image/x-icon "access plus 1 years"
         ExpiresByType image/vnd.microsoft.icon "access plus 1 years"
         ExpiresByType image/jpeg "access plus 10 years"
         ExpiresByType image/png "access plus 10 years"
         ExpiresByType image/gif "access plus 10 years"
         ExpiresByType text/css "access plus 1 years"
         ExpiresByType text/javascript "access plus 1 years"
         ExpiresByType application/x-javascript "access plus 1 years"
         ExpiresByType text/html "access plus 600 seconds"
         ExpiresByType application/xhtml+xml "access plus 600 seconds"
         </ifModule>


2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                        コピペするだけ、時間にして2分




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




もうひとつのキャッシュ、.appcache

 •      通常のキャッシュとは別枠。
        指定したファイルをキープしてくれる

 •      サイズの大きい画像、
        jQueryなどのライブラリなど

 •      強制的にネットワークを参照させることも可



2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




.appcacheを有効にして、ファイルを列挙

 •      キャッシュ・マニフェストを用意
         CACHE MANIFEST
         # version 2
         CACHE:
         index_Resources/PIE.htc
         index_Resources/TopImage_Bg.jpg
         …
         NETWORK:
         index.html
         index_Resources/HYPE.js



2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




.appcacheが有効になっている状態




chrome://appcache-internals/

2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                 変更の少ないファイルは、
                                 できるだけ配信しない工夫




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




さらに? キャッシングサーバの導入

 •      大量のアクセスを処理するなら、
        キャッシングサーバを追加して
        静的なファイルだけはそこ経由で配信する

 •      Apache + Varnish
        https://www.varnish-cache.org/


 •      Nginx によるリバースプロキシ
        http://wiki.nginx.org/NginxJa




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                    大量に配信するものは、
                                    より高速なサーバで処理




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                   自身の環境に合わせて、
                                   キ ッ ュ
                                    ャ シ をうまく使って




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                              ご利用は計画的に




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




外部要因による遅延を極力抑えよう




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




自サイトのコンテンツ以外の要素が問題

 •      効果測定のためなど、
        外部サービスのタグ(JavaScriptのコード)

 •      サイト内にあれこれ貼られる広告

 •      あれもこれもと追加した
        ソーシャルメディア系のリソース群



2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                 大人の事情で減らせない…




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




外部の要素を取り込むことで起こる問題

 •      外部のサービスが止まった場合、
        最悪コンテンツのロードが途中で止まる

 •      JavaScriptの
        document.write()

 •      外部ドメインに接続する時、
        起こっているのは、DNSルックアップ

document.writeでSCRIPTを書き出すなやで!: http://t32k.me/mol/log/dont-docwrite-scripts/

2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




DNSルックアップは、極力減らすが吉

 •      接続先がわからなければ、
        初回はこのDNSルックアップが起きる

 •      できる限り減らしておいた方がいいもの

 •      理想をいえば、4つぐらい




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




DNSプリフェッチの導入という手も

 •      接続する予定のドメインは、
        あらかじめDNSに問い合わせさせておこう

 •      有効になる、ならないブラウザがある

 •      link要素を使って、参照するドメインを記述
        https://github.com/h5bp/html5-boilerplate/wiki/DNS-Prefetching




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                 無駄を省いて、できる限り
                                 外部ドメイン参照を減らす




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                          外部要因といえば、もうひとつ




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




貼り付けた後、放置してない?

 •      Google Analyticsのコード

 •      Twitterのボタン、Facebookの all.js

 •      その他、
        ソーシャル系サービスのJSの読み込み




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




放置はよくない、定期的にチェック

 •      最近のコードは、
        非同期でロードするように改良

 •      微妙な変更なども入れると、
        貼り込み用のコードは頻繁に変わっている

 •      定期的に見直しを



2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                         コンテンツロードの阻害要因は、
                         できるだけ解消しないと止まる




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




減らせないリクエスト。配信サーバを分けてしまう




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




HTTPリクエストを減らせと言われても…

 •      コンテンツはこれ以上少なくできない

 •      制作効率とかコストを考えた場合、
        ファイルの結合などもできれば避けたい

 •      画像も使わざるを得ない




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




コンテンツは減らせない、ならどうする?

 •      同じホスト、
        同じネットワーク、
        それでまかなうから限界が出てくる

 •      それを何とかするには…




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                狭い道に車が押し寄せたら
                                当然のように渋滞が起きる




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                            ならば、バイパスを作るか、
                            もっと速い高速道路を作るか




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




サーバを分割し、配信を効率化する

 •      サイトで頻繁に使う画像だけ別サーバに

 •      サブドメインでも分けないよりはマシ

 •      コンテンツ内の画像は、
        Flickrなどの外部サービスを使ってみる




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




たとえば、みんな大好きjQuery

 •      Googleなどから読み込むように変更

 •      これで自サイトの接続数は、1本減ることに

 •      当たり前だけど、やっぱり速い




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




Google Libraries API




Google Developers: https://developers.google.com/speed/libraries/

2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




外部からjQueryを読み込んでみる

 •      フォールバックも忘れずに
         <script src="//ajax.googleapis.com/ajax/libs/jquery/バージョン/
         jquery.min.js"></script>
         <script type="text/javascript">
         window.jQuery || document.write(unescape('%3Cscript
         src="js/jquery/jquery-バージョン.min.js"%3E%3C/script%3E'));
         </script>




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




            速いネ ト ー から配信できればなぁ…
               ッ ワ ク




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




そこで登場するのが、CDN

 •      コンテンツ・デリバリー・ネットワークの略

 •      データのコピーを世界中の拠点におき、
        ネットワークの距離的に近い場所から配信する

 •      いまは、無償のサービスや
        有償でも手に届くレベルの存在に



2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




代表的なCDNサービス

 •      Akamai
        http://www.akamai.co.jp/enja/


 •      CloudFlare
        http://jp.cloudflare.com/


 •      Amazon Web Service(S3* / CloudFront)
        http://aws.amazon.com/jp/cloudfront/




* S3はストレージサービスでCDNというわけではない

2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




無償から始められるCloud Flare




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




Amazonのインフラを使うCloudFront




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




サービスによって異なる仕組み

 •      Cloud Flareは、ネームサーバを切り替える

 •      オリジナルデータを、
        自分で指定されたサーバにアップする

 •      リクエストがあったデータを、
        オリジナルから拾ってキャッシュする



2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




従量制の場合は、コストチェックを




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                             構成要素が多い場合など、
                             使いどころ、利用頻度で分割




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




              それを、より高速な環境から配信する




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                            多くのサイトでネックなのは、
                            そこに配置された画像フ イ
                                       ァ ル




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                 インフラそのものが弱い、
                                 使用画像が多い き
                                        と など、
                                  その効果は絶大なはず




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                   本体のサーバに極力仕事をさせない




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                   このあたりの実際は、ライブデモで




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                                              今日のまとめ
                          •      箱作りのファイルは、とにかく速く

                          •      キャッシュをうまく使えばリクエスト減

                          •      外部要因による遅延を解消する

                          •      ファイルが多すぎるなら、サーバ分割

                          •      設計段階からちゃんと考えること



2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                          これからのコンテンツ配信は、
                          実装する人間だけじゃなく、
                          いろんな立場が意識をしないと




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき
設計段階から実装まで、今すぐ始める高速化




                             本日はありがとうございました




2012. 06. 30 CSS Nite LP, Disk 23 | こもりまさあき

More Related Content

What's hot

css基本。
css基本。css基本。
css基本。
web12
 
メンテナブルなJsってなんだろう
メンテナブルなJsってなんだろうメンテナブルなJsってなんだろう
メンテナブルなJsってなんだろう
Daiki Matsumoto
 
WordCampOsaka2012セッション資料
WordCampOsaka2012セッション資料WordCampOsaka2012セッション資料
WordCampOsaka2012セッション資料
horike37
 

What's hot (20)

現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS)
現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS)現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS)
現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS)
 
2016年版 フロントエンド開発フォーマット
2016年版 フロントエンド開発フォーマット2016年版 フロントエンド開発フォーマット
2016年版 フロントエンド開発フォーマット
 
CSS の歩き方
CSS の歩き方CSS の歩き方
CSS の歩き方
 
HTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレHTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレ
 
使いやすいWordPressのためのCSSのつくりかた
使いやすいWordPressのためのCSSのつくりかた使いやすいWordPressのためのCSSのつくりかた
使いやすいWordPressのためのCSSのつくりかた
 
SMACSS入門
SMACSS入門SMACSS入門
SMACSS入門
 
Css Architecture for the future 未来を見据えるCSS設計
Css Architecture for the future 未来を見据えるCSS設計Css Architecture for the future 未来を見据えるCSS設計
Css Architecture for the future 未来を見据えるCSS設計
 
CSS設計のお勉強
CSS設計のお勉強CSS設計のお勉強
CSS設計のお勉強
 
WordPressで作るポートフォリオサイト
WordPressで作るポートフォリオサイトWordPressで作るポートフォリオサイト
WordPressで作るポートフォリオサイト
 
イマドキの「タグ=HTML」とスタイルシート=CSS」を知ろう
イマドキの「タグ=HTML」とスタイルシート=CSS」を知ろうイマドキの「タグ=HTML」とスタイルシート=CSS」を知ろう
イマドキの「タグ=HTML」とスタイルシート=CSS」を知ろう
 
css基本。
css基本。css基本。
css基本。
 
今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ
 
モダンCSS設計と BEMという開発手法
モダンCSS設計と BEMという開発手法モダンCSS設計と BEMという開発手法
モダンCSS設計と BEMという開発手法
 
メンテナブルなJsってなんだろう
メンテナブルなJsってなんだろうメンテナブルなJsってなんだろう
メンテナブルなJsってなんだろう
 
WordCampOsaka2012セッション資料
WordCampOsaka2012セッション資料WordCampOsaka2012セッション資料
WordCampOsaka2012セッション資料
 
E2E CSS Testing at HTML5 Conference 2016
E2E CSS Testing  at HTML5 Conference 2016E2E CSS Testing  at HTML5 Conference 2016
E2E CSS Testing at HTML5 Conference 2016
 
信頼性が高くハイパフォーマンスなテーマ開発テクニックでライバルに差をつけろ!
信頼性が高くハイパフォーマンスなテーマ開発テクニックでライバルに差をつけろ!信頼性が高くハイパフォーマンスなテーマ開発テクニックでライバルに差をつけろ!
信頼性が高くハイパフォーマンスなテーマ開発テクニックでライバルに差をつけろ!
 
第3回WordPress Cafe プラグイン紹介
第3回WordPress Cafe プラグイン紹介第3回WordPress Cafe プラグイン紹介
第3回WordPress Cafe プラグイン紹介
 
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティーヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
 
大規模サイトにおける本当は怖いCSSの話
大規模サイトにおける本当は怖いCSSの話大規模サイトにおける本当は怖いCSSの話
大規模サイトにおける本当は怖いCSSの話
 

Viewers also liked (8)

文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう
文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう
文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう
 
High Performance Web Design
High Performance Web DesignHigh Performance Web Design
High Performance Web Design
 
スマートフォンサイトの作成術 - 大川洋一
スマートフォンサイトの作成術 - 大川洋一スマートフォンサイトの作成術 - 大川洋一
スマートフォンサイトの作成術 - 大川洋一
 
ノンプログラマーのためのjQuery入門
ノンプログラマーのためのjQuery入門ノンプログラマーのためのjQuery入門
ノンプログラマーのためのjQuery入門
 
レスポンシブ・ウェブデザイン基礎
レスポンシブ・ウェブデザイン基礎レスポンシブ・ウェブデザイン基礎
レスポンシブ・ウェブデザイン基礎
 
Webデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼうWebデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼう
 
ノンデザイナーのための配色理論
ノンデザイナーのための配色理論ノンデザイナーのための配色理論
ノンデザイナーのための配色理論
 
色彩センスのいらない配色講座
色彩センスのいらない配色講座色彩センスのいらない配色講座
色彩センスのいらない配色講座
 

Similar to 設計から実装まで、今すぐ始める高速化

かんたんキレイなウェブデザイン
かんたんキレイなウェブデザインかんたんキレイなウェブデザイン
かんたんキレイなウェブデザイン
Shuhei Iitsuka
 
CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and Programming
Taku AMANO
 
20140619 dbtechshowcase osaka_2014_couchbase_x_metawater
20140619 dbtechshowcase osaka_2014_couchbase_x_metawater20140619 dbtechshowcase osaka_2014_couchbase_x_metawater
20140619 dbtechshowcase osaka_2014_couchbase_x_metawater
Masahiro Tomisugi
 
_HTML5で組んでみた_
_HTML5で組んでみた__HTML5で組んでみた_
_HTML5で組んでみた_
Kelly Holonic
 

Similar to 設計から実装まで、今すぐ始める高速化 (20)

Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編
 
タスクランナー導入 〜とあるWordPress制作環境〜
タスクランナー導入 〜とあるWordPress制作環境〜タスクランナー導入 〜とあるWordPress制作環境〜
タスクランナー導入 〜とあるWordPress制作環境〜
 
12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション
 
Sass/Compass よくあるトラブルと 解決方法・回避方法
Sass/Compass よくあるトラブルと 解決方法・回避方法Sass/Compass よくあるトラブルと 解決方法・回避方法
Sass/Compass よくあるトラブルと 解決方法・回避方法
 
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
 
フロンエンドトレンドについて話そう
フロンエンドトレンドについて話そうフロンエンドトレンドについて話そう
フロンエンドトレンドについて話そう
 
かんたんキレイなウェブデザイン
かんたんキレイなウェブデザインかんたんキレイなウェブデザイン
かんたんキレイなウェブデザイン
 
マルチデバイス時代の高速化
マルチデバイス時代の高速化マルチデバイス時代の高速化
マルチデバイス時代の高速化
 
シラサギハンズオン 2016 05-26
シラサギハンズオン 2016 05-26シラサギハンズオン 2016 05-26
シラサギハンズオン 2016 05-26
 
Mobile SEO (Japanese Version)
Mobile SEO (Japanese Version)Mobile SEO (Japanese Version)
Mobile SEO (Japanese Version)
 
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しよう
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しようCSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しよう
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しよう
 
CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and Programming
 
説明資料
説明資料説明資料
説明資料
 
Hcmtg 1407
Hcmtg 1407Hcmtg 1407
Hcmtg 1407
 
First sass
First sassFirst sass
First sass
 
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
 
Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~
 
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTechCSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
 
20140619 dbtechshowcase osaka_2014_couchbase_x_metawater
20140619 dbtechshowcase osaka_2014_couchbase_x_metawater20140619 dbtechshowcase osaka_2014_couchbase_x_metawater
20140619 dbtechshowcase osaka_2014_couchbase_x_metawater
 
_HTML5で組んでみた_
_HTML5で組んでみた__HTML5で組んでみた_
_HTML5で組んでみた_
 

More from masaaki komori

More from masaaki komori (20)

コアなエンジニアじゃなくてもできるよ #JP_Stripes Vol.3
コアなエンジニアじゃなくてもできるよ #JP_Stripes Vol.3コアなエンジニアじゃなくてもできるよ #JP_Stripes Vol.3
コアなエンジニアじゃなくてもできるよ #JP_Stripes Vol.3
 
InstaVR使ってみた
InstaVR使ってみたInstaVR使ってみた
InstaVR使ってみた
 
Framerで始めるプロトタイプコーディング
Framerで始めるプロトタイプコーディングFramerで始めるプロトタイプコーディング
Framerで始めるプロトタイプコーディング
 
Prototyping with Sketch
Prototyping with SketchPrototyping with Sketch
Prototyping with Sketch
 
プロトタイピングツール戦国時代
プロトタイピングツール戦国時代プロトタイピングツール戦国時代
プロトタイピングツール戦国時代
 
Bootstrapではじめる、
Webサイト設計のモダンアプローチ
Bootstrapではじめる、
Webサイト設計のモダンアプローチBootstrapではじめる、
Webサイト設計のモダンアプローチ
Bootstrapではじめる、
Webサイト設計のモダンアプローチ
 
レスポンシブEメールを作ろう
レスポンシブEメールを作ろうレスポンシブEメールを作ろう
レスポンシブEメールを作ろう
 
Bootstrapはこう使う
Bootstrapはこう使うBootstrapはこう使う
Bootstrapはこう使う
 
デバイス多様化の時代のWeb制作
デバイス多様化の時代のWeb制作デバイス多様化の時代のWeb制作
デバイス多様化の時代のWeb制作
 
2015年のWebサイトの作り方 at 67ws
2015年のWebサイトの作り方 at 67ws2015年のWebサイトの作り方 at 67ws
2015年のWebサイトの作り方 at 67ws
 
Webデザインと開発の未来
Webデザインと開発の未来Webデザインと開発の未来
Webデザインと開発の未来
 
Framerで動くモックアップを簡単作成
Framerで動くモックアップを簡単作成Framerで動くモックアップを簡単作成
Framerで動くモックアップを簡単作成
 
Sketch 3 Basics at kkmsz
Sketch 3 Basics at kkmszSketch 3 Basics at kkmsz
Sketch 3 Basics at kkmsz
 
Re:Cre Vol.14 | Web design process for the future
Re:Cre Vol.14 | Web design process for the futureRe:Cre Vol.14 | Web design process for the future
Re:Cre Vol.14 | Web design process for the future
 
Web Design Process for The Future
Web Design Process for The FutureWeb Design Process for The Future
Web Design Process for The Future
 
Web Design Process for The Future
Web Design Process for The FutureWeb Design Process for The Future
Web Design Process for The Future
 
groundwork-pasona-tech
groundwork-pasona-techgroundwork-pasona-tech
groundwork-pasona-tech
 
インブラウザ勉強会 Vol.1
インブラウザ勉強会 Vol.1インブラウザ勉強会 Vol.1
インブラウザ勉強会 Vol.1
 
Sublime Text 2 Basics
Sublime Text 2 BasicsSublime Text 2 Basics
Sublime Text 2 Basics
 
Web制作者は変化についていけるか? 変化についていくべきか?
Web制作者は変化についていけるか? 変化についていくべきか?Web制作者は変化についていけるか? 変化についていくべきか?
Web制作者は変化についていけるか? 変化についていくべきか?
 

Recently uploaded

Recently uploaded (11)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

設計から実装まで、今すぐ始める高速化