サーバレスアプリケーションの監視・運用

62340514ee3033d54d79c9e7a3db68d5?s=47 Kazutomo Niwa
September 29, 2018

 サーバレスアプリケーションの監視・運用

ServerlessConf Tokyo 2018 の登壇資料です。

https://gs2.io/

62340514ee3033d54d79c9e7a3db68d5?s=128

Kazutomo Niwa

September 29, 2018
Tweet

Transcript

  1. サーバレスアプリケーションの監視・運⽤ Game Server Services 株式会社 代表取締役社⻑CEO 丹⽻ ⼀智

  2. ⾃⼰紹介 Game Server Services, Inc. https://gs2.io 丹⽻ ⼀智(にわ かずとも) Game

    Server Services 株式会社 代表取締役社⻑ CEO 2006年 株式会社セガ⼊社 携帯電話向けゲームおよびサーバ開発業務に従事 2009年 任天堂株式会社⼊社 ニンテンドー3DSのOS/SDK開発や、 ゲームサーバの開発・運⽤業務に従事 2016年 Game Server Services 株式会社 設⽴
  3. Game Server Services とは? フルサーバレスアーキテクチャ(FaaS)でモバイルゲーム向けの汎⽤ ゲームサーバを開発・提供。 各社がゲームサーバを開発している現状に疑問を感じ、あらゆるゲー ムに使える汎⽤ゲームサーバを提供することをミッションとし、ゲー ムサーバ界の Unity

    を⽬指して開発中。 Game Server Services, Inc. https://gs2.io next
  4. Game Server Services とは? 設⽴2年というヒヨッコスタートアップですが、今年3⽉に DeNA / KLab らから資⾦調達を実施。 Game

    Server Services, Inc. https://gs2.io 主な採⽤事例 私、茄⼦で⾶びます(usaya株式会社) Google Play にてシミュレーションカテゴリでどうぶつの森に続く2位 サーバレスアーキテクチャのおかげで無障害でサービス提供中
  5. サーバレスアプリの監視とは? Game Server Services, Inc. https://gs2.io

  6. 従来のインフラ監視 Game Server Services, Inc. https://gs2.io Load Average CPU Usage

    Memory Usage Disk IO :
  7. サーバレスでは気にしなくていいこと サーバレスアーキテクチャにおいては CPU使⽤率やメモリ使⽤ 率は監視する必要がありません。 Game Server Services, Inc. https://gs2.io Load

    Average CPU Usage Memory Usage Disk IO :
  8. じゃ、何もしなくていい? 何もしなくていいか。というとそんなことはありません。 サーバーレスでもサービスがちゃんと提供出来ているのかは監視 する必要があります。 または、意図しない状態が発⽣したときに、フルマネージドサー ビスの問題なのか、⾃分のアプリケーションの問題なのか切り分 けられる指標が必要です。 Game Server Services,

    Inc. https://gs2.io サービスは正しく動いてる? どのコンポーネントが異常?
  9. 必要となる監視 サービス監視 サービスが正しく提供出来ているか判断する指標 コンポーネント監視 サービスを構成するコンポーネントが 正しく動作しているか判断出来る指標 Game Server Services, Inc.

    https://gs2.io
  10. サービス監視 Game Server Services, Inc. https://gs2.io 例: Steam では 同時ログイン数を

    記録している ログイン数が急激に減少 ↓ 何らかの異常が発⽣
  11. コンポーネント監視 キャパシティ管理または上限緩和の必要な項⽬ ・Lambda の同時実⾏数 ・API Gateway への Request/sec ・DynamoDB のキャパシティ使⽤率

    障害発⽣時に障害点を特定するための項⽬ ・API Gateway の応答時間 ・Lambda の応答時間 ・DynamoDB の応答時間 Game Server Services, Inc. https://gs2.io
  12. GS2 ではどうしているか? Game Server Services, Inc. https://gs2.io

  13. 課題 Game Server Services, Inc. https://gs2.io GS2 は AWS/GCP のハイブリッド構成

    それぞれ CloudWatch / Stackdriver とツールが異なる
  14. 課題 Game Server Services, Inc. https://gs2.io AWS /GCP で提供される 視覚化⽅法が

    ”折れ線グラフ” 中⼼で メトリックによっては不適切
  15. どうしているか Game Server Services, Inc. https://gs2.io GS2 では を採⽤ ⼤型ディスプレイに表⽰して

    いつでも⾒られる状態に
  16. Game Server Services, Inc. https://gs2.io

  17. Game Server Services, Inc. https://gs2.io

  18. ダッシュボードの構成 Game Server Services, Inc. https://gs2.io

  19. Game Server Services, Inc. https://gs2.io

  20. 基本メトリック • 秒間アクセス数 • サービス利⽤者起因のエラー数 • GS2起因のエラー数 • 想定外の例外発⽣数 •

    Google App Engine のクォーターリミット到達数 Game Server Services, Inc. https://gs2.io
  21. Game Server Services, Inc. https://gs2.io

  22. サービスパフォーマンス • API Gateway がレスポンスした時間 • Lambda がレスポンスした時間 • Lambdaで実⾏するコードがレスポンスした時間

    • 認証/認可検証にかかった時間 • DynamoDB のIOにかかった時間 Game Server Services, Inc. https://gs2.io
  23. Game Server Services, Inc. https://gs2.io

  24. キャパシティ監視 • DynamoDB で最もキャパシティを消費しているテーブルの使⽤ 率 • Lambda の同時実⾏数のアカウント上限値に対する使⽤率 • Lambda/DynamoDB

    のスロットル発⽣回数 Game Server Services, Inc. https://gs2.io
  25. Game Server Services, Inc. https://gs2.io

  26. アラームの状態 • アラームが全てOKな状態か? • アラームが出てるとすればどのカテゴリか? Game Server Services, Inc. https://gs2.io

  27. Game Server Services, Inc. https://gs2.io

  28. 直近4時間のAPIコール数 • 点線は1週間前の同時間帯のグラフ • 直線は直近4時間におけるトレンド • 今現在どの程度のアクセスがあるかを可視化 Game Server Services,

    Inc. https://gs2.io
  29. Game Server Services, Inc. https://gs2.io

  30. 直近4時間のAPIランキング • 利⽤されているマイクロサービスランキング • レスポンスタイムのワーストランキング Game Server Services, Inc. https://gs2.io

  31. Game Server Services, Inc. https://gs2.io

  32. Game Server Services, Inc. https://gs2.io 直近1週間のAPIコール数 • 点線は1週間前の同時間帯のグラフ • 直線は直近1週間におけるトレンド

    • 前⽇・先週と⽐べてどのくらい変化があるかを可視化
  33. Game Server Services, Inc. https://gs2.io

  34. Game Server Services, Inc. https://gs2.io • 点線は1ヶ⽉前の同時間帯のグラフ • 直線は直近1ヶ⽉間におけるトレンド •

    跳ね上がっているのはクライアントの実装ミスによってビジー ループが発⽣していた箇所。Datadog があったおかげですぐに 検出して対応が出来た 直近1ヶ⽉間のAPIコール数
  35. Game Server Services, Inc. https://gs2.io

  36. Game Server Services, Inc. https://gs2.io • サービスの提供にかかっているインフラコストの可視化 • 異常な増え⽅をしていないかを視覚化 インフラコスト

  37. Game Server Services, Inc. https://gs2.io

  38. Game Server Services, Inc. https://gs2.io • サービス提供による売り上げの視覚化 売り上げ

  39. ダッシュボードの作り⽅ Game Server Services, Inc. https://gs2.io

  40. プラグインのインストール • AWS や GCP、Slack といったメジャーなプロダクトには⼤体プ ラグインが存在する Game Server Services,

    Inc. https://gs2.io
  41. Game Server Services, Inc. https://gs2.io プラグインの設定 • AWS アカウントと AssumeRole

    に使⽤するロールの設定 • どのサービスのメトリックを収集するかを設定 • 収集したメトリックに付与するタグを設定
  42. Game Server Services, Inc. https://gs2.io ダッシュボードの作成 • ダッシュボードメニューから新規作成を選択

  43. Game Server Services, Inc. https://gs2.io コンポーネントの追加 • ドラッグ&ドロップでコンポーネントを追加 • コンポーネントには種類がある

    • 折れ線グラフ • 積み上げグラフ • 数値 • ランキング • ログ :
  44. Game Server Services, Inc. https://gs2.io メトリックの設定 • レンダリングするデータソースを設定 • Select

    や GroupBy といった設定も可能 • 移動平均やトレンドといったフィルタを適⽤することも可能
  45. 異常を検出するには Game Server Services, Inc. https://gs2.io

  46. Game Server Services, Inc. https://gs2.io メトリックの設定 • 値の範囲でダッシュボードに表⽰する⾊を設定可能 • 異常値になったときには⾊が変わるようにすることで、すぐに

    異常であることを認識出来るように
  47. Game Server Services, Inc. https://gs2.io アラームの設定 • 値が異常値になった時にメールやSlackに通知可能 • CloudWatch

    や Stackdriver にも同様の機能があるが、データを 加⼯したり、多くの指標を使ってアラームを設定可能
  48. 異常を調査するには Game Server Services, Inc. https://gs2.io

  49. 想定外の例外が検出!!! Game Server Services, Inc. https://gs2.io ログが⾒たい…

  50. 想定外の例外が検出!!! Game Server Services, Inc. https://gs2.io どのマイクロサービスで起こってるんだ? このマイクロサービスのアカウントどれだっけ?

  51. ログが… Game Server Services, Inc. https://gs2.io Lambda が実⾏されたコンテナ毎に分かれてる

  52. ログが… Game Server Services, Inc. https://gs2.io もぅマヂ無理。 リスカしょ・・・

  53. Datadog Logs Game Server Services, Inc. https://gs2.io 全てのアカウント/プロジェクトのログを集約 フィルタリングも爆速

  54. Game Server Services, Inc. https://gs2.io Datadog Logs マイクロサービスで絞り込んだり

  55. Game Server Services, Inc. https://gs2.io Datadog Logs Lambda ファンクションで絞り込んだり

  56. Game Server Services, Inc. https://gs2.io Datadog Logs レスポンス時のステータスコードで絞り込んだり

  57. Game Server Services, Inc. https://gs2.io Datadog Logs ⽬的のログを⾒つけたら レコードを選ぶと詳細が⾒られる

  58. Game Server Services, Inc. https://gs2.io Datadog Logs リクエストの内容や レスポンスの内容が⾒られる

  59. ダッシュボードとの連携 Game Server Services, Inc. https://gs2.io ダッシュボードからログに⾶ぶことも可能

  60. ログの取り込み⽅ Game Server Services, Inc. https://gs2.io TCPでDatadogのサーバに繋いで流し込む 以上!

  61. ピタゴラ装置を もっと視覚化してほしい… Game Server Services, Inc. https://gs2.io

  62. Game Server Services, Inc. https://gs2.io サービスマップ • ファンクションの関係を視覚化 • 類似サービスの

    Stackdriver Trace や X-Ray よりいけてる ビュー
  63. Game Server Services, Inc. https://gs2.io サービスマップ • ファンクションの関係を視覚化 • 類似サービスの

    Stackdriver Trace や X-Ray よりいけてる ビュー
  64. Game Server Services, Inc. https://gs2.io サービスマップ • ノードを選択すると、より細かい情報にアクセス可能

  65. Game Server Services, Inc. https://gs2.io サービスマップ • ノードを選択すると、より細かい情報にアクセス可能

  66. プラットフォーマーが提供するサービスとは異なり アカウントを超えた動向もみれる といいなあ Game Server Services, Inc. https://gs2.io

  67. ……… Game Server Services, Inc. https://gs2.io

  68. 残念ながら サービスマップはサーバレスから使えません (エージェントのインストールが必要) Game Server Services, Inc. https://gs2.io

  69. みんなで Datadog に要望をだそう! Game Server Services, Inc. https://gs2.io

  70. Game Server Services では仲間を募集中 裁量労働制 年収792万円 (⽉額66万円・みなし残業20時間込み・賞与無し)+ ストックオプション https://gs2.io/recruit.html Game

    Server Services, Inc. https://gs2.io