SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
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!!
=)

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例
 
SparkとCassandraの美味しい関係
SparkとCassandraの美味しい関係SparkとCassandraの美味しい関係
SparkとCassandraの美味しい関係
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
 
AWS Black Belt Online Seminar 2017 Deployment on AWS
AWS Black Belt Online Seminar 2017 Deployment on AWSAWS Black Belt Online Seminar 2017 Deployment on AWS
AWS Black Belt Online Seminar 2017 Deployment on AWS
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
 
Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
 
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
 
今だから!Amazon CloudFront 徹底活用
今だから!Amazon CloudFront 徹底活用今だから!Amazon CloudFront 徹底活用
今だから!Amazon CloudFront 徹底活用
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
 
クラウドのためのアーキテクチャ設計 - ベストプラクティス -
クラウドのためのアーキテクチャ設計 - ベストプラクティス - クラウドのためのアーキテクチャ設計 - ベストプラクティス -
クラウドのためのアーキテクチャ設計 - ベストプラクティス -
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
 

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

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

JAWS-UG Santo 2014-07-05 Drupal on PaaS Cloud
JAWS-UG Santo 2014-07-05 Drupal on PaaS CloudJAWS-UG Santo 2014-07-05 Drupal on PaaS Cloud
JAWS-UG Santo 2014-07-05 Drupal on PaaS Cloud
 
2014.07.05 Drupal PaaS でASWを活用する(Kyoko Ohtagaki)
2014.07.05 Drupal PaaS でASWを活用する(Kyoko Ohtagaki)2014.07.05 Drupal PaaS でASWを活用する(Kyoko Ohtagaki)
2014.07.05 Drupal PaaS でASWを活用する(Kyoko Ohtagaki)
 
明快!Drupal の強みと弱み
明快!Drupal の強みと弱み明快!Drupal の強みと弱み
明快!Drupal の強みと弱み
 
20130413 JAWS-UG北陸 美人CDP
20130413 JAWS-UG北陸 美人CDP20130413 JAWS-UG北陸 美人CDP
20130413 JAWS-UG北陸 美人CDP
 
brotli圧縮でスピード向上・転送量削減を実現 Drupalとの連携
brotli圧縮でスピード向上・転送量削減を実現 Drupalとの連携brotli圧縮でスピード向上・転送量削減を実現 Drupalとの連携
brotli圧縮でスピード向上・転送量削減を実現 Drupalとの連携
 
コスト削減から考えるAWSの効果的な利用方法
コスト削減から考えるAWSの効果的な利用方法コスト削減から考えるAWSの効果的な利用方法
コスト削減から考えるAWSの効果的な利用方法
 
Voxer loves Drupal
Voxer loves DrupalVoxer loves Drupal
Voxer loves Drupal
 
jGov drupal 20170602
jGov drupal 20170602jGov drupal 20170602
jGov drupal 20170602
 
20130330 JAWS-UG広島 美人CDP
20130330 JAWS-UG広島 美人CDP20130330 JAWS-UG広島 美人CDP
20130330 JAWS-UG広島 美人CDP
 
ハイブリッドなサービス統合におけるAzureサービスの活用
ハイブリッドなサービス統合におけるAzureサービスの活用ハイブリッドなサービス統合におけるAzureサービスの活用
ハイブリッドなサービス統合におけるAzureサービスの活用
 
デスクトップ仮想化の実践 - powered by Windows Server 2016 & Azure - (Microsoft de:code 2016)
デスクトップ仮想化の実践 - powered by Windows Server 2016 & Azure - (Microsoft de:code 2016)デスクトップ仮想化の実践 - powered by Windows Server 2016 & Azure - (Microsoft de:code 2016)
デスクトップ仮想化の実践 - powered by Windows Server 2016 & Azure - (Microsoft de:code 2016)
 
WordCamp Yokohama 2010 Komori
WordCamp Yokohama 2010 KomoriWordCamp Yokohama 2010 Komori
WordCamp Yokohama 2010 Komori
 
[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化
[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化
[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化
 
Web体験を向上させる無料CDN 「rapid start」× stripe決済
Web体験を向上させる無料CDN 「rapid start」× stripe決済Web体験を向上させる無料CDN 「rapid start」× stripe決済
Web体験を向上させる無料CDN 「rapid start」× stripe決済
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
AWS & Google Cloudを使ったシステム開発/技術選定のはなし
AWS & Google Cloudを使ったシステム開発/技術選定のはなしAWS & Google Cloudを使ったシステム開発/技術選定のはなし
AWS & Google Cloudを使ったシステム開発/技術選定のはなし
 
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
 
WordPressのCDN化
WordPressのCDN化WordPressのCDN化
WordPressのCDN化
 
頑張らないクラウド最適化 〜クラウドネイティブだけでないAWS活用〜
頑張らないクラウド最適化 〜クラウドネイティブだけでないAWS活用〜頑張らないクラウド最適化 〜クラウドネイティブだけでないAWS活用〜
頑張らないクラウド最適化 〜クラウドネイティブだけでないAWS活用〜
 
Couchbaseの紹介 2015/03/05
Couchbaseの紹介 2015/03/05Couchbaseの紹介 2015/03/05
Couchbaseの紹介 2015/03/05
 

Último

物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
Michael Rada
 

Último (6)

Broadmedia Corporation. 240510fy2023_4q
Broadmedia Corporation.  240510fy2023_4qBroadmedia Corporation.  240510fy2023_4q
Broadmedia Corporation. 240510fy2023_4q
 
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
 
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
 
company profile.pdf
company profile.pdfcompany profile.pdf
company profile.pdf
 
日本上場SaaS企業データを使った経験曲線の分析|売上成長によるコストダウン戦略
日本上場SaaS企業データを使った経験曲線の分析|売上成長によるコストダウン戦略日本上場SaaS企業データを使った経験曲線の分析|売上成長によるコストダウン戦略
日本上場SaaS企業データを使った経験曲線の分析|売上成長によるコストダウン戦略
 
共有用_aio基本保守プラン_WordPressサイト_20240509.pdf
共有用_aio基本保守プラン_WordPressサイト_20240509.pdf共有用_aio基本保守プラン_WordPressサイト_20240509.pdf
共有用_aio基本保守プラン_WordPressサイト_20240509.pdf
 

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