zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Amazon Relational Database Service (Amazon RDS) 笔记

AmazonDatabase笔记 Service RDS
2023-09-14 09:12:59 时间

Amazon Relational Database Service (Amazon RDS) 笔记

目前我们已经将两台 Web 服务器放在两个不同的可用区,并在 Web 服务器前放置一个应用负载均衡器 ALB,接着我们把后端的数据库架设起来,如图 1 所示,今天要介绍的是 Amazon 的关系数据库 Amazon Relational Database Service 简称 Amazon RDS 。可以注意到 S3 是属于全局的,并没有包含在 VPC 中,而 Amazon Elastic Block Store (EBS) 则是与 EC2 实例连接在一起,虽然它们都是从 EBS 这个服务中切割出来的。

具有 RDS 的应用程序架构
图 1 、具有 RDS 的应用程序架构

只要撰写应用程序,就免不了会有数据储存的需求,所以一定会需要利用数据库来存取数据,而建置数据库的方法可以是安装在自己的服务器上或是安装在云端的 EC2 实例上,可以从图 2 看出这两者之间的差别,管理者要由实体的电源、网络线、机架、服务器主机,软件的操作系统安装、安全更新、数据库安装、安全更新、备份等等工作都要负责,虽然将数据库放在 EC2 实例中就可以不用担心实体的维护,但仍然需要管理软件的维护,导致数据库工作人员没办法专心在本业上,所以 AWS 推出 RDS 让数据库管理人员可以更专心在本业上。

传统数据库管理与 RDS 全面托管的差别
图 2 、传统数据库管理与 RDS 全面托管的差别

图 3 描述了 RDS 数据库的组成,当用户在设定 RDS 时要注意 RDS 的硬件配置如 CPU 、内存以及硬盘型态跟访问速度,可以发现其实跟 EC2 的设定很像,只是 RDS 只安装了数据库,所以需要选择适合的数据库。

 RDS 数据库
图 3 、 RDS 数据库

安装 RDS

接下来我们要安装 RDS ,要事先考虑好安装环境需求,可参考图 1 :

  • 安装在私有网络
  • 要有备援机制 ( Slave ),与主数据库要在不同可用区
  • 要自动备份 (存到 S3 )

建立安全组

记得先前的网络设定,依照先前的设定来设定 DB Subnet Group

  • 一个 VPC (172.16.0.0/16)
  • 两个公有子网 (172.16.0.0/26,172.16.0.64/26),只允许 port 80 联机的安全群组 ithome_web_SG
  • 两个私有子网 (172.16.1.0/24,172.16.2.0/24),只允许安全群组 ithome_web_SG 传过来的联机

因为 RDS 也需要有安全群来确保它的安全,先前有提过安全组是有状态的,简单来说我们可以将安全组的来源,设定为另一个安全组,就如上面第三点的说明,设定 RDS 的安全组只允许来源是来自 WEB 服务器的联机。

进入 AWS 管理控制台,登入后按下服务选单,选择 VPC 服务,进入 VPC 控制台,按下左边导览页的Security Groups后, 再按下右手边的 Create security group,接下来设定组态内容

Security Group 安全组组态画面
图 4 、 Security Group 安全组组态画面

Security group name : RDS Security Group
Description : DB Security Group
VPC : vpc-0bb7004b67556d0da
Inbound rules
Type : MYSQL/Aurora
Source : sg-08d4a4fdb2bb24bac (ithome_web_SG)

Create DB Subnet Group

首先进入 AWS 管理控制台,登入后按下服务选单,选择 RDS 服务,进入 RDS 控制台,注意 1. 是否是在新加坡地区(必须要跟先前规划的 VPC 所在区域相同), 2. 按下左边导览页的Subnet groups后, 3. 再按下右手边的 Create DB Subnet Group,接下来设定组态内容

DB Subnet Group 组态画面
图 5 、 DB Subnet Group 组态画面

记得先前的网络设定,依照先前的设定来设定 DB Subnet Group

  • 一个VPC(172.16.0.0/16)
  • 两个公有子网(172.16.0.0/26,172.16.0.64/26),只允许port 80联机的安全群组SGPublic80
  • 两个私有子网(172.16.1.0/24,172.16.2.0/24),只允许安全群组SGPublic80传过来的联机

Name : ithomeDBsubnetGroup
Description : ithome demo RDS subnetGroup
VPC : vpc-0bb7004b67556d0da | ithomeVPC
Add subnets
Availability Zones
ap-southeast-1a
ap-southeast-1b

Subnets
subnet-0b047b309432d952c (172.16.2.0/24)
subnet-0c60019adc4bec5f6 (172.16.1.0/24)

建立 Amazon RDS DB 实例

按下左边导览页的Databases后, 再按下右手边的 Create database,接下来设定组态内容,设定非常多,底下写的原则是是要修改的,请务必要注意填写

RDS database 组态画面
图 6 、 RDS database 组态画面

Choose a database creation method : _Standard Create _
Engine options : MySQL
Version : MySQL 8.0.17
Templates : Production
Settings
DB instance identifier: ithomeDBId #注意这个不是数据库名称,只是数据库实体识别,跟主机名类似
Master username: ithomeDbuser #数据库管理员名称
Master password: ithome-password
Confirm password: ithome-password
DB instance size
Burstable classes (includes t classes)
db.t2.micro

Storage
Storage type: General Purpose (SSD)
Allocated storage: 100
Availability & durability
Multi-AZ deployment : Create a standby instance (recommended for production usage) #这就是会建立 Slave DB的选项
Connectivity
Virtual private cloud (VPC) : vpc-0bb7004b67556d0da | ithomeVPC
按下 Additional connectivity configuration
Subnet group : ithomeDBsubnetGroup
Existing VPC security groups : RDS Security Group
展开 Additional configuration
Initial database name: ithomeDB
Enable automatic backups : 预设有选 #这就是备份到S3的设定,如果打开,每七天会自动备份一次

RDS 自动备份集态画面
图 7 、 RDS 自动备份集态画面

建立数据库需要几分钟时间,先回到 RDS控制台,选择左边选单中的 Databases ,按下刚刚新增的数据库实例 ithomedbid ,查看内容,在 Connectivity & security 页签中,找到 Endpoint 这个字段 ithomedbid.clbfxibs3qbv.ap-southeast-1.rds.amazonaws.com ,这个字段等同于数据库联机时的主机地址

确认 RDS 组态
图 8、 确认 RDS 组态