SlideShare a Scribd company logo
1 of 23
Download to read offline
classmethod.jp
⼤大晦⽇日のメッセージ配信の裏裏側
「テレビ連動サーバー」勉強会
1
2015/01/14 クラスメソッド株式会社  能登  諭
classmethod.jp
自己紹介
• 氏名:能登 諭(のと さとし)!
• Twitter:@n3104!
• 所属:クラスメソッド株式会社!
• 得意分野:Hadoop!
• 好きなAWSサービス:EMR
2
classmethod.jp
クラスメソッド株式会社
• 事業:AWSとiOS/Android開発!
• 設立:2004年!
• オフィス:秋葉原、札幌!
• 体制:約70名!
• ブログ:Developers.IO!
• http://dev.classmethod.jp/
3
本日ご紹介する事例
4
classmethod.jp
本日ご紹介する内容
• マルチリージョン対応!
• スケーラビリティー!
• 当日運用
5
classmethod.jp
6
マルチリージョン対応
classmethod.jp
マルチリージョン対応
• 前提!
• リージョン障害を想定!
• 対策!
• 構築作業の自動化!
• リージョン間でのデータ依存をなくす!
• DNSキャッシュの回避
7
classmethod.jp
構築作業の自動化
• CloudFormationを利用!
• 手動の構築による作業ミスをなくす!
• 作業時間の短縮!
• テスト環境も本番環境と同一の環境を作れ
る
8
classmethod.jp
リージョン間でのデータ依存をなくす
• リージョン間に依存関係があるとリージョン
障害時に問題となる。!
• まず各リージョン内の構成は全く同じにして、
リージョン単位で独立して稼働できる構成と
した。!
• 次に複数リージョンを同時に利用できるよう
に各リージョンに対するAPIサーバーを束ねる
プロキシサーバーを用意する構成とした。
9
classmethod.jp
DNSキャッシュの回避
• 配信サーバーの名前を複数用意してアプリケー
ション側でランダムに利用してアクセスしても
らうようにした。!
• リージョンA:a.example.com !
• リージョンB:b.example.com !
• リージョンC:c.example.com
10
classmethod.jp
11
スケーラビリティー
classmethod.jp
スケーラビリティー
• 前提!
• クライアントが数十万になることが予想さ
れる!
• 対策!
• 配信サーバーをスケールアウト可能にする!
• SNSの利用!
• DynamoDBの利用
12
classmethod.jp
配信サーバーをスケールアウト可能にする
• 実際にどの程度のアクセス数になるかはわか
らないためスケールアウト可能にすることが
必要になる。!
• 1台辺り一定数のクライアントを接続できるよ
うにして、アクセス数に応じて配信サーバー
を増やせば対応できるようにした。
13
classmethod.jp
SNSの利用
• スケーラブルかつ信頼性が高い。!
• マネジメントサービスでありメンテナンス不
要になる。!
• メッセージが複数回送信されることがあるた
め、アプリケーション側で同じ内容の場合は
読み捨てる実装が必要になる。
14
classmethod.jp
DynamoDBの利用
• スケーラブルかつ信頼性が高い。!
• マネジメントサービスでありメンテナンス不
要になる。!
• 統計情報はユーザー単位ではなく配信サーバー
単位とし、かつ一定間隔で書き込むことで
DynamoDBのIOPSを軽減した。
15
classmethod.jp
16
当日運用
classmethod.jp
当日運用
• 前提!
• 長くて数時間しかない!
• 対策!
• その場で調査しない!
• リソースは余裕を持たせる!
• 運用スクリプトの作成!
• Zabbixによる監視
17
classmethod.jp
その場で調査しない
• 正確には調査する時間がない。調査している
間に番組が終わってしまう。!
• 予め障害シナリオと対応パターンを整理する。
18
classmethod.jp
リソースは余裕を持たせる
• リソースが足りないと企画として成り立たな
い。!
• AWS利用費は数時間分なので割り切って安全
率を高めにする。
19
classmethod.jp
運用スクリプトの作成
• 数が多いため手動だと間に合わない。!
• 手作業だと操作ミスがありえる。!
• 手作業が向いている作業は手作業のままとす
る。
20
classmethod.jp
Zabbixによる監視
• 台数が多く、かつ、システムの特性に合わせ
た監視項目が多数あり、何からの監視システ
ムがなければ障害検知が間に合わない。!
• 障害箇所が一目で分かるように監視項目の整
理と閾値の調整を行う。!
• リージョン単位で状況が分かるような監視設
定とする。
21
classmethod.jp
22
ご静聴ありがとうございました

m(_ _)m
大晦日のメッセージ配信の裏側

More Related Content

Viewers also liked

Promcon2016
Promcon2016Promcon2016
Promcon2016wyukawa
 
ブロックチェーンの基本構造
ブロックチェーンの基本構造ブロックチェーンの基本構造
ブロックチェーンの基本構造Soichiro Takagi
 
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...Tokuhiro Matsuno
 
Prometheus casual talk1
Prometheus casual talk1Prometheus casual talk1
Prometheus casual talk1wyukawa
 
Prometheus – a next-gen Monitoring System
Prometheus – a next-gen Monitoring SystemPrometheus – a next-gen Monitoring System
Prometheus – a next-gen Monitoring SystemFabian Reinartz
 
Fintechベンチャーがもたらす日本市場への示唆
Fintechベンチャーがもたらす日本市場への示唆Fintechベンチャーがもたらす日本市場への示唆
Fintechベンチャーがもたらす日本市場への示唆Toshio Taki
 
Monitoring Kafka w/ Prometheus
Monitoring Kafka w/ PrometheusMonitoring Kafka w/ Prometheus
Monitoring Kafka w/ Prometheuskawamuray
 
ブロックチェーン技術の基本と応用の可能性
ブロックチェーン技術の基本と応用の可能性ブロックチェーン技術の基本と応用の可能性
ブロックチェーン技術の基本と応用の可能性Kenji Saito
 
5分でわかるブロックチェーンの基本的な仕組み
5分でわかるブロックチェーンの基本的な仕組み5分でわかるブロックチェーンの基本的な仕組み
5分でわかるブロックチェーンの基本的な仕組みRyo Shimamura
 
仮想通貨のブロックチェイン技術によるFinTech
仮想通貨のブロックチェイン技術によるFinTech仮想通貨のブロックチェイン技術によるFinTech
仮想通貨のブロックチェイン技術によるFinTechKindai University
 

Viewers also liked (12)

Promcon2016
Promcon2016Promcon2016
Promcon2016
 
ブロックチェーンの基本構造
ブロックチェーンの基本構造ブロックチェーンの基本構造
ブロックチェーンの基本構造
 
Prometheus on AWS
Prometheus on AWSPrometheus on AWS
Prometheus on AWS
 
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
 
Prometheus casual talk1
Prometheus casual talk1Prometheus casual talk1
Prometheus casual talk1
 
Prometheus – a next-gen Monitoring System
Prometheus – a next-gen Monitoring SystemPrometheus – a next-gen Monitoring System
Prometheus – a next-gen Monitoring System
 
Fintechベンチャーがもたらす日本市場への示唆
Fintechベンチャーがもたらす日本市場への示唆Fintechベンチャーがもたらす日本市場への示唆
Fintechベンチャーがもたらす日本市場への示唆
 
Monitoring Kafka w/ Prometheus
Monitoring Kafka w/ PrometheusMonitoring Kafka w/ Prometheus
Monitoring Kafka w/ Prometheus
 
ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)
 
ブロックチェーン技術の基本と応用の可能性
ブロックチェーン技術の基本と応用の可能性ブロックチェーン技術の基本と応用の可能性
ブロックチェーン技術の基本と応用の可能性
 
5分でわかるブロックチェーンの基本的な仕組み
5分でわかるブロックチェーンの基本的な仕組み5分でわかるブロックチェーンの基本的な仕組み
5分でわかるブロックチェーンの基本的な仕組み
 
仮想通貨のブロックチェイン技術によるFinTech
仮想通貨のブロックチェイン技術によるFinTech仮想通貨のブロックチェイン技術によるFinTech
仮想通貨のブロックチェイン技術によるFinTech
 

Similar to 大晦日のメッセージ配信の裏側

DevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニックDevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニックYu Kitazume
 
モバイルファースト時代のクラウドネイティブアーキテクチャ JAWS DAYS 2015
モバイルファースト時代のクラウドネイティブアーキテクチャ JAWS DAYS 2015モバイルファースト時代のクラウドネイティブアーキテクチャ JAWS DAYS 2015
モバイルファースト時代のクラウドネイティブアーキテクチャ JAWS DAYS 2015Rikitake Oohashi
 
モバイルアプリ向けAWSネイティブアーキテクチャ
モバイルアプリ向けAWSネイティブアーキテクチャモバイルアプリ向けAWSネイティブアーキテクチャ
モバイルアプリ向けAWSネイティブアーキテクチャRikitake Oohashi
 
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜Koichi ITO
 
[沖縄レキサスセミナー]小さな会社のゲームチェンジ
[沖縄レキサスセミナー]小さな会社のゲームチェンジ[沖縄レキサスセミナー]小さな会社のゲームチェンジ
[沖縄レキサスセミナー]小さな会社のゲームチェンジHiromichi Koga
 
How Would You Like Component Management System
How Would You Like Component Management SystemHow Would You Like Component Management System
How Would You Like Component Management SystemHidetaka Okamoto
 
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osakaサイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 OsakaYuki Okada
 
[Jawsug高知第2回]WordPress網元AMIの最新情報など
[Jawsug高知第2回]WordPress網元AMIの最新情報など[Jawsug高知第2回]WordPress網元AMIの最新情報など
[Jawsug高知第2回]WordPress網元AMIの最新情報などHiromichi Koga
 
[大分]網元起動隊
[大分]網元起動隊[大分]網元起動隊
[大分]網元起動隊Hiromichi Koga
 
Team Foundation Serivceを使ってみる
Team Foundation Serivceを使ってみるTeam Foundation Serivceを使ってみる
Team Foundation Serivceを使ってみるYou&I
 
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Yoshito Tabuchi
 
Amazon Machine Learning概要
Amazon Machine Learning概要Amazon Machine Learning概要
Amazon Machine Learning概要Satoshi Noto
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていくRyo Mitoma
 
[JAWS-UG三都物語] 網元起動隊 大坂夏の陣
[JAWS-UG三都物語] 網元起動隊 大坂夏の陣[JAWS-UG三都物語] 網元起動隊 大坂夏の陣
[JAWS-UG三都物語] 網元起動隊 大坂夏の陣Hiromichi Koga
 
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazakia-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in OkazakiEtsushi Ishii
 
OpenStack Days Tokyo 2014のプレゼンテーション資料(モーフ・ラボ & アセアン・ラボ)
OpenStack Days Tokyo 2014のプレゼンテーション資料(モーフ・ラボ & アセアン・ラボ)OpenStack Days Tokyo 2014のプレゼンテーション資料(モーフ・ラボ & アセアン・ラボ)
OpenStack Days Tokyo 2014のプレゼンテーション資料(モーフ・ラボ & アセアン・ラボ)Satoshi Konno
 
[青森]網元起動隊
[青森]網元起動隊[青森]網元起動隊
[青森]網元起動隊Hiromichi Koga
 
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部Masahiro Wakame
 

Similar to 大晦日のメッセージ配信の裏側 (20)

DevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニックDevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニック
 
モバイルファースト時代のクラウドネイティブアーキテクチャ JAWS DAYS 2015
モバイルファースト時代のクラウドネイティブアーキテクチャ JAWS DAYS 2015モバイルファースト時代のクラウドネイティブアーキテクチャ JAWS DAYS 2015
モバイルファースト時代のクラウドネイティブアーキテクチャ JAWS DAYS 2015
 
モバイルアプリ向けAWSネイティブアーキテクチャ
モバイルアプリ向けAWSネイティブアーキテクチャモバイルアプリ向けAWSネイティブアーキテクチャ
モバイルアプリ向けAWSネイティブアーキテクチャ
 
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
 
[沖縄レキサスセミナー]小さな会社のゲームチェンジ
[沖縄レキサスセミナー]小さな会社のゲームチェンジ[沖縄レキサスセミナー]小さな会社のゲームチェンジ
[沖縄レキサスセミナー]小さな会社のゲームチェンジ
 
How Would You Like Component Management System
How Would You Like Component Management SystemHow Would You Like Component Management System
How Would You Like Component Management System
 
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osakaサイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
 
Dev opschef
Dev opschefDev opschef
Dev opschef
 
[Jawsug高知第2回]WordPress網元AMIの最新情報など
[Jawsug高知第2回]WordPress網元AMIの最新情報など[Jawsug高知第2回]WordPress網元AMIの最新情報など
[Jawsug高知第2回]WordPress網元AMIの最新情報など
 
[大分]網元起動隊
[大分]網元起動隊[大分]網元起動隊
[大分]網元起動隊
 
Team Foundation Serivceを使ってみる
Team Foundation Serivceを使ってみるTeam Foundation Serivceを使ってみる
Team Foundation Serivceを使ってみる
 
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
 
Amazon Machine Learning概要
Amazon Machine Learning概要Amazon Machine Learning概要
Amazon Machine Learning概要
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
ChefとOpsWorksで EC2 楽チンクッキング!
ChefとOpsWorksで EC2 楽チンクッキング!ChefとOpsWorksで EC2 楽チンクッキング!
ChefとOpsWorksで EC2 楽チンクッキング!
 
[JAWS-UG三都物語] 網元起動隊 大坂夏の陣
[JAWS-UG三都物語] 網元起動隊 大坂夏の陣[JAWS-UG三都物語] 網元起動隊 大坂夏の陣
[JAWS-UG三都物語] 網元起動隊 大坂夏の陣
 
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazakia-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
 
OpenStack Days Tokyo 2014のプレゼンテーション資料(モーフ・ラボ & アセアン・ラボ)
OpenStack Days Tokyo 2014のプレゼンテーション資料(モーフ・ラボ & アセアン・ラボ)OpenStack Days Tokyo 2014のプレゼンテーション資料(モーフ・ラボ & アセアン・ラボ)
OpenStack Days Tokyo 2014のプレゼンテーション資料(モーフ・ラボ & アセアン・ラボ)
 
[青森]網元起動隊
[青森]網元起動隊[青森]網元起動隊
[青森]網元起動隊
 
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
 

More from Satoshi Noto

このサービスは俺に聞け勉強会(機械学習)
このサービスは俺に聞け勉強会(機械学習)このサービスは俺に聞け勉強会(機械学習)
このサービスは俺に聞け勉強会(機械学習)Satoshi Noto
 
読書会のすすめ
読書会のすすめ読書会のすすめ
読書会のすすめSatoshi Noto
 
データ分析チームの振り返り
データ分析チームの振り返りデータ分析チームの振り返り
データ分析チームの振り返りSatoshi Noto
 
Tez on EMRを試してみた
Tez on EMRを試してみたTez on EMRを試してみた
Tez on EMRを試してみたSatoshi Noto
 
Fullbokをがっつり使ってみた
Fullbokをがっつり使ってみたFullbokをがっつり使ってみた
Fullbokをがっつり使ってみたSatoshi Noto
 
Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Satoshi Noto
 
Hiveハンズオン
HiveハンズオンHiveハンズオン
HiveハンズオンSatoshi Noto
 
MapReduceプログラミング入門
MapReduceプログラミング入門MapReduceプログラミング入門
MapReduceプログラミング入門Satoshi Noto
 
Hadoop概要説明
Hadoop概要説明Hadoop概要説明
Hadoop概要説明Satoshi Noto
 
ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中Satoshi Noto
 

More from Satoshi Noto (11)

このサービスは俺に聞け勉強会(機械学習)
このサービスは俺に聞け勉強会(機械学習)このサービスは俺に聞け勉強会(機械学習)
このサービスは俺に聞け勉強会(機械学習)
 
読書会のすすめ
読書会のすすめ読書会のすすめ
読書会のすすめ
 
データ分析チームの振り返り
データ分析チームの振り返りデータ分析チームの振り返り
データ分析チームの振り返り
 
Tez on EMRを試してみた
Tez on EMRを試してみたTez on EMRを試してみた
Tez on EMRを試してみた
 
Fullbokをがっつり使ってみた
Fullbokをがっつり使ってみたFullbokをがっつり使ってみた
Fullbokをがっつり使ってみた
 
Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?
 
Hiveハンズオン
HiveハンズオンHiveハンズオン
Hiveハンズオン
 
MapReduceプログラミング入門
MapReduceプログラミング入門MapReduceプログラミング入門
MapReduceプログラミング入門
 
Hadoop概要説明
Hadoop概要説明Hadoop概要説明
Hadoop概要説明
 
MapReduce入門
MapReduce入門MapReduce入門
MapReduce入門
 
ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中
 

大晦日のメッセージ配信の裏側