[HandsOn] AWS RDS | RDS Proxy 設定注意事項

sasa :)
4 min readJun 6, 2023

--

#AWSRDSforMySQL #AWSRDSProxy #RDSProxyTroubleShoot

最近工作關係,終於有幸玩到 RDS Proxy 惹

挺有趣的東西,只好順手做個筆記了XD

RDS Proxy 這東西原則上就簡單想像成一個跳板機,並可以幫你管理 connection pool 並讓妳在很安全[註]的狀況下使用你的 RDS

註:當然要安全的設定 RDS Proxy 才有辦法安全地使用 XD

這東西最適合的情境會是在如果是 Lambda 去 access RDS 的時候。因為 RDS Proxy 會協助你做 connection 的管理,不會因為一次因為太爆量的 Lambda 在 access 資料庫就把資料庫 connection 塞爆這樣~

先來張架構圖,讓大家看一下 RDS Proxy 大概是長在哪裡

from https://docs.aws.amazon.com/zh_tw/lambda/latest/operatorguide/traffic-server-based.html

原則上就是長在資料庫 (上圖是顯示為 Aurora)的前面(廢話)

今天的設定只會 focus 在 RDS Proxy 上面,上圖的前後都不會介紹到XD

Create RDS Proxy

在建立 RDS Proxy 前,當然要先建立資料庫,這就麻瓜的按一按

在資料庫建立的當下可以選擇直接建立 RDS Proxy,不過事後也是可以補做的啦~ (我習慣分開做,先確定資料庫開完可以連上後再來弄 RDS Proxy)

create 的時候,也是麻瓜的按一按就好,比較值得提只有:

target group configuration

這裡在選定 database 的時候,只能選定 RDS DB 跟 Aurora ,其他不行;所以 RDS 的 read replica 是選不到的。

Authentication

由於登入的帳密會從在 secret manager 裡面,因此如果使用的帳號密碼有多組,在下面的 Secrets Manager secrets 要去把他選進來,這樣才吃得到

設定完後,大概兩三分鐘,等他跑完,就可以直接使用了。

設定重點

其實本篇的重點是在使用麻瓜設定後的 security group 的部分XD

如同上面那張架構圖的其實 request 會先進到 RDS Proxy 然後再進到資料庫

咱們把架構圖放大在這裡XD

from https://docs.aws.amazon.com/zh_tw/lambda/latest/operatorguide/traffic-server-based.html

所以要注意的設定有:

RDS Proxy

  • security group 是不是可以接收來自外面的 protocol?
  • RDS Proxy 上面會 attach 一個 IAM role,有沒有給予該 IAM role 對應的權限?
  • 相關設定可以參考 這裡

Aurora (or RDS)

  • security group 是不是可以接收來自 RDS Proxy 的 protocol?

Add other database users

若也需要新增資料庫,也要記得 secret manager 那裡也要記得去加喔~

建議做法可以參考 這裡

Troubleshoot

這裡有官方的 troubleshoot

但我遇到如下的錯誤,文件裡沒找到(或是我眼瞎XD

ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0

研究好久,發現其實就是上方提到的 security group or IAM 權限沒設好而已XD

就這樣,我的青春,又默默耗費了一些掉了 囧

有寫錯歡迎指正 :)

--

--

sasa :)
sasa :)

Written by sasa :)

目標是做一個讓所有人都聽得懂技術語言的transfer person

No responses yet