SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
SnapDish 画像配信について
                               2013/1/23


                            料理が楽しくなる写真共有サービス

                            『SnapDish 料理カメラ』


                                      ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
本日のMENU
                            前菜: SnapDish って?

                            メイン:現状と構成 (2013/01現在)

                            デザート:使ってみて


                                         ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
SnapDish って?




                                  ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
こんな感じ




                            ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
冗談です。orz
                            SnapDish UP されている、

                            自分が一番気に入っている

                            幻の写真、「そーせーじん」です。


                                         ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
サービス概要




                            料理が、食が、もっと楽しくなる!



                                    ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
2012/12 現在




                              開始から1年半
                            料理写真だけで約200万
                            もぐもぐ❤が約1200万
                                  ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
チーム 8人(みんな30歳以上、半数は40歳以上???)
 z 代表 総料理長 明太子LOVE❤
      きよた(自分)iOS, WEB, インフラ全般 珈琲LOVE❤
  ままぞう 財務、人事、総務、酒LOVE❤
          ファンキー 海外事業担当、パスタLOVE❤
   なるじぃ Androidスペシャリスト、ぱんLOVE❤
                   あべちゃん 国内事業開発担当、お米LOVE❤
     ひよっし Webスペシャリスト、まぐろLOVE❤
                       くらげや グラフィクデザイン、日本酒LOVE❤




                                        ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
日常


 毎日ランチを料理

 みんなで
 美味しく食べる

 昼・夜一生懸命働く

 SnapDish ユーザーと
 同じ体験することで、
 ユーザー目線を鍛える!

 開発・運営をしています!


                            ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
本題




                             ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
現状と構成




                               ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
まず、現状から




                                ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
こんな感じ




                            ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
現状

                            2012/12月の数字

 ・AWS CloudFront (CDN)
       リクエスト数: 約9,400万
       転送量: 2.5TB

 ・AWS ELB (CloudFront Origin)
       リクエス数: 約3,000万

      ※S3は未計測




                                   ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
構成




                             ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
こんな感じ




                       http://snapdi.sh/dish/50f4a8e2a060bd3c814fb634



                                                         ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
こんな感じ




                        http://snapdi.sh/dish/50d870d3a060bd7c10ecb694



                                                        ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
嘘です。orz




                                ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
構成

                       Internet                                          1. Image Server
                                                                            - instance m1.small x 4 - 6
                                                                            - nginx 1.2.4
                Amazon                                                      - nginx proxy cache on ramdisk
               CloudFront                Amazon Simple                      - nginx image filter to resize image
                                         Storage Service
                                              (S3)                          - nginx gridfs replicaset connect

                                                                         2. DB Server
                               Elastic Load                                 - instance m2.4xlarge x 2
                                 Balancer                                   - PIOPS1000/Raid10
                             origin.snapdi.sh
                                                                            - MongoDB 2.2.1

                                                                         3. MongoDB Arb Sever
                                  Image Server
                                                                            - instance m1.large x 1
                                  on Instances                                (Running on Development Server)

                                                                         4. AWS S3 Service



        MongoDB SEC           MongoDB PRI                  MongoDB Arb
        on Instance           on Instance                  on Instance

                            Rreplica Sets


                                                                 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
  


・S3とGridFSのハイブリッド運用

・GridFSはCloudFrontの配下のサーバーに設置
     AWS CloudFront
        ↓↑
     AWS ELB
        ↓↑
     AWS EC2
     Image Server on EC2 m1.small(4-6台)
       ↓↑
     MongDB GridFS




                            ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
  


・Image Server の中身
    Nginx Sample Config
    https://gist.github.com/4591707


     1. キャッシュ層
        ramdiskにキャッシュ
     2. 加工層
    ngixn-image-filter を使って処理
     3. 取得層
    GridFSに繋いでデータを取得する


   ※多段にする理由は、Nginx-GridFSのIDの取得する際、
    location の指定に正規表現が書けないから

                                      ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
使ってみて




                               ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
こんな感じ




                        http://snapdi.sh/dish/50f736fda060bd3e9e762e08



                                                         ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
悩ましい事が多いかも




                                 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
GridFSじゃなくて、S3使えばよいんじゃないの?

                     と思う事がよくあります。でも、なぜ使っているのか、

      1. 使ってみて、今まで大きな問題が起こっていない

      2.当初、全て一人でやっていて、なるべく工数を押さえたかったので、サー
       バーサイドの設定で全てできてしまうnginx-gridfsを使うことに

      3. デザインも含め進化途中のアプリなので、画像のサイズがよく変わる事が
        あり、設定でさくっと対応したかった

      4. Androidは画像サイズを小さくして配信するなど、個別の対応が必要なの
       で、サーバーサイドの設定で対応ができるのはメリット

      5. S3は、移行したい時に移行すればよい



                                  ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
ちなみに、実際、配信している画像




                            ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
実際配信している画像

  ・料理写真画像 ー> GridFS
   1. 更新は不可/削除可能
   2. サイズは、表示箇所によって様々
   3. リサイズ・クロップ処理行う

  ・ユーザー画像 ー> GridFS(S3へ移行検討中)
   1. 更新は可能/削除可能
   2. サイズ、表示箇所によって様々
   3. リサイズ・クロップ処理行う

  ・ユーザープロフィールカバー画像 ー> S3
   1. 更新は可能/削除は不可
   2. サイズ、プロフィールに対して3個
   3. リサイズ・クロップ処理は一部行う
                            ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
メリット:
    1. サーバーサイドで細かい調整ができて便利
    2. 画像の管理自体はとても楽
    3. 画像のメタ情報の管理も一括して行える
    4. 画像のサイズや大きさが定まらない場合
    5. 後で他のサービスに移行するのは容易

    デメリット:
    1. サーバーの運用が入る
    2. 割高、S3の方がコストが抑えられる
    (多分、ある時点から大分S3が安くなる)
    3. 移行時に、やはり、工数が結構発生する

    S3にした方が良い場合、、、
    1. WEBからの大量アクセスがくる場合、S3の方がコストが 更に押さえられ、画
       像サイズの種類もそんなに必要がないので、実際楽なはず
    2. 更なる高可用性が必要な場合
    3. CDNを使わない場合で、画像の更新がある場合

                            ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
まだ、

   以外と動いているので、

   もうしばらく使って、

   S3とのハイブリッド運用へ移行して、

   もしかしたら、

   全てS3へ移行することになるのかもしれないと

   心の片隅で思う事がある日々を

   しばらく送る事になりそう




                            ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
お口に合いましたでしょうか?




                            ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13
http://snapdi.sh/dish/50de504b7e57054057fa8905



                                                              ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。

Wednesday, January 23, 13

Weitere ähnliche Inhalte

Was ist angesagt?

Seasar conference 2015 sa-compojure
Seasar conference 2015 sa-compojureSeasar conference 2015 sa-compojure
Seasar conference 2015 sa-compojureYoshitaka Kawashima
 
20130222 osc13tk osc.cms
20130222 osc13tk osc.cms20130222 osc13tk osc.cms
20130222 osc13tk osc.cmsusptomo
 
WebMatrix3でwebプログラミング入門 (2013/08/03)
WebMatrix3でwebプログラミング入門 (2013/08/03)WebMatrix3でwebプログラミング入門 (2013/08/03)
WebMatrix3でwebプログラミング入門 (2013/08/03)T. Kodaka
 
Varnishの使い方~All Aboutでの使い方を例に~
Varnishの使い方~All Aboutでの使い方を例に~Varnishの使い方~All Aboutでの使い方を例に~
Varnishの使い方~All Aboutでの使い方を例に~Kazuto Ohara
 
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato KinugawaXSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato KinugawaCODE BLUE
 
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~Masato Kinugawa
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会Yasutaka Hamada
 
Effective Hyper-V - 久しぶりエディション
Effective Hyper-V - 久しぶりエディションEffective Hyper-V - 久しぶりエディション
Effective Hyper-V - 久しぶりエディションKuninobu SaSaki
 
銀河レベルのLT(とは)
銀河レベルのLT(とは)銀河レベルのLT(とは)
銀河レベルのLT(とは)Akihiro Kuwano
 
MongoDBの可能性の話
MongoDBの可能性の話MongoDBの可能性の話
MongoDBの可能性の話Akihiro Kuwano
 
【concrete5】CMS夏祭り2015@mttokyo
【concrete5】CMS夏祭り2015@mttokyo【concrete5】CMS夏祭り2015@mttokyo
【concrete5】CMS夏祭り2015@mttokyoShinji Sakai
 
qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所Takeshi HASEGAWA
 
Introduction of mruby & Webruby script example
Introduction of mruby & Webruby script exampleIntroduction of mruby & Webruby script example
Introduction of mruby & Webruby script examplekishima7
 
第4回 一撃サーバー構築シェルスクリプト勉強会(もくもく) 発表資料 - さくらのクラウド操作案内
第4回 一撃サーバー構築シェルスクリプト勉強会(もくもく) 発表資料 - さくらのクラウド操作案内第4回 一撃サーバー構築シェルスクリプト勉強会(もくもく) 発表資料 - さくらのクラウド操作案内
第4回 一撃サーバー構築シェルスクリプト勉強会(もくもく) 発表資料 - さくらのクラウド操作案内Yasutaka Hamada
 
今日はMongoDBの話はしない
今日はMongoDBの話はしない今日はMongoDBの話はしない
今日はMongoDBの話はしないAkihiro Kuwano
 
Node.js で SPDYのベンチマーク体験サイトを作りました
Node.js で SPDYのベンチマーク体験サイトを作りましたNode.js で SPDYのベンチマーク体験サイトを作りました
Node.js で SPDYのベンチマーク体験サイトを作りましたshigeki_ohtsu
 
【初心者向け】VPSでWordPress構築ハンズオン
【初心者向け】VPSでWordPress構築ハンズオン【初心者向け】VPSでWordPress構築ハンズオン
【初心者向け】VPSでWordPress構築ハンズオンGMO HosCon
 

Was ist angesagt? (20)

Seasar conference 2015 sa-compojure
Seasar conference 2015 sa-compojureSeasar conference 2015 sa-compojure
Seasar conference 2015 sa-compojure
 
20130222 osc13tk osc.cms
20130222 osc13tk osc.cms20130222 osc13tk osc.cms
20130222 osc13tk osc.cms
 
WebMatrix3でwebプログラミング入門 (2013/08/03)
WebMatrix3でwebプログラミング入門 (2013/08/03)WebMatrix3でwebプログラミング入門 (2013/08/03)
WebMatrix3でwebプログラミング入門 (2013/08/03)
 
Varnishの使い方~All Aboutでの使い方を例に~
Varnishの使い方~All Aboutでの使い方を例に~Varnishの使い方~All Aboutでの使い方を例に~
Varnishの使い方~All Aboutでの使い方を例に~
 
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato KinugawaXSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
 
Led cube lt
Led cube ltLed cube lt
Led cube lt
 
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
 
Effective Hyper-V - 久しぶりエディション
Effective Hyper-V - 久しぶりエディションEffective Hyper-V - 久しぶりエディション
Effective Hyper-V - 久しぶりエディション
 
銀河レベルのLT(とは)
銀河レベルのLT(とは)銀河レベルのLT(とは)
銀河レベルのLT(とは)
 
MongoDBの可能性の話
MongoDBの可能性の話MongoDBの可能性の話
MongoDBの可能性の話
 
20150523
 20150523 20150523
20150523
 
【concrete5】CMS夏祭り2015@mttokyo
【concrete5】CMS夏祭り2015@mttokyo【concrete5】CMS夏祭り2015@mttokyo
【concrete5】CMS夏祭り2015@mttokyo
 
qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所
 
20190218 hello aws
20190218 hello aws20190218 hello aws
20190218 hello aws
 
Introduction of mruby & Webruby script example
Introduction of mruby & Webruby script exampleIntroduction of mruby & Webruby script example
Introduction of mruby & Webruby script example
 
第4回 一撃サーバー構築シェルスクリプト勉強会(もくもく) 発表資料 - さくらのクラウド操作案内
第4回 一撃サーバー構築シェルスクリプト勉強会(もくもく) 発表資料 - さくらのクラウド操作案内第4回 一撃サーバー構築シェルスクリプト勉強会(もくもく) 発表資料 - さくらのクラウド操作案内
第4回 一撃サーバー構築シェルスクリプト勉強会(もくもく) 発表資料 - さくらのクラウド操作案内
 
今日はMongoDBの話はしない
今日はMongoDBの話はしない今日はMongoDBの話はしない
今日はMongoDBの話はしない
 
Node.js で SPDYのベンチマーク体験サイトを作りました
Node.js で SPDYのベンチマーク体験サイトを作りましたNode.js で SPDYのベンチマーク体験サイトを作りました
Node.js で SPDYのベンチマーク体験サイトを作りました
 
【初心者向け】VPSでWordPress構築ハンズオン
【初心者向け】VPSでWordPress構築ハンズオン【初心者向け】VPSでWordPress構築ハンズオン
【初心者向け】VPSでWordPress構築ハンズオン
 

Mehr von Fumikazu Kiyota

PyCon Kyushu 2018 SnapDish LT
PyCon Kyushu 2018 SnapDish LTPyCon Kyushu 2018 SnapDish LT
PyCon Kyushu 2018 SnapDish LTFumikazu Kiyota
 
TechCrunch CTO Night 2014
TechCrunch CTO Night 2014TechCrunch CTO Night 2014
TechCrunch CTO Night 2014Fumikazu Kiyota
 
2014/7/15 Vuzz SnapDish CTO Night Talk @AWS
2014/7/15 Vuzz SnapDish CTO Night Talk @AWS 2014/7/15 Vuzz SnapDish CTO Night Talk @AWS
2014/7/15 Vuzz SnapDish CTO Night Talk @AWS Fumikazu Kiyota
 
SnapDish&CloudSearch@aws
SnapDish&CloudSearch@awsSnapDish&CloudSearch@aws
SnapDish&CloudSearch@awsFumikazu Kiyota
 
SnapDishって? (LT資料)
SnapDishって? (LT資料)SnapDishって? (LT資料)
SnapDishって? (LT資料)Fumikazu Kiyota
 
Evernote Devcup 2013 Kickoff のLT資料
Evernote Devcup 2013 Kickoff のLT資料Evernote Devcup 2013 Kickoff のLT資料
Evernote Devcup 2013 Kickoff のLT資料Fumikazu Kiyota
 

Mehr von Fumikazu Kiyota (10)

PyCon Kyushu 2018 SnapDish LT
PyCon Kyushu 2018 SnapDish LTPyCon Kyushu 2018 SnapDish LT
PyCon Kyushu 2018 SnapDish LT
 
Food techtalk
Food techtalkFood techtalk
Food techtalk
 
TechCrunch CTO Night 2014
TechCrunch CTO Night 2014TechCrunch CTO Night 2014
TechCrunch CTO Night 2014
 
MongoDB祭り 2014年
MongoDB祭り 2014年MongoDB祭り 2014年
MongoDB祭り 2014年
 
2014/7/15 Vuzz SnapDish CTO Night Talk @AWS
2014/7/15 Vuzz SnapDish CTO Night Talk @AWS 2014/7/15 Vuzz SnapDish CTO Night Talk @AWS
2014/7/15 Vuzz SnapDish CTO Night Talk @AWS
 
SnapDish&CloudSearch@aws
SnapDish&CloudSearch@awsSnapDish&CloudSearch@aws
SnapDish&CloudSearch@aws
 
SnapDishって? (LT資料)
SnapDishって? (LT資料)SnapDishって? (LT資料)
SnapDishって? (LT資料)
 
Evernote Devcup 2013 Kickoff のLT資料
Evernote Devcup 2013 Kickoff のLT資料Evernote Devcup 2013 Kickoff のLT資料
Evernote Devcup 2013 Kickoff のLT資料
 
SnapDish AWS
SnapDish AWSSnapDish AWS
SnapDish AWS
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 

SnapDish 画像配信について

  • 1. SnapDish 画像配信について 2013/1/23 料理が楽しくなる写真共有サービス 『SnapDish 料理カメラ』 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 2. 本日のMENU 前菜: SnapDish って? メイン:現状と構成 (2013/01現在) デザート:使ってみて ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 3. SnapDish って? ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 4. こんな感じ ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 5. 冗談です。orz SnapDish UP されている、 自分が一番気に入っている 幻の写真、「そーせーじん」です。 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 6. サービス概要 料理が、食が、もっと楽しくなる! ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 7. 2012/12 現在 開始から1年半 料理写真だけで約200万 もぐもぐ❤が約1200万 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 8. チーム 8人(みんな30歳以上、半数は40歳以上???) z 代表 総料理長 明太子LOVE❤ きよた(自分)iOS, WEB, インフラ全般 珈琲LOVE❤  ままぞう 財務、人事、総務、酒LOVE❤ ファンキー 海外事業担当、パスタLOVE❤   なるじぃ Androidスペシャリスト、ぱんLOVE❤ あべちゃん 国内事業開発担当、お米LOVE❤     ひよっし Webスペシャリスト、まぐろLOVE❤ くらげや グラフィクデザイン、日本酒LOVE❤ ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 9. 日常 毎日ランチを料理 みんなで 美味しく食べる 昼・夜一生懸命働く SnapDish ユーザーと 同じ体験することで、 ユーザー目線を鍛える! 開発・運営をしています! ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 10. 本題 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 11. 現状と構成 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 12. まず、現状から ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 13. こんな感じ ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 14. 現状 2012/12月の数字 ・AWS CloudFront (CDN) リクエスト数: 約9,400万 転送量: 2.5TB ・AWS ELB (CloudFront Origin) リクエス数: 約3,000万 ※S3は未計測 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 15. 構成 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 16. こんな感じ http://snapdi.sh/dish/50f4a8e2a060bd3c814fb634 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 17. こんな感じ http://snapdi.sh/dish/50d870d3a060bd7c10ecb694 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 18. 嘘です。orz ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 19. 構成 Internet 1. Image Server - instance m1.small x 4 - 6 - nginx 1.2.4 Amazon - nginx proxy cache on ramdisk CloudFront Amazon Simple - nginx image filter to resize image Storage Service (S3) - nginx gridfs replicaset connect 2. DB Server Elastic Load - instance m2.4xlarge x 2 Balancer - PIOPS1000/Raid10 origin.snapdi.sh - MongoDB 2.2.1 3. MongoDB Arb Sever Image Server - instance m1.large x 1 on Instances (Running on Development Server) 4. AWS S3 Service MongoDB SEC MongoDB PRI MongoDB Arb on Instance on Instance on Instance Rreplica Sets ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 20.    ・S3とGridFSのハイブリッド運用 ・GridFSはCloudFrontの配下のサーバーに設置 AWS CloudFront ↓↑ AWS ELB ↓↑ AWS EC2 Image Server on EC2 m1.small(4-6台) ↓↑ MongDB GridFS ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 21.    ・Image Server の中身 Nginx Sample Config  https://gist.github.com/4591707 1. キャッシュ層 ramdiskにキャッシュ 2. 加工層  ngixn-image-filter を使って処理 3. 取得層  GridFSに繋いでデータを取得する ※多段にする理由は、Nginx-GridFSのIDの取得する際、  location の指定に正規表現が書けないから ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 22. 使ってみて ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 23. こんな感じ http://snapdi.sh/dish/50f736fda060bd3e9e762e08 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 24. 悩ましい事が多いかも ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 25. GridFSじゃなくて、S3使えばよいんじゃないの? と思う事がよくあります。でも、なぜ使っているのか、 1. 使ってみて、今まで大きな問題が起こっていない 2.当初、全て一人でやっていて、なるべく工数を押さえたかったので、サー  バーサイドの設定で全てできてしまうnginx-gridfsを使うことに 3. デザインも含め進化途中のアプリなので、画像のサイズがよく変わる事が   あり、設定でさくっと対応したかった 4. Androidは画像サイズを小さくして配信するなど、個別の対応が必要なの  で、サーバーサイドの設定で対応ができるのはメリット 5. S3は、移行したい時に移行すればよい ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 26. ちなみに、実際、配信している画像 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 27. 実際配信している画像 ・料理写真画像 ー> GridFS  1. 更新は不可/削除可能  2. サイズは、表示箇所によって様々  3. リサイズ・クロップ処理行う ・ユーザー画像 ー> GridFS(S3へ移行検討中)  1. 更新は可能/削除可能  2. サイズ、表示箇所によって様々  3. リサイズ・クロップ処理行う ・ユーザープロフィールカバー画像 ー> S3  1. 更新は可能/削除は不可  2. サイズ、プロフィールに対して3個  3. リサイズ・クロップ処理は一部行う ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 28. メリット: 1. サーバーサイドで細かい調整ができて便利 2. 画像の管理自体はとても楽 3. 画像のメタ情報の管理も一括して行える 4. 画像のサイズや大きさが定まらない場合 5. 後で他のサービスに移行するのは容易 デメリット: 1. サーバーの運用が入る 2. 割高、S3の方がコストが抑えられる (多分、ある時点から大分S3が安くなる) 3. 移行時に、やはり、工数が結構発生する S3にした方が良い場合、、、 1. WEBからの大量アクセスがくる場合、S3の方がコストが 更に押さえられ、画 像サイズの種類もそんなに必要がないので、実際楽なはず 2. 更なる高可用性が必要な場合 3. CDNを使わない場合で、画像の更新がある場合 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 29. まだ、 以外と動いているので、 もうしばらく使って、 S3とのハイブリッド運用へ移行して、 もしかしたら、 全てS3へ移行することになるのかもしれないと 心の片隅で思う事がある日々を しばらく送る事になりそう ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 30. お口に合いましたでしょうか? ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13
  • 31. http://snapdi.sh/dish/50de504b7e57054057fa8905 ヴァズ株式会社 | 本資料の無断での開示・複製・転送はご遠慮ください。 Wednesday, January 23, 13