アマゾン ウェブ サービス ジャパンは6月1日から3日間にわたり、「AWS Summit Tokyo 2016」を開催した。同イベントは、100を超えるセッションでAWSクラウドの最新動向が紹介される年次カンファレンス。本稿では、3日目に開催された事例セッション「ドワンゴがAWSを使ってメディアストレージ基盤を開発してみた」の模様をお届けする。
効率の良い開発に必要なこと
講演に登壇したのは、ドワンゴ フロンティア開発部第二セクションの坂井 薫平氏だ。フロンティア開発部とは、「新規プロダクトをガンガン作ってリリースしていく部署」(坂井氏)であり、2015年2月に発足して以来、同年10月にはプレゼン共有サービス「ニコナレ」、2016年4月には角川ドワンゴ学園が経営するネット通信制高校「N高等学校」関連システムと次々にリリースしてきた。
|
|
|
ドワンゴ フロンティア開発部第二セクション 坂井 薫平氏 |
では、こうした新規プロダクトを効率良く開発していくためには、何が大切なのだろうか。
そのポイントとして、坂井氏は「車輪の再発明を防ぐこと」を挙げる。ここで言う「車輪」とは、サービスを構成する処理のうち、汎用性の高いもののこと。どのサービスでも使うような処理(車輪)は、チームを問わず使えるように共通化・基盤化しておこうというわけだ。
その一環として坂井氏が開発したのが、「メディアストレージ基盤」である。ドワンゴのサービスでは、ユーザーが画像や動画といったメディアファイルをサーバにアップロードし、サービス利用者がそれを視聴するタイプのものが多い。だからと言って、サービスごとに毎回、アップロードや配信の仕組みを開発するのは、それこそ”車輪の再発明”である。そこで、「画像」「PDF」「音声」「動画」の4種類のファイルを対象に、アップロード・変換処理・配信を一手に引き受けるのがメディアストレージ基盤というわけだ。
メディアストレージ基盤の仕組み
メディアストレージ基盤の動作フローはこうである。ユーザーが利用したいサービス(ニコナレなど)にファイルをアップロードしようとすると、裏で「アップロード権限発行リクエスト」が実行され、サービス側がメディアストレージ基盤に「アップロード権限の払い出し」を要求し、メディアストレージ基盤へファイルをアップロードできるようになる。
メディアストレージ基盤にファイルがアップロードされると、バリデーションと変換を実行。配信用のURLやメタデータをサービス側に通知するので、サービス側はその配信用URLを使ってサービス利用者へコンテンツを提供するという流れだ。
このメディアストレージ基盤内の独自概念の1つが、「ジョブ」である。これは、アップロード権限の発行時に内部的に作成されるファイル変換・配信処理用の情報群のことで、NoSQLデータベース「Amazon DynamoDB」によって管理される。メディアストレージ基盤での全ての処理は、このジョブという概念をベースにして行われるという。
それぞれの処理について、詳しく見ていこう。
アップロード権限の払い出しについては、アップロードユーザーから利用サービスに権限発行の要求が行われると、APIサーバへ一時認証情報のリクエストが行われ、アップロード用Amazon S3に対するPutObject権限を付与する一時認証情報の払い出しを行う。これを受け、アップロードユーザーからAmazon S3にファイルがアップロードされるという流れだ。
Amazon S3へのアップロード処理は、ファイルの種類によって少し異なる。例えば、画像ファイルのアップロードが行われると、アップロード用Amazon S3はAWS Lambdaを起動し、Lambda上で画像ファイルのアップロードイベントに対するバリデーションが行われる。そして問題がなければ、配信用Amazon S3にコピーされる。
PDFの場合は、途中まで画像と同じプロセスだが、Lambdaがバリデーションを行った後はAmazon Simple Queue Service(SQS)にメッセージをpush。SQSを監視するバッチサーバがメッセージを取り出し、改めてPDFのバリデーションを行う。問題がなければ、バッチサーバ上でPDFを画像に切り分け、その画像群と元のPDFファイルを配信用Amazon S3にアップロードする。
音声ファイルについては、バッチサーバでのバリデーションまでは音声ファイルと同じ流れだが、通過後にメディア変換サービス「Amazon Elastic Transcoder」の仕組みに従ってジョブを生成する点が異なる。Elastic Transcoderによるエンコード完了次第、配信用Amazon S3にアップロードされるという流れだ。
なお、動画ファイルは音声ファイルとほぼ同様の扱いとなる。
関連リンク
ダウンロードBOXに入れる
記事をダウンロードBOXに追加します。よろしいですか?
ブックマーク
記事をブックマークに追加します。よろしいですか?
会員ログイン
人気ランキング
-
ドコモが開発した駐車場版Uber、
目標は「自動運転との融合」 -
瀬戸内カレンに託した
ソフトバンクとオラクルの想い -
パルコのIoTが捕らえた顧客行動のリアル
AWS Summit Tokyo -
4
MS ゆりか先生が教えるWindows 10 セキュリティ [3] パスワード不要が実現する?
-
5
1時間に971個のマルウェアが侵入!?
ユーザー任せにしない出口対策 [PR] -
6
[講演資料提供]Google アナリティクス分析&活用 - 小川卓氏のWebサイト改善手順
-
7
わずか16MBのOSで世界を守る - 次世代
FWのクラビスター CEO インタビュー -
8
[セミナー]ドローンは社会をどう変えるのか? ~今そして未来展望~
-
9
KDDIが考える、
VR普及への足がかりとは? -
10
[セミナー]徳丸氏講演 - 企業の炎上事例に学ぶ! Twitter/Facebookの運用方法
-
2016年6月14日(火) 19:30~20:30
IoTのトップランナー ウフル 八子氏が語る! DeCIDE ~日本IoTの課題と再創造への道~ -
2016年6月29日(水) 19:30~21:00
ドローンは社会をどう変えるのか?~今そして未来展望~ -
2016年6月29日(水) 14:00~16:40
IoT時代本格始動! 超高速並列分散処理を利用したビッグデータ活用セミナー -
2016年6月30日(木) 13:00~16:10
大学経営再考セミナー ~志願者増に向けた告知策と教育施策~ -
2016年7月1日(金) 19:30~20:30
企業の炎上事例に学ぶ ! Twitter/Facebookの運用方法
今注目のIT用語の意味を事典でチェック!