Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cloudfront with Rails
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
haruharuharuby
July 27, 2016
Programming
0
120
Cloudfront with Rails
Using cloudfront with rails.
2016.07.26 JAWS-UG Osaka Study Meeting
haruharuharuby
July 27, 2016
Tweet
Share
More Decks by haruharuharuby
See All by haruharuharuby
Effective AWS Step Functions
haruharuharuby
0
180
JP_Stripes 5th anniversary - Plan migration consideration -
haruharuharuby
0
94
Alexa Warming Up my Live Stream!
haruharuharuby
1
100
AAJUG meetup September
haruharuharuby
0
44
How Voice Technology is Changing Customer Experience from Brain Perspectives
haruharuharuby
0
88
IVSの盛り上げ役にAlexaをつかってみようか
haruharuharuby
0
830
Let's make a blog with live streaming in 10 minutes
haruharuharuby
0
520
Alexa Audio Player @Deep Diving
haruharuharuby
0
290
VoiceLunchJp#02 Share VUI App and reputation
haruharuharuby
1
310
Other Decks in Programming
See All in Programming
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
590
組織で育むオブザーバビリティ
ryota_hnk
0
180
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
220
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
150
CSC307 Lecture 03
javiergs
PRO
1
490
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
470
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
690
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
390
SourceGeneratorのススメ
htkym
0
200
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.4k
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
Writing Fast Ruby
sferik
630
62k
Google's AI Overviews - The New Search
badams
0
910
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
230
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
940
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
440
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Abbi's Birthday
coloredviolet
1
4.8k
Transcript
Cloudfront with Rails クラウドフロントとRails の ツンデレ な関係 2016.07.26 「AWSのおJAWSな使い方」JAWS-UG大阪&JAWS-UG関西女子会合同企画
自己紹介 TiNm’S( ティムズ )と読みます。 プログラマーです。 Ruby On RailsとAWSが主戦場です。 好きなAWS サービスは、OpsWorks。
花澤香菜ちゃん好き。 JAWS-UG-KOBE 所属。 ポケモンGOはまだやってません。
はじめに...
に をかぶせたら、 Webサービスが動かなくなった 体験談をお話します。 今回は... ※Railsはやったことあるけど、 AWSには構築したことないなあ。な人向けの内容です。
なぜ話したいと思ったか。
Cloudfrontはデプロイに20分くらいかかる。 「ちょっとかえて、デプロイ、20分待つ。」 を繰り返すと、時間だけが取られていく。 もう、Prime Video見るしかなくなる。
Agenda • RailsでCloudfrontを導入する理由 • 転送するhttpメソッドではまる。 • 転送するhttpヘッダではまる。 • Cookieの転送ではまる。 •
クエリストリングの転送ではまる。
RailsでCloudfrontを導入する理由
アセット※のキャッシング Cloudfrontにアセットを設置することで、 js、css、 imageファイルをキャッシュできる。 その昔、アセットは、 asset_sync などのgemを利 用してS3に配置していた。 この方法は現在推奨されていない。 (Heroku
も assets は、CDNに設置することを推 奨) 参考: http://guides.rubyonrails.org/asset_pipeline.html ※ Railsで言うところの静的なファイル群のことで、おもに js、css、画像ファイルがそれに当たる。
HTTPS化 Cloudfrontに証明書を設置して、 HTTPS化する。 サーバーやELBに証明書を入れ込む必要がないので、 Railsの設定を単純化できる。 また、バックエンドを httpにすることで、暗号化、複合化を Rails側で実施する必要がなくなり、パフォーマン ス的にも効果が見込める。 (証明書もACM(AWS
Certificate Manager)を利用すれば、証明書の管理もできて効率的。 )
WAFの導入 悪い人をCloudfrontで弾いてしまう。 SQLインジェクションなどの脆弱性対策も Cloudfrontでやってしまう。
1: 転送するhttpメソッドではまる。
POST, PUTできない (>m<)0 Cloudfrontが受信するHTTPメソッドの デフォルト設定はGET,HEADのみ。 (つまり静的サイト向け ) Rails(に限らずほとんどの Webアプリ)では、 PUT、POST、PATCH、DELETEの許可が必
須。 すべてのHTTPメソッドを許可する。
2: 転送するhttpヘッダではまる。
いつもoriginが返る。
Hostヘッダを転送しておく。 RailsはHostヘッダでResponse先を判断している。 Hostヘッダが転送されない場合、 Railsは、Responseとして”//”(ルート)返却する。 つまり、ELBやEC2インスタンスのアドレス (origin)が返ることになる。
3: cookieの転送ではまる。
ログインできん。 Cloudfrontをかぶせたとたんにログイ ンできない。
Cookieを転送する。 RailsのセッションはデフォルトでCookieを利用する。 Cookieが転送されないとログインもできない。
4: クエリストリングではまる。
検索できん。 検索機能でよくあるURL。 http://example.com/search?q=XXXXXXX originでは効くのに、Cloudfrontをかぶせると 効かなくなる。
クエリストリングを転送する。 Cloudfrontはデフォルトでquerystringを転送しない。 検索機能を提供するransack を利用するならこの設定が必須。
まとめると
• すべてのHTTPメソッドを許可する。 • Hostヘッダを転送する。 • (セッションデフォルトなら)Cookieを転送する。 • (gemによっては)クエリストリングを転送する。
明日は、 Alexa !!!!!!!!!!!!!! そして....
https://www.youtube.com/watch?v=vizNdRTXK90&feature=youtu.be