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
ActiveJobUpdates
igaiga
1
270
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
330
AWSに革命を起こすかもしれない新サービス・アップデートについてのお話
yama3133
0
370
ExpoのインダストリーブースでみたAWSが見せる製造業の未来
hamadakoji
0
180
日本Rubyの会: これまでとこれから
snoozer05
PRO
5
210
AlmaLinux + KVM + Cockpit で始めるお手軽仮想化基盤 ~ 開発環境などでの利用を想定して ~
koedoyoshida
0
130
AWS Security Agentの紹介/introducing-aws-security-agent
tomoki10
0
360
AIの長期記憶と短期記憶の違いについてAgentCoreを例に深掘ってみた
yakumo
4
470
AWSインフルエンサーへの道 / load of AWS Influencer
whisaiyo
0
170
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
140
特別捜査官等研修会
nomizone
0
410
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
720
Featured
See All Featured
A better future with KSS
kneath
240
18k
GraphQLとの向き合い方2022年版
quramy
50
14k
Rails Girls Zürich Keynote
gr2m
95
14k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
2
3.8k
A Tale of Four Properties
chriscoyier
162
23k
Reality Check: Gamification 10 Years Later
codingconduct
0
1.9k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Typedesign – Prime Four
hannesfritz
42
2.9k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
WCS-LA-2024
lcolladotor
0
380
YesSQL, Process and Tooling at Scale
rocio
174
15k
Designing for Timeless Needs
cassininazir
0
87
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