SlideShare a Scribd company logo
S3手なづけてオレオレバックエンドにしてみた話
荒木靖宏
at 2014/05/30 JAWS-UG 中央線
自己紹介
• 名前
– 荒木 靖宏(twitter: ar1)
• 肩書
– JAWS-UG→AWSへ
– プリンシパルソリューション
アーキテクト
• 好きなAWSサービス
– Amazon Virtual Private
Cloud
– AWS Direct Connect
3
S3でWebサーバ
やらせてますか?
4
CDPカテゴリ
-基本パターン
Snapshot
Stamp
Scale Up
Ondemand Disk
-可用性を高める
Multi-Server
Multi-Datacenter
Floating IP
Deep Health Check
-動的コンテンツを処理
Scale Out
Clone Server
NFS Sharding
NFS Replica
State Sharing
URL Rewriting
Rewrite Proxy
Cache Proxy
-静的コンテンツを処理
Web Storage
Direct Hosting
Private Distribution
Cache Distribution
Rename Distribution
-クラウドへのアップロード
Write Proxy
Storage Index
Direct Object Upload
-リレーショナル・データベース
DB Replication
Read Replica
Inmemory DB Cache
Sharding Write
-バッチ処理
Queuing Chain
Priority Queue
Job Observer
Scheduled Autoscaling
-運用保守
Bootstrap
Cloud DI
Stack Deployment
Server Swapping
Monitoring Integration
Web Storage Archive
-ネットワーキング
OnDemand NAT
Backnet
Functional Firewall
Operational Firewall
Multi Load Balancer
WAF Proxy
CloudHub
こいつです
Direct Hosting パターン
• 利点
– 静的コンテンツへのアクセスをS3に任せ
ることで、Webシステムの可用性と耐久
性を容易に高めることができる
• 問題点
– ftpやrsyncなど、S3以外のアップロード
方法への対応
– 動的ページヘの対応
– ヘッダ情報の制限
6
S3手なづけて
オレオレバックエンド
つくりました
7
メインリージョン
node.js upload
nginx
CloudFront
Auto scaling Group
アップロード元 アップロード元
rsync
S3 COPY between buckets
バックアップ
region
origin server
node.js proxy
8
CDPカテゴリ
-基本パターン
Snapshot
Stamp
Scale Up
Ondemand Disk
-可用性を高める
Multi-Server
Multi-Datacenter
Floating IP
Deep Health Check
-動的コンテンツを処理
Scale Out
Clone Server
NFS Sharding
NFS Replica
State Sharing
URL Rewriting
Rewrite Proxy
Cache Proxy
-静的コンテンツを処理
Web Storage
Direct Hosting
Private Distribution
Cache Distribution
Rename Distribution
-クラウドへのアップロード
Write Proxy
Storage Index
Direct Object Upload
-リレーショナル・データベース
DB Replication
Read Replica
Inmemory DB Cache
Sharding Write
-バッチ処理
Queuing Chain
Priority Queue
Job Observer
Scheduled Autoscaling
-運用保守
Bootstrap
Cloud DI
Stack Deployment
Server Swapping
Monitoring Integration
Web Storage Archive
-ネットワーキング
OnDemand NAT
Backnet
Functional Firewall
Operational Firewall
Multi Load Balancer
WAF Proxy
CloudHub
こいつです
これとも組み合わせ
Write Proxy パターン
• 動作
– https://github.com/armaniacs/n
ode-s3ma
– ファイル変更をinotifyで検出して
S3へアップロードするnodeのコー
ド
– x-amz-meta-XXXXヘッダに情報
追加
– さらにもうひとつ別リージョンの
S3へCOPY
CDPカテゴリ
-基本パターン
Snapshot
Stamp
Scale Up
Ondemand Disk
-可用性を高める
Multi-Server
Multi-Datacenter
Floating IP
Deep Health Check
-動的コンテンツを処理
Scale Out
Clone Server
NFS Sharding
NFS Replica
State Sharing
URL Rewriting
Rewrite Proxy
Cache Proxy
-静的コンテンツを処理
Web Storage
Direct Hosting
Private Distribution
Cache Distribution
Rename Distribution
-クラウドへのアップロード
Write Proxy
Storage Index
Direct Object Upload
-リレーショナル・データベース
DB Replication
Read Replica
Inmemory DB Cache
Sharding Write
-バッチ処理
Queuing Chain
Priority Queue
Job Observer
Scheduled Autoscaling
-運用保守
Bootstrap
Cloud DI
Stack Deployment
Server Swapping
Monitoring Integration
Web Storage Archive
-ネットワーキング
OnDemand NAT
Backnet
Functional Firewall
Operational Firewall
Multi Load Balancer
WAF Proxy
CloudHub
こいつです
これとも組み合わせ
さらに組み合わせ
Cache Proxy パターン
• 動作
– https://github.com/armani
acs/s3-reverse-proxy +
nginx
– x-amz-meta-xxxx に入って
いる値を任意のヘッダとして
追加(上書き)
– localに一定時間キャッシュ
12
メインリージョン
node.js upload
nginx
CloudFront
Auto scaling Group
アップロード
元
アップロード元
rsync
S3 COPY between buckets
バックアップ
region
origin server
node.js proxy
1313
まとめ
Direct Hosting + Write Proxy + Cache Proxyを実装
– https://github.com/armaniacs/node-s3ma
– https://github.com/armaniacs/s3-reverse-proxy
– +S3+ELB+AS+nginx+CloudFront+OpsWorks
Nginxでなんでもカスタマイズ可能
しかもNginxサーバではステート保持いらず
– コンテンツがなくなる心配ない(S3にあるから!)
– ステートはx-amz-meta-*****に書いちゃう

More Related Content

PDF
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
PDF
VIOPS09 AWSで実現するクラウドと物理製品の融合
PDF
Aws auto scalingによるwebapサーバbatchサーバの構成例
PDF
CDP(キャンペーンサイト編)
PDF
AWS Black Belt Techシリーズ AWS Data Pipeline
PPTX
はじめてのAWS Lambda
PPTX
Scaling MongoDB on AWS
PDF
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
VIOPS09 AWSで実現するクラウドと物理製品の融合
Aws auto scalingによるwebapサーバbatchサーバの構成例
CDP(キャンペーンサイト編)
AWS Black Belt Techシリーズ AWS Data Pipeline
はじめてのAWS Lambda
Scaling MongoDB on AWS
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...

What's hot (20)

PDF
ついに解禁!Amazon Aurora徹底検証!
PDF
AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門
PDF
Amazon Aurora
PDF
クラウド上のデータ活用デザインパターン
PDF
AWS Lambdaで作るクローラー/スクレイピング
PPTX
EC2 Deep Dive at CTO Night&Day 2016
PDF
データレイクを基盤としたAWS上での機械学習サービス構築
PPTX
New Cloud Design Pattern using Amazon Aurora
PDF
[F.O.XMeetup#2]インフラ業務を開発エンジニアへ移譲して_2年間の軌跡_
PDF
Spark Streaming + Amazon Kinesis
PDF
Serverless services on_aws_dmm_meetup_20170801
PDF
Aurora
PDF
S3 -ほぼ週刊AWSマイスターシリーズ第2回-
PDF
はじめてのAmazon RDS for PostgreSQL
PDF
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
PDF
サーバーレスアーキテクチャのすすめ(公開版)
PPTX
20121221 AWS re:Invent 凱旋報告
PDF
Tune Up AWS Lambda
PDF
頑張らないクラウド最適化 〜クラウドネイティブだけでないAWS活用〜
PPTX
Aurora新時代の幕開けとDynamoDBの進化
ついに解禁!Amazon Aurora徹底検証!
AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門
Amazon Aurora
クラウド上のデータ活用デザインパターン
AWS Lambdaで作るクローラー/スクレイピング
EC2 Deep Dive at CTO Night&Day 2016
データレイクを基盤としたAWS上での機械学習サービス構築
New Cloud Design Pattern using Amazon Aurora
[F.O.XMeetup#2]インフラ業務を開発エンジニアへ移譲して_2年間の軌跡_
Spark Streaming + Amazon Kinesis
Serverless services on_aws_dmm_meetup_20170801
Aurora
S3 -ほぼ週刊AWSマイスターシリーズ第2回-
はじめてのAmazon RDS for PostgreSQL
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
サーバーレスアーキテクチャのすすめ(公開版)
20121221 AWS re:Invent 凱旋報告
Tune Up AWS Lambda
頑張らないクラウド最適化 〜クラウドネイティブだけでないAWS活用〜
Aurora新時代の幕開けとDynamoDBの進化
Ad

Similar to S3をてなづけてオレオレバックエンドにしてみた話 (20)

PDF
実践!AWSクラウドデザインパターン
PDF
[AWS Summit 2012] クラウドデザインパターン#2 CDP 画像・動画配信編
PDF
[AWS Summit 2012] クラウドデザインパターン#7 CDP キャンペーンサイト編 (Wordpress)
PDF
CDP キャンペーンサイト編 UPDATE
PDF
AWSクラウドデザインパターン(CDP) - 概要編 -
PDF
[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編
PDF
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
PPTX
AWSつもり違い10箇条 at 201408 jaws高尾山ビアマウント
PDF
[AWS Summit 2012] クラウドデザインパターン#1 CDP概要編
PDF
AWSクラウドデザインパターン - JEITA講演 -
PPTX
ログ解析をあきらめない、あるいはSumoLogicの紹介
PDF
AWSを用いたWebホスティング
PDF
華麗なるElastic Beanstalkでの環境構築
PDF
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
PDF
AWSクラウドデザインパターン(CDP) - Eコマース編 -
PDF
20120319 aws meister-reloaded-s3
PDF
20120319 aws meister-reloaded-s3
PDF
Apache Spark on Azure
PDF
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
PDF
cloudpack導入資料(2010/12/24版)
実践!AWSクラウドデザインパターン
[AWS Summit 2012] クラウドデザインパターン#2 CDP 画像・動画配信編
[AWS Summit 2012] クラウドデザインパターン#7 CDP キャンペーンサイト編 (Wordpress)
CDP キャンペーンサイト編 UPDATE
AWSクラウドデザインパターン(CDP) - 概要編 -
[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
AWSつもり違い10箇条 at 201408 jaws高尾山ビアマウント
[AWS Summit 2012] クラウドデザインパターン#1 CDP概要編
AWSクラウドデザインパターン - JEITA講演 -
ログ解析をあきらめない、あるいはSumoLogicの紹介
AWSを用いたWebホスティング
華麗なるElastic Beanstalkでの環境構築
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -
20120319 aws meister-reloaded-s3
20120319 aws meister-reloaded-s3
Apache Spark on Azure
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
cloudpack導入資料(2010/12/24版)
Ad

More from Yasuhiro Araki, Ph.D (20)

PDF
1999年JUSメールサーバワークショップ@伊勢志摩
PDF
サービスをスケールさせるために AWSと利用者の技術
PPTX
AWSのIPv6対応状況@JAWS-UG大阪
PPTX
今だから!Amazon CloudFront 徹底活用
PDF
20151016 soracom-araki-02
PDF
Webサービス向け、クラウドデザインパターン:アンチパターン紹介
PDF
AWSにみる日本のクラウドのトレンド予測 20150321 jaws-tohoku
PPTX
20141202 jaws-osaka-hangeki
PPTX
20141126 jaws-antipattern
PPTX
クラウドによる運用の計測と運用価値の表現、その未来
PPTX
AWS 専用線アクセス体験ラボ紹介と 開催地立候補のお願い
PPTX
20140906 jawsfesta-araki-lt
PPTX
20140906 jawsfesta-araki-public
PDF
20140717 awssummit2014-cloud-operation
PPTX
20140628 AWSの2014前半のアップデートまとめ
PPTX
20140621 july techfesta (JTF2014) 突発**むけAWS
PPTX
MTのスケールアップパターン with AWS
PDF
20140418 aws-casual-network
PDF
Aws update jawstokyo-public
PDF
opsworks本番前提でopsworksを使わないで開発する話 at #jawsug #chibadan
1999年JUSメールサーバワークショップ@伊勢志摩
サービスをスケールさせるために AWSと利用者の技術
AWSのIPv6対応状況@JAWS-UG大阪
今だから!Amazon CloudFront 徹底活用
20151016 soracom-araki-02
Webサービス向け、クラウドデザインパターン:アンチパターン紹介
AWSにみる日本のクラウドのトレンド予測 20150321 jaws-tohoku
20141202 jaws-osaka-hangeki
20141126 jaws-antipattern
クラウドによる運用の計測と運用価値の表現、その未来
AWS 専用線アクセス体験ラボ紹介と 開催地立候補のお願い
20140906 jawsfesta-araki-lt
20140906 jawsfesta-araki-public
20140717 awssummit2014-cloud-operation
20140628 AWSの2014前半のアップデートまとめ
20140621 july techfesta (JTF2014) 突発**むけAWS
MTのスケールアップパターン with AWS
20140418 aws-casual-network
Aws update jawstokyo-public
opsworks本番前提でopsworksを使わないで開発する話 at #jawsug #chibadan

S3をてなづけてオレオレバックエンドにしてみた話

  • 2. 自己紹介 • 名前 – 荒木 靖宏(twitter: ar1) • 肩書 – JAWS-UG→AWSへ – プリンシパルソリューション アーキテクト • 好きなAWSサービス – Amazon Virtual Private Cloud – AWS Direct Connect
  • 4. 4 CDPカテゴリ -基本パターン Snapshot Stamp Scale Up Ondemand Disk -可用性を高める Multi-Server Multi-Datacenter Floating IP Deep Health Check -動的コンテンツを処理 Scale Out Clone Server NFS Sharding NFS Replica State Sharing URL Rewriting Rewrite Proxy Cache Proxy -静的コンテンツを処理 Web Storage Direct Hosting Private Distribution Cache Distribution Rename Distribution -クラウドへのアップロード Write Proxy Storage Index Direct Object Upload -リレーショナル・データベース DB Replication Read Replica Inmemory DB Cache Sharding Write -バッチ処理 Queuing Chain Priority Queue Job Observer Scheduled Autoscaling -運用保守 Bootstrap Cloud DI Stack Deployment Server Swapping Monitoring Integration Web Storage Archive -ネットワーキング OnDemand NAT Backnet Functional Firewall Operational Firewall Multi Load Balancer WAF Proxy CloudHub こいつです
  • 5. Direct Hosting パターン • 利点 – 静的コンテンツへのアクセスをS3に任せ ることで、Webシステムの可用性と耐久 性を容易に高めることができる • 問題点 – ftpやrsyncなど、S3以外のアップロード 方法への対応 – 動的ページヘの対応 – ヘッダ情報の制限
  • 7. 7 メインリージョン node.js upload nginx CloudFront Auto scaling Group アップロード元 アップロード元 rsync S3 COPY between buckets バックアップ region origin server node.js proxy
  • 8. 8 CDPカテゴリ -基本パターン Snapshot Stamp Scale Up Ondemand Disk -可用性を高める Multi-Server Multi-Datacenter Floating IP Deep Health Check -動的コンテンツを処理 Scale Out Clone Server NFS Sharding NFS Replica State Sharing URL Rewriting Rewrite Proxy Cache Proxy -静的コンテンツを処理 Web Storage Direct Hosting Private Distribution Cache Distribution Rename Distribution -クラウドへのアップロード Write Proxy Storage Index Direct Object Upload -リレーショナル・データベース DB Replication Read Replica Inmemory DB Cache Sharding Write -バッチ処理 Queuing Chain Priority Queue Job Observer Scheduled Autoscaling -運用保守 Bootstrap Cloud DI Stack Deployment Server Swapping Monitoring Integration Web Storage Archive -ネットワーキング OnDemand NAT Backnet Functional Firewall Operational Firewall Multi Load Balancer WAF Proxy CloudHub こいつです これとも組み合わせ
  • 9. Write Proxy パターン • 動作 – https://github.com/armaniacs/n ode-s3ma – ファイル変更をinotifyで検出して S3へアップロードするnodeのコー ド – x-amz-meta-XXXXヘッダに情報 追加 – さらにもうひとつ別リージョンの S3へCOPY
  • 10. CDPカテゴリ -基本パターン Snapshot Stamp Scale Up Ondemand Disk -可用性を高める Multi-Server Multi-Datacenter Floating IP Deep Health Check -動的コンテンツを処理 Scale Out Clone Server NFS Sharding NFS Replica State Sharing URL Rewriting Rewrite Proxy Cache Proxy -静的コンテンツを処理 Web Storage Direct Hosting Private Distribution Cache Distribution Rename Distribution -クラウドへのアップロード Write Proxy Storage Index Direct Object Upload -リレーショナル・データベース DB Replication Read Replica Inmemory DB Cache Sharding Write -バッチ処理 Queuing Chain Priority Queue Job Observer Scheduled Autoscaling -運用保守 Bootstrap Cloud DI Stack Deployment Server Swapping Monitoring Integration Web Storage Archive -ネットワーキング OnDemand NAT Backnet Functional Firewall Operational Firewall Multi Load Balancer WAF Proxy CloudHub こいつです これとも組み合わせ さらに組み合わせ
  • 11. Cache Proxy パターン • 動作 – https://github.com/armani acs/s3-reverse-proxy + nginx – x-amz-meta-xxxx に入って いる値を任意のヘッダとして 追加(上書き) – localに一定時間キャッシュ
  • 12. 12 メインリージョン node.js upload nginx CloudFront Auto scaling Group アップロード 元 アップロード元 rsync S3 COPY between buckets バックアップ region origin server node.js proxy
  • 13. 1313 まとめ Direct Hosting + Write Proxy + Cache Proxyを実装 – https://github.com/armaniacs/node-s3ma – https://github.com/armaniacs/s3-reverse-proxy – +S3+ELB+AS+nginx+CloudFront+OpsWorks Nginxでなんでもカスタマイズ可能 しかもNginxサーバではステート保持いらず – コンテンツがなくなる心配ない(S3にあるから!) – ステートはx-amz-meta-*****に書いちゃう

Editor's Notes

  • #8: http://calculator.s3.amazonaws.com/index.html#key=calc-3320C69C-4961-415D-A727-0FBEEAF72E93
  • #13: http://calculator.s3.amazonaws.com/index.html#key=calc-3320C69C-4961-415D-A727-0FBEEAF72E93