SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
Copyright ©2016 HAW International Inc. all rights reserved.
CloudFrontを使ったサイト公開と
ハマりどころ
2016/06/11
株式会社ハウインターナショナル
安土茂亨
Copyright ©2016 HAW International Inc. all rights reserved.
自己紹介
株式会社ハウインターナショナル
•クラウド事業
‣AWSのインテグレーションサービス
‣セキュアかつ高速な
WordPressホスティングサービス
•Blockchian事業
‣P2P型投票システムCongrechain
‣ブロックチェーン実証環境Chaintope
‣Blockchain Explorer
Copyright ©2016 HAW International Inc. all rights reserved.
AWSでサイト公開といえば?
Amazon S3
Static Site Hosting
● 安い
● 速い
● スケール
Copyright ©2016 HAW International Inc. all rights reserved.
でも動的な機能ある
簡単な機能であれば
サーバレスな実装
API Gateway AWS Lambda
Request
Response
Copyright ©2016 HAW International Inc. all rights reserved.
AWSが提供する高速なコンテンツ配信ネットワーク
でも今日はCloudFront
Amazon CloudFront
● 世界各地のエッジロケーションから
コンテンツを高速配信
● 独自ドメインのSSL証明書のサポート
● AWS Certificate Managerによる無料SSL
● HTTPのメソッド(GET、HEAD、POST、PUT、
DDELETE、etc)に応じたキャッシュ設定
● デバイスを検出してヘッダに付与
● AWS WAFによる保護
Copyright ©2016 HAW International Inc. all rights reserved.
CloudFrontのマルチオリジン機能
Amazon CloudFront
Amazon S3
Amazon EC2
静的コンテンツ
動的コンテンツ
静的コンテンツのオリジンとして S3、
動的コンテンツのオリジンとして EC2
を配置しBehaviorのPath Patternで
アクセスを切り替える
CloudFrontが前面なのでどちらのコンテ
ンツに対してもAWS WAFが適用可能
Copyright ©2016 HAW International Inc. all rights reserved.
静的サイトのログの集約
Amazon CloudFront
Amazon S3
Lambda
CloudWatch Logs
アクセスログ
ファイルのPUTをトリガーに
Lambda Function
実行
ログデータを
CloudWatch Logs
にプッシュ
無期限にログを保持可能
普通のCloudWatchのデータも
無期限になればいいのに。。
Copyright ©2016 HAW International Inc. all rights reserved.
CloudFrontでサイト公開
ハマリどころ
Copyright ©2016 HAW International Inc. all rights reserved.
index.htmlの補完
よくあるURL
https://www.haw.co.jp/
                  /index.html
index.htmlの補完
● CloudFrontのDefault Root Object
補完可能なのはホントにRoot Objectだけなので、
以下のようなパスのindex.htmlは補完されない
https://www.haw.co.jp/category/
● S3のStatic Site Hostingを有効化
index.htmlの補完はStatic Site Hostingのインデックスドキュメントにお任せ
省略されてる
Copyright ©2016 HAW International Inc. all rights reserved.
CloudFrontとS3の連携方法
Amazon CloudFront Amazon S3
● S3バケット
Origin Access Identityでアクセス元をCloudFrontに限定可能
階層化したindex.htmlの補完はNG
● S3のStatic Site Hosting
アクセス元をCloudFrontに限定することは不可能
階層化したindex.htmlの補完はOK
Copyright ©2016 HAW International Inc. all rights reserved.
S3オブジェクトのキー名
S3のオブジェクトのキー名として利用可能な文字列
● 英数字[0〜9 a〜z A〜Z]
● 特殊文字 !、-、_、.、*、'、
16進数としてURLエンコードが必要な文字
● "&"、"$"、"@"、"="、";"、":"、"+"、","、"?"、"–"
● 16進数の 00~1F(10 進数の 0~31)の範囲および 7F(10 進数の 127)の ASCII 文字
使わない方がいい文字
● ""、"{"、"}"、"^"、"`"、"["、"]"、">"、"<"、"#"、"|"、"~"、"%"
● 表示不可能な ASCII 文字(10 進数の 128 ~ 255 の文字)
Copyright ©2016 HAW International Inc. all rights reserved.
S3オブジェクトのキー名
16進数としてURLエンコードが必要な文字
● "&"、"$"、"@"、"="、";"、":"、"+"、","、"?"、"–"
● 16進数の 00~1F(10 進数の 0~31)の範囲および 7F(10 進数の 127)の ASCII 文字
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>?</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyPrefixWith>%3F</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
S3のBucketのRedirection Rulesに
エンコード文字列を指定することで
アクセス可能
User-Agentに応じたリダイレクト
ルールが定義できるようになると便利
Copyright ©2016 HAW International Inc. all rights reserved.
EC2で公開するコンテンツのアクセス制限
Amazon CloudFront Amazon EC2
EC2へのアクセスはCloudFrontからのみに絞りたい
現状、EC2のセキュリティグループでCloudFrontの対象IPのみのInboundを許可す
る設定しかない。↓で対象がCLOUDFRONTのIPを判断(たまに追加される)
https://ip-ranges.amazonaws.com/ip-ranges.json
セキュリティグループで特定のAWSリソースが
指定できるようになるといいのに。
Copyright ©2016 HAW International Inc. all rights reserved.
CloudFrontとEC2間のSSL通信
Amazon CloudFront Amazon EC2
● Hostヘッダをオリジンに転送する
CloudFrontで使用している証明書(Common NameがCloundFrontで公開して
いるドメイン)を流用可能
● Hostヘッダをオリジンに転送しない
オリジンサーバ(EC2)に設定されているドメイン名の証明書を別途用意する
↑のルールから外れると502 Bad Gatewayになる。
Copyright ©2016 HAW International Inc. all rights reserved.
CloudFrontのタイムアウト時間の制約
Amazon CloudFront Amazon EC2
30秒
● HEAD、GETリクエスト
オリジンが30秒以内に応答を返さない場合、接続を中断しさらに2回接続を試み
る。3回目も失敗すると別のリクエストが来るまで接続を試みない。
● DELETE、OPTIONS、PATCH、POST、PUTリクエスト
オリジンが30秒以内に応答を返さない場合、接続を中断し再接続はしない。

Más contenido relacionado

Más de shigeyuki azuchi

福岡ブロックチェーンエコノミー勉強会Vol.3「Segregated Witness」
福岡ブロックチェーンエコノミー勉強会Vol.3「Segregated Witness」福岡ブロックチェーンエコノミー勉強会Vol.3「Segregated Witness」
福岡ブロックチェーンエコノミー勉強会Vol.3「Segregated Witness」shigeyuki azuchi
 
福岡ブロックチェーンエコノミー「ブロックチェーンのコンセンサス形成」
福岡ブロックチェーンエコノミー「ブロックチェーンのコンセンサス形成」福岡ブロックチェーンエコノミー「ブロックチェーンのコンセンサス形成」
福岡ブロックチェーンエコノミー「ブロックチェーンのコンセンサス形成」shigeyuki azuchi
 
JAWS FESTA 東海道 2016 ブロックチェーンとは何なのか?
JAWS FESTA 東海道 2016   ブロックチェーンとは何なのか?JAWS FESTA 東海道 2016   ブロックチェーンとは何なのか?
JAWS FESTA 東海道 2016 ブロックチェーンとは何なのか?shigeyuki azuchi
 
e-ZUKA Tech Night in 博多! -fin tech特集- Bitcoinのブロックチェーンでできるコントラクト
e-ZUKA Tech Night in 博多! -fin tech特集- Bitcoinのブロックチェーンでできるコントラクトe-ZUKA Tech Night in 博多! -fin tech特集- Bitcoinのブロックチェーンでできるコントラクト
e-ZUKA Tech Night in 博多! -fin tech特集- Bitcoinのブロックチェーンでできるコントラクトshigeyuki azuchi
 
Open Assetsを利用したP2P型の投票システムとエクスプローラ
Open Assetsを利用したP2P型の投票システムとエクスプローラOpen Assetsを利用したP2P型の投票システムとエクスプローラ
Open Assetsを利用したP2P型の投票システムとエクスプローラshigeyuki azuchi
 
neo4jを使ったブロックチェーンデータの解析
neo4jを使ったブロックチェーンデータの解析neo4jを使ったブロックチェーンデータの解析
neo4jを使ったブロックチェーンデータの解析shigeyuki azuchi
 
Serverlessでサイト監視
Serverlessでサイト監視Serverlessでサイト監視
Serverlessでサイト監視shigeyuki azuchi
 
Jenkinsとamazon ecsで コンテナCI
Jenkinsとamazon ecsで コンテナCIJenkinsとamazon ecsで コンテナCI
Jenkinsとamazon ecsで コンテナCIshigeyuki azuchi
 
オンプレ環境と連携するハイブリッドクラウド活用事例 (2014.8.8 AWS Japan Tour 2014 福岡)
オンプレ環境と連携するハイブリッドクラウド活用事例 (2014.8.8 AWS Japan Tour 2014 福岡)オンプレ環境と連携するハイブリッドクラウド活用事例 (2014.8.8 AWS Japan Tour 2014 福岡)
オンプレ環境と連携するハイブリッドクラウド活用事例 (2014.8.8 AWS Japan Tour 2014 福岡)shigeyuki azuchi
 

Más de shigeyuki azuchi (10)

福岡ブロックチェーンエコノミー勉強会Vol.3「Segregated Witness」
福岡ブロックチェーンエコノミー勉強会Vol.3「Segregated Witness」福岡ブロックチェーンエコノミー勉強会Vol.3「Segregated Witness」
福岡ブロックチェーンエコノミー勉強会Vol.3「Segregated Witness」
 
福岡ブロックチェーンエコノミー「ブロックチェーンのコンセンサス形成」
福岡ブロックチェーンエコノミー「ブロックチェーンのコンセンサス形成」福岡ブロックチェーンエコノミー「ブロックチェーンのコンセンサス形成」
福岡ブロックチェーンエコノミー「ブロックチェーンのコンセンサス形成」
 
JAWS FESTA 東海道 2016 ブロックチェーンとは何なのか?
JAWS FESTA 東海道 2016   ブロックチェーンとは何なのか?JAWS FESTA 東海道 2016   ブロックチェーンとは何なのか?
JAWS FESTA 東海道 2016 ブロックチェーンとは何なのか?
 
e-ZUKA Tech Night in 博多! -fin tech特集- Bitcoinのブロックチェーンでできるコントラクト
e-ZUKA Tech Night in 博多! -fin tech特集- Bitcoinのブロックチェーンでできるコントラクトe-ZUKA Tech Night in 博多! -fin tech特集- Bitcoinのブロックチェーンでできるコントラクト
e-ZUKA Tech Night in 博多! -fin tech特集- Bitcoinのブロックチェーンでできるコントラクト
 
Open Assetsを利用したP2P型の投票システムとエクスプローラ
Open Assetsを利用したP2P型の投票システムとエクスプローラOpen Assetsを利用したP2P型の投票システムとエクスプローラ
Open Assetsを利用したP2P型の投票システムとエクスプローラ
 
neo4jを使ったブロックチェーンデータの解析
neo4jを使ったブロックチェーンデータの解析neo4jを使ったブロックチェーンデータの解析
neo4jを使ったブロックチェーンデータの解析
 
Serverlessでサイト監視
Serverlessでサイト監視Serverlessでサイト監視
Serverlessでサイト監視
 
Jenkinsとamazon ecsで コンテナCI
Jenkinsとamazon ecsで コンテナCIJenkinsとamazon ecsで コンテナCI
Jenkinsとamazon ecsで コンテナCI
 
Openassets ruby
Openassets rubyOpenassets ruby
Openassets ruby
 
オンプレ環境と連携するハイブリッドクラウド活用事例 (2014.8.8 AWS Japan Tour 2014 福岡)
オンプレ環境と連携するハイブリッドクラウド活用事例 (2014.8.8 AWS Japan Tour 2014 福岡)オンプレ環境と連携するハイブリッドクラウド活用事例 (2014.8.8 AWS Japan Tour 2014 福岡)
オンプレ環境と連携するハイブリッドクラウド活用事例 (2014.8.8 AWS Japan Tour 2014 福岡)
 

Último

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
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
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Último (9)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
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
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

Cloud Frontを使ったサイト公開とハマりどころ

  • 1. Copyright ©2016 HAW International Inc. all rights reserved. CloudFrontを使ったサイト公開と ハマりどころ 2016/06/11 株式会社ハウインターナショナル 安土茂亨
  • 2. Copyright ©2016 HAW International Inc. all rights reserved. 自己紹介 株式会社ハウインターナショナル •クラウド事業 ‣AWSのインテグレーションサービス ‣セキュアかつ高速な WordPressホスティングサービス •Blockchian事業 ‣P2P型投票システムCongrechain ‣ブロックチェーン実証環境Chaintope ‣Blockchain Explorer
  • 3. Copyright ©2016 HAW International Inc. all rights reserved. AWSでサイト公開といえば? Amazon S3 Static Site Hosting ● 安い ● 速い ● スケール
  • 4. Copyright ©2016 HAW International Inc. all rights reserved. でも動的な機能ある 簡単な機能であれば サーバレスな実装 API Gateway AWS Lambda Request Response
  • 5. Copyright ©2016 HAW International Inc. all rights reserved. AWSが提供する高速なコンテンツ配信ネットワーク でも今日はCloudFront Amazon CloudFront ● 世界各地のエッジロケーションから コンテンツを高速配信 ● 独自ドメインのSSL証明書のサポート ● AWS Certificate Managerによる無料SSL ● HTTPのメソッド(GET、HEAD、POST、PUT、 DDELETE、etc)に応じたキャッシュ設定 ● デバイスを検出してヘッダに付与 ● AWS WAFによる保護
  • 6. Copyright ©2016 HAW International Inc. all rights reserved. CloudFrontのマルチオリジン機能 Amazon CloudFront Amazon S3 Amazon EC2 静的コンテンツ 動的コンテンツ 静的コンテンツのオリジンとして S3、 動的コンテンツのオリジンとして EC2 を配置しBehaviorのPath Patternで アクセスを切り替える CloudFrontが前面なのでどちらのコンテ ンツに対してもAWS WAFが適用可能
  • 7. Copyright ©2016 HAW International Inc. all rights reserved. 静的サイトのログの集約 Amazon CloudFront Amazon S3 Lambda CloudWatch Logs アクセスログ ファイルのPUTをトリガーに Lambda Function 実行 ログデータを CloudWatch Logs にプッシュ 無期限にログを保持可能 普通のCloudWatchのデータも 無期限になればいいのに。。
  • 8. Copyright ©2016 HAW International Inc. all rights reserved. CloudFrontでサイト公開 ハマリどころ
  • 9. Copyright ©2016 HAW International Inc. all rights reserved. index.htmlの補完 よくあるURL https://www.haw.co.jp/                   /index.html index.htmlの補完 ● CloudFrontのDefault Root Object 補完可能なのはホントにRoot Objectだけなので、 以下のようなパスのindex.htmlは補完されない https://www.haw.co.jp/category/ ● S3のStatic Site Hostingを有効化 index.htmlの補完はStatic Site Hostingのインデックスドキュメントにお任せ 省略されてる
  • 10. Copyright ©2016 HAW International Inc. all rights reserved. CloudFrontとS3の連携方法 Amazon CloudFront Amazon S3 ● S3バケット Origin Access Identityでアクセス元をCloudFrontに限定可能 階層化したindex.htmlの補完はNG ● S3のStatic Site Hosting アクセス元をCloudFrontに限定することは不可能 階層化したindex.htmlの補完はOK
  • 11. Copyright ©2016 HAW International Inc. all rights reserved. S3オブジェクトのキー名 S3のオブジェクトのキー名として利用可能な文字列 ● 英数字[0〜9 a〜z A〜Z] ● 特殊文字 !、-、_、.、*、'、 16進数としてURLエンコードが必要な文字 ● "&"、"$"、"@"、"="、";"、":"、"+"、","、"?"、"–" ● 16進数の 00~1F(10 進数の 0~31)の範囲および 7F(10 進数の 127)の ASCII 文字 使わない方がいい文字 ● ""、"{"、"}"、"^"、"`"、"["、"]"、">"、"<"、"#"、"|"、"~"、"%" ● 表示不可能な ASCII 文字(10 進数の 128 ~ 255 の文字)
  • 12. Copyright ©2016 HAW International Inc. all rights reserved. S3オブジェクトのキー名 16進数としてURLエンコードが必要な文字 ● "&"、"$"、"@"、"="、";"、":"、"+"、","、"?"、"–" ● 16進数の 00~1F(10 進数の 0~31)の範囲および 7F(10 進数の 127)の ASCII 文字 <RoutingRules> <RoutingRule> <Condition> <KeyPrefixEquals>?</KeyPrefixEquals> </Condition> <Redirect> <ReplaceKeyPrefixWith>%3F</ReplaceKeyPrefixWith> </Redirect> </RoutingRule> </RoutingRules> S3のBucketのRedirection Rulesに エンコード文字列を指定することで アクセス可能 User-Agentに応じたリダイレクト ルールが定義できるようになると便利
  • 13. Copyright ©2016 HAW International Inc. all rights reserved. EC2で公開するコンテンツのアクセス制限 Amazon CloudFront Amazon EC2 EC2へのアクセスはCloudFrontからのみに絞りたい 現状、EC2のセキュリティグループでCloudFrontの対象IPのみのInboundを許可す る設定しかない。↓で対象がCLOUDFRONTのIPを判断(たまに追加される) https://ip-ranges.amazonaws.com/ip-ranges.json セキュリティグループで特定のAWSリソースが 指定できるようになるといいのに。
  • 14. Copyright ©2016 HAW International Inc. all rights reserved. CloudFrontとEC2間のSSL通信 Amazon CloudFront Amazon EC2 ● Hostヘッダをオリジンに転送する CloudFrontで使用している証明書(Common NameがCloundFrontで公開して いるドメイン)を流用可能 ● Hostヘッダをオリジンに転送しない オリジンサーバ(EC2)に設定されているドメイン名の証明書を別途用意する ↑のルールから外れると502 Bad Gatewayになる。
  • 15. Copyright ©2016 HAW International Inc. all rights reserved. CloudFrontのタイムアウト時間の制約 Amazon CloudFront Amazon EC2 30秒 ● HEAD、GETリクエスト オリジンが30秒以内に応答を返さない場合、接続を中断しさらに2回接続を試み る。3回目も失敗すると別のリクエストが来るまで接続を試みない。 ● DELETE、OPTIONS、PATCH、POST、PUTリクエスト オリジンが30秒以内に応答を返さない場合、接続を中断し再接続はしない。