AWS EC2 執行個體相當於一整台電腦,可以在裡面建立任何應用,包括資料庫,由於所有東西都塞在同一個 EC2 ,以小型的網站伺服器來說是綽綽有餘,但相對的就比較沒有分散風險的概念,EC2 要是壞掉將會造成整個網站掛掉,後續要復原就相當麻煩且耗費時間,所以我們需要將重要的檔案儲存及資料庫分離出EC2,讓EC2很單純只負責系統部分,這樣在擴充時亦方便。

設定 EC2 安全群組

新增一個傳入規則,將 3306 port 指定給 EC2 使用,若有需要從外部連接 RDS 資料庫,則額外新增一個傳入規則,指定要連接的IP。

建立 RDS

到 RDS 服務控制面板中,點擊 Create Database 按鈕,開始建立 RDS。

選擇資料庫型式

選擇 Engine 版本

輸入資料庫名稱、帳號、密碼

DB執行個體大小、可用性及耐用性 (選擇最便宜選項,請根據自己的網站資料量選擇)

點開 Additional connectivity configuration,若有需要從外部連線,將 Public access 選項勾選 Yes,並將 VPC security groups 換成已經設定好的安全群組。

按下 Create Database 按鈕開始建立 RDS 資料庫。建立資料庫需要一段時間。

當狀態轉成 Available 時,代表該資料庫已建立完成,已經可以開始使用,選擇執行個體後可以看到 Endpoint 下面一行很長的字,這個就是連線該資料庫的 host ,另外下方有一個 Port 3306 就是連線該資料庫的 port 號,對應安全群組設定的 port 號。

使用 EC2 連線測試

SSH 遠端登入到 EC2,輸入 mysql 指令測試是否能正常連線。

mysql -h aws_rds_endpoint -u admin -p

使用遠端 DB Tool 連線

由於在安全群組中有特別設定連線到自己家裡的IP,這時候就可以直接遠端管理該資料庫。

使用 EC2 的 phpMyAdmin 連線

修改 phpMyAdmin 的 config.inc.php 設定檔,在最下方加入:

$i++;
$cfg['Servers'][$i]['host'] = '填入 AWS RDS 的 Endpoint 資料';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['verbose'] = '頁面選單顯示名稱';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['compress'] = TRUE;
$cfg['Servers'][$i]['auth_type'] = 'cookie';

註:使用 phpMyAdmin 建議將該目錄鎖定特定IP讀取

注意:即使是免費12個月的帳號,使用 RDS 是需要額外付費的,如同我只是測試建立 RDS 就需要付費。 (我要來去移除掉 RDS 嚕)

最後修改日期: 2020 年 11 月 25 日