LT #nds37
-
Upload
kazumune-katagiri -
Category
Documents
-
view
394 -
download
1
Transcript of LT #nds37
第37回長岡IT技術者勉強会
ギョーム系でもAWS
2014/8/9 @nemuzuka
自己紹介
• id:nemuzuka
• @nemuzuka
• サーバサイドにJavaを使用したWebアプリケーションの開発を主にしております
今日は ギョーム系 でもAWSを 使おうぜって
お話を
例えばこんなシステム
• ファイル共有システム
• 数十M単位のファイルがばしばしupされる
• 画像サムネイル表示できたらいいなぁ
• もちろん、誰でも見れるのはダメよ
問題その1• ファイルサイズが大きいとその分回線を専有
• 同時にダウンロードが行われることで使える回線が減る
• 回線が塞がっていると、新たなリクエストを捌くことができない
• 同時接続数が多くなればクライアントは待たされることに
問題その2• ファイルを返す処理に時間がかかる
• 全ての画像処理に対して認可チェックが必要(ギョーム系)
• 認可チェックはSessionやDBを見て行う
• その後やっとファイル取得してレスポンスが返せる
例えばサムネイル表示させる場合、 1ページ辺りの画像は数十単位! !1人が1ページ表示するのに何回リクエストを繰り返すのか そして、それが何十人と同時にアクセスしてくると思うと…
問題その3• ファイルの格納場所
• DBのBLOB的なもの
• ファイルシステム上に置く
どちらにしてもディスク容量や バックアップにかかる時間は無視できない OSのリソースも消費する
そこで、 S3 + CloudFront という選択肢
• S3
• インターネット用のストレージサービス
• インターネット経由でファイルを保存・取得することが可能
• 信頼性が高く、安価
!
• CloudFront
• コンテンツ配信ネットワーク
• 主にS3上に配置されたリソースを参照する形で使われる
• 音声や映像など大容量のデータを多くのユーザーに効率よく届けるための仕組み
• ユーザーのIPアドレスから地域情報を割り出し、ユーザーに近い場所のコピーされたサーバーを見に行ってレスポンス返すとか、とにかくすごい
1ヶ月前の自分…
CloudFront? も、もちろん知ってるけど
!
誰にでも見せる画像とか プロモーション用の楽曲ファイルを
配信する為のもんでしょ !
誰にでも見られたら困るギョーム系には使えないよねー
CloudFrontは、 署名付きのURLを発行することで、
許可されたユーザだけ 参照させることができます
そのURLの有効期限も設定可能なので、もし万が一URLが流出したとしても、その期限までの話。
ということは、こんな感じ
自前APサーバ
1.サーバにリクエスト
2.認可チェック等々を行い、 レスポンスにCloudFrontから 画像に関する署名付きURLを 「まとめて」返す https://xxxx.cloudfront.net/hoge/fuga/a.img?xxxxxx https://xxxx.cloudfront.net/hoge/fuga/b.img?xxxxxx
S3CloudFront
3.「2」で取得した 署名付きURLを使用し 画像の取得は全て CloudFrontから行う
例えばサムネイル表示
仮にサムネイル表示対象の 画像が50個あったとしても 自前APサーバ:1回のリクエスト 画像取得のリクエスト:全てCloudFront となり、負荷分散できる それを全部自前APサーバで捌くとしたら…
• 世の中の便利なものどんどん使ってシステムの維持費や開発工数減らして浮いた分を他のことに回せばいいじゃない
• AWSにロックインされることになりますが、非常に便利です
• コストを抑えてそれなりに捌けるシステムが貴方の物に
• VPS + S3 + CloudFront
まとめ