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
Cloudflare を活用して変わったメルカリの開発体験 / How Cloudflare ...
Search
hatappi
May 19, 2025
840
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cloudflare を活用して変わったメルカリの開発体験 / How Cloudflare Changed Mercari's Development Experience
https://findy.connpass.com/event/348143/
hatappi
May 19, 2025
More Decks by hatappi
See All by hatappi
AlloyDB 奮闘記
hatappi
0
410
RubyではじめるGraphQL
hatappi
0
940
RubyでChainerつくってます!!
hatappi
2
1.5k
TDDな個人開発
hatappi
0
370
できるだけ楽して楽しくRails開発しよう
hatappi
2
370
EKSにRailsをのせた
hatappi
1
1.3k
RubyとApache Arrow
hatappi
0
2.6k
Red Chainerを なぜ作って今後どうするのか
hatappi
2
2.5k
Fargateで夢は見られるのか
hatappi
1
2.4k
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
2
310
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
480
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Amusing Abliteration
ianozsvald
1
200
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
200
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
The SEO identity crisis: Don't let AI make you average
varn
0
490
Utilizing Notion as your number one productivity tool
mfonobong
4
320
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Docker and Python
trallard
47
3.9k
Transcript
1 @hatappi Cloudflare を活用して変わったメルカリの開発体験 開発者が知っておきたい "コスト削減&効率化 両立の一手" ~Cloudflare活用編~
2 • 株式会社メルカリ • Platform Network • 2019年入社
• CDN や Cloud Networking を メインに社内インフラ基盤の 構築・運用を行っている @hatappi
3 Cloudflare を活用した開発の効率化とその効果 メルカリでの Cloudflare の活用事例 今日得られるもの 02 01
4 1. CDN 運用の課題と Cloudflare 採用の狙い 2. CDN as a
Service 実現への取り組み 3. 開発体験の変化による効果 アジェンダ
5 •サービス開始:2013年7月 •対応OS:Android、iOS ※Webブラウザからも利用可能 •利用料:無料 ※売れたときの手数料:販売価格の10% •対応地域・言語:日本・日本語基本仕様 •累計出品数:40億品を突破 (2024年9月)
でなくなったモノが必要とする人に渡る喜びを感じ、また購入 者は豊富な出品数から「宝探し」感覚で魅力的な商品を見つけ ることを楽しんでいます。 さらに「メルカリ」は物の売買だけではなく出品者と購入者の コミュニケーションも重視し、チャットや絵文字、「いい ね!」機能の拡充などお客さまがより快適に取引を楽しめるた めの機能改善にも取り組んでいます。 「メルカリ」は、個人間での不要品の売買を簡単に行えるフリ マアプリです。エスクロー決済を活用した安心・安全な取引環 境の整備や、簡単かつ手頃な価格の配送オプションなど差別化 されたユニークなお客さま体験を提供しています。 現在、「メルカリ」では1秒間に7.9個の商品が売れています。 売れやすい環境が整う中、多くの出品者は、自分にとって必要 5 メルカリとは
6 6 CtoCの基盤を活用した事業成長
7 CDN 運用の課題と Cloudflare 採用の狙い
8 Cloudflare への移行前の CDN 運用と課題 依頼数が多い場合や優先度により 変更待ちが発生
9 • 実装・運用コストの削減 ◦ Cloudflare のほとんどの機能が API を通じて設定可能 ◦ 事前調査により今まで自分たちで実装していたメルカリの
ほぼ全ケースがAPI設定を使って実現可能 • セキュリティ対策の強化 ◦ DDoS Attack Protection, WAF, Rate Limiting, etc Cloudflare に期待したこと
10 • 移行によって実装・運用コストは下がりそう • 設定変更を行うのが Platform Network のままでは変更待ちの発生は 完全には解決はしない Cloudflare
への移行だけで十分? CDN プロバイダの移行だけでなく 開発フローを変えていく必要がある 💪
11 CDN as a Service
12 CDN as a Service CDN設定のセルフサービス化 開発者が主体的に CDN 設定を変更可能に
13 CDN as a Service 実現への取り組み
14 CDN as a Service にむけた取り組み CF IAM CDN Kit
Cloudflare ダッシュボードへの 権限付与の自動化を する仕組み メルカリ社内用の Terraform module
15 CDN Kit • Cloudflare 設定の共通化・簡略化により、開発者の負担軽減と 設定の一貫性を担保 • 開発者はシンプルな設定を記述するだけで、以下を実現: ◦
Cloudflare: 公式 Provider を利用した各種リソースの作成 ◦ ロギング: アクセスログを BigQuery へ格納 ◦ モニタリング: Error Rate や Cache Hit Rate を監視する Datadog monitor の作成 メルカリ社内用の Terraform module
16 Cloudflare への移行前の CDN 運用と課題 Before
17 CDN Kit After
18 CDN Kit の設定例 最低限の設定
19 CDN Kit の設定例 キャッシュの有効化
20 CDN Kit の設定例 リクエスト・レスポンスヘッダーの操作
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 なリソースとして管理
22 CF IAM • ダッシュボードの使用用途 ◦ リクエスト分析 ◦ 問題の調査 •
ログ分析に比べて直感的に リクエストを分析できるので便利 Cloudflare ダッシュボードへの権限付与の自動化をする仕組み 意図しないブロック でないかを確認
23 ダッシュボードを社内に公開するためのチャレンジ • 各 Zone はオーナーとなるチームによって管理されるため Account-Scoped な権限ではなく Zone-Scoped な権限を付与したい
• 変更は CDN Kit で行うためデフォルトの権限は Read Only にしたい 手動での管理は大変なので避けたい 🧐
24 CDN 関連のリソース管理 • CODEOWNERS で各サービスごとの ディレクトリにオーナーチームが 設定されている • CDN
Kit の設定は各サービス下に配置 されているので Cloudflare Zone の オーナーチームも特定可能 • チームメンバーは同じリポジトリ内の Team Kit(Terraform Module)で 管理されている
25 必要な情報はそろっている 自動化できそう!!
26 Cloudflare Dashboard への権限付与の自動化 • CDN Kit / Team Kit
の変更を トリガーに GitHub Actions を使って Cloudflare 権限を自動更新 • 権限情報を Cloudflare とは別に もつことでいつでもあるべき状態に 戻すことが可能
27 開発体験の変化による効果
28 開発体験の変化による効果 • 70%以上 の Pull Request が Platform Network
の関与なしにリリース • 多くの Pull Request が 1日以内 にマージされている • 開発者が Cloudflare Dashboard を活用し自律的に障害調査を実施 • 問い合わせ内容がレビューや実装依頼から Cloudflare 活用に関する 実装設計などの相談へと質的に変化
29 まとめ
30 • Cloudflare 活用した仕組みを整備して CDN 設定の標準化と効率化を実現 ◦ 社内 Terraform module
(CDN Kit) ◦ Cloudflare ダッシュボードへの権限付与の自動化 (CF IAM) • CDN as a Service によって、開発者が自律的に CDN を活用できる 新しい開発体験を実現 まとめ
31 We are hiring https://apply.workable.com/mercari/j/08F0B7531B/