Amazon RDS PostgreSQL の Web UI を EKS 上にデプロイしてみた

Pocket

Amazon RDS PostgreSQL の Web UI を EKS 上にデプロイしてみた

プライベートサブネットに配置してある Amazon RDS for PostgreSQL の様子を、GUI で参照・管理したくなりました。

この RDS は EKS (Kubernetes) クラスタからのみアクセス可能にしてあるので、ローカルマシンから pgAdmin などを使ってアクセスすることはできません。

そこで、EKS クラスタ内に pgweb という Web UI ツールをデプロイして、Kubernetes のポートフォワード機能を使ってアクセスしてみます。

pgweb は Docker イメージが提供されていました。

これを使って Deployment マニフェストを書いてみます。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: pgweb
  namespace: NAMESPACE
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pgweb
  template:
    metadata:
      labels:
        app: pgweb
    spec:
      containers:
        - name: pgweb
          imagePullPolicy: Always
          image: sosedoff/pgweb:0.14.1
          ports:
            - containerPort: 8081
              name: http
          env:
            - name: DATABASE_URL
              value: postgres://USERNAME:PASSWORD@NAME.XXXXXXXXXXXX.ap-northeast-1.rds.amazonaws.com:5432/DBNAME?sslmode=disable
      restartPolicy: Always

今回は簡単のため環境変数 DATABASE_URL の値を直接書いていますが、実際は Secret を経由して注入する方がセキュアでしょう。

このような Deployment を $ kubectl apply -f でデプロイしたら、Pod 名を指定して次のようなコマンドでポートフォワードします。

$ kubectl port-forward pods/pgweb-xxxxxxxxxx-xxxxx 8081:8081

これで、http://localhost:8081/ にアクセスすると pgweb の画面が見えます。

pgweb

一覧性が高くて Web UI は見やすいですね!

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です