Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,987 views

Published on

大晦日のメッセージ配信システムを構築、運用した際に気をつけた点などについて書いてあります。

Published in: Software
  • Be the first to comment

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

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

×