Developers.IO MeetUp 01 Massive Messaging Platform Deployment in a Week.
Upcoming SlideShare
Loading in...5
×
 

Developers.IO MeetUp 01 Massive Messaging Platform Deployment in a Week.

on

  • 4,839 views

 

Statistics

Views

Total Views
4,839
Views on SlideShare
2,991
Embed Views
1,848

Actions

Likes
25
Downloads
9
Comments
0

6 Embeds 1,848

http://dev.classmethod.jp 1170
http://www.totalsolution.biz 508
http://eventdots.jp 114
https://twitter.com 51
http://s.deeeki.com 4
http://www-stg.totalsolution.biz 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Developers.IO MeetUp 01 Massive Messaging Platform Deployment in a Week. Developers.IO MeetUp 01 Massive Messaging Platform Deployment in a Week. Presentation Transcript

  • 6リージョン
 同時75万接続の
 メッセージ配信基盤を
 3日で考えた話 CM re:Growth
 Developers.IO Meetup 01 横田聡 (@sato_shi) 2013/12/10 1 classmethod.jp
  • 自己紹介 • 氏名 : 横田聡(よこたさとし)# • ポジション : 
  代表取締役 兼 
  自称ソリューションアーキテクト# • 得意分野 : 営業トーク# • 好きなAWSサービス 
 # AWS SDK classmethod.jp
  • 月曜日 3 classmethod.jp
  • 案件概要 • ある月の月曜日# – 顧客「同時に60万人ぐらい参加する、
  メッセージ配信基盤を作れる?」# – 私「いつ使うんですか?」# – 顧客「来週、使いたい」# – ざわざわ# – 私「やらせていただきます」# – 社員「・・・・しゃ、しゃちょぅ」 4 classmethod.jp
  • 1台で60万プッシュ" できればいいよね? Client Mobile Client 5 classmethod.jp
  • 100台で60万プッシュ" できればいいよね? Mobile Client 6 classmethod.jp ・・ ・ Client
  • 1000台使えば" 余裕じゃん? Client Mobile Client 7 classmethod.jp
  • MutiAZで可用性確保? Az-1 Client Az-2 Mobile Client 8 classmethod.jp
  • 俺いけてるかもw 9
  • これで行こう!(かな) • 上限緩和申請# • 暖機申請# • ゴールデンAMI作成# • HTML5 + Socket.IO(ナウい)# • Node + Redis (ヤング)# • 札束を積んで1000台横に並べる 10 classmethod.jp
  • 火曜日 11 classmethod.jp
  • AWSチーム向けML # • 私「60万人にプッシュするインフラを
 設計したんだけど、だれかやらない?」# • 社員「いつまで?」# • 私「今週でしょ!・・・」# • 社員「何いっているかよくわからないw」 12 classmethod.jp
  • 水曜日 13 classmethod.jp
  • 社内から救世主参上!! • 大瀧「この仕組みじゃダメっすよ」# • 私「え・・・・」# • 大瀧「これがダメ1」# • 大瀧「これがダメ2」# • 大瀧「これがダメ3」# • 大瀧「これがダメ4」# • 私「お、おれも頑張るっ!!」 14 classmethod.jp
  • 木曜日 15 classmethod.jp
  • 課題発生(しそう) • 季節によってインスタンス数の確保問題# • 突発的なアクセスへのリミット制限# • ネットワークキャパシティ# • 障害発生時のフェイルオーバー待ち# • AZ障害時に片方に処理が集中して全部落ち?# • プッシュ配信安定する?# • 数百台サーバのログはどうする? 16 classmethod.jp
  • CFnのスタックロールバック • たくさんインスタンスを立てようとすると、 たまに失敗する。 17 classmethod.jp
  • CloudFront いじめすぎ • とりあえず、秒間60万アクセスすればいい んじゃないかな?www 18 classmethod.jp
  • 上限緩和申請の上限 • ELBのIPが1000個ぐらいあれば
 いけるんじゃ。。。 19 classmethod.jp
  • MultiAZで75万 • ギリギリのスペックでいけたとして、
 もし仮に片方のAZに障害が発生したら、# • ドミノ倒しが発生。。。 20
  • ElastiCacheのフェイルオーバー • 1つのメッセージも落としたくないから、 フェイルオーバー時に1秒しか待てな い。。。 21 classmethod.jp
  • 即座にプッシュ • でもユーザー体験を損ねたくないんだよね 22 classmethod.jp
  • DNSリゾルバキャッシュ • キャリアがIPをキャッシュしたら
 困るよね 23 classmethod.jp
  • プッシュ安定する? • 実際にやってみようーぜ!# • でも、Socket.IOのシミュレーションに JMeterだと同じ条件でできないよ?# • (Socket.IOとのハンドシェイクを行うプログラムを5000スレッド/台で
 150台のEC2を起動して安定性を検証) 24 classmethod.jp
  • 金曜日 25 classmethod.jp
  • ソリューション案 • CFnスタックは小分けにして# • ソースはUser-Dataを使ってS3から同期# • Route53で複数リージョンのELB分け# • Cross-Zoneロードバランシング# • Redisマルチマスターのdual配信# • 同じ環境を作って負荷試験 26 classmethod.jp
  • ジョナサン 27 classmethod.jp
  • 28 classmethod.jp
  • ファミレスをオフィス化する • • • • Macbook Air# Hyper Juice 2# Bose QuietComfort 20i# ScanSnap 29
  • 土曜日 30 classmethod.jp
  • 統合テスト • 動かない・・・俺たちはここまでか 31 classmethod.jp
  • 呼んだ? 32 classmethod.jp
  • 熊本から超絶アーキテクト参戦 • 私「熊本へコードを送る。」# • 有川「目視して修正コードを返す」# • 私「サーバで実行して出たエラーはこれ」# • 有川「エラー対応をする」x30回# • (彼はコードを1回も実行しませんでした…) 33
  • ログ • ログがほしい# • ログがほしい# • ログがほしい# • ログの統計がほしい# • ログの統計がほしい# • ログの統計がほしい 34
  • fluentd 35
  • Treasure Data 36
  • 負荷試験 " 8億レコードのログ • 少々複雑なHiveクエリーを投げる# • 35分で秒単位のアクセス集計# • (ここだけの話、その場でCTO太田さんに連絡してHiveの書き方を教えてもらったw。ご対 応頂きましてありがとうございました。この場を借りて厚く御礼を申し上げます。) 37
  • リアルタイムのログ • 番組中に把握# • (秒間数万の投票受付システムは別の機会にw。
 DynamoDBは神々のツールだよっ) 38
  • 日曜日 39 classmethod.jp
  • システム規模が決まる • お客様「6リージョン使おうか」# • 大瀧「かしこまりました」# • 横田「AWSのサイジングは最後でOK」 40 classmethod.jp
  • システム概要 バージニア us-east-1 オレゴン Client us-west-2 東京 ap-northeast-1 Mobile Client カリフォルニア ×# 750K アイルランド us-west-1 eu-west-1 シンガポール classmethod.jp ap-southeast-1 Publish app # on EC2
  • 月曜日 42 classmethod.jp
  • 本番当日 • 23:30帰宅# # • 娘の寝顔を見ながら
 笑顔で眠ることができました。 43 classmethod.jp
  • 学び 1リージョンを1スタックとして、# 設計して構築すれば、# AWSのリージョンが増えるたびに、# 同時接続数を増やし続けることができる 44 classmethod.jp
  • まとめ • 来年はマルチリージョン推し! 45 classmethod.jp
  • 無茶ぶりに対応ありがとう! お仕事は突然に# でも# 計画的に 46 classmethod.jp
  • 最後に • TwitterやFacebookで感想を述べて頂けま すと、励みになります。# • Developers.IOブログを見た方はイイねを 押して頂けると嬉しいです。# • 会場をお貸しいただいたSAP様大変お世話 になりました。ありがとうございました。 47