RDS 사용

이정훈·2024년 5월 2일
0

AWS

목록 보기
13/16

RDS를 통해 데이터베이스를 만들고 서버와 연결해보겠습니다.
Multi-AZ와 Read Replica기능도 써 볼 것입니다.
아래는 구상도입니다.

CloudFormation으로 아래의 링크를 이용하여 기본 세팅을 해줍니다.

https://cloudneta-aws-book.s3.ap-northeast-2.amazonaws.com/chapter6/dblab.yaml

RDS 생성

서비스 > 데이터베이스 > RDS > 데이터베이스
로 이동합니다.
데이터베이스 생성을 누릅니다.
엔진 옵션은 익숙한 걸로 하시기 바랍니다. MySQL했습니다.

그리고 템플릿과 가용성 및 내구성도 설정해줍니다.
참고로 다중 AZ DB인스턴스가 Multi-AZ방식입니다.

데이터베이스에서 사용할 마스터 사용자의 이름과 암호를 설정해줍니다.
root와 qwe12345로 해줍시다.

데이터베이스에 사용할 클래스를 선택합니다.

그 다음 연결을 설정해줍니다.
VPC를 선택하고 보안 그룹을 6SG2를 선택합니다.

추가구성에서 데이터베이스 이름을 설정하고 DB 파라미터 그룹을 바꿔줍니다. 백업 보존 기간도 35일로 설정합니다.

하나의 데이터베이스를 더 만들겠습니다.
앞서 만든 과정과 유사합니다. 달라지는 점은 아래에 적겠습니다.
템플릿을 프리티어로 합니다.
가용 영역을 설정합니다. ap-northeast-2a로 합니다.
추가구성에서 백업 보존 기간 0일
백업 기간은 기간 선택 후 01:00 UTC와 0.5시간으로 설정합니다.

두 개의 데이터베이스가 생성되어다면 EC2를 통해 접속해봅시다.
EC2에 SSH로 접속하여 두 데이터베이스의 엔드포인트로 로그인합니다.
-u와 -p다음에 오는 값은 붙여써줘야합니다.

mysql -h [데이터베이스 엔드포인트] -u[사용자 이름] -p[비밀번호]

이후 데이터베이스 상태를 확인해봅니다.

status

그리고 데이터베이스가 잘 만들어졌는지도 확인해 봅니다.

show databases

문제가 없다면 EC2의 index.php파일의 데이터베이스 옵션을 수정해줍시다.
먼저 옵션을 확인합니다.

head -5 /var/www/html/index.php

DB_SERVER의 주소나 다른 것들을 자신의 값으로 바꿔줍니다.

sed -i "s/[바꾸고자하는 값]/[바뀐 값]/g" /var/www/html/index.php

이후 설정이 잘 되었는지 확인하기 위해 EC2의 퍼블릭 주소로 들어가봅니다.
브라우저를 통해 데이터를 추가하고 잘 작동하는지 확인해봅니다.

mysql -h [데이터베이스 엔드포인트] -u[사용자 이름] -p[비밀번호] -e "USE sample; SELECT * FROM EMPLOYEES;"

RDS Multi-AZ 확인

앞서 RDS2와 연결하였다면 이번에는 RDS1과 연결합니다.

sed -i "s/[바꾸고자하는 값]/[바뀐 값]/g" /var/www/html/index.php

이를 통해 주소를 바꿔줍시다.
추가적으로

sed -i "s/qwe12345/[비밀번호]/g" /db_sh/SELECT_TABLE_RDS1.sh
sed -i "s/qwe12345/[비밀번호]/g" /db_sh/SELECT_TABLE_RDS2.sh

를 설정해 줍시다.

RDS1은 Multi-AZ가 설정되어있습니다. 이를 확인해 보겠습니다.

. /db_sh/SELECT_TABLE_RDS1.sh

를 입력해줍니다. 그러면 반복적으로 RDS1에 SELECT정보를 요구합니다.
이 상태에서 RDS1을 끄면 Multi-AZ가 없다면 오류가 나겠지만 Multi-AZ가 있다면 정상적으로 계속 작동합니다.
RDS1에 대해 일시적으로 중지해줍니다.

재부팅시 작동하지 않다가 아래 처럼 다시 작동하는데 IP가 바뀐 것을 확인할 수 있습니다.

RDS Read Replica 확인

RDS1에서 읽기 복제본을 만듭니다.

이후 식별자만 입력하고 읽기 복제본을 생성해줍니다.
읽기 복제본의 엔드포인트 주소를 이용해 접속한 뒤 EMPLOYEES 테이블을 확인합니다.

사용한 자원은 모두 삭제해 줍시다.

profile
기록으로 흔적을 남깁니다.

0개의 댓글

관련 채용 정보