Submit Search
Upload
未設定のドメインでも ELB 経由で proxy.pac を使って https で接続する方法
•
2 likes
•
2,269 views
Taku AMANO
Follow
r2proxy というプログラムの紹介です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 46
Download now
Download to read offline
Recommended
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Hidenori Goto
Aerospike紹介-LT用
Aerospike紹介-LT用
Joongjin Bae
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
tama200x Kobayashi
Apacheチューニング
Apacheチューニング
ii012014
Webサーバのチューニング
Webサーバのチューニング
Yu Komiya
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
Kiyokazu Kaba
Railsの運用について
Railsの運用について
Yuuki Namikawa
Varnish
Varnish
Ayako Hatori
Recommended
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Hidenori Goto
Aerospike紹介-LT用
Aerospike紹介-LT用
Joongjin Bae
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
tama200x Kobayashi
Apacheチューニング
Apacheチューニング
ii012014
Webサーバのチューニング
Webサーバのチューニング
Yu Komiya
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
Kiyokazu Kaba
Railsの運用について
Railsの運用について
Yuuki Namikawa
Varnish
Varnish
Ayako Hatori
itamaeで一撃サーバーProvisioning
itamaeで一撃サーバーProvisioning
Yuto Ogi
20130330 JAWS-UG広島 美人CDP
20130330 JAWS-UG広島 美人CDP
真吾 吉田
Windows azure webサイトの紹介
Windows azure webサイトの紹介
Daisuke Abe
第1回Webサーバ勉強会 - 212-223 ブラウザマッチ処理
第1回Webサーバ勉強会 - 212-223 ブラウザマッチ処理
Seiichiro Ishida
20130413 JAWS-UG北陸 美人CDP
20130413 JAWS-UG北陸 美人CDP
真吾 吉田
再入門、サーバープッシュ技術
再入門、サーバープッシュ技術
Shin Sekaryo
GGEasyMonitor技術情報
GGEasyMonitor技術情報
KitASP_Corporation
これから利用拡大?WebSocket
これから利用拡大?WebSocket
AdvancedTechNight
PHP7実環境ベンチ2016春
PHP7実環境ベンチ2016春
Ryo Tomidokoro
20150207 jawsug kansai
20150207 jawsug kansai
Yoshinori Fujiwara
apachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin Serverっぽいやつをつくった
Junichi Ishida
Xamppでお手軽cms開発環境を手に入れる
Xamppでお手軽cms開発環境を手に入れる
Takashi Uemura
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316
Nozomi Kurihara
Website build exercise_opsguide_japanese
Website build exercise_opsguide_japanese
meilai521
PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったこと
Kentaro Matsui
PostgreSQL DBのバックアップを一元化しよう
PostgreSQL DBのバックアップを一元化しよう
Yukiya Hayashi
Web技術勉強会 第26回
Web技術勉強会 第26回
龍一 田中
Re: WebServer BenchMarking
Re: WebServer BenchMarking
Ryo Tomidokoro
Samba4を「ふつうに」使おう!
Samba4を「ふつうに」使おう!
基信 高橋
PHP on Cloud
PHP on Cloud
Akio Katayama
Webサーバ勉強会#4
Webサーバ勉強会#4
oranie Narut
[AWSマイスターシリーズ] Amazon Route53
[AWSマイスターシリーズ] Amazon Route53
Amazon Web Services Japan
More Related Content
What's hot
itamaeで一撃サーバーProvisioning
itamaeで一撃サーバーProvisioning
Yuto Ogi
20130330 JAWS-UG広島 美人CDP
20130330 JAWS-UG広島 美人CDP
真吾 吉田
Windows azure webサイトの紹介
Windows azure webサイトの紹介
Daisuke Abe
第1回Webサーバ勉強会 - 212-223 ブラウザマッチ処理
第1回Webサーバ勉強会 - 212-223 ブラウザマッチ処理
Seiichiro Ishida
20130413 JAWS-UG北陸 美人CDP
20130413 JAWS-UG北陸 美人CDP
真吾 吉田
再入門、サーバープッシュ技術
再入門、サーバープッシュ技術
Shin Sekaryo
GGEasyMonitor技術情報
GGEasyMonitor技術情報
KitASP_Corporation
これから利用拡大?WebSocket
これから利用拡大?WebSocket
AdvancedTechNight
PHP7実環境ベンチ2016春
PHP7実環境ベンチ2016春
Ryo Tomidokoro
20150207 jawsug kansai
20150207 jawsug kansai
Yoshinori Fujiwara
apachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin Serverっぽいやつをつくった
Junichi Ishida
Xamppでお手軽cms開発環境を手に入れる
Xamppでお手軽cms開発環境を手に入れる
Takashi Uemura
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316
Nozomi Kurihara
Website build exercise_opsguide_japanese
Website build exercise_opsguide_japanese
meilai521
PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったこと
Kentaro Matsui
PostgreSQL DBのバックアップを一元化しよう
PostgreSQL DBのバックアップを一元化しよう
Yukiya Hayashi
Web技術勉強会 第26回
Web技術勉強会 第26回
龍一 田中
Re: WebServer BenchMarking
Re: WebServer BenchMarking
Ryo Tomidokoro
Samba4を「ふつうに」使おう!
Samba4を「ふつうに」使おう!
基信 高橋
What's hot
(19)
itamaeで一撃サーバーProvisioning
itamaeで一撃サーバーProvisioning
20130330 JAWS-UG広島 美人CDP
20130330 JAWS-UG広島 美人CDP
Windows azure webサイトの紹介
Windows azure webサイトの紹介
第1回Webサーバ勉強会 - 212-223 ブラウザマッチ処理
第1回Webサーバ勉強会 - 212-223 ブラウザマッチ処理
20130413 JAWS-UG北陸 美人CDP
20130413 JAWS-UG北陸 美人CDP
再入門、サーバープッシュ技術
再入門、サーバープッシュ技術
GGEasyMonitor技術情報
GGEasyMonitor技術情報
これから利用拡大?WebSocket
これから利用拡大?WebSocket
PHP7実環境ベンチ2016春
PHP7実環境ベンチ2016春
20150207 jawsug kansai
20150207 jawsug kansai
apachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin Serverっぽいやつをつくった
Xamppでお手軽cms開発環境を手に入れる
Xamppでお手軽cms開発環境を手に入れる
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316
Website build exercise_opsguide_japanese
Website build exercise_opsguide_japanese
PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったこと
PostgreSQL DBのバックアップを一元化しよう
PostgreSQL DBのバックアップを一元化しよう
Web技術勉強会 第26回
Web技術勉強会 第26回
Re: WebServer BenchMarking
Re: WebServer BenchMarking
Samba4を「ふつうに」使おう!
Samba4を「ふつうに」使おう!
Similar to 未設定のドメインでも ELB 経由で proxy.pac を使って https で接続する方法
PHP on Cloud
PHP on Cloud
Akio Katayama
Webサーバ勉強会#4
Webサーバ勉強会#4
oranie Narut
[AWSマイスターシリーズ] Amazon Route53
[AWSマイスターシリーズ] Amazon Route53
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
Amazon Web Services Japan
AWS Black Belt Techシリーズ Amazon Route53
AWS Black Belt Techシリーズ Amazon Route53
Amazon Web Services Japan
Aws startup-tech-summer2015
Aws startup-tech-summer2015
Shota Umeda
AWS Black Belt Techシリーズ Elastic Load Balancing (ELB)
AWS Black Belt Techシリーズ Elastic Load Balancing (ELB)
Amazon Web Services Japan
Aws summits2014 amazon_cloudfrontを利用したサイト高速化とセキュア配信
Aws summits2014 amazon_cloudfrontを利用したサイト高速化とセキュア配信
Boss4434
LAMP環境にDocker環境を追加してみた
LAMP環境にDocker環境を追加してみた
Hiroshi Hatta
AWS Black Belt Techシリーズ Amazon Workspaces
AWS Black Belt Techシリーズ Amazon Workspaces
Amazon Web Services Japan
AWS BlackBelt Online Seminar 2017 Amazon CloudFront + AWS Lambda@Edge
AWS BlackBelt Online Seminar 2017 Amazon CloudFront + AWS Lambda@Edge
Amazon Web Services Japan
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
Amazon Web Services Japan
CDP(キャンペーンサイト編)
CDP(キャンペーンサイト編)
Hiroyasu Suzuki
さくらのクラウドでのPlesk Onyx導入手順
さくらのクラウドでのPlesk Onyx導入手順
さくらインターネット株式会社
[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編
[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編
Amazon Web Services Japan
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Kazuyuki Miyake
Chef
Chef
Ishikawa Yuya
AWS Black Belt Online Seminar 2017 AWSへのネットワーク接続とAWS上のネットワーク内部設計
AWS Black Belt Online Seminar 2017 AWSへのネットワーク接続とAWS上のネットワーク内部設計
Amazon Web Services Japan
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Ryo Nakamaru
AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 -
SORACOM, INC
Similar to 未設定のドメインでも ELB 経由で proxy.pac を使って https で接続する方法
(20)
PHP on Cloud
PHP on Cloud
Webサーバ勉強会#4
Webサーバ勉強会#4
[AWSマイスターシリーズ] Amazon Route53
[AWSマイスターシリーズ] Amazon Route53
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Techシリーズ Amazon Route53
AWS Black Belt Techシリーズ Amazon Route53
Aws startup-tech-summer2015
Aws startup-tech-summer2015
AWS Black Belt Techシリーズ Elastic Load Balancing (ELB)
AWS Black Belt Techシリーズ Elastic Load Balancing (ELB)
Aws summits2014 amazon_cloudfrontを利用したサイト高速化とセキュア配信
Aws summits2014 amazon_cloudfrontを利用したサイト高速化とセキュア配信
LAMP環境にDocker環境を追加してみた
LAMP環境にDocker環境を追加してみた
AWS Black Belt Techシリーズ Amazon Workspaces
AWS Black Belt Techシリーズ Amazon Workspaces
AWS BlackBelt Online Seminar 2017 Amazon CloudFront + AWS Lambda@Edge
AWS BlackBelt Online Seminar 2017 Amazon CloudFront + AWS Lambda@Edge
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
CDP(キャンペーンサイト編)
CDP(キャンペーンサイト編)
さくらのクラウドでのPlesk Onyx導入手順
さくらのクラウドでのPlesk Onyx導入手順
[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編
[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Chef
Chef
AWS Black Belt Online Seminar 2017 AWSへのネットワーク接続とAWS上のネットワーク内部設計
AWS Black Belt Online Seminar 2017 AWSへのネットワーク接続とAWS上のネットワーク内部設計
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 -
More from Taku AMANO
Movable Type as a Playground
Movable Type as a Playground
Taku AMANO
The New Rich Text Editor
The New Rich Text Editor
Taku AMANO
File API: Writer & Directories and System
File API: Writer & Directories and System
Taku AMANO
CSS Design and Programming
CSS Design and Programming
Taku AMANO
Movable Type in the cloud
Movable Type in the cloud
Taku AMANO
Git 20100724
Git 20100724
Taku AMANO
About NSEG Vol.5
About NSEG Vol.5
Taku AMANO
HTML5-20100626
HTML5-20100626
Taku AMANO
Git 20100313
Git 20100313
Taku AMANO
Self Introduction 20100211
Self Introduction 20100211
Taku AMANO
MT LT 20100205
MT LT 20100205
Taku AMANO
MT LT 20091209
MT LT 20091209
Taku AMANO
More from Taku AMANO
(12)
Movable Type as a Playground
Movable Type as a Playground
The New Rich Text Editor
The New Rich Text Editor
File API: Writer & Directories and System
File API: Writer & Directories and System
CSS Design and Programming
CSS Design and Programming
Movable Type in the cloud
Movable Type in the cloud
Git 20100724
Git 20100724
About NSEG Vol.5
About NSEG Vol.5
HTML5-20100626
HTML5-20100626
Git 20100313
Git 20100313
Self Introduction 20100211
Self Introduction 20100211
MT LT 20100205
MT LT 20100205
MT LT 20091209
MT LT 20091209
未設定のドメインでも ELB 経由で proxy.pac を使って https で接続する方法
1.
未設定のドメインでも ELB 経由で proxy.pac
を使って https で接続する方法 天野卓 JAWS-UG 長野支部 勉強会 #2 NSEG #58
2.
AWS上の構成
3.
4.
運用中のウェブサイトを この環境に移行する
5.
DNSのレコードの設定を 更新する前に ブラウザで確認したい
6.
• 割りと頻繁にIPアドレスが変わるのでhosts ファイルでは設定しにくい • DNSサーバーを用意するのは面倒 •
proxy.pac で指定できると嬉しい
7.
if (host ==
“example.com") { return “PROXY 123345.ap-northeast-1.elb.amazonaws.com”; }
8.
9.
10.
11.
12.
13.
14.
プロキシサーバーを経由して HTTPSで接続する場合には ブラウザはCONNECTメソッドを使う
15.
CONNECTメソッドとは?
16.
CONNECT www.example.com:443 HTTP/1.1
17.
ELBはCONNECTメソッドに 対応していない
18.
CONNECTメソッドに 対応しているプロキシサーバー を準備すれば接続できそう
19.
• Apache • Squid •
等 …
20.
• このためだけに入れるのは面倒くさい • 設定ファイルを書くのも面倒くさい •
移行後にアンインストールするのも面倒くさい
21.
• シングルバイナリでコピーすればそのまま動く • 設定ファイルを書かなくても動く
22.
• シングルバイナリでコピーすればそのまま動く • go
で書いたらシングルバイナリになる • 確かプロキシサーバーを書けるライブラリがあった • 設定ファイルを書かなくても動く • 接続元のIPアドレスを利用できるかも
23.
r2proxy
24.
means "reflective reverse proxy"
25.
26.
if (host ==
“example.com") { if (shExpMatch(url, "https*")) { return “PROXY 123345.ap-northeast-1.elb.amazonaws.com:8080”; } else { return “PROXY 123345.ap-northeast-1.elb.amazonaws.com”; } }
27.
r2proxyの実装
28.
github.com/elazarl/goproxy
29.
import ( "github.com/elazarl/goproxy" "log" "net/http" ) func main()
{ proxy := goproxy.NewProxyHttpServer() proxy.Verbose = true log.Fatal(http.ListenAndServe(":8080", proxy)) }
30.
func main() { portRegexp
:= regexp.MustCompile(":([0-9]+)$") proxy := goproxy.NewProxyHttpServer() server := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { host := strings.Split(r.RemoteAddr, ":")[0] port := 80 matches := portRegexp.FindStringSubmatch(r.URL.Host); if len(matches) != 0 { port, _ = strconv.Atoi(matches[1]) } r.URL.Host = fmt.Sprintf("%s:%d", host, port) proxy.ServeHTTP(w, r) }) http.ListenAndServe(":8080", server) }
31.
goproxyを利用する際の 注意 !
32.
接続を制限するコードを 何も入れないと CONNECTメソッドで 任意のサーバーの任意のポートへ トンネルし放題になります
33.
import ( "github.com/elazarl/goproxy" "log" "net/http" ) func main()
{ proxy := goproxy.NewProxyHttpServer() proxy.Verbose = true log.Fatal(http.ListenAndServe(":8080", proxy)) }
34.
IAM ロールで緩めに 権限を与えていたりすると…
35.
r2proxyの特徴
36.
• バイナリをコピーして実行すれば動作する • ELBのHTTPSのListenerを利用できる •
EC2のインスタンスでHTTPSの設定をする必要がない • ELBの"Cookie Stickiness”も利用できる (2014年10月時点)
37.
転送料の試算
38.
おそらく無料 (AZ内の転送なので)
39.
r2proxyの制限事項
40.
• ELBの現在の文書化されていない挙動に依存 • 「接続元のIPアドレスからも応答を返してくれる」 •
接続先のホスト名は暗号化されない • HTTPSのリクエストの内容は暗号化される
41.
r2proxyの性能
42.
手元のGoogle Chrome で 計測した性能なので ざっくりとした傾向のデータです
43.
• KeepAlive で接続を確立した状態から計測 •
r2proxy は KeepAlive に未対応 • ただし、HTTPS に関しては KeepAlive になる • CONNECTメソッドで接続しているので • キャッシュを Disable にしてページをリロード • ロード後の以下の値の算術平均 • window.performance.timing.domComplete - window.performance.timing.connectStart
44.
45.
46.
ありがとうございました! A theme of
this presentation is https://github.com/sanographix/azusa-keynote
Download now