6주차-3 Amazon RDS 실습

아이수베어·2022년 1월 21일
0

AFOS[2기]

목록 보기
14/29
post-thumbnail

실습2) Amazon RDS 실습

RDS -> 데이터베이스 -> 데이터베이스 생성 클릭
스크린샷 2021-07-15 오전 1 28 41

RDS DB 1 생성

생성 방식 : **표준 생성**
엔진 옵션 : **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시간
스크린샷 2021-07-15 오전 1 29 00 스크린샷 2021-07-15 오전 1 29 28 스크린샷 2021-07-15 오전 1 29 42 스크린샷 2021-07-15 오전 1 29 51

프리티어에서는 가용성 및 내구성은 막혀있네요
스크린샷 2021-07-15 오전 1 29 56
스크린샷 2021-07-15 오전 1 30 07
스크린샷 2021-07-15 오전 1 30 21
스크린샷 2021-07-15 오전 1 30 44
스크린샷 2021-07-15 오전 1 31 23
스크린샷 2021-07-15 오전 1 31 32

RDS DB 2(Muti-AZ) 생성(12분 정도 소요)

# 별로 언급이 없는 부분은 기본값 설정입니다!
생성 방식 : **표준 생성**
엔진 옵션 : **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**)
스크린샷 2021-07-15 오전 1 31 55 스크린샷 2021-07-15 오전 1 32 02 스크린샷 2021-07-15 오전 1 32 26 스크린샷 2021-07-15 오전 1 32 36

개발/테스트에서는 가용성 및 내구성이 열려 있네요
스크린샷 2021-07-15 오전 1 32 42
스크린샷 2021-07-15 오전 1 32 50
스크린샷 2021-07-15 오전 1 33 03
스크린샷 2021-07-15 오전 1 33 14
스크린샷 2021-07-15 오전 1 33 43

요금은 금방 삭제하면 얼마 안 드니 걱정 안 해도 됩니다
스크린샷 2021-07-15 오전 1 34 04

RDS DB1 엔드포인트를 확인해줍니다
스크린샷 2021-07-15 오전 2 17 59

다중 AZ는 아니요라고 적혀있고, 보조 영역은 없네요
스크린샷 2021-07-15 오전 2 17 23

RDS DB2 의 엔드포인트도 확인해줍니다
스크린샷 2021-07-15 오전 2 17 41

여기에는 다중 AZ와 보조 영역 2개 다 있네요
스크린샷 2021-07-15 오전 2 17 47

# 변수 지정
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;
스크린샷 2021-07-15 오전 2 20 41 스크린샷 2021-07-15 오전 2 20 57 스크린샷 2021-07-15 오전 2 21 16 스크린샷 2021-07-15 오전 2 22 14 스크린샷 2021-07-15 오전 2 22 25 스크린샷 2021-07-15 오전 2 23 01 스크린샷 2021-07-15 오전 2 23 08

WebSrv 의 index.php 수정 후 WebSrv 에서 AWS RDS1 DB 사용

# 상태정보 및 데이터베이스 확인
nano /var/www/html/index.php

## 아래 DB 주소와 암호를 변경
<?php
define('DB_SERVER', '**자신의RDS1 엔드포인트 주소**');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '**qwe12345**');
define('DB_DATABASE', 'sample');
?>
스크린샷 2021-07-15 오전 2 57 51

이건 오류나서 모르겠다 이유를 찾고 게시물을 수정하겠습니다

# mysql 접속 후 데이터 확인
mysql -h $RDS1 -uroot -pqwe12345 -e "USE sample;SELECT * FROM EMPLOYEES;"
while true; do mysql -h $RDS1 -uroot -pqwe12345 -e "USE sample;SELECT * FROM EMPLOYEES;"; date; sleep 1; done
스크린샷 2021-07-15 오전 2 29 57
# mysql 접속
mysql -h $RDS1 -uroot -pqwe12345

# 스키마 생성
CREATE SCHEMA `shopdb`;
USE shopdb;

# 테이블 생성
CREATE TABLE `shopdb`.`memberTBL` (
  `memberID` CHAR(8) NOT NULL,
  `memberName` CHAR(5) NOT NULL,
  `memberAddress` CHAR(20) NULL,
  `age` INT NOT NULL,
  PRIMARY KEY (`memberID`));

# 행(=데이터=레코드) 넣기
INSERT INTO memberTBL VALUES ('Gasida', '베아스', '인천 연수구 송도동', '30');
INSERT INTO memberTBL VALUES ('User4', '유나', '경기 성남시 분당구', '27');

# 조회
SELECT * FROM memberTBL;
스크린샷 2021-07-15 오전 2 31 52 스크린샷 2021-07-15 오전 2 32 09 스크린샷 2021-07-15 오전 2 32 22 스크린샷 2021-07-15 오전 2 33 23 스크린샷 2021-07-15 오전 2 33 35

RDS Muti-AZ 실습 진행 (1번 RDS)

백업 0일 미사용 상태에서 읽기 복제본 생성 가능을 확인해보지만 가능하지 않는다
스크린샷 2021-07-15 오전 2 34 01

작업 바로 왼쪽에 수정을 누른다
스크린샷 2021-07-15 오전 2 34 18

가용성 및 내구성 에서 대기 인스턴스 생성 클릭
스크린샷 2021-07-15 오전 2 35 03

백업 보존 기간 35일로 변경
스크린샷 2021-07-15 오전 2 35 16

하단에 계속 클릭
스크린샷 2021-07-15 오전 2 35 20

수정 예약에서 즉시 사용 클릭 -> 하단에 DB 인스턴스 수정 클릭
스크린샷 2021-07-15 오전 2 35 27

WebSrv 의 index.php 수정 후 WebSrv 에서 AWS RDS2 DB 사용

# 상태정보 및 데이터베이스 확인
cat /var/www/html/index.php

## 아래 DB 주소와 암호를 변경
nano /var/www/html/index.php
<?php
define('DB_SERVER', '자신의RDS2 엔드포인트 주소');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'qwe12345');
define('DB_DATABASE', 'sample');
?>
스크린샷 2021-07-15 오전 2 56 18 스크린샷 2021-07-15 오전 2 58 51

HTTP://WebEC2_PublicIP/ 접속 → 이후 이름,주소 추가
스크린샷 2021-07-15 오전 3 00 56
스크린샷 2021-07-15 오전 3 01 16
스크린샷 2021-07-15 오전 3 01 25

WebSrv 에서 동작

# mysql 접속 후 데이터 확인 반복 → 아래 재부팅 시 동작 확인을 위함 
while true; do mysql -h $RDS2 -uroot -pqwe12345 -e "USE sample;SELECT * FROM EMPLOYEES;"; date; sleep 1; done

# (옵션) dig 조회 → IP 변경 확인을 위함
while true; do dig +short $RDS2; date; sleep 1; done
스크린샷 2021-07-18 오전 2 12 30 스크린샷 2021-07-18 오전 2 12 35

RDS -> 작업 -> 재부팅 클릭
스크린샷 2021-07-15 오전 3 05 49

장애 조치로 재부팅 클릭 -> 확인 클릭
스크린샷 2021-07-15 오전 3 05 57

작업 -> 읽기 전용 복제본 생성 클릭
스크린샷 2021-07-15 오전 3 08 23

DB 인스턴스 식별자 : ***bea2-readonly*** *(현재 AWS 리전에서 AWS 계정이 소유하는 모든 DB 인스턴스에 대해 유일, 각자 편하게 설정)*
AWS 리전 : **Asia Pacific (Seoul)**
다중 AZ 배포 : **대기 인스턴스를 생성하지 마십시오**
스크린샷 2021-07-15 오전 3 09 13 스크린샷 2021-07-15 오전 3 09 25 스크린샷 2021-07-15 오전 3 09 32

읽기 복제본에 엔드 포인트를 확인해 줍니다
스크린샷 2021-07-15 오전 3 32 19

RDS2=엔드 포인트
RDS2Read=엔드 포인트

# mysql 접속 후 데이터 확인
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

# 마스터 DB에서 정보 확인 : 마스터 DB에 바이너리 로그를 이용하여 복제를 구현
mysql -h $RDS2 -uroot -pqwe12345 -e "show master status;"

# 읽기 복제본 DB에서 정보 확인
mysql -h $RDS2Read -uroot -pqwe12345 -e "show slave status\G"
스크린샷 2021-07-15 오전 3 35 12

제가 사이트에 입력한 정보가 나오네요
스크린샷 2021-07-15 오전 3 35 38
스크린샷 2021-07-15 오전 3 36 04
스크린샷 2021-07-15 오전 3 38 20





자원 삭제 (중요!)

RDS 삭제 : DB 삭제 시 꼭 참고

스크린샷 2021-07-15 오전 3 44 55

CloudFormation 삭제


참고 자료 : AFOS[2기] 노션 내용

profile
Junior Cloud Engineer

0개의 댓글