🫶

【フルマネージドRedisクラウド】Google Memory Storeってなんだ??

2024/02/20に公開

そもそもRedisって?

  • 無料で使えるデータベース管理システムの一つ
  • 高速にデータを処理することができる、という特徴がある
  • データベースの種類としては"NO SQL"というものに分類される

一言で言うと高速にデータを処理することができるNoSQLです。
高速な理由としてはオンメモリでデータを保存している揮発性のあるメモリだからです。

詳しくは以下の参考記事を参照してみてください。

Memory Storeを使う

MemoryStoreとはGoogleが提供するフルマネージドなRedisクラウドです。

自分の環境

  • Google Cloud Run (v1)
  • Redis version 6系

How to use

設定の仕方などはいろいろあると思うのですが、今回は自分が実装した方法をお伝えできればなと思います。

まずはVPCの設定を行います。

gcloud compute networks create <好きな名前> \
    --subnet-mode=auto \
    --bgp-routing-mode=DYNAMIC_ROUTING_MODE \
    --mtu=1460

これを行うとVPCがご自身のGCPに出現します。

次にcloud runを設定していきたいと思います。
cloud run に関してはいろいろデプロイ方法あると思うのですが、個人的には以下の流れでやるのが一番楽で管理もいらないかと思うので参考にしてみてください。

  1. Google Cloud buildでGithubにPushされたタイミングでビルドが走るように設定
  2. ビルド結果を元にCloud runでデプロイする

https://tech-blog.optim.co.jp/entry/2022/03/30/100000
この記事がわかりやすく解説してくれているので参考にしてみるといいかもしれません。

そしてここが特殊な設定になっている”ダイレクトVPC下り”設定を施していきます。
この設定をすることによってcloud runが同一のVPC内のリソースに対してアクセスできるようになるので、memory storeやcloud SQLのインスタンスを立てた際などに使われるみたいです。

設定の仕方は至って簡単で

  1. 新しいリビジョンの編集とデプロイをクリック
  2. コンテナ、ボリューム、ネットワーキング、セキュリティとあるのでネットワーキングをクリック
  3. アウトバウンド トラフィック用の VPC に接続するにチェックをつける
  4. VPC に直接トラフィックを送信を選択する
  5. VPCとサブネットを設定する
  6. プライベート IP へのリクエストのみを VPC にルーティングするにチェック
  7. デプロイボタンを押す
    これでcloud runの設定は完了になります。

次にMemoryStoreの設定を見ていきたいと思います。(最安構成)

  1. MemoryStoreページにアクセス
  2. インスタンスを作成
  3. インスタンスIDを任意で入力(redis-testなど)
  4. 基本(Basic)ティアを選択
  5. 容量を1GBに設定
  6. リージョンはCloud Runが存在する場所に設定しましょう。
  7. 接続を設定欄で先ほどCloud Runで設定したのと同じVPCを選択
  8. 作成ボタンをクリック

作成が完了するとMemoryStoreのIPアドレスが公開されるので、CloudRunで稼働させているアプリケーションの環境変数として設定してあげればうまくコネクションされると思います。

参考記事

https://qiita.com/keinko/items/60c844bcf329bd3f4af8

https://cloud.google.com/vpc/docs/create-modify-vpc-networks?hl=ja#gcloud

終わりに

Google Cloudの公式ドキュメントが充実しているので、公式を読めば大体なんとかなりますが、あんまり人気のないサービスだと詳しく書かれていなかったり、ハンズオンがなかったりするの辛いですよね。

筆者

https://twitter.com/ryuji_vlog

Discussion