見出し画像

【Hasura】 GCP につなげてみる

こんにちは。CREFILの甲斐です。今回は Hasura の DB 接続方法の中の、Google Cloud Platform で PostgreSQL インスタンスを使用する方法についてご紹介します。


1. Hasura で New Project を作成する

Hasura にログインしたら、「New Project」より新しいプロジェクトを作成します。(今回はデフォルトで作成されたプロジェクトをそのまま使用) プロジェクトが作られたら、「Launch Console」より Hasura Consoleを開きます。

プロジェクトを作成したらコンソールを開きます

メニュー DATA > Data Manager > Manage > Connect Database を開くと、接続できる DB の一覧を確認できます。今回は PostgreSQL の予定ですが、GCP での作業後こちらの画面に戻って来ます。

2. GCP の SQL で PostgreSQL インスタンスを作成する

Google Cloud Platform > SQL より PostgresSQL インスタンスを作成します。

PostgresSQL を選択

インスタンスの情報を入力します。

  • インスタンスID

    • 任意のIDを設定

  • パスワード

    • デフォルトの管理ユーザー「postgres」のパスワードの設定

任意のインスタンスIDとパスワードを設定

3. GCP > SQL > 接続からDBの接続設定を行う(Hasura Cloud IP をコピーして GCPのネットワーク設定を行う)

作成したインスタンス(ここではインスタンスID「demo-postgreSQL」)の接続設定を行います。

Google Cloud Platform > SQL > 接続よりパブリックIPにチェックを入れてネットワークを追加します。

ネットワーク追加の設定を行います

Hasura Cloud の設定画面を開き、「Hasura Cloud IP」の値をコピーしてGCPの画面でネットワーク追加を行います。

Hasura Cloud IP をコピーして、GCP上でネットワークに追加
Hasura Cloud IP の値を貼り付けます

4. Hasura Console で DB の URLを指定して接続設定を行う(GCP上のインスタンスのパブリックIPアドレスを使う)

Hasura Console を開きます。 DATA > Data Manager > Manage > Connect Database > Postgres を選択し、「Connect Existing Database」をクリックします。

任意の DB の名前を入力し、Connect Database via での Database URL設定へと進みます。

Hasura Console 内で接続する DB の URL を指定します

Database URL のプレースホルダーに「postgresql://username:password@hostname:port/postgres」という文字が見えます。

URLの構造は下記の通りです。

postgresql://<user-name>:<password>@<public-ip>:<postgres-port>/

<user-name> は特定のものを設定していない場合はデフォルトでpostgres となります。

<password> は基本的には DB を作成した時のパスワードです。

<public-ip> は、GCP上 で確認できる SQLインスタンスのパブリックIPアドレスを使います。

<postgres-port>についてですが、PostgreSQL用のデフォルトのポートは 「5432」 となります。

GCP でパブリックIPアドレスを確認

URL の設定が済んだら、Hasura Console 上の「Connect Database」ボタンクリックで設定を完了させます。

補足

実際に設定を行い、DB にデータを入れてみた後に少し放置していたら、Hasura で DB にアクセスできなくなっていました。

GCP で PostgreSQL インスタンスを更新し、再度 Hasura Console にアクセスします。

不具合が出ていたのでこちらの画面表示も通常とは異なっていました

「Reload metadata」をクリックしてみます。

不具合もなくなりました。

最後に

今回は Google Cloud Platform の PostgreSQL インスタンスを使用する方法についてご紹介しました。
Haura の機能について個人学習をする場合はGCP であれば無料枠内、また、他にも無料で使える DB もあるので、用途に応じて使い分けできるかと思います。

ご紹介した内容が Hasura で DB接続する際の参考になれば幸いです。