Day 22 资料宝石:【Lab】RDS架构 建立自己的第一台云端资料库 (中)

https://ithelp.ithome.com.tw/upload/images/20210924/20100951ED1oBVei3M.jpg

今天我们接续 RDS Lab 实作。

创建第一台 RDS instance

按下左边列表的 Databases (下图#1),再点击右方 Create database (下图#2),开始建立资料库的动作。
https://ithelp.ithome.com.tw/upload/images/20210905/20100951w7wxEGjqPW.png

如下图,资料库的建立方式选择 Standard Create,拥有较完整的设定。
https://ithelp.ithome.com.tw/upload/images/20210905/20100951YMmLr9X2mS.png

下方有多种不同的 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)。
https://ithelp.ithome.com.tw/upload/images/20210905/20100951OAkbzLwi8C.png

再来看到 Templates 下方有3个选项,基本上真正要用的都是选择 Production (下图#1),而如果是开发或测试则是选择 Dev/Test (下图#2)或 Free tier (下图#3),由左而右,花费越少。
https://ithelp.ithome.com.tw/upload/images/20210905/201009513eXik8DBg6.png

再来看到 Setting,假设给 DB 一个名称为 mysql-database-1 (下图#1), Credentials Settings 下方帐号名称则为 admin (下图#2),再利用 Master password 与 Confirm password 输入密码以建立密码(下图#3)。
https://ithelp.ithome.com.tw/upload/images/20210905/2010095129U0KUFpoJ.png

而下方 DB instance size 选择的是什麽呢?就如同先前介绍的,一个 RDS instance 就是 EC2 加 EBS 再配上一些资料库软件,所以这边在选的其实是底层的 EC2 要用什麽规格。

可以看到有 3 个大类,这边的选择就跟在考量 EC2 instance Type 的时候一样,选择 Standard classes (下图#1)。

再来,下边则是选择要用多好的 EC2 instance 来跑这个资料库,这次则假设选以 AWS 预设的 db.m5.xlarge (下图#2)。
https://ithelp.ithome.com.tw/upload/images/20210905/20100951fpQi3K3qWv.png

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)。
https://ithelp.ithome.com.tw/upload/images/20210905/201009516RtU2ow0JJ.png

Availability & durability 中的 Multi-AZ deployment 通常都会选用 Create a standby instance,如下图。

也就如同之前所介绍的,有一台 Primary instance,也会有一台 Standby instance 随时准备接管,当 Primary instance 坏掉时来做事情,这也是为什麽 Subnet Group 必须再放入不同 AZ 的两个 Subnets。
https://ithelp.ithome.com.tw/upload/images/20210905/201009511FrMqkMiAZ.png

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)来连进此资料库。
https://ithelp.ithome.com.tw/upload/images/20210905/20100951OMB9fr4hQA.png

Database authentication options 选择使用一般的密码认证方式 ,如下图:
https://ithelp.ithome.com.tw/upload/images/20210905/20100951DgoA48YJak.png

接下来点开 Additional configuration,如下图。
https://ithelp.ithome.com.tw/upload/images/20210905/20100951WW2IAYBoyf.png

往下看到 Backup,先前提过 RDS 为使用者提供了许多备份功能,而这边勾选 Enable automatic backups (下图#1),就能选择 Backup 的频率(下图#2),此处是以天为单位,目前版本可以从 1 天到 15 天,这边假设选择每 1 天都来备份 1 次。

因为 Backup 会占据一些资源,所以通常 Backup 时间会在当地时间凌晨,而更确切的时间则可以透过 Backup window 选择 Select window 来调整(下图#3),不过这边为了 Demo 选择 No preference (下图#4)就好了。
https://ithelp.ithome.com.tw/upload/images/20210905/201009519rIBb30KBB.png

再往下找到 Maintenance,勾选 Enable auto minor version upgrade (下图#1),它就会帮使用者做定期的软件自动更新。

而当底层的 EC2 instance 在做 Patching 的时候,也会占用一些资源,所以也可以透过 Maintenance window 的 Select window 的勾选来使用调整自动更新时间的功能(下图#2),而这次 Demo 就用 No preference 就可以了(下图#3)。
https://ithelp.ithome.com.tw/upload/images/20210905/20100951Il1nsd6gqD.png

最後,藉勾选 Enable deletion protection,就能预防使用者不小心把整台 RDS 给砍掉,如下图:
https://ithelp.ithome.com.tw/upload/images/20210905/20100951B6wmNAm0ZN.png

往下滑看到 Estimated monthly costs,下方会显示每月的预计花费(下图#1),总共 600 美金大约台币 18000 元,所以在这次的 Demo 中要小心,看完之後要把它关得乾乾净净。

设定完毕後,就可以点击 Create database (下图#2)来建立资料库。
https://ithelp.ithome.com.tw/upload/images/20210905/20100951DDruF4sQQD.png

大概过了 20 几分钟後,Status 终於从 Modifying (下图#1)变成 Available (下图#2),便可以点进资料库看细部资料(下图#3)。
https://ithelp.ithome.com.tw/upload/images/20210905/201009510f6ZKOooEb.png

进到资料库详细资讯页面後,我们会注意到资料库是在 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。
https://ithelp.ithome.com.tw/upload/images/20210905/20100951CfpVkx2IYh.png

小结

在这一轮的实作中,建议大家可以空出一个下午或者是一个晚上,三到四个小时的时间来做我们 RDS 这一轮的实作演练,因为许多的创建过程一等就是 20 分钟,而 RDS 的收费又相对地较高一点,所以务必要确保这一轮的演练完之後就得把所有的资源都清乾净。

再来,我们就要透过 EC2 来连线使用这台 RDS Instance,一个工作上非常常见的用法状况。

What's Next?

那麽明天,我们将接着看到「资料宝石:【Lab】RDS架构 建立自己的第一台云端资料库(下)」!


<<:  Day12-TypeScript(TS)的选择性属性(Optional Properties)

>>:  Day12-记得要戴安全帽(二)

安装 elementary OS 6.0 与呒虾米

前言 elementary OS 6.0 (以下称 Odin) 释出後几天,我决定也来安装看看,想不...

ThinkPHP V5.1 新增控制器

还不会创建ThinkPHP V5.1专案的朋友们可以先去看看创建ThinkPHP V5.1专案。 何...

[Go mod 起手式] - Golang 套件到底要怎麽用?!

Go mod 是 go 1.11 version 之後出的管理套件的工具,并且Go 1.13 ver...

【从零开始的 C 语言笔记】第十九篇-While Loop(1)

不怎麽重要的前言 上一篇介绍了for loop的概念,让大家面对在有重复性、明确次数的处理时,可以使...

Rust-定义Closure(闭包)

一般来说Rust如果要排序数组会这样写 let mut arr = [10, 5, 9, 7, 6]...