35
OpsWorks テレビ連動システムを支える 株式会社バスキュール 濱崎 繭 × 株式会社スタジオ・アルカナ 吉田 紳一郎 AWSプロダクトシリーズ|よくわかるAWS OpsWorks March 26, 2015 @アマゾン目黒オフィス

TV連動システムを支えるOpsWorks

Embed Size (px)

Citation preview

OpsWorksテレビ連動システムを支える

株式会社バスキュール 濱崎 繭 × 株式会社スタジオ・アルカナ 吉田 紳一郎

AWSプロダクトシリーズ|よくわかるAWS OpsWorks

March 26, 2015 @アマゾン目黒オフィス

濱崎 繭

自己紹介すべてのテレビ局で汎用的に利用出来ることを想定したテレビ連動システムの

プラットフォーム「M.I.E.S」の設計・開発。

及び、バスキュールがこれまで関わったテレビ案件で、主にアプリーケーション

サーバの設計・開発を担当。

金曜ロードショー ヱヴァ新劇場版「ムーヴィシンクロナイザ」 日本テレビ → 設計・開発

クラブワールドカップ 「熱狂ファンタジスタ」 日本テレビ → 設計・開発

BLOODY TUBE BSジャパン → 設計・開発

THE LAST AWARD フジテレビ → 設計・開発

TOUCH WOWOW WOWOW → 設計

金曜カーソル WOWOW → 設計

MISSION #001 みんなでスペースインベーダー テレビ東京 → 設計・開発

ミッドナイト感謝祭!もってけダービー'14 春 TBS → 設計

人生終了クイズ 日本テレビ → 設計・開発 などなど

株式会社バスキュール

主な実績

M.I.E.S の紹介

2014年度のカンヌゴールド受賞!!

吉田 紳一郎

自己紹介フリーランス時代に、大規模開発の現場で、設計・ベンダー調整、フレームワーク

開発等の経験を積み、2010年よりスタジオ・アルカナにジョイン。

プロジェクトマネージャ・ITアーキテクト・サーバーサイド/フロントエンド/

インフラエンジニアとして活動。

しかし、本業はマネジメントである。

金曜カーソル WOWOW → インフラ構築・API実装

ミッドナイト感謝祭!もってけダービー'14 春 TBS → インフラ構築・API実装

イケメン美女と過ごす夜 日本テレビ → インフラ構築・API実装

マッチング・ラブ(2014) TBS → インフラ構築・API実装

ワーキングデッド BSジャパン → インフラ構築・API実装

のび太と空中散歩 Yahoo! → インフラ構築・API実装

金曜ロードショー ナイトミュージアム 日本テレビ → インフラ構築・API実装

株式会社スタジオ・アルカナ

主な実績

株式会社スタジオ・アルカナ

株式会社スタジオ・アルカナは、Web技術の領域でコンテンツ制作を行っている企業です。

Webデザイナー、HTMLコーダー、サーバーサイドエンジニア、フロントエンドエンジニア、

インフラエンジニア、ディレクターといった役割のスタッフが在席しており、Web制作を

ワンストップで提供していると共に、自社サービスの開発や運用も行っています。

自社サービス

スタジオ・アルカナの紹介

「SIGN -サイン-」

ブラウザで議事録を編集/共有できるサービス

https://svgn.biz/

「REPRE -リプレ-」

スマホの容量を使わず動画を撮影/共有できるサービス

http://repre.me/

事例紹介OpsWorks を用いた

※ ご注意 ※ 写真撮影 及び UST中継はご遠慮ください。

事例紹介

金曜カーソル@ WOWOW 2013年11月 〜 2014年9月まで 毎週金曜日放映

マッチング・ラブ@ TBS 2014年12月24日 0:53〜 放映

ミッドナイト感謝祭!もってけダービー’14春@ TBS 2014年3月29日 0:58〜 放映

ワーキングデッド 〜働くゾンビたち〜@ BSジャパン 2014年12月 4週にわたり放映

のび太と空中散歩@ Yahoo! 2014年8〜9月(この事例はテレビ連動ではありません)

※権利の都合上、登壇時に使用していた画像は省略しております

使いどころテレビ案件でのOpsWorks

※ ご注意 ※ 写真撮影 及び UST中継はご遠慮ください。

今回お話するスコープ

テレビ案件の特性

テレビ案件の特性

「特番」と「レギュラー」「特番」は基本的に1回限りの放送。

「レギュラー」は繰り返しのある放送。

特番 レギュラー

単発

毎週

テレビ案件の特性

特番 レギュラー

金曜カーソル

ワーキングデッド〜働くゾンビたち〜

マッチング・ラブ

ミッドナイト感謝祭!もってけダービー’14春

※権利の都合上、登壇時に使用していた画像は省略しております

パフォーマンス要件

パフォーマンス要件は番組によって様々

30,000人が参加する想定

50,000人が参加する想定

200,000人が参加する想定

1,000,000人が参加する想定

例えば、100万人想定の番組での目標値

リクエスト数 : 30,000リクエスト/秒(180万リクエスト/分)

レスポンス速度: 1秒未満

案件に応じて 数十〜数百台 のサーバの準備が必要

「特番」の運用イメージ

オフエア 放送中 オフエア

特番の場合、放映後は停止。

「レギュラー」の運用イメージ

オフエア 放送中 オフエア

レギュラーの場合、放映後はスケールイン。次回まで状態を維持。

OpsWorks の使いどころ①

「スケールアウト」と「スケールイン」の自動化

放映3時間前 放映1時間後

テレビ案件のサーバー環境

Amazon

S3

Amazon EC2

インスタンスELB

スタンバイ

bucket with

objects

マスター

インスタンスELB

nginx

ApachePHP

MySQL(master)

インスタンス インスタンス

MySQL(slave)

1つの開発環境

nginx

サーバー環境の準備

開発者1人につき、環境を1つ用意する

開発環境(フロントエンド開発のAさん用)

開発環境(フロントエンド開発のBさん用)

開発環境(サーバーサイド開発のCさん用)

開発環境(フロントエンド開発のDさん用)

開発環境(オペレーション開発のEさん用)

開発環境(・・・)

開発環境(・・・)

ステージング環境

負荷テスト環境

本番環境

ほとんど同じ環境だけど、結構な手間がかかる

Amazon S3

インスタンスELB

インスタンスELB

バケット

AWS OpsWorks stack

layers

layers

layers

instances

OpsWorks化

Apache

PHP

nginx

MySQL

nginx

AWS OpsWorks

stack

コピー!

コピー!

コピー!

らくちん!!

OpsWorks の使いどころ②

クローンで簡単に環境を複製することができる

環境ごとの差異は Stack の Custom JSON で制御。

その他の使いどころ

OpsWorks の使いどころ③

インスタンス

AWS OpsWorks stack

layers

jmeter-server

JMeter の分散負荷クライアントの用意

負荷テストクライアント環境負荷テスト実施時にjmeter-serverが準備されたサーバをたくさん用意する場合

OpsWorks の使いどころ④

スケールアウト前にEIPを割り振っておくことができる

EIPの割り当てができるスケールアウトしたサーバから、IP制限付きのシステムとの外部連携が必要な場合

まとめ

OpsWorks の使いどころ

「スケールアウト」と「スケールイン」の自動化!

開発環境の準備にかかる手間を減らす!

めっちゃいいですよ!!

Appendix

実案件のLayer設定紹介

PHP App Server(API Webサーバ)

MySQL × 16レイヤー

シャーディング8つ ×(Master+Slave)

Content Server(静的コンテンツ受け付け)

Front Server(API Web Cache)

Prompt

SSHログイン時のPS1にLeyer名を設定

デフォルトだとホスト名のみで分かりにくいため

実案件のInstances設定

PHP App Server:c3.4xlarge × 80台

MySQL:c3.4xlarge × 16台

Content Server:c3.2xlarge × 10台

おわりに

スタジオ・アルカナでは、

エンジニアを募集中!!

スタジオ・アルカナ 検索

お問い合わせフォームからお気軽にご連絡くださいませ。

フロントエンド(Angular/React/Sass/gulp)

サーバーサイド(Apache/MySQL/PHP/nginx)

インフラ(AWS/OpsWorks/Chef)

バスキュールでは、

サーバーサイドエンジニアを募集中!!

現在、バスキュール東京オフィスには3人のサーバーサイドエンジニアがいるのみ!

今なら、大きな裁量権 と 自由なチャレンジ があなたを待ってます!!!!

少しでも興味のある方は!

Wantedlyでバスキュールを検索「サーバーエンジニア募集」

のページで「話を聞きに行きたい」ボタンをポチっと★

バスキュールを検索「サーバーエンジニア募集」

のページで「話を聞きに行きたい」ボタンをポチっと★

Wantedlyでバスキュールを検索

「サーバーエンジニア募集」のページで「話を聞きに行きたい」ボタンをポチっと★