MEGAZONE

MEGAZONEブログ

Stripe: Architecting for observability at massive scale
Cloud Operations re:Invent 2023

Stripe: Architecting for observability at massive scale

Pulisher : Managed & Support Center キム・ソンド
Description : 大規模モニタリングシステムをどのような仕組みで構築して運営するのかStripeのお客様事例紹介セッション

全世界で使用するモバイル決済プラットフォームサービスであるStripeでは、数千個のEC2インスタンスと多くのAWSサービスを使用しています。サービスを正常に運営するために大規模なモニタリングシステムをどのような構造で構築して運営しているのか、さらにコスト最適化、リソース利用率の最適化まで運営方法を確認できるセッションです。

アーキテクチャが大きくなればなるほど、お客様が悩まれる内容の一つは、インフラストラクチャの複雑さが増すことです。
マイクロサービスの採用と分散、動的なシステムにより、複雑さが増加し続けています。

このような分散、動的システムを理解するために様々なデータを収集することができます。

例えば、メトリック、ログ、Traceなどがあります。

結果的には、これらのデータを管理するためにコストが増加することになります。

アプリケーションモニタリングとコスト増加のバランスを保つことは困難です。

一般的に2つに分けることができます。

1.AWSのNative Cloudwatchシステム
2.Open Sourceを利用したシステム

それぞれのアプリケーションに適したサービスを選択することをお勧めします。

    Open Sourceを利用する場合は、ソフトウェアが安全であることを確認する必要があり、他のプログラムと互換性があるかをテストする必要があります。

    これらの内容は運営オーバーヘッドを増加させることになります。

    しかし、AWS Managed Service for Prometheusの場合は、AWSで完全に管理され、顧客の要件に応じて自動的に拡張が可能になります。

    以下は4つのメリットです。

    1.Serverlessで使用が可能です。
    2.AWSによって完全に管理され、高可用性です。
    3.既存に使用していたPrometheusと同じQueryを使用することができます。
    4.使用した分だけ費用を支払うことができます。

    Amazon Managed Grafanaも以下のようなメリットがあります。

    1.セキュリティに強く、AWSによって完全に管理されます。
    2.自動的にScale調整されます。
    3.AWSはもちろん、他のThird Partyデータソースと接続できます。
    4.AWSの多くのサービスとの接続が可能です。
    5.Enterpriseの場合、コンソールのMarketPlaceから直接購入可能です。
    6.使用した分だけ支払うことができます。

    AWS OpenTelemetry、Prometheus Agentなどでデータを収集し、すべてのデータをAMPで保存できます。

    AMPの代表的な機能は4つです。

    1.Ingest
      => 既存のPrometheusデータを収集することができます。
    2.Query
      => Timestampベースで保存されたデータをクエリすることができます。
    3.Rules
      => コストが多くかかったり、頻繁にアクセスするQueryの場合、事前計算してコスト最適化をすることができます。
    4.Alert manager
      => 希望する条件、ルールを設定して特定の時間ごとにトリガーすることができ、Amazon SNSを使ってアラームを受け取ることができます。

    これらのデータに基づいて必要なダッシュボードを生成し、データを視覚化することができるAmazon Managed Grafana(以下AMGと呼びます)を使うことができます。

      可用性と信頼性、そしてパフォーマンスを効果的に拡張することも重要ですが、コスト効率の問題についてより具体的に話しました。

      ほとんどの会社では、監視されたメトリックのうち2%から20%のデータしか使用しません。

      逆に言えば、80%から98%のデータはアラーム定義も、ダッシュボードでも、アドホックでも使用されないデータということです。

      これらのデータをロードせずに削除することで、80%から98%の費用的なメリットを得ることができます。

      しかし、多くのデータを捨てるのは危険なので、DataTieringのような方法を先に先行することができます。

      セッションを聞いてモニタリングしていないメトリクスが思ったより多く、これらのメトリクスを収集しなければ多くのコストを削減できると思いました。

      また、AMPを使いながらCardinalityを効率的に使ってコストを削減する方法も具体的に知ることができたセッションでした。

      ブログ一覧

      この記事の読者はこんな記事も読んでいます