본문 바로가기

Database

[실습] RDS 생성하기 (MySQL)

반응형

안녕하세요 서후아빠입니다. ^_^

이번 세션은 Amazon RDS를 생성하는 실습을 해보겠습니다. 애플리케이션에서 RDS로 연결하는 과정은 생략하였습니다.


구성도

사전 작업

인프라 생성 : vpc, subnet, igw, routing table, ec2  등은 설명 생략합니다.

2022.07.02 - [Networking] - [실습] Amazon VPC 구성요소 생성하기

 

[실습] Amazon VPC 구성요소 생성하기

안녕하세요 서후아빠입니다. ^_^ 이번 세션은 VPC 관련 구성요소에 대해서 실습을 해보겠습니다. 구성도 1단계 : VPC 생성 VPC > Your VPCs > Create VPC 구분 VPC settings (VPC Only 방식) VPC settings (VPC a..

sh-t.tistory.com

1단계 : Subnet group 생성

Amazon RDS > Subnet groups > Create DB subnet group

Subnet group details Add subnets
Name : rds-snA
Description(필수) : rds-snA
VPC : vpcA
Availability Zones : ap-northeast-2a, ap-northeast-2b
Subnets : 10.0.3.0/24, 10.0.4.0/24
Subnet group을 생성하지 않고 RDS 생성시 자동으로 생성하게 되면 지정되는 VPC(ex : vpcA)의 모든 Subnet을 group으로 생성됩니다.

2단계 : Parameter group 생성

Amazon RDS > Parameter groups > Create parameter group

Parameter group family Type Group name Description
mysql8.0 DB parmeter Group mysql-PGA mysql-PGA

Amazon RDS > Parameter groups > mysql-PGA 선택 > time_zone 선택 > Edit parameters > Values(Asia/Seoul) > Save changes

default.mysql8.0을 사용할 경우 Parameter 수정이 되지않아 별도 생성하여 진행하였습니다.

3단계 : RDS 생성

Amazon RDS > Databases > Create database

Choose a database creation method Engine options Templates Settings Instance configuration
Standard create Engine type : MySQL
Version : MySQL 8.0.28
Free tier (or Production or Dev/Test) DB instance identifier : mysqlA
Master username : admin
Master password : Passwd123$%^
DB instance class :  burstable classes (or Standard classes or Memory optimized classes)
db.t2.micro
Storage Availability & durability Connectivity Database authentication
Storage type : Magnetic (or SSD)
Allocated storage : 5GiB
Multi-AZ deployment : Do not create a standby instance (or Create a standby instance) VPC : vpcA
Subnet group : rds-snA (or Create new DB Subnet Group
Public access : No
VPC security group : Choose existing (or Create new)
Availability Zone : ap-northeast-2a
Database port : 3306
Database authentication options : Password authentication (or Password and IAM database authentication or Password and Kerberos authentication)
Database options(옵션) Backup(옵션) Encryption(옵션) Performance Insights(옵션)
Initial database name : dbA
DB parameter group : mysql-PGA
Option group : default:mysql-8-0
Enable automated backups : check
Backup retention period : 1 day
Backup window : Choose a window(or No preference)
Start time : 04:00 UTC
Duration : 0.5 hours
Enable encryption : check
AWS KMS key : aws/rds
Turn on Performance Insights : check
Retention period : 7days(free tier)
AWS KMS key : aws/rds
Monitoring(옵션) Log exports(옵션) Maintenance(옵션) Deletion protection(옵션)
Enable Enhanced monitorin : check
Granularity : 60 sec
Monitoring Role : default
Error log, Slow query log : check
Audit log, General log : uncheck
Enable auto minor version upgrade : uncheck
Maintenance window : No preference
Enable deletion protection : check

Amazon RDS > Databases > mysqlA 의 Status “Available” 확인
Amazon RDS > Databases > mysqlA 선택 > Connectivity & security  (tab) > Endpoint(ex : mysqla.cgxnbb7bhutn.ap-northeast-2.rds.amazonaws.com) and Port(ex : 3306) 확인

Storage type을 SSD로 지정 시 옵션
  - Allocated storage : 시작 용량 (생성 후, 수정 불가, Min 20GiB)
  - Enable storage autoscaling : 자동확장 여부
  - Maximum storage threshold : 자동확장 시 최대 용량
Multi-AZ deployment 옵션에서 Create a standby instance 선택하면 Standby instance 생성(A-S 구조)됩니다.
Availability Zone : Standby instance 생성을 선택하지 않을 경우만 활성화됩니다.
Performance Insights : DB instance class가 Standard classes에서만 활성화됩니다.
Maintenance는 가급적 자동 업그레이드 되지 않도록 uncheck합니다. 왜냐하면 업그레이드 후 재부팅 등으로 인하여 서비스 단절이 발생하기 때문이며, A-S구조이더라도 서비스 단절이 발생합니다.
Deletion protection은 가급적 check하여 실수로 삭제 및 변경하지 못하도록 합니다.

4단계 : MySQL 접속 테스트

# pubA-ec2-1을 SSH 접속한 후, 아래 명령어로 RDS 접속 
sudo yum install -y mysql
mysql -u admin -p -h mysqla.cgxnbb7bhutn.ap-northeast-2.rds.amazonaws.com -P 3306 dbA
Enter password: Passwd123$%^

RDS Snapshot

Amazon RDS > Databases > mysqlA > Actions > Take snapshot > Snapshot name(mysqlA-snapshot) > Snapshot 작업 중 Service는 정상 유지

Amazon RDS > Snapshots > mysqlA-snapshot 생성 확인

EC2처럼 수동으로 Snapshot 생성이 가능하며, 대부분 DB는 데이터가 중요하기 때문에 생성 시 "Backup"옵션을 활성화합니다. "Backup"을 활성화하면 특정 지점으로 복구가 가능하기 때문입니다.

Aurora RDS로 Migrate Snapshot

Amazon RDS > Databases > mysqlA > Actions > Migrate snapshot

Instance specifications DB instance identifier 아래 옵션은 RDS 생성 과정 참고
Migrate to DB engine : aurora-mysql
DB engine version : 선택
mysqlA-mirgate Instance configuration, Connectivity, Encryption, Additional configuration
최신 스냅샷(ex : mysqlA-snapshot)으로 새로운 Aurora RDS 생성되고, 신규 Aurora RDS(mysqlA-mirgate)에 대한 자동 백업 진행됩니다.

Aurora read replica 생성

Amazon RDS > Databases > mysqlA > Actions > Create Aurora read replica

Instance specifications Settings 아래 옵션은 RDS 생성 과정 참고
DB engine version : 선택
DB instance class : 선택
Multi-AZ deployment : 선택
DB instance identifier
 : mysqlA-ro
Network & Security, Database options, Encryption,  Failover, Backup, Monitoring, Log exports, Maintenance
현재 구동 중인 RDS(mysqlA)를 이용하여 새로운 읽기 전용 Aurora RDS 생성되고(복제 관계 형성), 신규 Aurora RDS(mysqlA-ro)에 대한 자동 백업 진행됩니다. 복제 작업 중에도 RDS Service는 정상 유지됩니다.
Failover의 Priority 옵션 : Master(mysqlA)가 장애 발생 시 Priority가 가장 높은 read replica가 Master로 승격됩니다.
반응형