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

Cloudflare を活用して変わったメルカリの開発体験 / How Cloudflare ...

Avatar for hatappi hatappi
May 19, 2025
580

Cloudflare を活用して変わったメルカリの開発体験 / How Cloudflare Changed Mercari's Development Experience

Avatar for hatappi

hatappi

May 19, 2025
Tweet

Transcript

  1. 2 • 株式会社メルカリ 
 • Platform Network 
 • 2019年入社

    
 • CDN や Cloud Networking を 
 メインに社内インフラ基盤の 
 構築・運用を行っている 
 @hatappi 

  2. 4 1. CDN 運用の課題と Cloudflare 採用の狙い 2. CDN as a

    Service 実現への取り組み 3. 開発体験の変化による効果 アジェンダ
  3. 5    •サービス開始:2013年7月 •対応OS:Android、iOS ※Webブラウザからも利用可能 •利用料:無料 ※売れたときの手数料:販売価格の10% •対応地域・言語:日本・日本語基本仕様 •累計出品数:40億品を突破 (2024年9月)

    でなくなったモノが必要とする人に渡る喜びを感じ、また購入 者は豊富な出品数から「宝探し」感覚で魅力的な商品を見つけ ることを楽しんでいます。 さらに「メルカリ」は物の売買だけではなく出品者と購入者の コミュニケーションも重視し、チャットや絵文字、「いい ね!」機能の拡充などお客さまがより快適に取引を楽しめるた めの機能改善にも取り組んでいます。 「メルカリ」は、個人間での不要品の売買を簡単に行えるフリ マアプリです。エスクロー決済を活用した安心・安全な取引環 境の整備や、簡単かつ手頃な価格の配送オプションなど差別化 されたユニークなお客さま体験を提供しています。 現在、「メルカリ」では1秒間に7.9個の商品が売れています。 売れやすい環境が整う中、多くの出品者は、自分にとって必要 5 メルカリとは
  4. 9 • 実装・運用コストの削減 ◦ Cloudflare のほとんどの機能が API を通じて設定可能 ◦ 事前調査により今まで自分たちで実装していたメルカリの

    ほぼ全ケースがAPI設定を使って実現可能 • セキュリティ対策の強化 ◦ DDoS Attack Protection, WAF, Rate Limiting, etc Cloudflare に期待したこと
  5. 14 CDN as a Service にむけた取り組み CF IAM CDN Kit

    Cloudflare ダッシュボードへの 権限付与の自動化を する仕組み メルカリ社内用の Terraform module
  6. 15 CDN Kit • Cloudflare 設定の共通化・簡略化により、開発者の負担軽減と 設定の一貫性を担保 • 開発者はシンプルな設定を記述するだけで、以下を実現: ◦

    Cloudflare: 公式 Provider を利用した各種リソースの作成 ◦ ロギング: アクセスログを BigQuery へ格納 ◦ モニタリング: Error Rate や Cache Hit Rate を監視する Datadog monitor の作成 メルカリ社内用の Terraform module
  7. 21 CDN Kit の苦労した点 • CDN Kit は Zone-Scoped なリソースを管理

    (e.g. Cache Rule) • Account-Scoped なリソース (e.g. Cloudflare Workers) を CDN Kit で 使用するためには管理方法を検討する必要がある Account Scoped なリソースの管理 リソース名の Prefix に zone 名をつけることで Zone-Scoped なリソースとして管理
  8. 22 CF IAM • ダッシュボードの使用用途 ◦ リクエスト分析 ◦ 問題の調査 •

    ログ分析に比べて直感的に リクエストを分析できるので便利 Cloudflare ダッシュボードへの権限付与の自動化をする仕組み 意図しないブロック でないかを確認
  9. 24 CDN 関連のリソース管理 • CODEOWNERS で各サービスごとの ディレクトリにオーナーチームが 設定されている • CDN

    Kit の設定は各サービス下に配置 されているので Cloudflare Zone の オーナーチームも特定可能 • チームメンバーは同じリポジトリ内の Team Kit(Terraform Module)で 管理されている
  10. 26 Cloudflare Dashboard への権限付与の自動化 • CDN Kit / Team Kit

    の変更を トリガーに GitHub Actions を使って Cloudflare 権限を自動更新 • 権限情報を Cloudflare とは別に もつことでいつでもあるべき状態に 戻すことが可能
  11. 28 開発体験の変化による効果 • 70%以上 の Pull Request が Platform Network

    の関与なしにリリース • 多くの Pull Request が 1日以内 にマージされている • 開発者が Cloudflare Dashboard を活用し自律的に障害調査を実施 • 問い合わせ内容がレビューや実装依頼から Cloudflare 活用に関する 実装設計などの相談へと質的に変化
  12. 30 • Cloudflare 活用した仕組みを整備して CDN 設定の標準化と効率化を実現 ◦ 社内 Terraform module

    (CDN Kit) ◦ Cloudflare ダッシュボードへの権限付与の自動化 (CF IAM) • CDN as a Service によって、開発者が自律的に CDN を活用できる 新しい開発体験を実現 まとめ