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で個人開発! リリースまでにハマったあれこれ
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
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
450
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
280
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
220
From π to Pie charts
rasagy
0
320
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
500
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Documentation Writing (for coders)
carmenintech
77
5.5k
We Have a Design System, Now What?
morganepeng
55
8.3k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
250
Fireside Chat
paigeccino
42
4k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
430
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) キーニナル