인프라

Amazon RDS를 통한 MySQL 데이터베이스 이중화(Multi-AZ) 구성

김도리개발자 2023. 4. 4. 22:51

AWS의 관계형 데이터베이스인 Amazon RDS를 통해 관계형 데이터베이스를 생성해보자.

 

DB 구성 과정에서 필요한 두가지의 항목을 먼저 준비해야 한다.

1. 데이터베이스 인스턴스의 인바운드, 아웃바운드 규칙을 제어하는 Security Group

2. 데이터베이스의 위치를 제어하게 될 Subnet Group

 

  • 데이터베이스 인스턴스의 인바운드, 아웃바운드 규칙을 제어하는 Security Group 생성하기
  • RDS를 생성하는 과정에서도 SG를 만들 수 있지만 SG의 소스가 나의 IP로 자동 지정 되어서 SG 메뉴로 다시 돌아가 소스의 IP 대역을 다시 수정하는 번거로움이 있기 때문에 미리 RDS에서 사용하기 위한 SG를 만든다.
  • VPC > SG > Create SG
  • VPC는 내가 RDS를 만들 VPC 선택한다.
  • 인바운드 규칙은 MySQL/Aurora 타입 선택하고, 소스는 vpc 내에서 출발하는 트래픽이 데이터베이스 인스턴스가 인바운드를 허용하는 것으로 규칙을 정한다.
  • tag는 Name : (vpc 이름)-sg
  • 데이터베이스의 위치를 제어하게 될 Subnet Group 생성하기
  • RDS > Subnet Group > Create DB Subnet Group
  • VPC는 내가 RDS를 만들 VPC 선택한다.
  • Subnet Group에 추가할 subnet을 선택한다.
  • 사전 작업이 완료되었고 관계형 데이터베이스를 만들어보자
  • RDS > Databases > Create Database
  • Standard create
  • MySQL
    • 다양한 DB 엔진을 지원하고 있다.
  • Template은 Dev/Test를 선택한다.
    • 템플릿은 큰 차이는 없는데 아래 스토리지가 템플릿에 맞게 자동으로 설정되어 있다.
      • Standard 100GB
      • Dev/Test 20GB
    • 참고로 Free tier는 멀티 AZ로 이중화하는 옵션이 비활성화 된다.
  • DB instance identifier : DB의 이름
  • Credentials Settings : DB 인스턴스의 중요한 정보이다. 잘 기억해야 한다.
  • DB instance class : Bustable classes, include previos generation classes, db.t2.micro(멀티 AZ로 만들면 과금됨)
  • Storage autoscaling : RDS의 공간이 부족해지면 자동으로 스토리지를 확장해준다. 여기서는 설정 해제한다.
    • 활성화하면 최대 스토리지 임계값을 설정할 수 있다.
  • Availability & durability : Create a standby instance를 선택하여 복수의 가용 영역에 DB를 생성한다.
    • Subnet Group에 등록된 Subnet 중 임의의 Subnet 한개에 마스터 DB가 만들어지게 되고 다른 Subnet에 Standby DB가 만들어지게 된다.
  • Connectivity
    • VPC : 내가 RDS를 만들 VPC 선택한다.
    • Subnet Group : 위에서 만든 Subnet Group 선택한다.
    • Public access : No
    • VPC SG : 위에서 만든 SG 선택한다.
    • Additional configuration : SG의 인바운드 규칙에서 설정한 port와 동일하다.
  • DB 인증 방식 : Password 인증
  • 추가 설정
    • Enable automated backups : DB 특정 시점에 스냅샷을 생성하여 백업을 수행하는 기능 
    • Backup retention period : 백업 보관 기간으로 비활성화 되어있거나 0일로 설정하면 Read replica(읽기 전용 복제본)를 생성할 수 없다.
    • 모니터링 : 체크 해제, 데이터베이스 인스턴스를 좀 더 디테일하게 모니터링 할 수 있는 옵션 
    • Deletion protection : 자동으로 삭제되는 것을 방지하는 옵션

 

  • DB 인스턴스 생성 완료! 상세 정보 확인하기
  • endpoint : 엔드포인트를 사용하여 DB에 access도 하고, 인스턴스와 통신도 할 수 있게 된다.
  • AZ : 두 AZ 중 하나의 AZ를 선택해서 DB 인스턴스를 생성한 것이다. 이 AZ에 마스터 DB가 만들어져 있다.
  • Configuration : DB의 세부적인 구성정보
    • Multi-AZ : Yes
    • Secondary Zone : 스탠바이 DB가 생성되어 있는 AZ가 보여진다.

 

  • EC2 > Network interfaces > SG가 위에서 만든 RDS용 sg인 것을 찾아보면 두개가 나온다.
    • 하나는 ap-northeast-2a, 하나는 ap-northeast-2c이다.
    • 즉, 데이터베이스 인스턴스가 2개의 가용 영역(AZ)에 이중화로 구성되어서 각각의 DB 인스턴스가 이와 같은 private ip를 가지고 있다는 것을 확인할 수 있다.