Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWSフルマネージドサービスにおける監視と運用 / Monitoring and Operat...
Search
Yusuke Kageyama
November 18, 2020
Technology
1
1.5k
AWSフルマネージドサービスにおける監視と運用 / Monitoring and Operation in AWS Fully Managed Services
ZOZO Technologies Meetup〜ZOZOが提供するEC支援サービスの裏側〜
Yusuke Kageyama
November 18, 2020
Tweet
Share
More Decks by Yusuke Kageyama
See All by Yusuke Kageyama
大規模トラフィックを支えるサーバーレスアーキテクチャ / Serverless Architecture to Support Large Scale Traffic
mtkage
0
950
Other Decks in Technology
See All in Technology
ABEMAにおける 生成AI活用の現在地 / The Current Status of Generative AI at ABEMA
dekatotoro
0
670
制約理論(ToC)入門
recruitengineers
PRO
4
470
実践アプリケーション設計 ①データモデルとドメインモデル
recruitengineers
PRO
3
370
広島銀行におけるAWS活用の取り組みについて
masakimori
0
140
そのコンポーネント、サーバー?クライアント?App Router開発のモヤモヤを可視化する補助輪
makotot
4
610
知られざるprops命名の慣習 アクション編
uhyo
11
2.6k
Android Studio の 新しいAI機能を試してみよう / Try out the new AI features in Android Studio
yanzm
0
280
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
2
20k
モダンフロントエンド 開発研修
recruitengineers
PRO
3
590
「AI2027」を紐解く ― AGI・ASI・シンギュラリティ
masayamoriofficial
0
110
Product Management Conference -AI時代に進化するPdM-
kojima111
0
220
MySQL HeatWave:サービス概要のご紹介
oracle4engineer
PRO
4
1.7k
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
We Have a Design System, Now What?
morganepeng
53
7.7k
Designing for Performance
lara
610
69k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
BBQ
matthewcrist
89
9.8k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Done Done
chrislema
185
16k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Transcript
AWSフルマネージドサービスにおける 監視と運用 ZOZO Technologies Meetup 〜ZOZOが提供するEC支援サービスの裏側〜 株式会社ZOZOテクノロジーズ SRE部 BtoBチーム 蔭山
雄介 Copyright © ZOZO Technologies, Inc.
© ZOZO Technologies, Inc. 株式会社ZOZOテクノロジーズ 技術開発本部 SRE部 BtoBチーム 蔭山 雄介
▪経歴 2016年: 株式会社アラタナに新卒入社 2020年: 株式会社ZOZOテクノロジーズに転籍 ▪担当業務 2016年 〜 2018年: ECカートシステムの開発・設計(PG/SE) 2019年 〜 2020年: FBZ・中国版ZOZOTOWN「ZOZO」の開発・運用 (PG/SRE) 2
© ZOZO Technologies, Inc. FBZのシステム構成 3
© 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
© 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 運用・監視って必要?
© 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 必要です
© ZOZO Technologies, Inc. マネージドサービスに監視・運用が必要な理由 • サービスを運営するためにマネージドサービスを利用することで必要不可欠なインフラ管理はなくなった • サービスを安定して運営していくには監視は必要不可欠
◦ マネージドサービスといえど落ちることはある ◦ バグが紛れ込んでサービスダウンする可能性も ◦ etc... • マネージドサービスを利用していても、システム上どうしても運用は必要となる ◦ アプリケーションのリリース ◦ 運用上発生するイレギュラーなデータ補正 ◦ 新規店舗出店時のデータ一式の準備 ◦ etc... 7
© ZOZO Technologies, Inc. どのように監視・運用していくか 8 約 50 ご利用いただいてる店 舗さま
約 150 公開している APIエンドポイント 約 330,000 取り扱っている 総商品数 約 350,000 2019年度 出荷データ連携数 約 500 Lambda関数 約 100 S3バケット 約 750 DynamoDBテーブル 約 1,500 SQSキュー
© ZOZO Technologies, Inc. どのように監視・運用していくか 9 約 50 ご利用いただいてる店 舗さま
約 150 公開している APIエンドポイント 約 330,000 取り扱っている 総商品数 約 350,000 2019年度 出荷データ連携数 約 500 Lambda関数 約 100 S3バケット 約 750 DynamoDBテーブル 約 1,500 SQSキュー 少人数での監視・運用は厳しい
© ZOZO Technologies, Inc. どのように監視・運用していくか 10 約 50 ご利用いただいてる店 舗さま
約 150 公開している APIエンドポイント 約 330,000 取り扱っている 総商品数 約 350,000 2019年度 出荷データ連携数 約 500 Lambda関数 約 100 S3バケット 約 750 DynamoDBテーブル 約 1,500 SQSキュー 監視・運用するための仕組み化
© ZOZO Technologies, Inc. FBZでの監視 11
© ZOZO Technologies, Inc. FBZでの監視 12
© ZOZO Technologies, Inc. PagerDuty 13
© ZOZO Technologies, Inc. PagerDuty 運用担当への通知・エスカレーションを行うインシデント管理サービス。 各監視サービスの異常検知情報を集約し、連携された情報を元に対応を行う。 14
© ZOZO Technologies, Inc. CloudWatch メトリクスでの異常値検知 15
© ZOZO Technologies, Inc. CloudWatch メトリクスでの異常値検知 各マネージドサービスのCloudWatch メトリクスで異常値を検知できるようアラームを適切に設定。 異常があった場合にはPagerDutyへ通知する。 16
© ZOZO Technologies, Inc. データ解析によるデータ異常検知 17
© ZOZO Technologies, Inc. データ解析によるデータ異常検知 Elasticsearch Serviceに蓄積されたデータを検索し、一致するデータを通知するシステムを独自構築。 必要であれば運用でデータリカバリを実施する。 18
© ZOZO Technologies, Inc. アプリケーションログ解析 19
© ZOZO Technologies, Inc. アプリケーションログ解析 各Lambda関数がCloudWatch Logsへ出力したログを解析するシステムを独自構築。 ログ内容を解析し、適切にDatadog・PagerDutyへと連携する。 参考記事: https://techblog.zozo.com/entry/serverless-monitoring-lambda
20
© ZOZO Technologies, Inc. Datadog 21
© ZOZO Technologies, Inc. Datadog 連携されたログ情報や各マネージドサービスの稼働状況の解析に利用。 異常が検知された場合は通知を行う。 22
© ZOZO Technologies, Inc. Autify 23
© ZOZO Technologies, Inc. Autify FBZをご利用いただいている自社ECサイト上でE2Eテストを実施。 自社ECサイト運営に異常がないかを常にチェックし、異常があれば通知する。 参考記事: https://techblog.zozo.com/entry/autify-introduction
https://autify.com/ja/stories/zozo-technologies 24
© ZOZO Technologies, Inc. FBZでの運用 • 独自運用ツール ◦ データ不整合チェック ◦
データ補正用Lambda関数 • ボトルネック解析 ◦ X-Rayでの分散トレーシング • リソース管理 ◦ Serverless Frameworkでのアプリケーション管理 ◦ CloudFormationでの店舗別リソース管理 25
© ZOZO Technologies, Inc. データ不整合チェック ZOZOTOWNとFBZ間でのデータ不整合が発生していないか定期的に確認するシステム。 異常があった場合はその状況に応じてデータリカバリまで自動で行う。 26
© ZOZO Technologies, Inc. データ補正用Lambda関数 SQLのように一括アップデートはできないため、データ抽出と補正用のLambda関数を準備。 データ抽出と補正ロジックLambda関数を準備し、実行することでデータの更新を行う。 27
© ZOZO Technologies, Inc. X-Rayでの分散トレーシング X-RayでLambda関数単位での分散トレーシングを実施。 ボトルネックの解析からパーセンタイル値の確認までAWSコンソール上で確認可能。 28
© ZOZO Technologies, Inc. Serverless Frameworkでのアプリケーション管理 Serverless Frameworkを用いて各Lambdaアプリケーションを管理。 リリースもServerless Framework経由で実施することでコードアップロードなどの作業を省力化。
29
© ZOZO Technologies, Inc. CloudFormationでの店舗別リソース管理 店舗別に必要なリソース(S3、DynamoDB、SQSなど)はCloudFormationテンプレートで一括管理。 既存店舗でもリソース更新が必要になった場合はスタック更新することで一括対応可能。 30
© ZOZO Technologies, Inc. まとめ • マネージドサービスのみを利用してるからといって監視・運用は不要にはならない • マネージドサービスにはCloudWatch
メトリクスのようなサービスの稼働状況を把握するためのサービスもあるの で、そちらを活用しながら監視・運用することで管理コストを減らせる • DatadogやAutifyのようなサービス監視に特化したSaaSもあるため、状況に応じて各監視サービスを使い分けるこ とでサービスに適した監視体制を作れる • 作られたサービスの特性上、監視サービスとマッチしていないこともあるため、時には独自の監視システムも作る ことも大事 31
None