-
AWS RDS Multi-AZ, Read Replica 실습AWS 2021. 7. 18. 20:52
이번 포스팅은 RDS를 사용하여 애플리케이션을 동작시켜 보고,
RDS의 특징인 Multi-AZ와 Read Replica를 사용해본다 .
RDS Multi-AZ이란?
다른 AZ에 백업DB를 구성하여 primary DB 장애시 백업 DB(secondary DB)가 동작
RDS Read Replica란?
PrimaryDB 이외에 Read-Only DB를 두는 방식이다.
평상시에 DB가 동기화 되어 읽기 Endpoint URL을 Read Replica DB로 사용할 수 있다.
(RDS는 최대 5개의 Copy본을 찍어낼 수 있다)
< 실습 도안 >
1. RDS DB1 생성
생성 방식 : 표준 생성
엔진 옵션 : MySQL
템플릿 : 프리 티어
DB 인스턴스 식별자 : database-1
마스터 사용자 이름 : root
마스터 암호(암호확인) : qwe12345
DB 인스턴스 클래스 : 버스터블 클래스(t 클래스 포함) db.t2.micro
VPC : DB-VPC1
퍼블릭 액세스 가능 : 아니요
VPC 보안 그룹 : TCP 3306 허용
가용 영역 : ap-northeast-2a
추가 구성 : 클릭
- 초기 데이터베이스 이름 : sample
- 백업 보존 기간 : 0일
- 유지 관리 기간 : 선택 기간 → 일요일 , 01 :00 , 0.5시간
(4분 정도 소요)
WebSrv에 ssh 접속 후 생성된 AWS RDS DB1 확인
RDS1=database-1.ctxil1e8ebkk.ap-northeast-2.rds.amazonaws.com # dig 질의 dig +short $RDS1 # mysql 접속 mysql -h $RDS1 -uroot -pqwe12345 # 상태정보 및 데이터베이스 확인 status; show databases;
websrv의 nginx와 연결된 php 파일을 수정하여 RDS DB1과 연결하기
웹 서버를 이용하여 데이터 집어 넣기
RDS DB1 데이터베이스에서도 확인 가능.
※ 참고
RDS DB1을 Multi-AZ으로 수정하기
DB 수정 > 다중 AZ 배포(대기 인스턴스 생성) 클릭, 백업 (35)일 > 계속 > 즉시적용 > DB 인스턴스 수정
2. RDS DB2 생성
생성 방식 : 표준 생성
엔진 옵션 : MySQL
템플릿 : 개발/테스트
DB 인스턴스 식별자 : database-2
마스터 사용자 이름 : root
마스터 암호(암호확인) : qwe12345
DB 인스턴스 클래스 : 버스터블 클래스(t 클래스 포함) db.t2.micro (이전 세대 클래스 포함 체크)
다중 AZ 배포: 대기 인스턴스 생성 (DB1과의 차이점)
VPC : DB-VPC1
퍼블릭 액세스 가능 : 아니요
VPC 보안 그룹 : TCP 3306 허용
추가 구성 : 클릭
- 초기 데이터베이스 이름 : sample
- 백업 보존 기간 : 35일
- Enhanced 모니터링 활성화 (Uncheck)
RDS2=database-2.ctxil1e8ebkk.ap-northeast-2.rds.amazonaws.com # dig 질의 dig +short $RDS2 # mysql 접속 mysql -h $RDS2 -uroot -pqwe12345 # 상태정보 및 데이터베이스 확인 status; show databases;
위와 마찬가지로 php에 DB2를 등록을 해본다.
1) 다중 AZ RDS 실습
다중 AZ에 배포했으므로 primary DB이외에 backup 용 secondary DB가 돌아간다.
primary DB에 장애가 발생했을 때 secondary DB로 대체되어야 한다.
다음 커맨드는 DB가 연결되어 있는지 1초마다 확인한다.
while true; do mysql -h $RDS2 -uroot -pqwe12345 -e "USE sample;SELECT * FROM EMPLOYEES;"; date; sleep 1; done
위 커맨드를 통해 DB의 가용성을 확인해보자.
작업 > 재부팅 > 장애 조치로 재부팅하시겠습니까? 예
2분 10초간 DB 사용이 중지 되었고, 이후에는 정상적으로 동작한다.
2) RDS ReadReplica 실습
RDS DB2 작업 > 읽기 전용 복제본 생성
DB 인스턴스 식별자 : database-2-readonly
AWS 리전 : Asia Pacific (Seoul)
다중 AZ 배포 : 대기 인스턴스를 생성하지 마십시오
RDS2Read=database-2-readonly.cb79jlim4dyq.ap-northeast-2.rds.amazonaws.com dig $RDS2Read
2개의 터미널을 켜놓고, 하나는 DB2, 다른 하나는 DB-ReadOnly에 접속해서 각 커맨드를 입력한다.
while true; do mysql -h $RDS2 -uroot -pqwe12345 -e "USE sample;SELECT * FROM EMPLOYEES;"; date; sleep 1; done while true; do mysql -h $RDS2Read -uroot -pqwe12345 -e "USE sample;SELECT * FROM EMPLOYEES;"; date; sleep 1; done
그리고 웹에서 abcd, incheon 데이터를 추가해본다.
< DB2 >
34~35초 구간에 데이터가 업데이트 되었다.
< DB2-ReadOnly >
readonly DB도 마찬가지로 34~35초 구간에 데이터가 업데이트 되었다.
반응형'AWS' 카테고리의 다른 글
NAT Instance port-forwarding (0) 2021.08.01 AWS ELB(ALB, NLB) 실습 (0) 2021.07.30 AWS EFS를 이용한 EC2 데이터 공유 (0) 2021.07.03 AWS EBS 볼륨 확장 및 파티션, 파일 시스템 변경 (0) 2021.07.03 AWS EC2에 EBS 볼륨 생성하고 연결하기 (0) 2021.07.03