Day 04 - 资料库服务也一把抓的RDS

来到了第四天,我们一起来看看RDS是什麽。
RDS是Relational Database Service的缩写,是AWS提供我们进行资料储存的一套服务。以下我们依序来探究。

1. 为何要使用RDS:

为何我们不建立一套RDB(Relational Database)在自己专属的EC2上,反而去使用RDS呢?其实,采用RDS有几项限制。第一,我们无法进入OS(Operating System)层,去改变RDS的设定;第二,并非所有的DB Engine都是我们可以选择,亦即部分DB是RDS不支援的。即使RDS有以上两项限制,仍然可某种程度去进行解套。更重要的是,RDS在资料备份(Data Backup)和资源控管(High Availability)上,提供了给力的服务。我们往下看。

2. RDS如何运作的呢?

即使我们无法在OS层直接调控RDS参数设定,我们可以透过Parameter Group来去调整EBS(可以当作硬碟规格),藉此来提升RDS的规格。
虽然RDS无法支援所有的DB类型,但几个大宗的DB类型都有包括在内:

  • Aurora
  • PostgreSQL
  • MySQL
  • MariaDB
  • Oracle
  • Microsoft SQL Server

刚提到RDS的两项主要优势,data backup和high availability,我们接着依序说明。

3.1 Data Backup

Snapshot

  1. 自动化的Snapshot: 当master DB挂掉时,RDS会保留最後一个版本的backup。
  2. 人工的Snapshot: 当master DB挂掉时,RDS会保留所有各个版本的backups。
    若是没有multi-az,进行snapshot时,I/O执行会按照机器规格和大小,而会有所延滞。

3.2 High Availability

Read Replica

用来支援唯读的流量分配。Read replica DB会备份master DB,但无法同步,而且一旦mater DB挂掉,Read replica DB也会停止。

Multi-AZ RDS

在Multi-AZ的架构下,Stand-by DB会同时去支援Read Replica的DB和snapshot的工作。也就是就算mater DB挂掉了,stand-by DB依然会全面性的支援master DB的工作,并在master DB挂掉时,启动将自己转换成master DB和开起一个新的stand-by DB的机制。


<<:  第2天~就是要写出HELLO

>>:  [Day2] 安装python环境

【设计+切版30天实作】|Day11 - [设计进阶挑战] 如何把Reviews的呈现方式改成可滚动式的卡片呢?

设计大纲 在上一篇设计「Reviews」这个区块时,有提到切版时可能会有「切不出来」的情况发生,所以...

[Day3]PHP的资料型态03

PHP的资料型态 Object 对象 要创建一个新的对象 object,使用 new 语句实例化一个...

进击的软件工程师之路-软件战斗营 第十九周

学习进度 Android Studio (以下功能皆为自学) RelativeLayout Date...

安装开发环境-Visual Studio Code

开发环境可以使用的有很多,选择一个适合自己,能够让自己方便、习惯使用的就好。 由於去年开始写line...

{DAY 7} SQL 资料表的处理:Deleting, Altering & Dropping

前言 SQL的部分又往下一天前进 今天要延续昨天练习的内容 接续昨天使用的资料表 分成3个小部分 ...