1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

「学生ひよこ界隈が送るGo/Javaで実現する「はじめてのバックエンド」Advent Calendar 2025」18日目の記事は、作ったAPIを公開するステップに挑戦します。

この記事では、Goで作成したシンプルなWeb APIを、PaaSであるRenderを使って、無料でインターネットに公開する手順を、皆さんと一緒にハンズオン形式で詳しく解説していきます。

  • ローカルで動くAPIを初めてインターネットに公開してみたい方
  • PaaSの概念や、それを使うメリットを知りたい方

この記事で、PaaSを使ってデプロイするハードルを下げられるように頑張っていきましょう!

PaaSとは?

自分でサーバーを契約してOSの設定から始めるIaaS (Infrastructure as a Service)と違い、PaaS (Platform as a Service)は、私たちが書いたアプリケーションのコードを動かすための「プラットフォーム(土台)」を提供してくれます。

それで開発者は、サーバーの管理やOSのアップデートといった面倒なインフラ作業から解放され、アプリケーションのコードを書くことに集中できます。

今回はRenderを使用してデプロイを行なっていきます。

Renderの概要

  • 無料プランあり: 小規模なWebサービスなら無料で利用できます
  • GitHubとの親和性: GitHubリポジトリと連携し、「特定のブランチにプッシュされたら自動でデプロイする」ワークフローを簡単に構築できます
  • 直感的なUI: Webのダッシュボードが非常に分かりやすく、数クリックでデプロイ設定が完了します

【実践】Go APIをRenderにデプロイする

それでは、実際にGoで書いた簡単なAPIをRenderにデプロイしてみましょう。

STEP1: 準備

1. Go APIの用意

まず、デプロイするGoのAPIを用意します。

ポート番号を環境変数から受け取れるように修正しておきましょう。

main.go

package main

import (
	"fmt"
	"log"
	"net/http"
	"os"
)

func helloHandler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprint(w, "Hello from Render!")
}

func main() {
	http.HandleFunc("/", helloHandler)

	// Renderから提供されるPORT環境変数を取得
	port := os.Getenv("PORT")
	if port == "" {
		port = "8080" // ローカル開発用のデフォルトポート
	}

	log.Printf("Server starting on port %s", port)
	// "localhost:8080" ではなく ":8080" のようにコロンから始める
	if err := http.ListenAndServe(":"+port, nil); err != nil {
		log.Fatal(err)
	}
}

2. GitHubリポジトリ

この main.go ファイルを含むプロジェクトを、GitHubのリポジトリにプッシュしておきます。

3. Renderアカウント

Renderの公式サイトにアクセスし、GitHubアカウントでサインアップ(またはログイン)しておきます。

STEP2: Renderで新しいWebサービスを作成

  1. Renderのダッシュボードにログインし、右上の「New +」ボタンから「Web Service」を選択します。
  2. 「Build and deploy from a Git repository」のセクションで、デプロイしたいリポジトリの右側にある「Connect」ボタンをクリックします。

STEP3: デプロイ設定

リポジトリに接続すると、デプロイ設定画面が表示されます。Goプロジェクトの場合、Renderが自動で設定を推測してくれるので、ほとんど変更は不要です。

  1. Name: サービスの名前を入力します。これがURLの一部になります(例: my-go-api)。
  2. Region: デプロイする地域を選択します(例: Singapore)。
  3. Branch: デプロイのトリガーとなるブランチを選択します(例: main)。
  4. Runtime: Go が自動で選択されていることを確認します。
  5. Build Command: go build -o server ./... と入力します。
  6. Start Command: ./server と入力します。
  7. Plan: Free を選択します。

すべての設定が完了したら、一番下の「Create Web Service」ボタンをクリックします。

Step 4: デプロイの実行と確認

「Create Web Service」をクリックすると、即座に最初のデプロイが開始されます。

ダッシュボードの「Logs」タブを見ると、ビルドとデプロイが進行する様子をリアルタイムで確認できます。

ログに Your service is live 🎉 と表示されればデプロイ成功です!

画面の上部に https://<your-service-name>.onrender.com という形式のURLが表示されているはずです。

このURLにブラウザやcurlでアクセスしてみましょう。Hello from Render! というレスポンスが返ってくれば成功です!

おわりに

この記事では、RenderでGoのAPIをデプロイする方法をハンズオンで解説しました。

「デプロイは難しそう」と感じていた方も、GitHubとの連携を使うことでデプロイが手軽に行えることを知って、PaaSの便利さがとても伝わったのではないかと思います。

今回は最もシンプルなWebサービスのデプロイを手動で行いましたが、次回の記事ではこのコードをそのまま使いつつGitHub ActionsとRenderを連携させて、コードをプッシュするとテストが走り、問題なければ自動でデプロイまで完了するCI/CDパイプラインの構築を行おうと思います。

最後までお読みいただき、ありがとうございました!

この「学生ひよこ界隈が送るGo/Javaで実現する「はじめてのバックエンド」Advent Calendar 2025」では、GoJavaを使い、APIの作り方、データベースとの接続、テストやDockerといった気になったバックエンド技術の基本を振り返った学びを共有しています。

ぜひ他の記事もチェックして、筆者がこのひとりアドカレを完遂することができるか、確認してみてください(^^)

学生ひよこ界隈が送るGo/Javaで実現する「はじめてのバックエンド」Advent Calendar 2025

それでは、明日の「学生ひよこ界隈が送るGo/Javaで実現する「はじめてのバックエンド」Advent Calendar 2025」の記事もお楽しみに!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?