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

大規模トラフィックを支えるサーバーレスアーキテクチャ / Serverless Architecture to Support Large Scale Traffic

大規模トラフィックを支えるサーバーレスアーキテクチャ / Serverless Architecture to Support Large Scale Traffic

私たちのサーバーレスアーキテクチャ構成はこれだ! Lunch LT

Yusuke Kageyama

August 31, 2023
Tweet

More Decks by Yusuke Kageyama

Other Decks in Technology

Transcript

  1. © ZOZO, Inc. https://zozo.jp/
 3 • ファッションEC
 • 1,500以上のショップ、8,900以上のブランドの取り扱い
 •

    常時95万点以上の商品アイテム数と毎日平均2,900点以上の新着 商 品を掲載(2023年6月末時点)
 • ブランド古着のファッションゾーン「ZOZOUSED」や
 コスメ専門モール「ZOZOCOSME」、靴の専門モール
 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン
 「ZOZOVILLA」を展開
 • 即日配送サービス
 • ギフトラッピングサービス
 • ツケ払い など

  2. © ZOZO, Inc. 4 https://fbz.zozo.com/
 
 • ZOZOTOWN出店企業の自社ECのフルフィルメント支援サービス
 • 自社EC運営のための撮影・採寸・梱包・配送などの各種フルフィルメント業務

    を、ZOZOTOWNの物流センター「ZOZOBASE」が受託
 • 設備投資・人件費・在庫保管料などの負担なしで、自社ECの運営が可能
 • 各販売チャネル(自社EC・店舗・ZOZOTOWN)の在庫連携が可能
 これにより、商品欠品による販売機会の損失を最小化
 

  3. © 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
  4. © ZOZO, Inc. イベント駆動アーキテクチャをベースとしたことで大量のデータ処理を並列に処理でき、なおかつ運用時 のリカバリ作業がやりやすい
 ◦ リカバリしたいデータをトリガー元のマネージドサービスに登録するだけですべてリカバリできる
 
 緩急が激しいトラフィックを常に最適化されたリソースで受けきれる
 ◦

    必要なときに必要なリソースが高速に展開されるため、サービス監視でよくあるCPU使用率監視など が不要に
 ◦ イベント前の増強作業や定期的なスペック見直し作業なども不要に
 サーバーレスアーキテクチャを採用してみて
 14
  5. © ZOZO, Inc. サーバーレスアーキテクチャでRDBが使いづらい
 ◦ DynamoDBでは実現できない検索をOpenSearch Serviceを利用して実現しているが、RDBほど使い勝 手がよくない
 ▪ AWSだとRDS

    ProxyといったLambdaから利用しやすい仕組みがあるため、そちらを利用するのが良 さそう
 
 複数回実行されても問題ない実装が必要
 ◦ 発行されるトリガーが1度だけ実行されるとは限らないため、どの処理において多重に実行しても問題 にないように実装に落とし込む必要がある
 サーバーレスアーキテクチャを採用してみて
 15