はじめに
今回は、以前Golangの練習がてらに作成したトレーニング記録アプリを、Renderにデプロイする手順を解説します。データベースの作成から、Goアプリケーションとの接続、環境変数の設定、デプロイ方法までをカバーします。
Step 1: Renderに PostgreSQL データベースを作成する
-
Render.com にログイン
まだアカウントを作成していない場合は、Render.com にサインアップします。 -
新しいデータベースを作成
-
データベース接続の確認
データベースが作成されると、接続に必要な情報(ホスト名、データベース名、ユーザー名)が表示されます。PSQL Commandの情報を使って接続を確認します。ターミナルを開き以下のコマンドと表示されたパスワードでデータベースに接続します。psql -h ******oregon-postgres.render.com -U root workoutdb_k0zf PGPASSWORD=********
2 : Go アプリケーションを Render.com にデプロイする
1. Renderにアプリケーションをデプロイ
Render ダッシュボードから「New」ボタンを押し、「Web Service」を選択します。GitHub リポジトリを選び、クリックします。
2. 環境変数の設定
データベースの接続情報(パスワードなど)を本番環境のコードにハードコーディングしてしまうの危険です。代わりに、環境変数を使用して接続情報を管理します。docker-compose.yml内でパスワードなどの秘匿情報を環境変数に置き換えます。
version: '3'
services:
db:
image: postgres:13
environment:
- POSTGRES_DB=${DB_NAME}
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
ports:
- "5432:5432"
go-app:
build: .
depends_on:
- db
environment:
- DB_HOST=${DB_HOST}
- DB_NAME=${DB_NAME}
- DB_USER=${DB_USER}
- DB_PASSWORD=${DB_PASSWORD}
- DB_SSLMODE=require
ports:
- "8080:8080"
volumes:
postgres_data:
アプリケーションのサービス設定ページで「Environment Variables」セクションを開き、下記の環境変数を入力します。
3. デプロイ
設定が完了したら、デプロイを行います。Render.com でアプリケーションがデプロイされ、指定した URL からアクセスできるようになります。ブラウザで確認して、正しくデプロイされていることを確認しましょう。
#14 DONE 2.4s
Pushing image to registry...
Upload succeeded
==> Deploying...
2024/12/30 17:10:41 サーバーがポート8080で起動しています...
==> Your service is live 🎉
https://アプリ名.onrender.com/
まとめ
この記事では、PostgreSQL を使った Go アプリケーションを Render.com にデプロイする方法と、ローカル開発環境での連携方法について説明しました。環境変数を使用してデータベース接続情報を安全に管理し、Render.com でアプリケーションをホスティングする手順を紹介しました。この手順を参考にして、あなたのアプリケーションをクラウド環境にデプロイしてみましょう。