Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
大規模トラフィックを支えるサーバーレスアーキテクチャ / Serverless Archite...
Search
Yusuke Kageyama
August 31, 2023
Technology
0
990
大規模トラフィックを支えるサーバーレスアーキテクチャ / Serverless Architecture to Support Large Scale Traffic
私たちのサーバーレスアーキテクチャ構成はこれだ! Lunch LT
Yusuke Kageyama
August 31, 2023
Tweet
Share
More Decks by Yusuke Kageyama
See All by Yusuke Kageyama
AWSフルマネージドサービスにおける監視と運用 / Monitoring and Operation in AWS Fully Managed Services
mtkage
1
1.6k
Other Decks in Technology
See All in Technology
バグハンター視点によるサプライチェーンの脆弱性
scgajge12
3
1k
5分で知るMicrosoft Ignite
taiponrock
PRO
0
220
新 Security HubがついにGA!仕組みや料金を深堀り #AWSreInvent #regrowth / AWS Security Hub Advanced GA
masahirokawahara
1
1.5k
pmconf2025 - データを活用し「価値」へ繋げる
glorypulse
0
700
Debugging Edge AI on Zephyr and Lessons Learned
iotengineer22
0
120
意外とあった SQL Server 関連アップデート + Database Savings Plans
stknohg
PRO
0
290
Microsoft Agent 365 を 30 分でなんとなく理解する
skmkzyk
1
1k
A Compass of Thought: Guiding the Future of Test Automation ( #jassttokai25 , #jassttokai )
teyamagu
PRO
1
250
AI駆動開発における設計思想 認知負荷を下げるフロントエンドアーキテクチャ/ 20251211 Teppei Hanai
shift_evolve
PRO
2
190
re:Inventで気になったサービスを10分でいけるところまでお話しします
yama3133
1
120
因果AIへの招待
sshimizu2006
0
930
regrowth_tokyo_2025_securityagent
hiashisan
0
170
Featured
See All Featured
Speed Design
sergeychernyshev
33
1.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Git: the NoSQL Database
bkeepers
PRO
432
66k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Designing for humans not robots
tammielis
254
26k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Being A Developer After 40
akosma
91
590k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
The Pragmatic Product Professional
lauravandoore
37
7.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