隨著現在雲端服務越來越方便,為了可以節省管理資料庫的成本,更彈性擴充資料庫資源,並更快速的災難還原,越來越多的公司選擇將資料庫上雲。據Gartner統計,已經有約61%的資料庫架設在雲端(Trends in the cloud database market),而且上雲的比例還在持續增加中,所以接下來會以 PostgreSQL 為例,說明要如何在 AWS 部署資料庫。
要把資料庫上雲,不管是新的服務新增一個資料庫,還是地端資料庫遷移,或者是從其他雲端供應商遷移到 AWS ,都需要先在 AWS 的 RDS 新增資料庫,接下來會一個步驟一個步驟介紹如何新增資料庫。
在這裡可以選擇標準的方式,或是簡易的方式新增資料庫,差別在於,簡易的方式在新增的時候,無法選擇 instance type 、 network 設定和 monitoring 機制,需要在新增之後才能調整。
AWS 提供多個 PostgreSQL 版本供使用者選擇,從 11.x 到 16.x 都可以使用。接著根據使用情境決定接下來要使用的設定模板,如果只是要在測試環境或開發環境使用,可以選 Dev/Test ,下面一些設定的預設值就會符合測設環境的需求,例如不會產生 Replica 。
存取資料庫的時候,如果使用密碼進行登入驗證, RDS 提供兩種管理密碼的方式,一種是由 RDS 產生密碼並放到 Secretes Manager
,一種是使用者自行管理密碼。
storage 的設定可以選擇標準或 I/O-Optimized ,兩種選擇的收費方式不同,如果你的資料庫流量比較大,選擇 I/O-Optimized 會比較省錢,因為 read/write 不會額外收費,但如果流量不大,選擇 I/O-Optimized 反而會花費更多錢,因為兩種方式一開始會差到 700 多美金。
這個部分是跟 network 的設定有關,像是 EC2 能不能連到這個資料庫,要透過什麼 protocol 去存取資料庫,以及怎麼設定 VPC 、 subnet 和 security group ,都會被放在這個區塊。如果外部網路要透過 IP 去存取這個資料庫,直接把 Public access 設為 Yes 會比較方便。
可以選擇要不要為這個資料庫新增 Proxy ,如果資料去有多個 node , Proxy 可以幫助資料庫的 connection 分佈更平均。 Authentication 除了前面說到可以用密碼之外,也可以設定用 IAM 和 Kerberos 作為驗證。
這邊可以選擇要不要打開 Performance Insights ,監控資料庫效能, Performance Insights 的資料如果只保留七天,是不需要額外付費。
其他設定可以選擇要吃哪組 PostgreSQL 的參數設定,資料庫新增的時候就會根據那組參數設定去設定資料庫的參數, 如果 parameter group 沒有可以使用的參數, AWS 會產生一組預設的。另外,還可以選擇幾天要備份一次資料庫。
由於資料庫會不斷的推出新的版本,所以這裡可以設定要不要自動更新版本,更新之後有可能會有一些 issue ,所以要打開這個開關需要認真評估。為了避免資料庫被不小心刪除,可以打開 deletion protection ,這樣就可以避免使用者誤刪。
在新增資料庫的最後,AWS會以現在的設定,估計一個月會花費的價錢,使用者可以斟酌要不要調整設定,如果沒有什麼問題,按下 Create database ,就可以開始新增資料庫。
AWS部署資料庫需要花一些時間,所以可以看到資料庫的狀態是 Creating
。
點進資料庫,可以看到資料庫的資訊,像是資料庫的 endpoint ,和監控的圖表。
今天就到這裡,明天來聊聊如何從地端連線到雲端資料庫,以及如何遷移地端資料到雲端資料庫。
medium: 使用 AWS Aurora 雲端服務部署 PostgreSQL