Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
はじめてのCloudflareで個人開発! リリースまでにハマったあれこれ
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ひととり
June 11, 2025
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
はじめてのCloudflareで個人開発! リリースまでにハマったあれこれ
Cloudflare Meet-up Tokyo Vol.8 登壇資料
ひととり
June 11, 2025
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
260
Un-Boring Meetings
codingconduct
0
420
The untapped power of vector embeddings
frankvandijk
2
1.9k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
500
Producing Creativity
orderedlist
PRO
348
41k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
340
A Modern Web Designer's Workflow
chriscoyier
699
190k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
830
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Transcript
はじめてのCloudflareで個人開発! リリースまでにハマったあれこれ 2025/06/11 | Cloudflare Meet-up | ひととり
きょうお話しすること 先日リリースしたサービス、キーニナルの開発 でハマった点を共有します! ↓ 皆さんがCloudflareで開発する際、 私と同じポイントでつまづかなければ良いなと 思っています!
キーニナルについて Tech寄りの笑える記事を書けるnoteやZennのよ うな記事執筆サービスです もっと技術や科学でふざけられる場所が あったら良いなと思い制作しました 人物同士の会話を表現できることが特徴! 認証機能以外はすべてCloudflareを使用
ひととりについて ・個人開発者 ・AWSやGCPは3年程度経験あり ・Cloudflareを触るのははじめて ひととり(Twitter)
キーニナルの構成について ユーザ Web App workers Auth DB・ストレージ D1 R2 Backend
workers hono
リリースまでにハマったこと① D1 TableはTerrafromで作れない D1のテーブル作成はTerraform非対応のため wranglerコマンドで操作するしかない CI/CDどうすんねん wranglerでやるにしても名前衝突でテーブル作れない… https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/d1_database
リリースまでにハマったこと① D1 TableはTerrafromで作れない ✅ D1 Table作成に関わる処理をCI/CDで管理したい場合は GitHub Actions側でテーブルの有無に応じて処理を分岐 テーブルが存在するならテーブル作成処理をスキップ テーブルが存在しないならテーブル作成処理を実行
リリースまでにハマったこと② カスタムトークン権限 Workersに付与できるD1,R2の権限の粒度の大きさ
リリースまでにハマったこと② カスタムトークン権限 ✅ 意図しないバケットやテーブル操作防止のために バックエンド側でJWT検証を行う ユーザ Web App workers Auth
DB・ストレージ D1 R2 Backend workers hono
リリースまでにハマったこと③ Remixのデプロイ PagesよりWorkersを推奨 https://developers.cloudflare.com/pages/migrations/migrating-from-workers/?utm_source=chatgpt.com
リリースまでにハマったこと③ Remixのデプロイ ❌ 素直にQuick Startから始めるとデプロイが面倒 https://remix.run/docs/en/main/start/quickstart
リリースまでにハマったこと③ Remixのデプロイ ✅ Workers用のテンプレートを使用しよう https://remix.run/docs/en/main/guides/deployment#deployment
リリースまでにハマったこと③ Remixのデプロイ npx create-remix@latest --template remix-run/remix/templates/cloudflare-workers https://github.com/remix-run/remix/tree/main/templates
リリースまでにハマったこと④ WorkersのRoute Domainへのデプロイ ❌ ルートドメインであるkeyninaru.meにRemixをデプロイ デプロイそのものは成功したが中身が表示されず… ・検証環境用サブドメインへデプロイした中身は閲覧できる状態 ・DNSレコードにはWorkersの種別でルートドメインを登録済みの状態
リリースまでにハマったこと④ WorkersのRoute Domainへのデプロイ ✅ Custom Domainを選んでデプロイしよう Routesでデプロイすると同一ゾーン内のfetch()ができない ログを確認した際にfetch関連のエラーが発生していたらRoutesでデプロイ していないか確認しよう https://developers.cloudflare.com/workers/configuration/routing/
リリースまでにハマったこと まとめ D1 Table作成に関わる処理をCI/CDで管理したい場合 ✅ GitHub Actions側でテーブルの有無に応じて処理を分岐 カスタムトークン権限の粒度が大きいことへの対応 ✅ 意図しないバケットやテーブル操作防止のためにバックエンド側でJWT検証を実施
RemixをWorkersにデプロイしたい ✅ 公式テンプレートでPJ作成して開発をスタート 取得したRoute DomainをWorkersに紐づけてデプロイするとエラーが発生する ✅ デプロイ時にCustom Domainを指定してデプロイ
Cloudflareさん、ありがとうございます! ご清聴ありがとうございました🎉 ひととり(Twitter) キーニナル