Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
動画配信サイトを支える技術 Shinjuku.rb #39
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yuichi Takeuchi
July 27, 2016
Technology
2
2.1k
動画配信サイトを支える技術 Shinjuku.rb #39
RailsとAWSで動画配信サイトを作ったのでその話です。
LT枠だったのでさわりだけです。
Yuichi Takeuchi
July 27, 2016
Tweet
Share
More Decks by Yuichi Takeuchi
See All by Yuichi Takeuchi
現実のRuby/Railsアップグレード外伝 ~そして僕はforkした~
takeyuweb
0
720
現実のRuby/Railsアップグレード
takeyuweb
4
13k
Shinjuku.rb #95 LT会!心の技術書を紹介しよう!
takeyuweb
0
86
リモートワークへの招待
takeyuweb
2
540
OSSにみるレールの外側
takeyuweb
0
230
Rails meets Content Security Policy
takeyuweb
1
690
Rails受託会社を作っている話
takeyuweb
0
130
社長が書いたクソコードたち
takeyuweb
0
1.9k
Rails 考古学:WebAPIを取り巻く環境の変化とRailsの対応について
takeyuweb
0
110
Other Decks in Technology
See All in Technology
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1k
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
190
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
430
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
41k
What happened to RubyGems and what can we learn?
mikemcquaid
0
230
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.3k
使いにくいの壁を突破する
sansantech
PRO
1
110
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
250
オープンウェイトのLLMリランカーを契約書で評価する / searchtechjp
sansan_randd
3
640
Amazon Bedrock AgentCore 認証・認可入門
hironobuiga
2
500
月間数億レコードのアクセスログ基盤を無停止・低コストでAWS移行せよ!アプリケーションエンジニアのSREチャレンジ💪
miyamu
0
790
Tebiki Engineering Team Deck
tebiki
0
24k
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
62
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
56
50k
ラッコキーワード サービス紹介資料
rakko
1
2.2M
The agentic SEO stack - context over prompts
schlessera
0
630
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
89
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
How to Ace a Technical Interview
jacobian
281
24k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Crafting Experiences
bethany
1
46
Mobile First: as difficult as doing things right
swwweet
225
10k
Transcript
Shinjuku.rb #39 動画配信サイトを⽀える技術 タケユー・ウェブ株式会社 ⽵内雄⼀
⽵内雄⼀ @takeyuweb 元フリーランスWeb開発者 • 1984年限界集落⽣まれ、⾼専育ち • 2008年個⼈事業主として独⽴ • 上流、下流、運⽤ •
Rails 1.1〜4.2受託(ほぼ業務委託) • 地域コミュニティサイト • SNS • ペライチ的なの • 業務管理システム • 動画配信・販売サイト などなど… • 特定の取引先に依存しない働き⽅! • 2016年6⽉ 法⼈成りしました • タケユー・ウェブ(株) ロケ地:蒜⼭⾼原
ディーゼル気動⾞ on Rails(単線)
ディーゼル気動⾞ on Rails(単線)
Gem選び • 情報があるか • 不⽑な嵌まり時間を最⼩限にしたい • コードに⽬を通す • 完全に追うほどはしないけどざっと⽬を通して何をやっているか把握 する
• 挙動を変えるものは使わない • 便利系にある奴 • たとえば論理削除は専⽤のメソッドを使う感じ
RailsとAWSで動画配信サイト を作ったのでその話
動画配信サイトに必要っぽいもの • ⼤容量ファイルアップロード • エンコード • サムネイル • ストリーミング •
ダウンロード
⼤容量ファイルアップロード
⼤容量ファイルアップロード • 分割アップロード • S3に蓄積 • MultipartUpload機能で結合
エンコード
エンコード • Amazon Elastic Transcoder • 動画変換サービス • S3上の動画ファイルを、指定した形式(プリセット)に変換し てS3に書き出すサービス
エンコード
サムネイル
サムネイル • Refile gem • 画像アップロード系gem • Sinatra製画像サーバ • 画像サーバについて
• URL中で画像の変換指⽰ • くり抜き、縮⼩、など • サイズ • フォーマット • URLに応じて変換して返す • processor⾃作もかんたん • JPEG/PNG圧縮・最適化で転送 量を削減
サムネイル • Amazon CloudFront • Refile 毎回変換するので遅い • プロキシキャッシュなどキャッ シュの仕組みが必要
• CloudFrontを経由してRefile サーバにアクセス • CoudFront側でキャッシュさ れるのでRefileサーバへのア クセスは激減
サムネイル
ストリーミング • 購⼊者だけに動画をストリーミング再⽣させたい • ストリーミングサーバーによらないストリーミングしたい
ストリーミング • HLS: HTTP Live Streaming • HTTPでストリーミング再⽣する仕組み • 簡単に⾔うと、動画ファイルを⼩分けにして、次々ダウンロー
ドしながら再⽣するもの • ⼩分けにした動画ファイルを「セグメント」と呼びます。
ストリーミング • CloudFront • セグメントをエッジサーバーでキャッシュ • Tokyoリージョンではデータ転送料⾦はS3と変わらない(15GBで $2000ぐらい) • 速い
• 署名付きURL • 利⽤期限等を設定したCloudFront URLを発⾏できる • 権限のあるユーザーにのみセグメントのDLが可能に • 署名付きURLでもちゃんとキャッシュされます
ストリーミング • CloudFront • 署名付きURL
ダウンロード • S3 • 安いリージョンに バケットを作る • 署名付きURL
そんなこんなで
独⼒でなんとか(プレ)リ リースに漕ぎ着けましたが
このままでは 死んでしまう!ので ※2016年4⽉〜6⽉の平均稼働時間300時間
パートナー募集してます。 • フリーランス、副業さんなど • 時給制、応相談 • Railsに⾃信 • Issueを渡すので消化して欲しい •
AWSなら俺に任せろー • 保守管理⽤ツールとか作って欲しい • フロントエンドできますって⼈ • ※現在React SPAですが、諸事情によりRailsビューへの移植を・・・ • 現在ぼく+2⼈ • https://takeyuweb.co.jp / Twitter @takeyuweb / Facebook takeyuweb