SlideShare a Scribd company logo
1 of 25
CloudFrontの落とし穴
2017/10/14 JAWS-UG Nagano reboot
始める前に
なんか質問出来る機能とかあるみたいなので匿名でもテストでも何でも良いので
質問意見お願いします!
お前 誰よ
・長野市の某零細企業でDjangoでrequestに対してjsonを
返すだけの簡単なお仕事をやってます
・AWS使ってます
・IT技術よりはアニメや地下アイドルなどの現代サブカル
に興味があるのでこちらへの質問大募集!
・twitter:@nakajidamedeath
一応こんなのも持ってます
注意!
多分解決方法は他にも色々あると思われる!
きっかけ
最近、CloudFrontを導入する機会があったのでそれに伴って
起きたトラブルと解決方法の話をしようと思います
CloudFrontとは・・・(BlackBeltより抜粋)
出典「https://d0.awsstatic.com/webinars/jp/pdf/services/20170927_AWS-BlackBelt-CloudFront-LambdaEdge.pdf」
AWS BlackBelt「CloudFront」
要するに
・処理が重たいページでも二人目以降が同じページを開いたときにはさくさくに
なるよ!
・後ろにいるサーバーの負荷が低くて済むのでEC2の台数やサイズの節約に繋が
る!
・世界中のどこからアクセスしても近くのエッジロケーションからデータ持って
きてくれるよ!
・適当な重いクエリを書いても許される
すごく便利!
,j;;;;;j,. ---一、 ` ―--‐、_ l;;;;;;
{;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;;
ヾ;;;ハ ノ .::!lリ;;r゛
`Z;i 〈.,_..,. ノ;;;;;;;;> そんなふうに考えていた時期が
,;ぇハ、 、_,.ー-、_',. ,f゛: Y;;f. 俺にもありました
~''戈ヽ `二´ r'´:::. `!
やっていた仕事について
gigazineみたいなサイトにjsonを送る仕事
・トップページがあって
・記事が個別にあって
・カテゴリーが付いてて・・
・画像がたくさんあって・・・
・見るだけのユーザーサイト
・ライター用の管理サイト
・記事の更新に合わせてCloudFrontのキャッ
シュを消すよう作成
・記事の公開時間になったらキャッシュを消
すバッチ
運用を開始して少し経った頃から・・
ライター3/怒りの問い合わせ
管理サイトから記事を更新しても表示が古い!
記事の公開時間になっても表示されない!
原因:キャッシュ削除がエラーしてた
→ざっくり言うと頻繁に消しすぎ!ってエラー
そもそも・・
“Invalidation Request は、本来予期しない間違ったコンテンツのアップロ
ードなどに対応するために用いられるもので、コンテンツの更新を目的
としたものではございません。
誠にお手数ではございますが、コンテンツの入れ替えのために
Invalidation Request のご利用は避けて頂き、短い TTL のご設定やファイ
ル名変更での対応をご検討下さいますよう宜しくお願いいたします。“
awsのforum
https://forums.aws.amazon.com/thread.jspa?messageID=309850
/(^o^)\
対策
①TTLを設定してみよう案
・そもそもライターさんがいつ更新するか分からない
・せっかくキャッシュがあるのに期限切ればかりおこしていてもつま
らない→不可
②キャッシュ削除のタイミングと内容を細かく制御
・全部のURLをざっくり消すのを辞める(消すオブジェクトの
数を減らす)
・更新内容に応じて、無駄に削除しないようにIF文をたくさん
書く→採用
さらにもう一つ最終手段を付与・・・
最終手段:キャッシュ削除ボタンを用意
キャッシュ削除ボタンを用意してライターさんの力でキャッシュ削除をできるようにす
る!(できるとは言っていない)
MAKE Invalidation
Cache AGAIN キャッシュをインター
ネットの海に沈める!
罠はもう一つ・・
パスが多すぎて消せない
キャシュ削除の挙動を細かく制御するためにパスを細かく指定しまくった
結果、以下の制限にひっかかる
http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuid
e/Invalidation.html#InvalidationLimits
* ワイルドカードを使用している場合、最大 15 個の
無効化パスのリクエストを一度に作成できます。ま
た、進行中のディストリビューションごとに最大
3,000 個の個別のオブジェクトを同時に作成するこ
とができます。
TTLを設定しよう!
RSSなど、ほぼほぼ決まった時間にアクセスが来
るようなものはTTLを短く設定して、必ずオリジン
サーバーにアクセスが来るようにすれば消す必要
もなくなるのでパス数の節約につながる!(そもそ
もキャッシュできないようにしていれば良かった
んですが)
課題
正直他のサイトはどうやってるのか調べてからそれ
をパクるのが正解のような気がしてきた・・・
どうであれ
今の運用方法でキャッシュヒット率7割(多い
のか少ないのかは不明)だしているのでなん
とか回ってるのかなーと思いつつ、
CloudFrontの導入は要検討しましょう
以上です。
CloudFrontは便利だけど適当に使い始めると運用タイ
ミングで色々と悩みが出てくるので、気をつけましょ
う!
なんとなく導入してしまっても今回のような方法を取
れば取り返しはつくよ!
質問がなければお勧めの地下アイドルの紹介をしま
す

More Related Content

Similar to Cloud frontの落とし穴

訳が欲しい奴ぁ俺んとこ来い!
訳が欲しい奴ぁ俺んとこ来い!訳が欲しい奴ぁ俺んとこ来い!
訳が欲しい奴ぁ俺んとこ来い!Ryuji Tamagawa
 
デベロッパーサミット2012 JAZUG LT
デベロッパーサミット2012 JAZUG LTデベロッパーサミット2012 JAZUG LT
デベロッパーサミット2012 JAZUG LTnormalian
 
コンソールゲームを世界展開してみた - JAWS DAYS 2015
コンソールゲームを世界展開してみた - JAWS DAYS 2015コンソールゲームを世界展開してみた - JAWS DAYS 2015
コンソールゲームを世界展開してみた - JAWS DAYS 2015Ryo Nakamaru
 
Windows Azure CloudService で Java 使ってみたアレコレ
Windows Azure CloudService で Java 使ってみたアレコレWindows Azure CloudService で Java 使ってみたアレコレ
Windows Azure CloudService で Java 使ってみたアレコレsnicker_jp
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
NodeにしましょうYuzo Hebishima
 
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)Tomotsune Murata
 
AWS はじめの一歩
AWS はじめの一歩AWS はじめの一歩
AWS はじめの一歩Eiji Sato
 
20150523 operation jaws(JAWS-UG OSAKA #13)
20150523 operation jaws(JAWS-UG OSAKA #13)20150523 operation jaws(JAWS-UG OSAKA #13)
20150523 operation jaws(JAWS-UG OSAKA #13)Daiki Mori
 
大企業、未踏ソフトウェア、起業 様々な働き方から学んだ「モノ作り」のエッセンス
大企業、未踏ソフトウェア、起業  様々な働き方から学んだ「モノ作り」のエッセンス大企業、未踏ソフトウェア、起業  様々な働き方から学んだ「モノ作り」のエッセンス
大企業、未踏ソフトウェア、起業 様々な働き方から学んだ「モノ作り」のエッセンスTakashi Someda
 
20130615 オンプレ\(^o^)/クラウドにモヤモヤしてる人が押さえておくべき3つのこと
20130615 オンプレ\(^o^)/クラウドにモヤモヤしてる人が押さえておくべき3つのこと20130615 オンプレ\(^o^)/クラウドにモヤモヤしてる人が押さえておくべき3つのこと
20130615 オンプレ\(^o^)/クラウドにモヤモヤしてる人が押さえておくべき3つのこと真吾 吉田
 
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -Shuji Watanabe
 
my-spirit-of-tdd
my-spirit-of-tddmy-spirit-of-tdd
my-spirit-of-tddYu Asano
 
20140411_JAWS-UG札幌
20140411_JAWS-UG札幌20140411_JAWS-UG札幌
20140411_JAWS-UG札幌Tomoya Ishida
 
クラウド移住体験記
クラウド移住体験記クラウド移住体験記
クラウド移住体験記Takehito Tanabe
 
Azure Machine Learningを触ってみた!
Azure Machine Learningを触ってみた!Azure Machine Learningを触ってみた!
Azure Machine Learningを触ってみた!Takuya Tachibana
 
JAWS-UG Osaka 2013.11.02 Feel the Elesticity v2.0
JAWS-UG Osaka 2013.11.02 Feel the Elesticity v2.0JAWS-UG Osaka 2013.11.02 Feel the Elesticity v2.0
JAWS-UG Osaka 2013.11.02 Feel the Elesticity v2.0Toshiyuki Konparu
 
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語Takashi Someda
 
戦う!サラリーマンSE AWS Cloudformationを使ってみた1
戦う!サラリーマンSE AWS Cloudformationを使ってみた1戦う!サラリーマンSE AWS Cloudformationを使ってみた1
戦う!サラリーマンSE AWS Cloudformationを使ってみた1Kenzo Ookane
 
鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料Takashi Aoe
 

Similar to Cloud frontの落とし穴 (20)

訳が欲しい奴ぁ俺んとこ来い!
訳が欲しい奴ぁ俺んとこ来い!訳が欲しい奴ぁ俺んとこ来い!
訳が欲しい奴ぁ俺んとこ来い!
 
デベロッパーサミット2012 JAZUG LT
デベロッパーサミット2012 JAZUG LTデベロッパーサミット2012 JAZUG LT
デベロッパーサミット2012 JAZUG LT
 
コンソールゲームを世界展開してみた - JAWS DAYS 2015
コンソールゲームを世界展開してみた - JAWS DAYS 2015コンソールゲームを世界展開してみた - JAWS DAYS 2015
コンソールゲームを世界展開してみた - JAWS DAYS 2015
 
Windows Azure CloudService で Java 使ってみたアレコレ
Windows Azure CloudService で Java 使ってみたアレコレWindows Azure CloudService で Java 使ってみたアレコレ
Windows Azure CloudService で Java 使ってみたアレコレ
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
 
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
 
AWS はじめの一歩
AWS はじめの一歩AWS はじめの一歩
AWS はじめの一歩
 
20150523 operation jaws(JAWS-UG OSAKA #13)
20150523 operation jaws(JAWS-UG OSAKA #13)20150523 operation jaws(JAWS-UG OSAKA #13)
20150523 operation jaws(JAWS-UG OSAKA #13)
 
大企業、未踏ソフトウェア、起業 様々な働き方から学んだ「モノ作り」のエッセンス
大企業、未踏ソフトウェア、起業  様々な働き方から学んだ「モノ作り」のエッセンス大企業、未踏ソフトウェア、起業  様々な働き方から学んだ「モノ作り」のエッセンス
大企業、未踏ソフトウェア、起業 様々な働き方から学んだ「モノ作り」のエッセンス
 
20130615 オンプレ\(^o^)/クラウドにモヤモヤしてる人が押さえておくべき3つのこと
20130615 オンプレ\(^o^)/クラウドにモヤモヤしてる人が押さえておくべき3つのこと20130615 オンプレ\(^o^)/クラウドにモヤモヤしてる人が押さえておくべき3つのこと
20130615 オンプレ\(^o^)/クラウドにモヤモヤしてる人が押さえておくべき3つのこと
 
06.吉田さん オンプレ\(^o^)/
06.吉田さん オンプレ\(^o^)/06.吉田さん オンプレ\(^o^)/
06.吉田さん オンプレ\(^o^)/
 
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
 
my-spirit-of-tdd
my-spirit-of-tddmy-spirit-of-tdd
my-spirit-of-tdd
 
20140411_JAWS-UG札幌
20140411_JAWS-UG札幌20140411_JAWS-UG札幌
20140411_JAWS-UG札幌
 
クラウド移住体験記
クラウド移住体験記クラウド移住体験記
クラウド移住体験記
 
Azure Machine Learningを触ってみた!
Azure Machine Learningを触ってみた!Azure Machine Learningを触ってみた!
Azure Machine Learningを触ってみた!
 
JAWS-UG Osaka 2013.11.02 Feel the Elesticity v2.0
JAWS-UG Osaka 2013.11.02 Feel the Elesticity v2.0JAWS-UG Osaka 2013.11.02 Feel the Elesticity v2.0
JAWS-UG Osaka 2013.11.02 Feel the Elesticity v2.0
 
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
 
戦う!サラリーマンSE AWS Cloudformationを使ってみた1
戦う!サラリーマンSE AWS Cloudformationを使ってみた1戦う!サラリーマンSE AWS Cloudformationを使ってみた1
戦う!サラリーマンSE AWS Cloudformationを使ってみた1
 
鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料
 

More from Yuuki Nakajima

Python勉強会in 長野 オープニング
Python勉強会in 長野 オープニングPython勉強会in 長野 オープニング
Python勉強会in 長野 オープニングYuuki Nakajima
 
【Web系最高って言うけど本当なの?】siの5次請けから離脱したエンジニアが話してみた
【Web系最高って言うけど本当なの?】siの5次請けから離脱したエンジニアが話してみた【Web系最高って言うけど本当なの?】siの5次請けから離脱したエンジニアが話してみた
【Web系最高って言うけど本当なの?】siの5次請けから離脱したエンジニアが話してみたYuuki Nakajima
 
声優ハッカソンチーム26最終発表資料(オレニヤ)
声優ハッカソンチーム26最終発表資料(オレニヤ)声優ハッカソンチーム26最終発表資料(オレニヤ)
声優ハッカソンチーム26最終発表資料(オレニヤ)Yuuki Nakajima
 
声優ハッカソンチーム26中間発表
声優ハッカソンチーム26中間発表声優ハッカソンチーム26中間発表
声優ハッカソンチーム26中間発表Yuuki Nakajima
 
コボラーがPython始めてみた話
コボラーがPython始めてみた話コボラーがPython始めてみた話
コボラーがPython始めてみた話Yuuki Nakajima
 
Machine learning studioで機械学習にトライ!(jazug信州1周年記念)
Machine learning studioで機械学習にトライ!(jazug信州1周年記念)Machine learning studioで機械学習にトライ!(jazug信州1周年記念)
Machine learning studioで機械学習にトライ!(jazug信州1周年記念)Yuuki Nakajima
 

More from Yuuki Nakajima (6)

Python勉強会in 長野 オープニング
Python勉強会in 長野 オープニングPython勉強会in 長野 オープニング
Python勉強会in 長野 オープニング
 
【Web系最高って言うけど本当なの?】siの5次請けから離脱したエンジニアが話してみた
【Web系最高って言うけど本当なの?】siの5次請けから離脱したエンジニアが話してみた【Web系最高って言うけど本当なの?】siの5次請けから離脱したエンジニアが話してみた
【Web系最高って言うけど本当なの?】siの5次請けから離脱したエンジニアが話してみた
 
声優ハッカソンチーム26最終発表資料(オレニヤ)
声優ハッカソンチーム26最終発表資料(オレニヤ)声優ハッカソンチーム26最終発表資料(オレニヤ)
声優ハッカソンチーム26最終発表資料(オレニヤ)
 
声優ハッカソンチーム26中間発表
声優ハッカソンチーム26中間発表声優ハッカソンチーム26中間発表
声優ハッカソンチーム26中間発表
 
コボラーがPython始めてみた話
コボラーがPython始めてみた話コボラーがPython始めてみた話
コボラーがPython始めてみた話
 
Machine learning studioで機械学習にトライ!(jazug信州1周年記念)
Machine learning studioで機械学習にトライ!(jazug信州1周年記念)Machine learning studioで機械学習にトライ!(jazug信州1周年記念)
Machine learning studioで機械学習にトライ!(jazug信州1周年記念)
 

Recently uploaded

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 

Recently uploaded (9)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 

Cloud frontの落とし穴