SlideShare a Scribd company logo
AWSとmod_pagespeedで
 楽々サクサク高速化!!



   株式会社チェンジビジョン 淺川 顕


                       1
自己紹介:淺川顕

‫ ﻪ‬所属
 ‫ ﻩ‬株式会社チェンジビジョン
 ‫ ﻩ‬UML設計ツールastah*(旧JUDE)の開発
‫ ﻪ‬やってること
 ‫ ﻩ‬astah*の開発
 ‫ ﻩ‬社内外システムの管理


                              2
表示速度ってとっても重要

‫ ﻪ‬最近では「2秒」でも遅い(2009年)
 ‫ ﻩ‬ページ表示2秒でイライラし始め
 ‫3 ﻩ‬分の1は「もういいや」となる
 ‫ ﻩ‬http://bizmakoto.jp/makoto/articles/1005/19/news005.html

‫ ﻪ‬Googleの検索順位にも影響する?
 ‫ ﻩ‬当初は米国内だけだったようですが
   (2010/3)


                                                              3
表示が遅いのはなぜ?




             4
遅い理由1:サーバの処理時間




サーバ上でのページ生成にかかった時間
負荷テストなどで見つかりやすい遅さ

                     5
遅い理由2:画像等のサイズ

‫ ﻪ‬必要以上に大きい画像はやめましょう。
                  以上




                       6
遅い理由3:同時接続数




   ブラウザから同一Webサーバへの
 同時接続数は尐なめに制限されており、
 上限を超えると空くまで待つ必要がある
                      7
遅い理由4:レイテンシ(遅
 延)
‫ ﻪ‬光の速度だって有限なわけで。
 ‫ ﻩ‬東京DC⇔関東のRTT:10ms以下            ≪RTT とは≫

 ‫ ﻩ‬東京DC⇔北陸のRTT:20msくらい          Round Trip Time
                                 Pingを送って
                               返るまでの時間
 ‫ ﻩ‬東京DC⇔国外のRTT:100ms以上         と思って下さい。



 例)北陸からのTCP 3 way handshake

                              接続だけで
                              30ms以上
    10ms   10ms   10ms
                                                  8
Before…
          ブラウザ              DNSサーバ                   接続1 : HTTP接続   接続2 : HTTP接続



             1: 名前解決(astah.net)
                                             ブラウザは
                                             待つだけ
                                                              一部が返った
                                                              時点で解析を
                                   2: GET(/index.html)
                                                              始められる


                                  3: GET(/css/modal.css)


  接続が
 空いたので                             4: GET(/js/caption.js)
次のリソースを
 取得できる
                                  5: GET(/js/modal.js)




                                                                                   9
どうすれば早くなる?
‫ﻪ‬    サーバの処理時間を減らす
‫ﻪ‬    画像ファイルのサイズを縮小する
‫ﻪ‬    非同期にロードできる箇所を増やす
‫ﻪ‬    複数に分割されたJS/CSSをまとめる
‫ﻪ‬    HTTPの最大同時接続数を増やしてもらう
‫ﻪ‬    Webサーバの近くに住んでもらう
                           ・
                           ・
                           ・
    参考:http://code.google.com/intl/ja/speed/page-speed/docs/rules_intro.html
                                                                          10
とは言ったものの、、




             11
とは言ったものの、、



 手動でチューニング
なんてやりたくない!!

       という方のために・・・
                12
用意するもの

‫ﻪ‬   Amazon Route 53
‫ﻪ‬   Amazon CloudFront
‫ﻪ‬   Google mod_pagespeed
‫ﻪ‬   Apache HTTP Server




                           13
Amazon Route 53

‫ ﻪ‬AWSのDNSコンテンツサーバ
 ‫ ﻩ‬複数のエッジロケーションに分散される
    遠距離からの解決時間を平均的に高速化できる
  ‫ ﻯ‬国内だけだと速度面での効果は薄いかも?
  > dig @ns-315.awsdns-39.com astah.net
                 ...
  ;; Query time: 10 msec
                                  計測したところ
  ;; SERVER: 205.251.193.59#53(205.251.193.59)
                                  思っていたより
  > dig @ns-1503.awsdns-59.org. astah.net
                                  ばらつきがあった
                 ...
  ;; Query time: 55 msec
  ;; SERVER: 205.251.197.223#53(205.251.197.223)

                                                   14
Amazon CloudFront

‫ ﻪ‬AWSのContents Delivery Network
  ‫ ﻩ‬このLTの範囲では、世界各国に分散された
    キャッシュ付きリバースプロキシ
  ‫ ﻩ‬S3に置いたデータの配信等も行える
  ‫ ﻩ‬画像ファイル等をCloudFront経由でDLす
    るには、HTML中のURLを書き変えが必要
                 リバースプロキシと同じようなものなので、
                 全てをCloudFront経由にする事も可能だが、
                CloudFront上のキャッシュの考慮が必要になる

                                             15
Google mod_pagespeed

‫ ﻪ‬Google製のApacheモジュール
 ‫ ﻩ‬ページの表示速度の向上を目的とし、
   HTMLや各種リソースを書き換える
 ‫ ﻩ‬Apacheのフィルタなので、リバースプロ
   キシとして構成して他のサーバからのレス
   ポンスを再編成することも可能(なは
   ず。。)


                           16
具体的に何ができるの?(1)

‫ ﻪ‬画像ファイルの縮小
 ‫ ﻩ‬HTML/CSS中で指定したサイズに揃える
‫ ﻪ‬画像ファイル/JS/CSSのインライン展開




                           17
具体的に何ができるの?(2)

‫ ﻪ‬JS/CSSの結合
‫ ﻪ‬リソースURLの書き換え
 ‫ ﻩ‬ホスト名やドメイン名の書き換え
 ‫ ﻩ‬複数のホストへの分散化(シャーディン
   グ)

CloudFront経由のURLに書き換えられる!

                            18
書き換え後のHTML例
                  複数のCSSがひとつに
                   結合されている




 複数のホスト名に
 ラウンドロビン的に
  分散されている    ファイルの内容が変わると
             ハッシュも変わるので、
             キャッシュの有効期限は
             考慮しなくてもよくなる



                                19
インストール方法は?

‫ ﻪ‬Debian/Ubuntuの場合
  ‫ ﻩ‬公式サイトからリポジトリのdebをDLして
    くる
    http://code.google.com/intl/ja/speed/page-speed/download.html
 # dpkg -i mod-pagespeed-*.deb
 # apt-get -f install




                                                                    20
設定ファイルの変更例


                 cdn1.astah.net
               (CloudFrontの別名)
 astah.net
                                cdn2.astah.net
                              (CloudFrontの別名)


‫ ﻪ‬この構成では、デフォルト設定+
  ModPagespeedShardDomain 
    astah.net cdn1.astah.net,cdn2.astah.net


                                                 21
After…
                    ブラウザ             CMS : WebServer        CloudFront1 : WebServer   CloudFront2 : WebServer



                       1: GET(/index.html)



 HTML本体は      par                              2: GET(/css/modal.css)
                                                                                            初回のみ
CloudFrontを
                             opt             2.1: GET(/css/modal.css)                       リソースを
経由しないので
                                                                                            取得する
Webサーバで                      [ミスヒット]
 キャッシュを
 制御できる
                                                 3: GET(/css/modal.css)




              par                              4: GET(/js/caption.js)


シャーディングで
ダウンロードの                                            5: GET(/js/modal.js)

並行性を高める


                                                                                                                22
言いたかったこと
‫ﻪ‬   大々的に導入しないAWSの使い方もあるよ!
‫ﻪ‬   CMS使ってようと簡単に高速化できるよ!
‫ﻪ‬   コンテンツ側の変更なんていらないよ!
‫ﻪ‬   導入後もメンテナンス面倒にならないよ!




                            23
ご清聴ありがとうございました




                 24

More Related Content

What's hot (20)

PDF
Thunderbird 3のご紹介と企業に求められるカスタマイズ
Makoto Kato
 
PPTX
MongoDB on EC2 #mongodbcasual
Yasuhiro Matsuo
 
PPT
Web Service on SSD
Kazuho Oku
 
PDF
TIME_WAITに関する話
Takanori Sejima
 
PDF
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
 
PDF
MongoDB Configパラメータ解説
Shoken Fujisaki
 
PDF
EthernetやCPUなどの話
Takanori Sejima
 
PDF
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
純生 野田
 
PDF
CasualなMongoDBのサービス運用Tips
Naoki Sega
 
PDF
Webサーバ勉強会03
oranie Narut
 
PPTX
JavaプログラマのためのWebSocket概要
Shumpei Shiraishi
 
PDF
Node.js で SPDYのベンチマーク体験サイトを作りました
shigeki_ohtsu
 
PDF
Samba4を「ふつうに」使おう!
基信 高橋
 
PDF
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
Yuuki Namikawa
 
PDF
MySQLやSSDとかの話 後編
Takanori Sejima
 
PDF
Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)
基信 高橋
 
PDF
Snr001 azure iaa_s_応用編~実務で
Tech Summit 2016
 
PPTX
Samba4でADしよう!
Yutaka Tsumori
 
PDF
WordPress アジュール部 ハンズオン
Masaki Takeda
 
PDF
サーバPUSHざっくりまとめ
Yasuhiro Mawarimichi
 
Thunderbird 3のご紹介と企業に求められるカスタマイズ
Makoto Kato
 
MongoDB on EC2 #mongodbcasual
Yasuhiro Matsuo
 
Web Service on SSD
Kazuho Oku
 
TIME_WAITに関する話
Takanori Sejima
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
 
MongoDB Configパラメータ解説
Shoken Fujisaki
 
EthernetやCPUなどの話
Takanori Sejima
 
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
純生 野田
 
CasualなMongoDBのサービス運用Tips
Naoki Sega
 
Webサーバ勉強会03
oranie Narut
 
JavaプログラマのためのWebSocket概要
Shumpei Shiraishi
 
Node.js で SPDYのベンチマーク体験サイトを作りました
shigeki_ohtsu
 
Samba4を「ふつうに」使おう!
基信 高橋
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
Yuuki Namikawa
 
MySQLやSSDとかの話 後編
Takanori Sejima
 
Samba4を「ふつうに」使おう!(2015/08/08 OSC 2015 Kansai@Kyoto)
基信 高橋
 
Snr001 azure iaa_s_応用編~実務で
Tech Summit 2016
 
Samba4でADしよう!
Yutaka Tsumori
 
WordPress アジュール部 ハンズオン
Masaki Takeda
 
サーバPUSHざっくりまとめ
Yasuhiro Mawarimichi
 

Similar to AWSとmod_pagespeedで 楽々サクサク高速化!! (20)

PDF
Amazon ElastiCache - AWSマイスターシリーズ
SORACOM, INC
 
PDF
Google Compute EngineとPipe API
maruyama097
 
PDF
Google Compute EngineとGAE Pipeline API
maruyama097
 
PPTX
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
 
PDF
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe
 
PPTX
Chromebook 「だけ」で WebRTCを動かそう
mganeko
 
PDF
Windows Azure for PHP Developers
fumios
 
PDF
20120117 13 meister-elasti_cache-public
Amazon Web Services Japan
 
PDF
PHP開発者のためのNoSQL入門
じゅん なかざ
 
PPTX
サーバーの初歩的な話セミナー@大阪20120901
Masayuki Abe
 
PDF
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Sunao Tomita
 
PPTX
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
GoAzure
 
PPT
Hadoopの紹介
bigt23
 
PDF
Wordpress buddypress3
Shoichi Otomo
 
PDF
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Ryo Nakamaru
 
PDF
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
TAKUYA OHTA
 
PDF
17 E-5 震災とHackとクラウドと 亀渕分
Keiji Kamebuchi
 
PPTX
CloudCore VPS 開発者支援制度
Koichi Shimozono
 
PPTX
シラサギハンズオン 1015 1016
Yu Ito
 
PPT
web server
soestudio
 
Amazon ElastiCache - AWSマイスターシリーズ
SORACOM, INC
 
Google Compute EngineとPipe API
maruyama097
 
Google Compute EngineとGAE Pipeline API
maruyama097
 
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
 
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe
 
Chromebook 「だけ」で WebRTCを動かそう
mganeko
 
Windows Azure for PHP Developers
fumios
 
20120117 13 meister-elasti_cache-public
Amazon Web Services Japan
 
PHP開発者のためのNoSQL入門
じゅん なかざ
 
サーバーの初歩的な話セミナー@大阪20120901
Masayuki Abe
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Sunao Tomita
 
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
GoAzure
 
Hadoopの紹介
bigt23
 
Wordpress buddypress3
Shoichi Otomo
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Ryo Nakamaru
 
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
TAKUYA OHTA
 
17 E-5 震災とHackとクラウドと 亀渕分
Keiji Kamebuchi
 
CloudCore VPS 開発者支援制度
Koichi Shimozono
 
シラサギハンズオン 1015 1016
Yu Ito
 
web server
soestudio
 
Ad

Recently uploaded (7)

PDF
Google Driveハブ型Obsidian同期環境:PC編集とモバイル閲覧を安全・効率的に実現するクロスデバイス構築ガイド
honeshabri
 
PDF
20250717_Devin×GitHubCopilotで10人分の仕事は出来るのか?.pdf
Masaki Yamakawa
 
PPTX
Devcontainerのススメ(1)-Devcontainerとはどういう技術?-
iPride Co., Ltd.
 
PDF
20250711JIMUC総会_先進IT運用管理分科会Connpass公開資料.pdf
ChikakoInami1
 
PDF
20250711JIMUC総会IBM Automation_Platform最新情報_Connpass公開版.pdf
ChikakoInami1
 
PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
 
PDF
20250711_日本IBM ミドルウエア・ユーザー研究会(JIMUC)総会_中村会長資料.pdf
ChikakoInami1
 
Google Driveハブ型Obsidian同期環境:PC編集とモバイル閲覧を安全・効率的に実現するクロスデバイス構築ガイド
honeshabri
 
20250717_Devin×GitHubCopilotで10人分の仕事は出来るのか?.pdf
Masaki Yamakawa
 
Devcontainerのススメ(1)-Devcontainerとはどういう技術?-
iPride Co., Ltd.
 
20250711JIMUC総会_先進IT運用管理分科会Connpass公開資料.pdf
ChikakoInami1
 
20250711JIMUC総会IBM Automation_Platform最新情報_Connpass公開版.pdf
ChikakoInami1
 
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
 
20250711_日本IBM ミドルウエア・ユーザー研究会(JIMUC)総会_中村会長資料.pdf
ChikakoInami1
 
Ad

AWSとmod_pagespeedで 楽々サクサク高速化!!