AWS로 시작하는 인프라 구축의 정석 리뷰3(8장 데이터베이스 서버)

신창호·2023년 7월 30일
0

aws책리뷰

목록 보기
2/8
post-thumbnail

📦 RDS

AWS RDS

EC2에서 데이터베이스를 사용할 시 생기는 문제점

  • 데이터베이스 제품을 설치해야한다.
  • EC2의 OS 자체를 관리해야 한다.(보안 대책 등)
  • 예측하지 못한 장애 발생에 대응할 준비를 해야 한다.

RDS를 사용하면 좋은 이유

  • 가장 큰 것은 매니지드 서비스 제공
  • 사용자는 단지 이용할 제품이나 성능 등을 지정만 하면 아래와 같이 독자적으로 도입해야 되는 것들을 대신 관리해준다.






RDS 시스템

크게 4개의 요소로 구성된다.

  • 데이터베이스 엔진
    • 데이터베이스 본체
    • MySQL, PostgreSQL등을 앞세운 다양한 데이터베이스 제품
  • 파라미터 그룹
    • 주로 데이터베이스 엔진 고유의 설정을 수행
    • 사용하는 언어나 데이터베이스 튜닝을 설정
  • 옵션 그룹
    • RDS 고유 설정을 수행
    • AWS를 이용한 모니터링에 관한 설정
  • 서브넷 그룹
    • 여러 개의 가용영역에 분산 배치할 때 이용되는 설정
    • 웹서버와는 시스템이나 개념이 다소 다르지만,데이터베이스 서버도 여러 대의 서버를 제공함으로써 신뢰성이나 성능을 높일 수 있다.






데이터베이스 생성 흐름

파라미터 그룹 -> 옵션 그룹 -> 서브넷 그룹 -> 데이터베이스를 생성
순으로 구축한다.

파라미터 그룹 생성

  • 데이터베이스의 성능 개선, 사용 현황 파악, 기능 추가등을 수행 할 수 있다.
  • RDS를 생성하면서 만들어진 default 그룹은 수정이 불가하기 때문에 신규 그룹을 생성해야한다.
  • 만약, Aurora가 아닌 경우 DB 인스턴스 파라미터 그룹을 관리하고 Aurora의 경우 DB 클러스터 파라미터그룹을 관리한다.

옵션 그룹 생성하기

  • 이것 또한, 만들어진 default그룹은 수정할 수 없으므로 신규 그룹 생성해야한다.

    파라미터 그룹과 차이가 뭘까?

서브넷 그룹 생성하기

  • 내가 사용할 VPC를 선택해주고, 프라이빗 서브넷을 생성했던 가용영역을 추가해준다.
  • 이때, 주의할 점으로 퍼블릭 서브넷을 추가하면 데이터베이스가 외부에 공개된 서브넷에 위치함으로, 보안상 문제가 발생할 가능성이 있다.

데이터베이스 생성하기

  • 엔진 옵션 선택
  • 템플릿 선택(하위 몇가지는 자동 선택된다.)
  • 설정
    • DB 인스턴스 식별자 : db 고유 이름
    • 마스터 사용자 이름 : db 관리자 이름
    • 마스터 암호 : db 접속할 때 필요한 비밀번호
  • db 인스턴스 클래스 선택
  • 스토리지 선택
    • Aurora의 경우, 다른 설정이 있다.
  • 가용성 및 내구성(프리티어는 불가능)
  • 연결
    • 사용할 VPC 연결
    • 보안그룹 설정
  • 데이터베이스 인증방식 선택(무난하게 암호인증)
  • 추가 구성
    • 추후 분류하여 보기 좋게 DB파라미터 그룹과 옵션그룹을 선택





동작 확인하기

  • 웹서버에 SSH로 접근하여 확인
    • 보통 MySQL명령어는 Amazon Linux에 기본으로 포함되지 않으므로 별도 설치 필요
    • sudo yum -install mysql
  • 접속 명령어
    • mysqladmin ping -u 사용자명 -p -h RDS엔드포인트
    • mysqld is alive 뜨면 성공적인 연결!






Aurora과 오픈 소스 RDS 비교

오픈 소스 데이터베이스에서 AWS에 맞게 효율적으로 만든 것이 RDS Aurora이다.
Aurora의 주요 아키텍처 기반 중 하나는 컴퓨팅과 스토리지의 분리이다

  • 특수 제작된 스토리지 계층은 3개의 가용 영역에 분산되어 있고 6개의 데이터 복사본을 유지 관리하며 데이터 베이스 크기에 따라 수백에서 수천 개의 노드에 분산되어 있다.
    • 이로 인해 한쪽 가용영역에서 스토리지를 사용할 수 없게 되더라도, 다른 가용영역에서 스토리지의 데이터를 참조 할 수 있다.

  • DB 클러스터가 스토리지를 관리하며, 하나의 읽기 및 쓰기 작업을 할 수 있는 인스턴스와 읽기만 가능한 Aurora 복제본 2개로 구성되어있는 형태가 Singpl-Master모드로 기본형태이다.
  • 또한, RDS에서는 용량을 미리 확보(자체 스토리지 필요)해야되지만, Aurora는 데이터베이스가 확장됨에 따라 Aurora는 수요를 수용하기 위해 볼륨을 원활하게 확장하고 용량을 128TB까지 확장할 수 있다.

장점

위 현상으로 인해 자연스럽게 장점이 되는 것

  • 성능 개선 (MySQL보다 5배, PostgreSQL보다 3배)
  • 고가용성
  • 뛰어난 확장성
  • 자동으로 관리해주는 완전 관리형

단점

  • RDS보다 약 20% 높은 비용
  • MySQL, PostgreSQL 특정 버전만 호환






참고링크

profile
한단계씩 올라가는 개발자

0개의 댓글