サーバーレス・アーキテクチャを 全面採用した動画配信サービス ·...

18
Copyright © 2017 All Rights Reserved. サーバーレス・アーキテクチャを 全面採用した動画配信サービス 株式会社毎日放送 経営戦略室・コンテンツビジネス局 濱口

Upload: others

Post on 27-May-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

サーバーレス・アーキテクチャを全面採用した動画配信サービス

株式会社毎日放送

経営戦略室・コンテンツビジネス局

濱口 伸

Page 2: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

MBS動画イズム

• 2015年3月– テレビ番組を、放送終了から1週間無料で視聴できる見逃し配信専用の『MBS動画イズム』オンデ

マンド配信サービスを開設

• 2016年8月– 有料動画配信サービスの開発プロジェクト発足

• 2016年9月– AWSサーバレス環境でのシステム開発スタート

• 2016年12月– 有料動画配信サービス『MBS動画イズム444』ローンチ

• 2017年7月– 動画配信事業の拡充に伴い、サービスブランドを『MBS動画イズム』に統合・全システムをAWS

サーバレス環境に移行開始

• 2017年9月– 『MBS動画イズム』リニューアル、AWSサーバレス環境で稼働開始– ライブ配信機能をローンチ

Page 3: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

動画配信サービスの置かれている環境

• 広告付配信

• 有料配信

• デバイスの充実

• 市場動向が急激に変化を続けており、コストミニマムで柔軟に対応できるシステムが求められている

Page 4: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

MBS動画イズム444を始めるにあたり

• 有料動画配信サービスで必要になる機能– 権利者との交渉、要求される機能– 番組毎にメタデータフォーマットがばらばら– コンテンツ管理、会員管理、動画の保護手法、決済処理

• ほとんどのシステムを一から作る必要がある• ネットサービスは普及までに時間が必要

– コスト的に継続できる仕組み– 世の中の流れに追随できる仕組み

Page 5: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

クラウドファーストで考えた

• ハードウェア投資を避ける

• 魅力あるサービスを継続して開発していくためには、運用負荷やコストを最小化

• 一からまったく新しいシステムを設計できるタイミング

Page 6: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

どのクラウドを採用するか

• MBSハッカソンでの経験– 新機能追加のスピード– 開発者コミュニティが充実

• AWSを使うことを条件に開発ベンダーを選定– EC2・RDS等を使ったオーソドックスな提案

• 常時仮想マシンを立ち上げることになるので時間課金

– Lambdaやマネージド・サービスを使う提案• 視聴者数の変化に対応しやすい• スモールスタートが可能

Page 7: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

せっかくなので

• 今までと違う運用でやってみたい– 月々のインフラ運用コストを削減するために『AWS

Lambda』を活用したサーバレスアーキテクチャを選択

– サーバーレスアーキテクチャではAmazon EC2が存在しないためインフラの運用コストが削減可能

– 不正侵⼊などのセキュリティリスクが減ることについても⼤きなメリットがある。

• 要は新しいもの好き

Page 8: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

MBS動画イズム444システム構成

利用プロダクト• Amazon S3• Amazon CloudFront• Amazon Simple Queue Service (SQS)• Amazon Route 53• AWS Lambda• Amazon API Gateway• Amazon EC2 Container Service• Amazon Cognito• AWS Key Management Service (KMS)• AWS WAF• AWS Step Functions

Page 9: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

⼤量アクセスに対応する仕組み

• ほとんどのWEBページを静的な表示でできるように設計されており、有料料会員以外はAmazon cloudfrontとAmazon S3のみでサイト表示を実現。

• フロントでできる動作はフロントで対応• AWS Lambdaをできるだけ使わないように設計• SNSシェア表示用のキャッシュデータをJSONデータなどから作成、2回目以降はキャッシュから表示されるように対応

Page 10: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

処理時間が長い命令に対する設計

Amazon S3のステージングから本番環境へのコピーや、Amazon S3のコンテンツのバックアップをAWS Lambda実行する場合には、マスターのAWS LambdaとWarkerのAWS Lambdaに分けて、マスターが各ワーカーのAWS Lambdaをキックして分散処理を行い処理時間の制限を回避する

Page 11: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

連携しているシステムに障害が発生した場合にサービスを止めない工夫

• 連携システム– cybozu kintone(CMS)

– sendgrid(メール送信)

– Brightcove VideoCloud(動画配信)

• ミッションクリティカルな処理は、キューイングして必ず実行できる仕組みを作ってる

• kintoneのようなAPIの制限数のあるものに対して、一定の単位に蓄えてAPIでまとめて処理を行う

Page 12: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

仕様をfixさせない中でのバックエンド開発

• 要件も決まってない中で三ヶ月でローンチする必要があったので途中⼊力項目なども何回も変更– リレーショナル・データベースだと⼤変– 画面の作り込みも工数がかかる

• 管理者画面(CMS)をkintoneで構築、AWS側のバックエンドシステムを制御– 画面開発、変更が容易– セキュリティもkintoneで– CMS

• 静的ファイルやサムネイル画像をAmazon S3にUPする仕組み• ステージング環境と本番環境を操作する仕組み

– コンテンツの公開制御もkintone側で制御

Page 13: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

モニタリングと障害通知

• 世界三箇所からのモニタリング• 東京• シンガポール• USイースト

• 監視間隔は5分(1分~5分で変更可能)• モニタリングしているシステム同士も相互に監視• AWS Lambdaベースで監視インフラコストを下げる

Page 14: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

不正アクセス対策

• 不正アクセスによるAWS Lambdaの実行回数制限などを狙った攻撃への防御対応

• 1分間隔で不正を検知し不正IPをブロック

Page 15: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

運用してみてわかったこと

• サービス上はほぼトラブルなし–障害は起こることを前提にステートレスに設計しておく• ネットワーク機能に不具合のあるコンテナがコードを実行しS3と正常にやり取りできないなど

–作りでカバーするのがサーバレスの基本

• 驚きの利用料金

Page 16: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

コスト比較

オンプレミス AWS(Amazon EC2ベース) AWS(Serverlessベース)

構築費用

ハウジング費用

CDN等ネットワーク費用

ハードウェア・AWS利用料

4年利用 / 7台+ネットワーク機器全体で54%減構築費用を除くと、オンプレミス比較でAmazon EC2ベースで75%減Serverlessベースで92%減

Page 17: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

動画イズムの構成だと

• AWS Lambdaを利用しているのは主に有料配信の認証周り– ⼊退会処理– 認証ログイン– 課金処理– 動画ID処理

• アクセス数が多い広告無料配信周りは課金へのインパクトは少ない

Page 18: サーバーレス・アーキテクチャを 全面採用した動画配信サービス · cloudfrontとAmazon S3のみでサイト表示を実現。 •フロントでできる動作はフロントで対応

Copyright © 2017 All Rights Reserved.

まとめ

• 動画配信サービスはまだまだチャレンジ分野

• 新規サービス開発を継続出来る体制が必要

• 運用するためのマンパワー、費用を低く押さえながらサービス分野を拡⼤

• サーバレス構成でシステムを構成、全てを自分で作ろうとせず、既にあるサービスは徹底的に利用