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
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
400
現実のRuby/Railsアップグレード
takeyuweb
4
9.6k
Shinjuku.rb #95 LT会!心の技術書を紹介しよう!
takeyuweb
0
43
リモートワークへの招待
takeyuweb
2
520
OSSにみるレールの外側
takeyuweb
0
210
Rails meets Content Security Policy
takeyuweb
1
570
Rails受託会社を作っている話
takeyuweb
0
110
社長が書いたクソコードたち
takeyuweb
0
1.8k
Rails 考古学:WebAPIを取り巻く環境の変化とRailsの対応について
takeyuweb
0
80
Other Decks in Technology
See All in Technology
NFV基盤のOpenStack更新 ~9世代バージョンアップへの挑戦~
vtj
0
360
Goで作って学ぶWebSocket
ryuichi1208
3
2.8k
RemoveだらけのPHPUnit 12に備えよう
cocoeyes02
0
300
ウォンテッドリーのデータパイプラインを支える ETL のための analytics, rds-exporter / analytics, rds-exporter for ETL to support Wantedly's data pipeline
unblee
0
130
4th place solution Eedi - Mining Misconceptions in Mathematics
rist
0
150
JAWS FESTA 2024「バスロケ」GPS×サーバーレスの開発と運用の舞台裏/jawsfesta2024-bus-gps-serverless
ma2shita
3
220
手を動かしてレベルアップしよう!
maruto
0
220
OSS構成管理ツールCMDBuildを使ったAWSリソース管理の自動化
satorufunai
0
650
開発組織を進化させる!AWSで実践するチームトポロジー
iwamot
2
380
1行のコードから社会課題の解決へ: EMの探究、事業・技術・組織を紡ぐ実践知 / EM Conf 2025
9ma3r
11
3.9k
システム・ML活用を広げるdbtのデータモデリング / Expanding System & ML Use with dbt Modeling
i125
1
320
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
7
1.6k
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
570
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
640
How STYLIGHT went responsive
nonsquared
98
5.4k
Done Done
chrislema
182
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Thoughts on Productivity
jonyablonski
69
4.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
A designer walks into a library…
pauljervisheath
205
24k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
430
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