Slide 1

Slide 1 text

#golangtokyo 無料で楽しむ 
 Go サーバー開発のススメ
 おーたかこーたろー @otakakot The Go gopher was designed by Renée French. The icon was designed by @avocadoneko. golang.tokyo #36 〜真夏のLTナイト2024〜 2024.08.08

Slide 2

Slide 2 text

#golangtokyo ※ 今日の内容は趣味レベルの話です

Slide 3

Slide 3 text

#golangtokyo サーバーどこにデプロイしていますか ... ???

Slide 4

Slide 4 text

#golangtokyo コスト気になりませんか ... ???

Slide 5

Slide 5 text

#golangtokyo クラウド破産 もし失敗して 大量の請求があったら ...

Slide 6

Slide 6 text

#golangtokyo クラウド破産 今日はコストを気にせず楽しめるサービスを紹介

Slide 7

Slide 7 text

#golangtokyo bio Web Engineer 新卒入社 2020 年 4 月 ~ Hello Golang ! 2021 年 4 月~ @otakakot
 @otakakot
 Web Engineer 株式会社ビットキー 2022 年 11 月 ~ Kotaro Otaka / 大高 浩太郎 The Go gopher was designed by Renée French. The icon was designed by @avocadoneko.

Slide 8

Slide 8 text

#golangtokyo アジェンダ 01. 3つのおすすめサービス 1. Koyeb 2. Cloudflare 3. Vercel 02. 事例紹介

Slide 9

Slide 9 text

#golangtokyo アジェンダ 01. 3つのおすすめサービス 1. Koyeb 2. Cloudflare 3. Vercel 02. 事例紹介

Slide 10

Slide 10 text

#golangtokyo 1. Koyeb https://www.koyeb.com/ ● コンテナを無料でデプロイできちゃうサービス ● (おすすめという割に私自身そこまで遊んでない) ● 普段の Go 開発と同じ体験でコンテナは用意 ● 用意したコンテナを指定するだけでデプロイが可能 ● ( 手軽にコンテナビルドできる ko というツールもおすすめ )

Slide 11

Slide 11 text

#golangtokyo 2. Cloudflare https://www.cloudflare.com/ ● CDN ( Content Delivery Network ) やセキュリティ対策などを提供する サービス ● エッジコンピューティングを活用した開発者向けのプラットフォームも提供 ● Cloudflare Workers という FaaS ( Function as a Service ) にて無料でサー バー構築が可能

Slide 12

Slide 12 text

#golangtokyo ● Cloudflare Workers は JavaScript (TypeScript) もしくは Wasm (Rust) ● syumai/workers を活用することで Go の開発が可能に ● 参考: Goで始めるCloudflare Workers ( SpeakerDeck ) Cloudflare Workersで簡単にGoのHTTPサーバーを動かすためのライブラリを作った ( Zenn ) 2. Cloudflare

Slide 13

Slide 13 text

#golangtokyo ● ほかにも無料で利用できるリソースが存在 ○ Cloudflare Workers KV ( Key Value Store ) ○ Cloudflare D1 ( Edge SQLite ) ○ Cloudflare R2 ( <-> AWS S3 ) ● Cloudflare Workers の無料版の制限 ○ デプロイサイズ上限が 1 MB ○ 実行時間制限が 10 [ms] etc ... 2. Cloudflare

Slide 14

Slide 14 text

#golangtokyo 3. Vercel https://vercel.com/ ● PaaS ( Platform as a Service ) ● Next.js ( React Framework ) からホスティングのイメージが強いが サーバーサイドの構築も可能 ○ Vercel Functions ● Go のデプロイも可能

Slide 15

Slide 15 text

#golangtokyo 3. Vercel ● ほかにも無料で利用できるリソースが存在 ○ Vercel Postgres ( RDB ) ○ Vercel KV ( Key Value Store ) ○ Vercel Blob ( ファイルストレージ ) ○ Vercel Edge Config ( Read Only Datastore )

Slide 16

Slide 16 text

#golangtokyo 3. Vercel いくつか記事を書いたので気になる方がいましたらチェックしてみてください ● Vercel に Go サーバーを無料でデプロイできるんです! ○ 紹介記事 ● Vercel × Go で開発するときの Tips ○ パスルーティングの話 ● Vercel Storage を Go で扱う ○ 各種 Storage を実際に Go で扱うサンプルコード

Slide 17

Slide 17 text

#golangtokyo アジェンダ 01. 3つのおすすめサービス 1. Koyeb 2. Cloudflare 3. Vercel 02. 事例紹介

Slide 18

Slide 18 text

#golangtokyo 事例紹介:Slack に送信した記事URLを収集するサービス ● Slack の無料版で 90 日でメッセージが非表示になることがきっかけ ● いろんな無料サービスを組み合わせる ● あえて複雑(?)にしたりして遊ぶ ● Okteto という Kubernetes が無料で使えるサービスがメイン ● Okteto の無料版が廃止になったため開発停止 ( + 飽きた ... ) ○ 参考:【deprecated】oktetoで無料Kubernetesを遊び尽くす

Slide 19

Slide 19 text

#golangtokyo 事例紹介:Slack に送信した記事URLを収集するサービス

Slide 20

Slide 20 text

#golangtokyo おまけ ● CockroachDB (PostgreSQL) ● yugabyteDB (PostgreSQL) ● Xata (PostgreSQL) ● Neon (PostgreSQL) ● Upstash (Redis, Kafka, etc ... ) ● Resend (メール送信)

Slide 21

Slide 21 text

#golangtokyo 事例紹介:OpenID Connect ● Cloudflare で遊びたいなというモチベーション ● 絶賛遊んでいる最中 ● OpenID Provider 側をデプロイ ● Relying Party 側は手抜きでローカルのみ ● Web 画面も手抜き ● 実装コードを閲覧できますが OIDC として不完全なのであまり参考にはせず

Slide 22

Slide 22 text

#golangtokyo 事例紹介:OpenID Connect

Slide 23

Slide 23 text

#golangtokyo おまけ ● Supabase ● Deno Deploy JavaScript 実行環境 + Wasm 対応 Deno Deploy は syumai/deno-deploy-scale-image で Go を利用

Slide 24

Slide 24 text

#golangtokyo まとめ 3つのおすすめサービス 1. Koyeb 最も手軽にデプロイ 2. Cloudflare 制限の中どう工夫するか 3. Vercel 制限はゆるく連携するリソースもある

Slide 25

Slide 25 text

#golangtokyo さいごに ...

Slide 26

Slide 26 text

#golangtokyo クラウド破産 個人開発・趣味レベルの使い方

Slide 27

Slide 27 text

#golangtokyo クラウド破産 いいなって思ったら 課金しましょう!