SlideShare a Scribd company logo
Drupalד高速化“
認証ユーザーキャッシュ
2
ABOUTME
Job : 小さな “CDN会社” レッドボックス
※取り扱いトラフィックは約50Gbps前後(2017年時点)
Name: 小川 かつひさ (KATSUHISA OGAWA)
Like : キャッシュ・負荷分散・WEB高速化
https://www.facebook.com/ogawaka
WEB高速化ブログ
Past : いんふら屋さん
サーバーやスイッチを設定したり色々やってるアレ
http://blog.redbox.ne.jp
3
Drupalの特徴/他のCMSとの違い
DrupalとWordpressを比較
WORDPRESS
・所謂ブログタイプで参照のみのケースが多い
・ログインユーザーは記事更新など運営管理がメイン
DRUPAL
・ユーザー権限の管理が柔軟
・ブログ運営からコンシューマーサービスまで幅が広い
4
Drupalの特徴/他のCMSとの違い
プロジェクトの複雑さと最適なプラットフォーム
出典:https://annai.co.jp/article/drupal-wordpress-and-all-the-
rest-how-to-choose-a-web-platform
5
認証ユーザーキャッシュが必須のDrupal
Drupalはログイン前提で
利用されるケースがおおい。
高速化には
認証ユーザー向けキャッシュが必須
=
6
DrupalをCDNで利用するためには
主要CDNベンダで案内している手順
1. CDNベンダ側の初期設定
2. CDNモジュール※1をDrupalに導入
3. CDNサービスのサブドメインをCDNモジュール設定画面で登録
4. Drupalのキャッシュクリア
※1. CDN Module
https://www.drupal.org/project/cdn
7
DrupalをCDNで利用するためには
Drupal CDNモジュールは指定された拡張子の
FQDNをCDNベンダのFQDNに書き換える。
または書き換えをおこなわないURLのルールを
設定できる。
Drupal CDNモジュールとは
メリット
 WEBサイトのDNS変更不要
 CDN化したいコンテンツの制御がDrupal内で完結
デメリット
 モジュールの不具合、設定ミスでサイトが全断する恐れあり
 ページキャッシュを行うには課題がある
8
CDNで
Drupalのページを
安全にキャッシュする。
9
Drupal×CDNの設定
キャッシュさせないPATH
^/status.php$"
"^/update.php"
"^/install.php"
"^/apc.php$"
"/admin"
"/admin/.*$"
"/user"
"/user/.*$"
"/users/.*$"
"/cron.php"
"^/info/.*$"
"^.*/ajax/.*$"
"^.*/ahah/.*$"
"^/system/files/.*$"
"^.*/edit.*$"
サンプル(正規表現)
課金関係のモジュールが利用しているパス
カート関連のモジュールのパス
ソーシャルログイン関連のパス
その他キャッシュさせない項目
10
Drupal×CDNの設定
キャッシュさせる設定
・特定のレスポンスヘッダを削除または無視する
Drupalの各種ページはD7/D8共に以下の様なレスポンスヘッダが付与される。
Cache-Control:no-cache, must-revalidate
Expires:Sun, 19 Nov 1978 05:00:00 GMT
※ 19 Nov 1978はDrupal創業者Driesの誕生日
CDNベンダはno-cacheが付与されている/Expiresが過去の日付の場合
キャッシュしない動作がデフォルトであることがほとんどのため必須設定。
これでキャッシュすること自体は可能だが、次のような事故が発生する。
・User1さんがログイン後WEBサイトにアクセス。
・User2さんがログイン後同じページにアクセスすると、
User1さんでキャッシュした情報が見えてしまう!!
11
外部キャッシュ(CDN)の注意点
そう、こんなふうに
CDNが情報漏洩につながる危険
12
安全に
認証ユーザーを
キャッシュさせる。
13
Drupal×CDNの設定
それには、スパイスとチューニングが必要
SPICE TUNING
14
Drupal×CDNの設定
CDNのキャッシュKEYとは?
どのような情報をもとにキャッシュをおこなうかというルール。
一般的にはURLを基準に、クエリストリングや特定のヘッダ情報などを
キャッシュKEYに指定する。
サンプルリクエスト
http://aaaaa.com/test.html
キャッシュKEY:URL
http://aaaaa.com/test.html
キャッシュKEY :URL+クエリ
http://aaaaa.com/test.html
http://aaaaa.com/test.html?1234
http://aaaaa.com/test.html?5678
キャッシュKEY :URL+Vary User-Agentヘッダ
http://aaaaa.com/test.html(Vary User-Agent:Iphone)
http://aaaaa.com/test.html(Vary User-Agent:Android)
http://aaaaa.com/test.html(Vary User-Agent:Chrome)
15
Drupal×CDNの設定(SPICE)
キャッシュKEYにCookieを含める
Cookie内に保存されているセッションキーをキャッシュKEYに含めることにより、
ユーザーごとにキャッシュを分けることができる。
キャッシュKEY :URL+Cookie
http://drupal-sample.com/test(SESS:user1xxxxx)
http://drupal-sample.com/test(SESS:user2xxxxx)
http://drupal-sample.com/test(SESS:user3xxxxx)
>http://drupal-sample.com/test
User1
User5
User2
User3 User4
5個のキャッシュに分ける5人のユーザー
16
Drupal×CDNの設定(TUNING)
Cookieのチューニング
Cookieの中には通常セッション以外にも様々な情報が格納される。
リクエストするたびに変更されるユニークな値もあるため、
そのため、セッションキーだけ取り出した後、キャッシュキーにする。
Cookie:Drupal.toolbar.collapsed=0;_ga=GA1.3.731444347.1493815250;_gid=GA1.3.1263749221.1500
647187; SESS9ca48a5e37d1sbsdsf3s1s0bses3s3sb_2Iw6B3YnZsNCswyTsy4l2kdGY_yPxRbwT4YU;
has_js=1
Cookie:SESS9ca48a5e37d1sbsdsf3s1s0bses3s3sb_2Iw6B3YnZsNCswyTsy4l2kdGY_yPxRbwT4YU;
>
これで、HIT率を低下させることなく、
安全にページキャッシュが可能。
17
Drupal×CDNの設定(TUNING)
DrupalのCoreキャッシュはOFF
Drupal7/8ともに管理画面からキャッシュ機能をOFFにしてください。
※Drupal8はDynamic CacheもOFFにする。
Drupal8のDynamic Cache無効化
以下の内容を各ファイルに追記する。
sites/default/services.yml
services:
cache.backend.null:
class: DrupalCoreCacheNullBackendFactory
sites/default/settings.php
$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null’;
参考サイト:
https://www.drupal.org/node/2598914
18
正直、Cookieのパースなんて
やってられないですよね?
ということで、面倒な設定を詰め込んだ
DRUPALCDNを作ってみた。
Rapid START CDNサービス
19
無料で開始 プリセットを用意 マルチプラットフォーム
https://cdn.tokyo
※Drupalとエッジサーバーを連携させて開発
「CDN 無料」で検索
Rapid START CDNサービス
20
Rapid STARTの特徴
 無料でSTART
 DNSを変更するだけでOK
 1秒以下の高速キャッシュ削除
 DrupalをCDN化するプリセット(実装済)
 SSL(HTTP/2)配信も可能(実装済)
 タグベースのパージAPIも提供(する予定)
 オリジンサーバーへHOSTヘッダを透過
アクティブドメイン = 243個
DEMO
21
最後に少しだけDEMO
MERCI!!
=)

More Related Content

PDF
OpenShift Virtualization- Technical Overview.pdf
PDF
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...
PPTX
負荷分散だけじゃないELBのメリット
ODP
Introduction to Ansible
PPTX
Yocto bspを作ってみた
PPTX
Ceph アーキテクチャ概説
PDF
KVM+cgroup
PDF
SeaweedFS introduction
OpenShift Virtualization- Technical Overview.pdf
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...
負荷分散だけじゃないELBのメリット
Introduction to Ansible
Yocto bspを作ってみた
Ceph アーキテクチャ概説
KVM+cgroup
SeaweedFS introduction

What's hot (20)

PDF
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PPTX
KVM and docker LXC Benchmarking with OpenStack
PDF
ヤフー発のメッセージキュー「Pulsar」のご紹介
PPTX
Docker Networking Overview
PDF
MySQLバックアップの基本
PDF
Dockerを支える技術
PPTX
Zabbix概論2018
PDF
LXC入門 - Osc2011 nagoya
PPTX
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
PDF
20170919 AWS Black Belt Online Seminar AWS Database Migration Service
PDF
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
PDF
仮想化環境におけるパケットフォワーディング
PPTX
OpenStackで始めるクラウド環境構築入門
PDF
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
PDF
Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...
PDF
Virtualization Architecture & KVM
PDF
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
PPTX
Issues of OpenStack multi-region mode
PDF
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
KVM and docker LXC Benchmarking with OpenStack
ヤフー発のメッセージキュー「Pulsar」のご紹介
Docker Networking Overview
MySQLバックアップの基本
Dockerを支える技術
Zabbix概論2018
LXC入門 - Osc2011 nagoya
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
20170919 AWS Black Belt Online Seminar AWS Database Migration Service
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
仮想化環境におけるパケットフォワーディング
OpenStackで始めるクラウド環境構築入門
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...
Virtualization Architecture & KVM
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
Issues of OpenStack multi-region mode
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
Ad

More from Katsuhisa Ogawa (7)

PDF
CDNを活用したWeb高速化術とマルチデバイス時代におけるWeb速度の重要性
PDF
Web体験を向上させるcdnと表示速度の重要性
PDF
brotli圧縮でスピード向上・転送量削減を実現 Drupalとの連携
PDF
Web体験を向上させる無料CDN 「rapid start」× stripe決済
PDF
Web表示速度とgtmetrixスコアの矛盾
PDF
Web体験を最適化するCDNとは?
PDF
DrupalとWEB高速化 CDNについて
CDNを活用したWeb高速化術とマルチデバイス時代におけるWeb速度の重要性
Web体験を向上させるcdnと表示速度の重要性
brotli圧縮でスピード向上・転送量削減を実現 Drupalとの連携
Web体験を向上させる無料CDN 「rapid start」× stripe決済
Web表示速度とgtmetrixスコアの矛盾
Web体験を最適化するCDNとは?
DrupalとWEB高速化 CDNについて
Ad

Recently uploaded (10)

PDF
受発注バスターズ説明資料  (2025_08_13~) Saleshub掲載用.pdf
PDF
西都 採用サイト掲載用ピッチ資料 | 安心して働ける環境と成長できるキャリアパス
PDF
【2507】インパクト共創室実績
PDF
2508_ インパクトレポート会社概要_雨風太陽
PDF
【QYResearch】世界製薬業界の市場変革と将来展望における多角的な事業展開の探求
PDF
【会社紹介資料】株式会社スキルアップ ~エンジニア第一主義!収入・働きやすさ・成長機会でトップクラスを目指す~ 高収入を実現する還元モデル × 自分で選べ...
PPTX
データサイエンス研修提案資料 RIZAPビジネスイノベーション株式会社.pptx
PDF
世界化学品産業の市場動向と将来展望に関する包括的な調査研究 QYResearch
PDF
AI活用の成果が変わる!生成AI時代の速読・読解力トレーニング「AI Reading Lab」
PDF
sustainability_MSOLサステナビリティレポート_202508_日本語版_完成版.pdf
受発注バスターズ説明資料  (2025_08_13~) Saleshub掲載用.pdf
西都 採用サイト掲載用ピッチ資料 | 安心して働ける環境と成長できるキャリアパス
【2507】インパクト共創室実績
2508_ インパクトレポート会社概要_雨風太陽
【QYResearch】世界製薬業界の市場変革と将来展望における多角的な事業展開の探求
【会社紹介資料】株式会社スキルアップ ~エンジニア第一主義!収入・働きやすさ・成長機会でトップクラスを目指す~ 高収入を実現する還元モデル × 自分で選べ...
データサイエンス研修提案資料 RIZAPビジネスイノベーション株式会社.pptx
世界化学品産業の市場動向と将来展望に関する包括的な調査研究 QYResearch
AI活用の成果が変わる!生成AI時代の速読・読解力トレーニング「AI Reading Lab」
sustainability_MSOLサステナビリティレポート_202508_日本語版_完成版.pdf

CDNで高速化!Drupal認証ユーザーむけページキャッシュ設定