概要
以下の自作のハンズオン資料の解説記事です :)
github.com
ハンズオンでやっていること
主に以下の 2 点を実際に構築出来ます
1. 同じプロジェクト内で Cloud Run から Memorystore にアクセスする
2. 違うプロジェクトの Cloud Run から Memorystore にアクセスする
使っているサービスのおさらい
Cloud Run
Google Cloud のコンテナを直接実行できるフルマネージドサービスです
cloud.google.com
Memorystore
Google Cloud のフルマネージドのインメモリデータベースのサービスです
Redis, Redis Cluster, Memcached の中から選べます (2023/12 現在)
今回は Memorystore for Redis を利用しています
cloud.google.com
Direct VPC egress
Cloud Run から (Google Cloud の) VPC Network に紐づくサービスに内部通信出来るようになるサービスです
2023/12 現在では、まだ Preview の機能です
みんなが待ち望んでいた機能なので、すでに知っている人も少なく無いと思います ;)
cloud.google.com
Direct peering
ユーザ管理の VPC Network と Google 管理のプロジェクトの VPC ネットワークを VPC Peering する機能です
Memorystore for Redis は Google 管理のネットワークにあるリソースのため、この Peereing が必要になります
後述の Private services access とどちらかを使用する必要があります
cloud.google.com
Private services access
ユーザ管理の VPC Network と Google サービス ネットワークの間にピアリングを作成する機能です
cloud.google.com
Shared VPC
複数の Google Cloud プロジェクトにて、 1 つの VPC Network を共有する機能です
Google Cloud の組織を導入することで利用できる機能の一つです
cloud.google.com
Redis Commander
Web ブラウザ上で Redis を操作できるアプリケーションです
下記からお借りしています :)
Special Thanks!!
github.com
苦労した点
違うプロジェクトの Cloud Run から Memorystore にアクセスする際の Role の考え方
以下の構成を取るのですが、これを理解するのに時間が掛かりました...
- 共有 VPC を使っていて、ホストプロジェクトに Memorystore があり、サービスプロジェクトに Cloud Run が設置してある
- Cloud Run が動いているプロジェクトのデフォルトの Cloud Run 用の Service Account に、 Memorystore が動いているプロジェクトのネットワークの Role を付与する
- Cloud Run のサービスに付与した Service Account を、デフォルトの Cloud Run 用の Service Account を使用出来るようにする
最初は Cloud Run のサービスに付与した Service Account に、Memorystore が動いているプロジェクトのネットワークの Role を付与すれば OK だろうと思っていたのですが、それだと動きませんでした :(
最後に
ここまで読んで気になった方は、ぜひハンズオンをやってみてください ;)
Have Fan!! :)