今天我們接續 RDS Lab 實作。
按下左邊列表的 Databases (下圖#1),再點擊右方 Create database (下圖#2),開始建立資料庫的動作。
如下圖,資料庫的建立方式選擇 Standard Create,擁有較完整的設定。
下方有多種不同的 DB 軟體可以使用(下圖#1),包含 Amazon Aurora、MariaDB、MySQL、PostgreSQL、Oracle、Microsoft SQL Server。
Amazon Aurora (下圖#2)是一個相容於 MySQL 與 PostgreSQL 的資料庫軟體,跟其他 DB 相比長得比較不同,是經過各種優化的,而這次示範則要拿跟其他 DB 比較像的資料庫軟體MySQL(下圖#3)來做示範。
Edition 種類只有一個,就是 MySQL Community (下圖#4)。Version 則有非常多個,這邊假設選擇 AWS 預設的 MySQL 8.0.17 (下圖#5)。
再來看到 Templates 下方有3個選項,基本上真正要用的都是選擇 Production (下圖#1),而如果是開發或測試則是選擇 Dev/Test (下圖#2)或 Free tier (下圖#3),由左而右,花費越少。
再來看到 Setting,假設給 DB 一個名稱為 mysql-database-1 (下圖#1), Credentials Settings 下方帳號名稱則為 admin (下圖#2),再利用 Master password 與 Confirm password 輸入密碼以建立密碼(下圖#3)。
而下方 DB instance size 選擇的是什麼呢?就如同先前介紹的,一個 RDS instance 就是 EC2 加 EBS 再配上一些資料庫軟體,所以這邊在選的其實是底層的 EC2 要用什麼規格。
可以看到有 3 個大類,這邊的選擇就跟在考量 EC2 instance Type 的時候一樣,選擇 Standard classes (下圖#1)。
再來,下邊則是選擇要用多好的 EC2 instance 來跑這個資料庫,這次則假設選以 AWS 預設的 db.m5.xlarge (下圖#2)。
Storage 相關到的是底層的 EBS Volume 要用到多好,Storage type 選擇預設的 Provisioned IOPS (SSD)(下圖#1),Allocated storage 放上 100GiB 初始的儲存空間(下圖#2),Provisioned IOPS 給 1000 個處理 I/O 的能力(下圖#3)。
而 Storage autoscaling 下方 Enable storage autoscaling 的勾選(下圖#4),以及 Maximum storage threshold 為 1000GiB 的設置(下圖#5),將能夠從最少的 100GiB 的初始空間(下圖#2),根據需求動態擴大到 1000GiB (下圖#5)。
Availability & durability 中的 Multi-AZ deployment 通常都會選用 Create a standby instance,如下圖。
也就如同之前所介紹的,有一台 Primary instance,也會有一台 Standby instance 隨時準備接管,當 Primary instance 壞掉時來做事情,這也是為什麼 Subnet Group 必須再放入不同 AZ 的兩個 Subnets。
Connectivity 網路的連線部分,Virtual private cloud (VPC)放上先前所建立的 VPC (下圖#1),再來點開下方的 Additional connectivity configuration (下圖#2),放上先前建立的 Subnet Group (下圖#3)。
Publicly accessible (下圖#4)設定的項目為是否要讓此 RDS instance 對 Internet 開放,通常都選擇 No,只透過一個在 Public 的 EC2 去跟在 Private Subnet 的 RDS instance 做溝通。
再來,先把 Existing VPC security groups 的 default 取消掉(下圖#5),選擇先前建立的 Security Group (下圖#6),這樣就可以允許外界透過 Database port 3306 (下圖#7)來連進此資料庫。
Database authentication options 選擇使用一般的密碼認證方式 ,如下圖:
接下來點開 Additional configuration,如下圖。
往下看到 Backup,先前提過 RDS 為使用者提供了許多備份功能,而這邊勾選 Enable automatic backups (下圖#1),就能選擇 Backup 的頻率(下圖#2),此處是以天為單位,目前版本可以從 1 天到 15 天,這邊假設選擇每 1 天都來備份 1 次。
因為 Backup 會佔據一些資源,所以通常 Backup 時間會在當地時間凌晨,而更確切的時間則可以透過 Backup window 選擇 Select window 來調整(下圖#3),不過這邊為了 Demo 選擇 No preference (下圖#4)就好了。
再往下找到 Maintenance,勾選 Enable auto minor version upgrade (下圖#1),它就會幫使用者做定期的軟體自動更新。
而當底層的 EC2 instance 在做 Patching 的時候,也會占用一些資源,所以也可以透過 Maintenance window 的 Select window 的勾選來使用調整自動更新時間的功能(下圖#2),而這次 Demo 就用 No preference 就可以了(下圖#3)。
最後,藉勾選 Enable deletion protection,就能預防使用者不小心把整台 RDS 給砍掉,如下圖:
往下滑看到 Estimated monthly costs,下方會顯示每月的預計花費(下圖#1),總共 600 美金大約台幣 18000 元,所以在這次的 Demo 中要小心,看完之後要把它關得乾乾淨淨。
設定完畢後,就可以點擊 Create database (下圖#2)來建立資料庫。
大概過了 20 幾分鐘後,Status 終於從 Modifying (下圖#1)變成 Available (下圖#2),便可以點進資料庫看細部資料(下圖#3)。
進到資料庫詳細資訊頁面後,我們會注意到資料庫是在 us-east-2c 的 AZ (下圖#1),也就是 Primary instance 在 us-east-2c 的 AZ (下圖#1)。
而雖然介面上看不到,但 Standby instance 必然會在另一個 AZ,也就是在 us-east-2b。換句話說,我們能肯定已經有一個 Multi-AZ 的部署,Primary instance 在 us-east-2c (下圖#1),而 Standby instance 在 us-east-2b。
在這一輪的實作中,建議大家可以空出一個下午或者是一個晚上,三到四個小時的時間來做我們 RDS 這一輪的實作演練,因為許多的創建過程一等就是 20 分鐘,而 RDS 的收費又相對地較高一點,所以務必要確保這一輪的演練完之後就得把所有的資源都清乾淨。
再來,我們就要透過 EC2 來連線使用這台 RDS Instance,一個工作上非常常見的用法狀況。
那麼明天,我們將接著看到「資料寶石:【Lab】RDS架構 建立自己的第一台雲端資料庫(下)」!