생성 방식 : **표준 생성** 엔진 옵션 : **MySQL** 템플릿 : **프리 티어** DB 인스턴스 식별자 : ***beas1** (현재 AWS 리전에서 AWS 계정이 소유하는 모든 DB 인스턴스에 대해 유일, 각자 편하게 설정)* 마스터 사용자 이름 : **root** 마스터 암호(암호확인) : **qwe12345** DB 인스턴스 클래스 : 버스터블 클래스(t 클래스 포함) **db.t2.micro** VPC : **DB-VPC1** 퍼블릭 액세스 가능 : **아니요** VPC 보안 그룹 : ##-**VPC1SG3**-## 포함된것 선택 , 기본 default 는 제거 가용 영역 : **ap-northeast-2a** 추가 구성 : **클릭** - 초기 데이터베이스 이름 : **sample** - DB 파라미터 그룹 : ****##-**mydbparametergroup**-## 포함된것 선택 - 백업 보존 기간 : 0일 - 유지 관리 기간 : 선택 기간 → 일요일 , 01 :00 , 0.5시간
프리티어에서는 가용성 및 내구성은 막혀있네요
RDS DB 2(Muti-AZ) 생성(12분 정도 소요)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# 별로 언급이 없는 부분은 기본값 설정입니다! 생성 방식 : **표준 생성** 엔진 옵션 : **MySQL** 템플릿 : **개발/테스트** DB 인스턴스 식별자 : ***beas2****(현재 AWS 리전에서 AWS 계정이 소유하는 모든 DB 인스턴스에 대해 유일, 각자 편하게 설정)* 마스터 사용자 이름 : **root** 마스터 암호(암호확인) : **qwe12345** DB 인스턴스 클래스 : 버스터블 클래스(t 클래스 포함) **db.t2.micro** (이전 세대 클래스 포함 체크) 다중 AZ 배포 : **대기 인스턴스 생성** VPC : **DB-VPC1** 퍼블릭 액세스 가능 : **아니요** VPC 보안 그룹 : ##-**VPC1SG3**-## 포함된것 선택 , 기본 default 는 제거 추가 구성 : **클릭** - 초기 데이터베이스 이름 : **sample** - DB 파라미터 그룹 : ****##-**mydbparametergroup**-## 포함된것 선택 - 백업 보존 기간 : **35일** - Enhanced 모니터링 활성화 (**Uncheck**)
개발/테스트에서는 가용성 및 내구성이 열려 있네요
요금은 금방 삭제하면 얼마 안 드니 걱정 안 해도 됩니다
RDS DB1 엔드포인트를 확인해줍니다
다중 AZ는 아니요라고 적혀있고, 보조 영역은 없네요
RDS DB2 의 엔드포인트도 확인해줍니다
여기에는 다중 AZ와 보조 영역 2개 다 있네요
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# 변수 지정 RDS1=gasidards1.cb79jlim4dyq.ap-northeast-2.rds.amazonaws.com RDS2=gasidards2.cb79jlim4dyq.ap-northeast-2.rds.amazonaws.com echo$RDS1 echo$RDS2
# dig 질의 dig +short $RDS1 dig +short $RDS2
# mysql 접속 mysql -h $RDS1 -uroot -pqwe12345 mysql -h $RDS2 -uroot -pqwe12345
# 상태정보 및 데이터베이스 확인 status; show databases;
WebSrv 의 index.php 수정 후 WebSrv 에서 AWS RDS1 DB 사용
1 2 3 4 5 6 7 8 9 10
# 상태정보 및 데이터베이스 확인 nano /var/www/html/index.php
## 아래 DB 주소와 암호를 변경 <?php define('DB_SERVER', '**자신의RDS1 엔드포인트 주소**'); define('DB_USERNAME', 'root'); define('DB_PASSWORD', '**qwe12345**'); define('DB_DATABASE', 'sample'); ?>
이건 오류나서 모르겠다 이유를 찾고 게시물을 수정하겠습니다
1 2 3
# mysql 접속 후 데이터 확인 mysql -h $RDS1 -uroot -pqwe12345 -e "USE sample;SELECT * FROM EMPLOYEES;" whiletrue; do mysql -h $RDS1 -uroot -pqwe12345 -e "USE sample;SELECT * FROM EMPLOYEES;"; date; sleep 1; done
# mysql 접속 후 데이터 확인 반복 → 아래 재부팅 시 동작 확인을 위함 whiletrue; do mysql -h $RDS2 -uroot -pqwe12345 -e "USE sample;SELECT * FROM EMPLOYEES;"; date; sleep 1; done
# (옵션) dig 조회 → IP 변경 확인을 위함 whiletrue; do dig +short $RDS2; date; sleep 1; done
RDS -> 작업 -> 재부팅 클릭
장애 조치로 재부팅 클릭 -> 확인 클릭
작업 -> 읽기 전용 복제본 생성 클릭
1 2 3
DB 인스턴스 식별자 : ***bea2-readonly*** *(현재 AWS 리전에서 AWS 계정이 소유하는 모든 DB 인스턴스에 대해 유일, 각자 편하게 설정)* AWS 리전 : **Asia Pacific (Seoul)** 다중 AZ 배포 : **대기 인스턴스를 생성하지 마십시오**
읽기 복제본에 엔드 포인트를 확인해 줍니다
1 2 3 4 5 6 7 8 9 10 11 12
RDS2=엔드 포인트 RDS2Read=엔드 포인트
# mysql 접속 후 데이터 확인 whiletrue; do mysql -h $RDS2 -uroot -pqwe12345 -e "USE sample;SELECT * FROM EMPLOYEES;"; date; sleep 1; done whiletrue; do mysql -h $RDS2Read -uroot -pqwe12345 -e "USE sample;SELECT * FROM EMPLOYEES;"; date; sleep 1; done
# 마스터 DB에서 정보 확인 : 마스터 DB에 바이너리 로그를 이용하여 복제를 구현 mysql -h $RDS2 -uroot -pqwe12345 -e "show master status;"
# 읽기 복제본 DB에서 정보 확인 mysql -h $RDS2Read -uroot -pqwe12345 -e "show slave status\G"