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
大規模トラフィックを支えるサーバーレスアーキテクチャ / Serverless Archite...
Search
Yusuke Kageyama
August 31, 2023
Technology
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
大規模トラフィックを支えるサーバーレスアーキテクチャ / Serverless Architecture to Support Large Scale Traffic
私たちのサーバーレスアーキテクチャ構成はこれだ! Lunch LT
Yusuke Kageyama
August 31, 2023
More Decks by Yusuke Kageyama
See All by Yusuke Kageyama
AWSフルマネージドサービスにおける監視と運用 / Monitoring and Operation in AWS Fully Managed Services
mtkage
1
1.7k
Other Decks in Technology
See All in Technology
Unlocking the Apps
pimterry
0
230
PHP と TypeScript の型システム比較:AI 時代の「型」は誰のためにあるのか? #frontend_phpcon_do / frontend_phpcon_do_2026
shogogg
1
250
新アーキテクチャ「TiDB X」解説とDedicated比較 TiDB Cloud Premiumのゲーム運用活用を検証
staffrecruiter
0
110
新規事業を牽引する技術選定 〜フルスタックTypeScript開発の実践事例〜
nullnull
3
350
【Gen-AX】20260530開催_JJUG CCC 2026 Spring
genax
0
420
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
1.5k
AI Engineering Summit Tokyo 2026 AIの前に、やることがある 〜医療データ企業の4フェーズ〜
dtaniwaki
0
1.9k
Dario Amodi『Policy on the AI Exponential』を理解する
nagatsu
0
190
Djangoユーザが知っ得なPostgreSQL機能 - 設計の選択肢を増やす / Djang-use-PostgreSQL
soudai
PRO
0
180
Diagnosing performance problems without the guesswork
elenatanasoiu
0
170
サイバーセキュリティ概論 / Introduction to Cybersecurity
ks91
PRO
0
160
ルールやカスタム機能、どう使う?理想の出力を引き出すために今知りたいIBM Bob 5つの機能
muehara
1
340
Featured
See All Featured
Building AI with AI
inesmontani
PRO
1
1.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
860
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
We Are The Robots
honzajavorek
0
240
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
280
How GitHub (no longer) Works
holman
316
150k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
My Coaching Mixtape
mlcsv
0
140
Discover your Explorer Soul
emna__ayadi
2
1.1k
Transcript
大規模トラフィックを支えるサーバー レスアーキテクチャ 私たちのサーバーレスアーキテクチャ構成はこれだ! Lunch LT 株式会社ZOZO ブランドソリューション開発本部 ZOZOMO部 FBZブロック
蔭山 雄介 Copyright © ZOZO, Inc. 1
© ZOZO, Inc. 株式会社ZOZO ブランドソリューション開発本部 ZOZOMO部 FBZブロック 蔭山 雄介 2016年にバックエンドエンジニアとして新卒入社
現在は物流支援サービスやOMOサービスでのSRE / バック エンド領域の業務に従事 2
© ZOZO, Inc. https://zozo.jp/ 3 • ファッションEC • 1,500以上のショップ、8,900以上のブランドの取り扱い •
常時95万点以上の商品アイテム数と毎日平均2,900点以上の新着 商 品を掲載(2023年6月末時点) • ブランド古着のファッションゾーン「ZOZOUSED」や コスメ専門モール「ZOZOCOSME」、靴の専門モール 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン 「ZOZOVILLA」を展開 • 即日配送サービス • ギフトラッピングサービス • ツケ払い など
© ZOZO, Inc. 4 https://fbz.zozo.com/ • ZOZOTOWN出店企業の自社ECのフルフィルメント支援サービス • 自社EC運営のための撮影・採寸・梱包・配送などの各種フルフィルメント業務
を、ZOZOTOWNの物流センター「ZOZOBASE」が受託 • 設備投資・人件費・在庫保管料などの負担なしで、自社ECの運営が可能 • 各販売チャネル(自社EC・店舗・ZOZOTOWN)の在庫連携が可能 これにより、商品欠品による販売機会の損失を最小化
© ZOZO, Inc. Fulfillment by ZOZO(以下FBZ)ではAWS Lambdaを主軸としてAWSが提供しているフルマネージドサービス のみを利用してサーバーレスアーキテクチャを実現 Fulfillment by
ZOZO(FBZ)で採用しているアーキテクチャ 5
© ZOZO, Inc. サービスの特性上、ZOZOTOWNとサービスを利用していただいているブランドさまのECサイトとのデータ 連携(在庫情報・出荷情報など)を素早く行う必要があった なぜサーバーレスなのか 6 アパレルEC特有の急激なトラフィックの増減(人気商品販売やセール開始時など) に対して運用コストを最低限に押さえつつ、機能開発に集中できるサーバーレス構成を採用
© ZOZO, Inc. • 言語: Python • 実行基盤: AWS Lambda
• データベース: Amazon DynamoDB、Amazon OpenSearch Service • ストレージ・メッセージング: Amazon S3、Amazon SQS • インテグレーション: Amazon API Gateway、Amazon EventBridge • ネットワーク: Amazon VPC、Amazon CloudFront • セキュリティ: Amazon Cognito、AWS WAF • 監視: Amazon CloudWatch • 構成管理: Serverless Framework、Amazon CloudFormation • CI/CD: Amazon CodeBuild、GitHub Actions • 設計思想: DDD、レイヤードアーキテクチャ 技術スタック 7
© ZOZO, Inc. 技術スタック 8
© ZOZO, Inc. API Gateway、Lambda、DynamoDBなどで水平スケールしやすいをAPIを実現 ZOZOTOWNとデータをリアルタイムに連携する ブランドさまECとFBZとの連携 9
© ZOZO, Inc. 非同期で問題ない処理は一時的にDynamoDBへ登録しておき、DynamoDB Streamsを経由して流量をコント ロールしつつ非同期で処理を行う ブランドさまECとFBZとの連携 10
© ZOZO, Inc. 大量のデータ(在庫情報や出荷情報)を高速に取り込みブランドさまECへ連携するため、イベント駆動アーキ テクチャを採用 1つのLambda関数内での処理をできるだけ少なくし、S3やSQSといったマネージドサービスに送ることで次の Lambda関数へデータを加工しつつ数珠つなぎで繋げていく FBZとZOZOTOWNとの連携 11
© ZOZO, Inc. FBZとZOZOTOWNとの連携 12
© ZOZO, Inc. サーバーレスは無限にスケールできるわけではなく、一定の実行制限を超えるとサービス障害となる サービスが正常に稼働しているかどうか、各種データをもとにDatadogで一元監視 • CloudWatchメトリクス ◦ Lambda実行数 ◦
API Gateway実行数 ◦ SQSメッセージ数 ◦ カスタムメトリクス • Datadog APM システム監視 13
© ZOZO, Inc. イベント駆動アーキテクチャをベースとしたことで大量のデータ処理を並列に処理でき、なおかつ運用時 のリカバリ作業がやりやすい ◦ リカバリしたいデータをトリガー元のマネージドサービスに登録するだけですべてリカバリできる 緩急が激しいトラフィックを常に最適化されたリソースで受けきれる ◦
必要なときに必要なリソースが高速に展開されるため、サービス監視でよくあるCPU使用率監視など が不要に ◦ イベント前の増強作業や定期的なスペック見直し作業なども不要に サーバーレスアーキテクチャを採用してみて 14
© ZOZO, Inc. サーバーレスアーキテクチャでRDBが使いづらい ◦ DynamoDBでは実現できない検索をOpenSearch Serviceを利用して実現しているが、RDBほど使い勝 手がよくない ▪ AWSだとRDS
ProxyといったLambdaから利用しやすい仕組みがあるため、そちらを利用するのが良 さそう 複数回実行されても問題ない実装が必要 ◦ 発行されるトリガーが1度だけ実行されるとは限らないため、どの処理において多重に実行しても問題 にないように実装に落とし込む必要がある サーバーレスアーキテクチャを採用してみて 15
© ZOZO, Inc. 今回の資料は過去に弊社テックブログで公開した内容をもとにお話させていただきました 興味がある方はぜひテックブログもご覧ください! 物流支援サービスを支えるAWSサーバーレスアーキテクチャ戦略 https://techblog.zozo.com/entry/aws-serverless-architecture-strategy
おわりに 16
None