[AWS/Docker] AWS RDS

Hyo Kyun Lee·2022년 7월 19일
0

AWS/Docker

목록 보기
14/20
post-custom-banner

1. RDS

Relational Database Service, 말 그대로 AWS측에서 사용자에게 DB를 설치해주고 대신 관리해주는 서비스를 일컫는다.

EC2 컴퓨터에 DB를 설치하여 공유할 수 있는 데이터베이스를 운용할 수 있지만, 보안성 측면에서 불리하다.

사실 RDS는 가격에서 EC2에 비해 많이 비싼데, 그럼에도 불구하고 빠르고 안전한 데이터 베이스 관리를 위해 많은 사람들이 RDS를 선택한다(Managed, 관리 서비스 제공).

2. AZ

Availability Zone, 가용지역.

기본적으로 AWS나 다른 IT회사에서 운영하는 데이터 센터는 데이터의 내구도를 위해 다중으로 운영한다. 즉 하나의 데이터 센터에서 문제가 발생하여도, 다른 데이터 센터의 데이터베이스를 백업으로 활용할 수 있기 때문에 서비스를 계속 운영할 수 있다(=데이터 보존, 데이터 내구성).

3. 스토리지

Storage, 말 그대로 데이터베이스를 저장할 저장소 및 공간을 일컫는다.
소규모 application에 대해 AWS는 범용 SSD를 제공하며, 프로비저닝 IOPS는 속도를 개선한 기업용 데이터베이스 서비스이다(가격이 범용SSD에 비해 매우 비싸다).

4. VPC

Virtual Private Cloud, 외부 인터넷을 통한 접근을 막고 특정 접근 및 영역 내 접근만 허용하기 위한 장치이다.

기본적으로 RDS는 외부에 노출되어있는, 공유가 가능한 데이터베이스이므로 이에 대한 접근인 네트워크 설정을 필수적으로 진행해주어야 한다.

이때 안전한 네트워킹을 할 수 있도록 장벽이 생기는데, 이로 인해 생기는 private 공간이 바로 VPC이다.

VPC는 외부로부터의 접속을 차단할 수 있고, 한 VPC 내부에서 RDS와 EC2를 모두 생성할 수 있기 때문에 해당 특정 인스턴스간 접속만 허용할 수 있는 상태가 된다. 이러한 상태를 퍼블릭 엑세스 제한, 퍼블릭 엑세스 불가 등의 용어로 표현할 수 있다.

※ 이때 각 인스턴스마다 보안그룹을 설정할 수 있는데, 같은 VPC 영역이라도 각각의 RDS와 EC2는 다른 보안그룹으로 설정할 수 있음에 유의한다.

5. RDS 업그레이드 버전 반영 설정

RDS는 근본적으로 데이터베이스이다.

따라서 해당 데이터베이스의 버전 관리도 같이 신경을 써주어야 하고, 이 버전을 사용자가 체감할 수 있기 때문에 반영 시점까지 고려할 필요성이 있다.

이러한 버전 관리, 즉 업그레이드 사항을 미리 저장해두었다가 특정 시점에 데이터베이스를 업그레이드(반영)할 수 있도록 설정할 수 있다.

이때 데이터베이스 인스턴스의 설정 변경도 포함되며, 즉시 적용을 하지 않는 이상 해당 유지관리 시간을 반영하여 변경내용을 반영한다.

6-1. DB접근방법 - 퍼블릭 액세스

퍼블랙 엑세스를 허용한다면 DB에 어떤 접근도 할 수 있도록 설정하는 것이다.

물론 어떠한 형태의 접근도 허용하는 것은 아니다. DB도 하나의 server이자 인스턴스(클라우드 컴퓨터 상에 올려진 DB)이기 때문에, 해당 인스턴스로 접근하기 위한 다양한 설정을 해주어야 한다.

  • 접근 경로 : 엔드포인트(END POINT)
  • 접근 통로(문) : 포트(PORT)
  • 접속 당사자 : 클라이언트(CLIENT) or 소스(SOURCE)

또한 이러한 접근 설정을 통해 최종적으로 특정 보안 그룹에 속한 DB Server에 접속할 수 있게 된다.

6-2 보안그룹 설정 - 인바운드 / 아웃바운드

보안그룹 설정은 DB 인스턴스를 기준으로 요청이 들어오는지, 응답을 하는지에 따라 각각 인바운드 / 아웃바운드 설정으로 나눌 수 있다.

  • 인바운드 (=client의 요청, 접근 설정)
    DB를 기준으로 접근 요청이 오는 것, 밖에서 안으로
  • 아웃바운드
    DB를 기준으로 응답을 하는것, 안에서 밖으로

6-3. DB접근방법 - 비공개 액세스

AWS에서 권장하고 있는 DB접근방법이며, 직접 DB에 접근하는 것이 아닌 VPC내 EC2를 통해 DB에 접근하는 방법이다.

위에서 사용한 VPC 이미지가 바로 비공개 액세스를 하는 모식도이다.

다만 EC2를 경유하여 RDS에 접근하는 과정은 반드시 RDS 보안그룹 규칙에서 해당 EC2가 접속할 수 있도록 하는 규칙을 설정해주어야 한다.

  • EC2 생성
  • EC2에서 DB를 설치(DB 및 해당 엔진을 설치하여 DB관련 명령을 진행할 수 있도록 구성)
  • 해당 DB에서 RDS와 연동할 수 있도록, RDS 인바운드 규칙에서 EC2 인스턴스의 보안그룹을 추가하여 준다.
    → 해당 보안그룹으로 부터 오는 모든 요청들을 허용하는 설정이다.

7. DB관리 및 유지보수

  • Cloud Watch
    → CPU 사용률, DB 스토리지 공간 등을 확인한다.
  • DB 확장 모니터링

8. DB 백업 및 복원

DB를 백업 및 복원할 경우 몇가지 유의사항을 기억한다.

  • 백업시 모든 변경사항을 기록할 수 있다(초단위).
  • 백업 버전은 스냅샷으로 관리한다.
  • DB전체를 백업할 수 있고, 마찬가지로 DB 전체를 스냅샷으로 생성한다.
  • 복원시 새 인스턴스를 만들 수 있다.
post-custom-banner

0개의 댓글