💡
クラウドサービス上のRedisデータをGUIで確認/操作する
やりたいこと
stg環境などのデバッグをしていると、webアプリケーションで利用しているRedisの中のデータを確認したくなる。
AWSはわからないが少なくともGCPではRedisの中のデータを確認するサービスはないのでいい感じにGUIで触れる仕組みは自分で構築しないといけない。
webアプリケーションのexample.com/redis
のようなパスで以下のようなGUIを表示できたら色々と便利そうな気がする。
方法
類似ツールはいくつかありますが本記事ではシンプルなRedis Commanderを使います。
下記のリソースをデプロイしてください。
Gateway API + GCP NEGを利用した例になるので、使っていない場合はDeploymentとServiceだけで大丈夫です。
NEGのように必ずhealthcheckを求められる場合は、パスを/redis/favicon.png
とするのがポイントです。
また、今回のように/redis
のように特定のパスで開きたい場合は環境変数URL_PREFIX
が必要です。
REDIS_HOSTS
などはご自身の環境に応じて変更してください。
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: redis-commander
name: redis-commander
namespace: NAMESPACE
spec:
replicas: 1
selector:
matchLabels:
app: redis-commander
strategy: {}
template:
metadata:
labels:
app: redis-commander
spec:
containers:
- image: ghcr.io/joeferner/redis-commander:latest
imagePullPolicy: IfNotPresent
name: redis-commander
ports:
- containerPort: 8081
protocol: TCP
env:
- name: REDIS_HOSTS
value: DB0:redis:6379:0,DB1:redis:6379:1,DB2:redis:6379:2,DB3:redis:6379:3
- name: URL_PREFIX
value: /redis
resources: {}
---
apiVersion: v1
kind: Service
metadata:
name: redis-commander
namespace: NAMESPACE
spec:
ports:
- name: http-port
port: 8081
protocol: TCP
targetPort: 8081
selector:
app: redis-commander
type: ClusterIP
---
apiVersion: networking.gke.io/v1
kind: GCPBackendPolicy
metadata:
name: redis-commander
namespace: NAMESPACE
spec:
targetRef:
group: ""
kind: Service
name: redis-commander
---
apiVersion: networking.gke.io/v1
kind: HealthCheckPolicy
metadata:
name: redis-commander
namespace: NAMESPACE
spec:
default:
checkIntervalSec: 10
config:
httpHealthCheck:
port: 8081
requestPath: /redis/favicon.png
type: HTTP
healthyThreshold: 2
timeoutSec: 10
unhealthyThreshold: 2
targetRef:
group: ""
kind: Service
name: redis-commander
あとは適宜HTTPRouteなりIngressなりにパスを追加してください。
Discussion