세미 프로젝트 때 VMware로 DB 서버를 구축하고 MariaDB를 통해 DB를 관리하고 웹서버와 연결해 사용했다.

또한 가용성과 성능을 위해 읽기 전용 DB서버도 별도로 VM을 만들고 복사해오고 동기화 하는 과정을 일일이 만들어야해 복잡했다.

 

AWS에서도 VMware로 했던걸 그대로 EC2로 할 수는 있다.

하지만 운영 오버헤드는 줄지 않을 것이다.

 

AWS 가용성을 대신 관리해주는 서비스들이 많다.

그중 관계형 DB 서버를 만들고 관리해주는 서비스인 RDS가 있다.

고가용성, 자동 조정, 자동 백업 이것들을 자동으로 해주며 관리한다.

 

고가용성

  • 다중 AZ 배포

자동 조정

  • 스토리지 자동 조정
  • 읽기 전용 복제본 자동 조정
  • 연결 수 자동 관리

자동백업

  • 지속적 백업
  • 자동 스냅샷
  • 백업 스토리지

 

 

 

이걸 보통 완전관리형이라고 하는데

DB 역시 존재한다. RDS가 그 중 하나이다.

RDS는 아주 다양한 DB엔진을 지원하기에 온프레미스에서 사용했던 대부분의 DBMS를 마이그레이션 할 수 있다.

 

 

실습

지원 엔진들

 

여기에 맨 위 2개 Aurora는 가용성이 더욱 강화된 RDS 서비

 

 

각 엔진별로 어떤걸 해주는지 적혀있음

64TB까지 스토리지를 늘려주면서

자동백업

단일/크로스리전으로 읽기 복제본 지원

등등

스토리지와 가용성이 더욱 강화된 버전인 Aurora가 있다 MySQL과 ProstgreSQL 을 지원

 

프리티어로 돈 나가는 옵션 안하게도 설정해주고

 

권한을 바로 root로 주지 않는다.

불필요한 부분에 접근해 이상이 생길 수 있으니 권한을 좀 낮춘 admin으로 준다.

그리고 보안을 위해서 admin도 가급적 사용 안하는걸 추천한다고 한다.

공격자가 이름만으로 해당 아이디의 권한을 유추할 수 있기 때문이다.

 

자격 증명 관리에

AWS Secrets Manager의 경우는 비밀번호를 자동으로 관리해주며 변경해주는 서비스이다. 하지만 과금이 있음

 

단지 DB가 아닌 EC2를 내부적으로 만들고 관리되니 인스턴스 구성을 이렇게 해줘야한다.

 

RDS 풀링을 해주는 RDS 프록시

연결 풀로 가지고 있어 새로 연결하는 지연을 줄일 수 있

 

 

CloudWatch의 Logs 로 저장될지 설정

 

초기에 DB 를 만들어줌


이렇게 설정하고 생성하기

생성됐으므

이제 읽기 로드가 많을 수 있는 wordpress에 맞게 읽기 전용 복사본을 생성해보자

이렇게 다른 리전에도 읽기 전용 복사본을 생성할 수도 있다.

 

이렇게 AZ를 다르게 만들어서 가용성 높이기

 

이렇게 해놓고 이제 web에 워드프레스 설정하기

설정 명령어

sudo dnf install -y httpd php php-mysqlnd php-gd
curl -O https://ko.wordpress.org/latest-ko_KR.zip
sudo unzip ~/latest-ko_KR.zip -d /var/www/html/
sudo chown -R apache:apache /var/www/html/wordpress
sudo systemctl restart httpd
sudo systemctl enable httpd

마리아DB 클라이언트 패키지
sudo dnf install -y mariadb105

 

web으로 DB 접속을 시도해봄

안됨

 

먼저 봐야할 것 보안그룹 확인

인바운드 규칙에서 소스 아이피가 공유기 아이피로 되어있어서
ec2에서는 접속 못했던 것

이걸 웹서버의 아이피를 추가해야

이제 접속이 잘되는 모습

 

RDS 생성할 때 넣어줬던 wordpress 생성되어 있음

이제 해당 디비만 사용할 유저를 만들고 권한을 줘야함

CREATE USER 'wpuser'@'%' IDENTIFIED BY 'wppass';
CREATE DATABASE IF NOT EXISTS wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'%';
FLUSH PRIVILEGES;

 

연결이 잘 됐음

 

Web01 - RDB 가 연결된 것임


이제 읽기 전용 복사본으로 연결해보고 쓰기 작업이 되는지 확인해 볼 차례

 

먼저 설정됐던 호스트 DB 주소를 바꿔주기

 

글을 수정할 수 없는 모습

 

읽기 복사본은 확실히 읽기만 가능함

또한 가용영역이 달라도 잘 사용할 수 있음

 

이렇게 RDS를 만들어보고 읽기전용 복사본도 만들어 봤다.

그후 wordpress를 설치한 web 서버와 연동을 확인해봤고

읽기전용과도 연결해 수정이 가능한지 확인해봤다.

 

 

+ Recent posts