0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ACKにデプロイしたDifyのDBをマネージドにする

Posted at

前回ACKにデプロイしたDifyのDBまわりは全部Pod内にあるので、これらをマネージドに切り出して運用しやすくしていく〜〜〜〜〜〜〜〜

下記の図みたいにしたい!(公式ブログより)

image.png

Difyで使用しているDBたちはRedis, Postgres, AnalyticDB for PostgreSQLなので、それらをAlibaba Cloudでたてる!

Redisつくる

まずはRedisをたてるよ

%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_12.30.36.png

%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_12.34.33.png

image 1.png

%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_12.35.11.png

このとき、VPCはACKの属するものと同じに設定すること&クラスタではなくスタンドアロンにすること!

これでつくる〜
image 2.png

できた〜〜〜〜〜〜〜〜!!!!!!

ので、まずパスワードをパスワードリセットで設定!
image 3.png

完了!

でもこのままだとACKからアクセスできないので、ホワイトリストの設定をするぞ

image 4.png

ACKの各ノードのIPたちを設定する

image 5.png

これでRedisの立ち上げと設定はおっけ〜〜〜〜〜〜〜〜〜〜🐕

Apsara RDS for PostgreSQLをたてる

次はRDSをたてる〜

%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_12.44.26.png

%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_12.44.58.png
%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_12.45.10.png

これもVPCはACKの属するものと同じに設定すること!

これでつくる〜

%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_13.07.38.png

できた!ので、まずはアカウントをつくる!

%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_13.18.16.png
%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_13.18.26.png

次にデータベースをつくる!
image 6.png
image 7.png

で、Redisと同じようにホワイトリストの更新をする!

image 8.png

これでApsaraDB for PostgreSQLの設定はおわり🐈

AnalyticDB for PostgreSQLをたてる

次にAnalyticDB for PostgreSQLをたてる!

%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_12.55.01.png
%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_12.55.11.png
%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_12.55.16.png

これもVPCはACKの属するものと同じに設定すること!

これでつくる〜

%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_13.22.51.png

できた!ので、アカウント作成をする〜!

%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_13.23.31.png
%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2025-01-20_13.23.53.png

完了!

AnalyticDB for PostgreSQLの設定おわり🐓

ACKのDBまわりを付け替える

DBたちの準備がととのったので、前回作ったACKのクラスタでDBまわりのつけかえをする〜!

一旦HelmでいれたDify(ack-dify)を削除する!

image 9.png

で、もう一回HelmでDifyをいれる。このとき、Yamlファイルが編集できるので、そこでDBをマネージドのものに変える!

image 10.png

image 11.png

Chartバージョンは0.1.11にした!

このYamlファイルのなかで、DBたちの設定部分を変更する

変更する対象はpostgresql, weaviate(ベクトルDB), redisで、それぞれをenabled: false にする!ベクトルDBはDifyのデフォだとweaviateを使用していたのを、AnalyticDB for PostgreSQLに置き換える感じになるのね〜

変更後の該当箇所↓

postgresql:
  enabled: false # ここを変更
  name: postgres
  global:
    storageClass: ""
    postgresql:
      auth:
        postgresPassword: "difyai123456"
        username: ""
        password: ""
        database: "dify"

~~~

weaviate:
  enabled: false # ここを変更
  image:
    # registry where weaviate image is stored
    registry: *repo
    # Tag of weaviate image to deploy
    # Note: We strongly recommend you overwrite this value in your own values.yaml.
    # Otherwise a mere upgrade of the chart could lead to an unexpected upgrade
    # of weaviate. In accordance with Infra-as-code, you should pin this value
    # down and only change it if you explicitly want to upgrade the Weaviate
    # version.
    tag: 1.19.1
    repo: weaviate
    # Image pull policy: https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy
    pullPolicy: IfNotPresent
    pullSecrets: []
    
 ~~~
 
 redis:
  enabled: false # ここを変更
  ## "Redis database number to use (0-15)"
  dbNumber: "0"
  ## @section Global parameters
  ## Global Docker image parameters
  ## Please, note that this will override the image parameters, including dependencies, configured to use the global value
  ## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
  ##

  ## @param global.imageRegistry Global Docker image registry
  ## @param global.imagePullSecrets Global Docker registry secret names as an array
  ## @param global.storageClass Global StorageClass for Persistent Volume(s)
  ## @param global.redis.password Global Redis® password (overrides `auth.password`)
  ##
 

次に、各DBのendpointを確認して、それらをYamlファイルの外部DB設定箇所に反映する!

まずはRDS!

image 12.png

イントラネットアドレスが接続先なのでこれをYamlファイルの該当箇所に設定する!

たてたときに設定したusername, passwordも設定する〜

###################################
# External postgres
# - these configs are only used when `externalPostgres.enabled` is true
###################################
externalPostgres:
  enabled: true # ここを変更
  username: "dify" # ここを変更
  password: "[設定したパスワード]" # ここを変更
  address: "pgm-0iwt6027t8tetn8b.pgsql.japan.rds.aliyuncs.com" # ここを変更
  port: 5432
  dbName: dify
  maxOpenConns: 20
  maxIdleConns: 5

次にRedisやる!

image 13.png

インスタンス情報に接続情報あったのでこれを使う!

###################################
# External Redis
# - these configs are only used when `externalRedis.enabled` is true
###################################
externalRedis:
  enabled: true # ここを変更
  host: "r-0iwdbsbvq8ysq7urau.redis.japan.rds.aliyuncs.com" # ここを変更
  port: 6379
  username: "r-0iwdbsbvq8ysq7urau" # ここを変更
  password: "[設定したパスワード]" # ここを変更
  useSSL: false

最後にAnalyticDB for PostgreSQL!

アカウントのaccessKeyとsecretKeyが必要なので、まずそれを発行する〜

右上のアカウントからアクセスキーにとんで作成!

image 14.png

あとADBのインスタンスIDを確認して、Yamlに反映する〜

image 15.png

###################################
# External AnalyticDB
# - these configs take effect when `externalAnalyticDB.enabled` is true
###################################
externalAnalyticDB:
  enabled: true # ここを変更
  accessKey: "[発行したaccessKey]" # ここを変更
  secretKey: "[発行したsecretKey]" # ここを変更
  region: "ap-northeast-1" # ここを変更
  instanceId: "gp-0iwp02ngy63052z1c" # ここを変更
  account: "dify" # ここを変更
  accountPassword: "[設定したパスワード]" # ここを変更
  namespace: "dify"
  namespacePassword: "difypassword"

以上のYaml該当箇所修正をしたらHelmデプロイ完了〜!!!!!

Podたちが生まれ変わったのを確認して、ack-dify-apiのpodのログを見てみる

image 16.png

DB migrationとかの立ち上げ準備を経て、appが立ち上がってた!

さっそくアプリにアクセスしてみると
image 17.png

できぴ〜!!!!!!!!!!

まとめ

ACKのHelmデプロイされたDify、Yamlの設定をちょいちょいっと変えたら各DBをマネージドのものに切り替えられた!

それぞれ難しい設定は特にせず、きちんと作って切り替えたらすんなりできたので楽だった〜〜〜〜✌️わーい

これにておわり!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?