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
無料で楽しむ Go サーバー開発のススメ
Search
Kotaro Otaka
August 08, 2024
Programming
10
3.1k
無料で楽しむ Go サーバー開発のススメ
Kotaro Otaka
August 08, 2024
Tweet
Share
More Decks by Kotaro Otaka
See All by Kotaro Otaka
Wasm わからないけど Go で実装したいから入門する
otakakot
1
170
cmp.Or に感動した
otakakot
3
490
net/http/httptest が推しです♡
otakakot
3
190
Go のテストで失敗をマークする
otakakot
0
130
Other Decks in Programming
See All in Programming
2024年のWebフロントエンドのふりかえりと2025年
sakito
3
250
技術を根付かせる / How to make technology take root
kubode
1
250
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
140
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
130
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
110
Software Architecture
hschwentner
6
2.1k
『GO』アプリ データ基盤のログ収集システムコスト削減
mot_techtalk
0
130
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
50
17k
動作確認やテストで漏れがちな観点3選
starfish719
6
1k
法律の脱レガシーに学ぶフロントエンド刷新
oguemon
5
740
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.4k
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
270
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Code Reviewing Like a Champion
maltzj
521
39k
Done Done
chrislema
182
16k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Site-Speed That Sticks
csswizardry
4
380
Embracing the Ebb and Flow
colly
84
4.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
The Pragmatic Product Professional
lauravandoore
32
6.4k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
A Tale of Four Properties
chriscoyier
158
23k
Transcript
#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
#golangtokyo ※ 今日の内容は趣味レベルの話です
#golangtokyo サーバーどこにデプロイしていますか ... ???
#golangtokyo コスト気になりませんか ... ???
#golangtokyo クラウド破産 もし失敗して 大量の請求があったら ...
#golangtokyo クラウド破産 今日はコストを気にせず楽しめるサービスを紹介
#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.
#golangtokyo アジェンダ 01. 3つのおすすめサービス 1. Koyeb 2. Cloudflare 3. Vercel
02. 事例紹介
#golangtokyo アジェンダ 01. 3つのおすすめサービス 1. Koyeb 2. Cloudflare 3. Vercel
02. 事例紹介
#golangtokyo 1. Koyeb https://www.koyeb.com/ • コンテナを無料でデプロイできちゃうサービス • (おすすめという割に私自身そこまで遊んでない) • 普段の
Go 開発と同じ体験でコンテナは用意 • 用意したコンテナを指定するだけでデプロイが可能 • ( 手軽にコンテナビルドできる ko というツールもおすすめ )
#golangtokyo 2. Cloudflare https://www.cloudflare.com/ • CDN ( Content Delivery Network
) やセキュリティ対策などを提供する サービス • エッジコンピューティングを活用した開発者向けのプラットフォームも提供 • Cloudflare Workers という FaaS ( Function as a Service ) にて無料でサー バー構築が可能
#golangtokyo • Cloudflare Workers は JavaScript (TypeScript) もしくは Wasm (Rust)
• syumai/workers を活用することで Go の開発が可能に • 参考: Goで始めるCloudflare Workers ( SpeakerDeck ) Cloudflare Workersで簡単にGoのHTTPサーバーを動かすためのライブラリを作った ( Zenn ) 2. Cloudflare
#golangtokyo • ほかにも無料で利用できるリソースが存在 ◦ Cloudflare Workers KV ( Key Value
Store ) ◦ Cloudflare D1 ( Edge SQLite ) ◦ Cloudflare R2 ( <-> AWS S3 ) • Cloudflare Workers の無料版の制限 ◦ デプロイサイズ上限が 1 MB ◦ 実行時間制限が 10 [ms] etc ... 2. Cloudflare
#golangtokyo 3. Vercel https://vercel.com/ • PaaS ( Platform as a
Service ) • Next.js ( React Framework ) からホスティングのイメージが強いが サーバーサイドの構築も可能 ◦ Vercel Functions • Go のデプロイも可能
#golangtokyo 3. Vercel • ほかにも無料で利用できるリソースが存在 ◦ Vercel Postgres ( RDB
) ◦ Vercel KV ( Key Value Store ) ◦ Vercel Blob ( ファイルストレージ ) ◦ Vercel Edge Config ( Read Only Datastore )
#golangtokyo 3. Vercel いくつか記事を書いたので気になる方がいましたらチェックしてみてください • Vercel に Go サーバーを無料でデプロイできるんです! ◦
紹介記事 • Vercel × Go で開発するときの Tips ◦ パスルーティングの話 • Vercel Storage を Go で扱う ◦ 各種 Storage を実際に Go で扱うサンプルコード
#golangtokyo アジェンダ 01. 3つのおすすめサービス 1. Koyeb 2. Cloudflare 3. Vercel
02. 事例紹介
#golangtokyo 事例紹介:Slack に送信した記事URLを収集するサービス • Slack の無料版で 90 日でメッセージが非表示になることがきっかけ • いろんな無料サービスを組み合わせる
• あえて複雑(?)にしたりして遊ぶ • Okteto という Kubernetes が無料で使えるサービスがメイン • Okteto の無料版が廃止になったため開発停止 ( + 飽きた ... ) ◦ 参考:【deprecated】oktetoで無料Kubernetesを遊び尽くす
#golangtokyo 事例紹介:Slack に送信した記事URLを収集するサービス
#golangtokyo おまけ • CockroachDB (PostgreSQL) • yugabyteDB (PostgreSQL) • Xata
(PostgreSQL) • Neon (PostgreSQL) • Upstash (Redis, Kafka, etc ... ) • Resend (メール送信)
#golangtokyo 事例紹介:OpenID Connect • Cloudflare で遊びたいなというモチベーション • 絶賛遊んでいる最中 • OpenID
Provider 側をデプロイ • Relying Party 側は手抜きでローカルのみ • Web 画面も手抜き • 実装コードを閲覧できますが OIDC として不完全なのであまり参考にはせず
#golangtokyo 事例紹介:OpenID Connect
#golangtokyo おまけ • Supabase • Deno Deploy JavaScript 実行環境 +
Wasm 対応 Deno Deploy は syumai/deno-deploy-scale-image で Go を利用
#golangtokyo まとめ 3つのおすすめサービス 1. Koyeb 最も手軽にデプロイ 2. Cloudflare 制限の中どう工夫するか 3.
Vercel 制限はゆるく連携するリソースもある
#golangtokyo さいごに ...
#golangtokyo クラウド破産 個人開発・趣味レベルの使い方
#golangtokyo クラウド破産 いいなって思ったら 課金しましょう!