2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

HasuraをGCPで構築した話

Last updated at Posted at 2023-09-17

前置き

HasuraをGCPで構築し、個人開発を円滑に進めたいと思いCloud Run + Cloud SQLの構成でAuth Proxy経由接続する方法があまり見つからなかったのでメモとして残しています

作業手順

  1. サービスアカウントの作成(Cloud SQL Auth Proxy用)
  2. Cloud SQLインスタンスの作成(PostgresSQL)
  3. Docker imageをArtifact ResitoryにPush
  4. Cloud RunでHasuraを起動

サービスアカウントの作成(Cloud SQL Auth Proxy用)

Cloud SQL Auth Proxy用のサービスアカウントを作成します
作成したサービスアカウントは構築するCloud Runに紐付ける予定です
付与する権限は、『Cloud SQL Client』のみでOK!
スクリーンショット 2023-09-18 0.02.12.png

Cloud SQLインスタンスの作成(PostgresSQL)

Hasura接続用のDBを構築します
今回は、個人開発用なので最小構成にしています
▼ 構成
種類: PostgresSQL 15.2(デフォルト)
マシン構成: db-g1-small(1vCPU, 1.7GB)
ストレージ: SSD 10GB

Docker imageをArtifact ResitoryにPush

まずは、ArtifactRepositoryにリポジトリを作成します
コンソール画面からポチポチして作成しました

次にローカルにHasuraのDocker Imageをぷるっと

docker pull hasura/graphql-engine:latest

Tagをつけてあげる

docker tag hasura/graphql-engine:latest \
us-central1-docker.pkg.dev/< ProjectID >/< RepositoryName >/< IMAGE >

Pushの前に、なんだか忘れてしまったおまじない
たしかArtifact Registryへ認証を通すおまじない、、、

gcloud auth configure-docker us-central1-docker.pkg.dev

Artifact RegistryへPush

docker push \
us-central1-docker.pkg.dev/< ProjectID >/< RepositoryName >/< IMAGE >

リポジトリにPushされていることを確認
スクリーンショット 2023-09-18 0.18.01.png

Cloud RunでHasuraを起動

Artifact RepositoryにPushしたイメージからリビジョンを作成します
▼ 構成
ほんとに最小構成で設定しました!

スクリーンショット 2023-09-18 0.20.28.png
スクリーンショット 2023-09-18 0.20.46.png
スクリーンショット 2023-09-18 0.21.18.png

■ 環境変更
HASURA_GRAPHQL_ADMIN_SECRET: Hasuraコンソールにアクセスする時のパスワード
HASURA_GRAPHQL_ENABLE_CONSOLE: Hasuraコンソールにアクセスする場合はTRUEに
HASURA_GRAPHQL_SERVER_PORT: 起動するポート
HASURA_GRAPHQL_DATABASE_URL: DBのURL(Auth Proxy経由で癖があるので詳細を下記に記載)

ポイントは3点!

① 環境変数のCloud SQL Auth Proxy用にセットする
HASURA_GRAPHQL_DATABASE_URLという変数名に、『postgres://<user>:<password>@/<database>?host=/cloudsql/<instance_name>』の形式でセットする

② Cloud SQL接続に作成したDBを選択する
正直、これを選択しないと接続されないかわかりませんが?アイコンをホバーするとProxyを自動化されるとあったので選択しないと接続できないっぽい

③ セキュリティタブからデフォルトサービスアカウントのものから最初に作成したサービスアカウントに選択する
これの選択を忘れるとProxy周りがうまく通らないっぽいので作成したサービスアカウントを設定
デフォルトのサービスアカウントに『Cloud SQL Client』を足していいのかもしれませんが権限を最小限にしたいので最初に作成したものを選択しました

リビジョンの起動が終わったら、発行されたCloud RunのURLからHasuraのコンソール画面へ入る!
環境変数で設定した、HASURA_GRAPHQL_ADMIN_SECRETでログインできれば成功 🎉

おしまい

イメージをそのままCloud Runで動かすだけであればすごい簡単にHasuraを構築することができました!
Hasuraは、コード管理できるのでプロダクトで使う場合はコード管理するした方がリリースタイミングでHasuraコンソールからポチポチするより良さそう!(どうやるかは全然イメージわかないですが、、、)

あとは、『HASURA_GRAPHQL_ADMIN_SECRET』と『HASURA_GRAPHQL_DATABASE_URL』をSecretManagerとかで管理して、リブジョンする際に参照するように設定すれば一通り良さそう!!

最後まで読んでいただきましてありがとうございます 🙇‍♂️

2
2
2

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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?