안녕하세요 서후아빠입니다. ^_^
이번 세션은 Amazon RDS를 생성하는 실습을 해보겠습니다. 애플리케이션에서 RDS로 연결하는 과정은 생략하였습니다.
구성도
사전 작업
인프라 생성 : vpc, subnet, igw, routing table, ec2 등은 설명 생략합니다.
2022.07.02 - [Networking] - [실습] Amazon VPC 구성요소 생성하기
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로 승격됩니다. |
'Database' 카테고리의 다른 글
[실습] Amazon Managed Workflows for Apache (MWAA) 구성하기 (0) | 2023.03.13 |
---|---|
[이른/실습] Amazon OpenSearch Service-1편(생성) (0) | 2022.12.16 |
[이론] AWS Database 기본 개념 (0) | 2022.07.06 |
[Tip] AWS DMS endpoint 실패 조치하기 (0) | 2022.07.06 |
[Tip] Amazon RDS 서브넷 그룹 (Subnet groups) 생성 Error 조치 방법 알아보기 (0) | 2022.07.01 |