Cloud RunでGoを動かしたい

nove-b May 31, 2024
Source
Gormを使用し、APIを作成した。前回はAWSとNestJsだったので、今回はGCPを使用してみることにした。 Cloud Run 今回はCloud Runを使用することにした。 そもそもCloud Runとは、 > フロントエンド サービスやバックエンド サービス、バッチジョブの実行、ウェブサイトやアプリケーションのデプロイ、処理ワークロードのキューへの追加を行います。インフラストラクチャを管理する必要はありません。 > > 毎月 200 万リクエストは無料です。 Amazon ECSとAWS App Runnerと比較されることが多いらしい。 Amazon ECSとApp RunnerとCloud runの比較 特筆すべきは無料枠があることな気がする。 デプロイ そんなCloud Runにデプロイしていく。 クイックスタート: Cloud Run に Go サービスをデプロイする 公式が丁寧なのでこれに沿っていく。 ちなみに前提は下記の通りになる。 - Goで既にAPIを作成している - フレームワークは未使用 - Goのバージョンはgo 1.21.4 - ローカルでサーバーを立ち上げる時はnet/httpを使用した。 アカウント作成 まずはアカウントを作成する必要がある。 アカウントを作成する 作成後、 プロジェクト セレクタ ページで、Google Cloud プロジェクトを作成する。 プロジェクト名を作成するだけで作成が完了する。 次に課金が有効になっていることを確認する必要がある。 課金が有効になっているか確認する 課金が有効になっていない場合は、 > 「このプロジェクトには請求先アカウントがありません」 というポップアップが表示されるらしい。 Google Cloud CLI をインストール ここで問題がないようであれば、Google Cloud CLI をインストールする。 以下、Windowsでの方法になる。 参考;インストール手順 Google Cloud CLI インストーラをダウンロード。 インストール後は画面の指示に従い、進めていく。 全部、Next☞でやったけど問題なさそうだった。 インストールが完了するとログインを求められ、 > これで gcloud CLI での認証が完了しました。 問題なければ上記のページに飛ばされる。 同時にターミナル ウィンドウが開いて gcloud init コマンドが実行される。 で、Cloud Run サービスのデフォルト プロジェクトを設定するけど、なんで設定したかはまだわからない。 デプロイで連携する 次に既存のアプリを連携させる。 > ソースコード ディレクトリで、次のコマンドを使用してソースからデプロイします。 > > とのことだったので、実行した結果、 エラーになったので再起動して実装してみる。 というエラーがでた。 VSCodeのGitbashで起こるエラーっぽいので、コマンドプロンプトで実行したところうまく通った。 このあと何回かデプロイを試したが何回もエラーで落ちる。 エラーとの戦い(データベースへの接続に失敗しました) Googleが用意したサンプルコードだとデプロイが成功するのに自身のアプリはデプロイできない。 仕方ないので、コメントアウトをしつつ、デプロイを試していく。 すると ここで落ちていることが判明した。 つまりデーターベースに接続できていない。 ちょっと原因不明点が多すぎて原因究明できなかったので、また同じことが起きた時は原因まで調査するようにする。 Cloud SQLに接続するようにする ローカルのDBに接続できないのであれば、いずれ使用する予定だったCluod SQLであれば接続できるのでは? という風に思い、GormでCloud SQLに接続するを行った。 無事にデプロイ で、上記完了後に再デプロイした結果、無事にデプロイできました。

Discussion in the ATmosphere

Loading comments...