Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWSフルマネージドサービスにおける監視と運用 / Monitoring and Operation in AWS Fully Managed Services

AWSフルマネージドサービスにおける監視と運用 / Monitoring and Operation in AWS Fully Managed Services

ZOZO Technologies Meetup〜ZOZOが提供するEC支援サービスの裏側〜

D5173894fbe19c9c1e125cf4cf341ca5?s=128

Yusuke Kageyama

November 18, 2020
Tweet

Transcript

  1. AWSフルマネージドサービスにおける 監視と運用
 ZOZO Technologies Meetup
 〜ZOZOが提供するEC支援サービスの裏側〜
 株式会社ZOZOテクノロジーズ
 SRE部 BtoBチーム
 蔭山

    雄介 Copyright © ZOZO Technologies, Inc.
  2. © ZOZO Technologies, Inc. 株式会社ZOZOテクノロジーズ
 技術開発本部 SRE部 BtoBチーム 蔭山 雄介


    ▪経歴
 2016年: 株式会社アラタナに新卒入社
 2020年: 株式会社ZOZOテクノロジーズに転籍
 ▪担当業務
 2016年 〜 2018年: ECカートシステムの開発・設計(PG/SE)
 2019年 〜 2020年: FBZ・中国版ZOZOTOWN「ZOZO」の開発・運用
          (PG/SRE)
 2
  3. © ZOZO Technologies, Inc. FBZのシステム構成
 3

  4. © ZOZO Technologies, Inc. FBZで利用しているAWSサービス(一部抜粋)
 4 Lambda Step Functions AWS

    Batch API Gateway CloudFront DynamoDB Elasticsearch Service S3 SQS SES SNS CloudWatch AWS WAF Cognito Amazon VPC
  5. © ZOZO Technologies, Inc. FBZで利用しているAWSサービス(一部抜粋)
 5 Lambda Step Functions AWS

    Batch API Gateway CloudFront DynamoDB Elasticsearch Service S3 SQS SES SNS CloudWatch AWS WAF Cognito Amazon VPC 運用・監視って必要?
  6. © ZOZO Technologies, Inc. FBZで利用しているAWSサービス(一部抜粋)
 6 Lambda Step Functions AWS

    Batch API Gateway CloudFront DynamoDB Elasticsearch Service S3 SQS SES SNS CloudWatch AWS WAF Cognito Amazon VPC 必要です
  7. © ZOZO Technologies, Inc. マネージドサービスに監視・運用が必要な理由
 • サービスを運営するためにマネージドサービスを利用することで必要不可欠なインフラ管理はなくなった
 
 • サービスを安定して運営していくには監視は必要不可欠


    ◦ マネージドサービスといえど落ちることはある
 ◦ バグが紛れ込んでサービスダウンする可能性も
 ◦ etc...
 
 • マネージドサービスを利用していても、システム上どうしても運用は必要となる
 ◦ アプリケーションのリリース
 ◦ 運用上発生するイレギュラーなデータ補正
 ◦ 新規店舗出店時のデータ一式の準備
 ◦ etc...
 7
  8. © ZOZO Technologies, Inc. どのように監視・運用していくか
 8 約 50 ご利用いただいてる店 舗さま

    約 150 公開している
 APIエンドポイント
 約 330,000 取り扱っている
 総商品数
 約 350,000 2019年度
 出荷データ連携数
 約 500 Lambda関数
 約 100 S3バケット
 約 750 DynamoDBテーブル
 約 1,500 SQSキュー

  9. © ZOZO Technologies, Inc. どのように監視・運用していくか
 9 約 50 ご利用いただいてる店 舗さま

    約 150 公開している
 APIエンドポイント
 約 330,000 取り扱っている
 総商品数
 約 350,000 2019年度
 出荷データ連携数
 約 500 Lambda関数
 約 100 S3バケット
 約 750 DynamoDBテーブル
 約 1,500 SQSキュー
 少人数での監視・運用は厳しい
  10. © ZOZO Technologies, Inc. どのように監視・運用していくか
 10 約 50 ご利用いただいてる店 舗さま

    約 150 公開している
 APIエンドポイント
 約 330,000 取り扱っている
 総商品数
 約 350,000 2019年度
 出荷データ連携数
 約 500 Lambda関数
 約 100 S3バケット
 約 750 DynamoDBテーブル
 約 1,500 SQSキュー
 監視・運用するための仕組み化
  11. © ZOZO Technologies, Inc. FBZでの監視
 11

  12. © ZOZO Technologies, Inc. FBZでの監視
 12

  13. © ZOZO Technologies, Inc. PagerDuty
 13

  14. © ZOZO Technologies, Inc. PagerDuty
 運用担当への通知・エスカレーションを行うインシデント管理サービス。
 各監視サービスの異常検知情報を集約し、連携された情報を元に対応を行う。
 14

  15. © ZOZO Technologies, Inc. CloudWatch メトリクスでの異常値検知
 15

  16. © ZOZO Technologies, Inc. CloudWatch メトリクスでの異常値検知
 各マネージドサービスのCloudWatch メトリクスで異常値を検知できるようアラームを適切に設定。
 異常があった場合にはPagerDutyへ通知する。
 16

  17. © ZOZO Technologies, Inc. データ解析によるデータ異常検知
 17

  18. © ZOZO Technologies, Inc. データ解析によるデータ異常検知
 Elasticsearch Serviceに蓄積されたデータを検索し、一致するデータを通知するシステムを独自構築。
 必要であれば運用でデータリカバリを実施する。
 18

  19. © ZOZO Technologies, Inc. アプリケーションログ解析
 19

  20. © ZOZO Technologies, Inc. アプリケーションログ解析
 各Lambda関数がCloudWatch Logsへ出力したログを解析するシステムを独自構築。
 ログ内容を解析し、適切にDatadog・PagerDutyへと連携する。
 参考記事: https://techblog.zozo.com/entry/serverless-monitoring-lambda

    20
  21. © ZOZO Technologies, Inc. Datadog
 21

  22. © ZOZO Technologies, Inc. Datadog
 連携されたログ情報や各マネージドサービスの稼働状況の解析に利用。
 異常が検知された場合は通知を行う。
 22

  23. © ZOZO Technologies, Inc. Autify
 23

  24. © ZOZO Technologies, Inc. Autify
 FBZをご利用いただいている自社ECサイト上でE2Eテストを実施。
 自社ECサイト運営に異常がないかを常にチェックし、異常があれば通知する。
 参考記事: https://techblog.zozo.com/entry/autify-introduction
     

    https://autify.com/ja/stories/zozo-technologies
 24
  25. © ZOZO Technologies, Inc. FBZでの運用
 • 独自運用ツール
 ◦ データ不整合チェック
 ◦

    データ補正用Lambda関数
 
 • ボトルネック解析
 ◦ X-Rayでの分散トレーシング
 
 • リソース管理
 ◦ Serverless Frameworkでのアプリケーション管理
 ◦ CloudFormationでの店舗別リソース管理
 25
  26. © ZOZO Technologies, Inc. データ不整合チェック
 
 ZOZOTOWNとFBZ間でのデータ不整合が発生していないか定期的に確認するシステム。
 異常があった場合はその状況に応じてデータリカバリまで自動で行う。
 26

  27. © ZOZO Technologies, Inc. データ補正用Lambda関数
 SQLのように一括アップデートはできないため、データ抽出と補正用のLambda関数を準備。
 データ抽出と補正ロジックLambda関数を準備し、実行することでデータの更新を行う。
 27

  28. © ZOZO Technologies, Inc. X-Rayでの分散トレーシング
 X-RayでLambda関数単位での分散トレーシングを実施。
 ボトルネックの解析からパーセンタイル値の確認までAWSコンソール上で確認可能。
 28

  29. © ZOZO Technologies, Inc. Serverless Frameworkでのアプリケーション管理
 Serverless Frameworkを用いて各Lambdaアプリケーションを管理。
 リリースもServerless Framework経由で実施することでコードアップロードなどの作業を省力化。


    29
  30. © ZOZO Technologies, Inc. CloudFormationでの店舗別リソース管理
 店舗別に必要なリソース(S3、DynamoDB、SQSなど)はCloudFormationテンプレートで一括管理。
 既存店舗でもリソース更新が必要になった場合はスタック更新することで一括対応可能。
 30

  31. © ZOZO Technologies, Inc. まとめ
 • マネージドサービスのみを利用してるからといって監視・運用は不要にはならない
 
 • マネージドサービスにはCloudWatch

    メトリクスのようなサービスの稼働状況を把握するためのサービスもあるの で、そちらを活用しながら監視・運用することで管理コストを減らせる
 
 • DatadogやAutifyのようなサービス監視に特化したSaaSもあるため、状況に応じて各監視サービスを使い分けるこ とでサービスに適した監視体制を作れる
 
 • 作られたサービスの特性上、監視サービスとマッチしていないこともあるため、時には独自の監視システムも作る ことも大事
 31
  32. None