20
ククククククククククククククククク クククククククク Web #perlbeginners #16 2014.12.22 @dokechin

クラウドストレージを使って音声投稿サイトを作った話

Embed Size (px)

Citation preview

クラウドストレージを使って音声投稿Webサイトを作った話

#perlbeginners #16 2014.12.22 @dokechin

自己紹介 (@dokechin)

•システムPerlでバッチ処理を書いている

•Webアプリを 2012年から趣味で書いている

What

思い立った・・・•著作権のない楽曲の伴奏(もみじ、海など文部省唱歌)を予め登録。

•それをバックに歌を歌い投稿できるサイト。•オンラインオーディションサイト。(すでにある?)

問題•僕はピアノが弾けない•クラウドワークスを使う手もあるが・・お金がかかる

•MIDIもよくわからないし・・・

伴奏も登録できるサイトにしてしまえ

カエルの歌(歌なし)

カエルの歌(歌付き)

カエルの歌(輪唱)

カエルの歌(輪唱)

カエルの歌(歌付き

カエルの歌(輪唱)

Aさん

Bさん Cさん

Cさん Dさん Dさん

Renka – 連歌  http://renka.xyz

カラオケに限定すべきか?•会話、戯曲なども取り込むべきか。•汎化しすぎると趣旨がボヤける

ドメイン名で頭を悩ます•Karapd(パブリックドメインのカラオケ)•Karap(カラピー)•Renka(連歌 5,7,5に合わせて7 ,7をつなげて遊ぶ)

How

ブラウザでマイク録音Recorder.js•HTML5でマイク録音する jsライブラリ•IE、 Safariでは動作しない•Firefox,Chrome,(Opera)では動くはず•スマホブラウザでの再生でハマった( Blobでの再生できない。 Base64でできた。)

構成①

さくら VPS 1G+ 100Gストレージ

Nginx Mojolicious

/upload

/sound/hoge.mp3

ローカルストレージ

問題•1M×10万ファイルでローカルストレージが一杯になってしまう

•スケールアウトするときに困る

構成②

さくら VPS 1G+ 100Gストレージ

Nginx Mojolicious

/upload

https://hoge.s3.amazon.com/hoge.mp3

AWS S3Amazon::S3

問題•クラウドのURLが公に公開されのは、ちょっと嫌な感じ。課金が心配。

構成③

さくら VPS 1G+ 100Gストレージ

Nginx Mojolicious

/upload

/sound/hoge.mp3

AWS S3

日本

Amazon::S3

aws_authモジュール

問題•VPSのリージョン付近からのアクセスからだといいけど、遠距離だと不利。

CDN(コンテンツデリバリーネットワーク)

90年代以降ネットが一般に普及するにつれ、大手サイトからのリンクやテレビといった他メディアからのリンクにより、通常想定されていない大量のユーザーがサイトへ集中し、反応が遅くなったり、まったく応答不能になること(フラッシュクラウド効果)が多くなってきた。このような現象に対処する場合、サーバを一ヶ所だけに置くのではなく、地理的・バックボーン的に分散させるのが効果的である。

- Wikipediaより抜粋

CDN(CloudFlare)

構成④

さくら VPS 1G

AWS S3Nginx Mojolicious

CloudFlare

CloudFlare DNS

/upload

/sound/hoge.mp3

CloudFlare

日本

アメリカ

Amazon::S3

aws_authモジュール

問題•サイトの会員のみファイル公開したい場合に、対応できていない。→ Amazonの CDN (CloudFront)では署名付きURLで対応する模様。 

•ご清聴ありがとうございました。