はじめに
Cloud RunとAlloyDBでWEBアプリを作ったので、こういった構成を考えている方にとって参考になればと思い書いておく。公式ドキュメントに設定方法はあるので、設定方法と言うよりは使ってみた感想に重きをおいて書く。
筆者について
Google Cloudは触ったことが無いが、今回Webアプリを作成することになったので、アーキテクチャを考えた。
それに先立ち、Google Cloudの資格(Google Cloud Certified Associate Cloud Engineer)を取得したり、GCEやGKEとCloud Runを比較したりして今回の構成にした。
構成図
構成図の環境の作成方法
Connect from Cloud Run(公式ドキュメント)を参考にすればCloud RunとAlloyDBの環境ができる。
ちなみに、AlloyDBのIPアドレスは自動で割り当てられるので、自動で割り当てられたIPアドレスを、Cloud Runの環境変数(INSTANCE_HOST)に設定する。AlloyDBに対してIPアドレスの範囲のVPCネットワークを設定するので致し方ない。
Cloud Load BalancingとCloud Runの設定方法は他の記事を参考にして頂ければと思う。
デプロイの設定に関してはCloud ConsoleでCloud Runを開くと[継続的デプロイを編集します]のボタンがあり、そこから設定できる。GitHubのリポジトリとブランチの設定くらいなので難しくない。
感想
Cloud Run
-
Good
- デプロイが簡単。GitHubのリポジトリとブランチを設定すれば、そのブランチにpushすると自動でCloud Runにデプロイされる。
- 従量課金で無料枠もそれなりにある(毎月200万リクエストとか色々)ので、無料枠内で収めることも可能。ただし、常時インスタンスを起動するような設定だと月数千円はかかるかもしれない。
-
Bad
- 今回触った感じでは見つからなかった。
AlloyDB
-
Good
- 設定が簡単。高可用性、CPUとメモリの設定とかくらい。
- 自動バックアップ機能があり、設定した時間帯に取得してくれる。
- Query Insightsでクエリの負荷が見える。
- Postgresとの能力比較は行なっていないが、ハイパフォーマンスらしい
- 現在Postgresで動作している場合は、そのまま移行ができるらしい(参考記事)
-
Bad
- 最低スペックでも常時稼働するなら月8万程度の費用が必要。
- 自動バックアップの取得もできるが、詳細な設定はCloud Consoleではなくgcloud CLIで操作(公式リファレンス)。
- 再起動しかできず、停止ができない。そのため、開発環境のように停止したい場合に困る。停止しないとお金がかかるので。私の場合は、Cloud ConsoleからAlloyDBのバックアップを取得して、インスタンスを削除して運用をしている。必要があれば、バックアップを復元すれば良いので。ただしIPアドレスが変わってしまうため、DBへの接続するアプリ側の接続先IPの変更も必要なのが厄介。
終わりに
初めに調べていた時は色々つまづいたが、最終的にはスッキリした構成でWEBアプリの作成ができた。Cloud Runは費用が安価で、デプロイも簡単なので良いコンポーネントと言う感想。また、AlloyDBは能力が活かせれたら強い味方になると信じて終わりの言葉とする。