2 분 소요

Q1. 클라우드로 인프라를 이관하려고 합니다. 이관 시 기존 라이선스를 활용하여 DB on EC2로 사용할지 RDS를 사용할지 고민입니다. 장단점에 대해 알려주세요.

1. DB on EC2 와 RDS 비교

DB on EC2

  • 완전한 권한이 AWS 사용자로 넘어옵니다. 모든 책임과 권한을 사용자가 가집니다. (sys, system 계정 포함, root 권한 포함. )
  • DB를 잘 알고 있다면 RDS를 뛰어넘을 튜닝의 여지가 있습니다. (파라미터 값 자유롭게 수정 가능)
  • EC2 인스턴스의 프로비전된 SSD는 최대 8,000 IOPS를 지원합니다.
  • 여기서도 데이터 암호화를 지원합니다.(볼륨 단위, 데이터베이스 단위) EC2 -> EBS 통신간에도요!
  • EC2에서는 확장 가능한 아키텍처를 수동으로 설정해야 합니다. 이 프로세스에는 여러 EC2 인스턴스 설정, 로드 밸런싱, 가용성 그룹 구성 등이 포함됩니다. 이 부분에 많은 시간과 노력, 경험이 필요 할 수 있습니다.
  • 모든 설정이 자유로우니, 포트도 원하는데로, 그리고 원하면 하나의 EC2에 여러개의 DB를 설치할 수 도 있습니다.
  • 딱딱한 RDS 비용체계에 비해 유연하기 때문에 잘 설계하면 비용면에서 더 유리 할 수 있습니다.
  • DB 분석, 튜닝, DB보안 어플리케이션등 다양한 3rd Party Tool을 사용할 수 있습니다.

RDS

  • AWS가 모든 권한과 책임을 가지고 있습니다.
  • 간단한 몇번의 클릭 만으로 DB를 생성 할 수 있습니다. 뿐만 아니라, 인스턴스 크기를 축소 및 확장할 수 있어 높은 가용성을 이룰 수 있습니다. (자동 설치, 디스크 프로비저닝, 버전 업데이트, 자동 보안패치, DB 자동 백업… )
  • AWS에서는 Oracle, MSSQL, MySQL, PostgreSQL, MariaDB 를 지원합니다. 뿐만 아니라, 자체 DB인 Aurora 도 제공합니다.
  • Read Replica를 쉽게 만들고 각 AZ에 두고 사용할 수 있습니다.
  • 마그네틱 스토리지는 3,000IOPS 까지 지원합니다.
  • 프로비전된 SSD는 최대 10,000 IOPS 까지 지원합니다.

하지만, RDS에는 몇가지 특별한 제한사항이 있습니다.

  • SSH 접속 불가 local disk에 접속이 안되므로 util_file과 같은 패키지는 이용 불가합니다. data pump 작업은 S3를 이용하여 작업합니다.

  • sys, system 계정 접속 불가 On-Premise에서 sys나 system 계정으로 수행해야하는 기능들은 rdsadmin 패키지를 이용하여 수행합니다.

  • 기본적으로 ASM(Automatic Storage Management)을 사용하므로 테이블스페이스 생성 시 경로 설정이 필요 없습니다. 상세 경로는 ASM에서 관리하며 On-Premise도 ASM을 사용할 경우 동일합니다. 그 외 AWS에서 제공하는 사항 Oracle DB 인스턴스 관리 - Amazon Relational Database Service

그래서 뭘 선택해야 할까?

이런경우 RDS

  • 난 DB 잘모른다. 디스크 프로비저닝, 버전 업데이트, 보안 패치, 자동 백업도 AWS 맡기고 싶다. 비용이 조금 더 나가는 것은 괜찮다.
  • failover 등을 위한 클러스터, 리플리카 등을 편하게 만들고 관리하고 싶다.
  • 운영/관리 인력이 없기에 코스트가 높아도 편하게 운영하고 싶다.

이런 경우 EC2

  • 난 DB에 관해 잘 알고, DB, OS 등을 내 마음대로 정하고 튜닝하고 싶다.
  • 난 DB에 관해 잘 모르지만, DB 전문가가 있으므로, 백업, 리플리카 등을 구성하는데 어려움이 없다.
  • AWS RDS에서 지원하지 않는 DB를 사용하고 싶다.
  • EC2 컴퓨테이션 파워가 허락하는 한 최대한의 퍼포먼스를 머신에서 끌어 쓸 수 있다.

비용차이 DB on EC2

r5.4xlarge 2 TB Provisioned SSD - 3000 IOPS EBS 요금 : $461.53 EC2 요금 : $887.54 총 비용 : $1,349.21

RDS db.r5.2xlarge * 2대 1 TB Provisioned SSD - 3000 IOPS 1 TB Backup Storage EBS 요금 : $924.48 RDS 요금 : $1,664.40 백업 스토리지 비용 : $97.27 총 비용 : $2,686.16

Q5 쿠버네티스로 구성하려고 하는데 하나의 DB로 가야 하나요?

쿠버네티스를 구성하는데 하나의 어플리케이션 마다 DB를 구성할 수도 있지만, 하나의 큰 데이터베이스에서 DB를 나누어 사용할 수도 있습니다. 근데, 하나의 DB를 보고 있다면, 지금은 어플리케이션이 5개지만, 나중에 50개가 되면, IO가 적더라도 유지해야 하는 세션이 늘어나기 때문에 DB RDS 사양을 올려줘야 합니다. 이런 경우 비용 낭비가 심각 할 수 있기때문에 RDS PROXY를 사용을 고려해볼수도 있습니다 MySQL 8 도 2021년 10월 기준으로 지원을 시작했습니다.

RDS Proxy 비용은 1 코어당 월 $13 정도 입니다. vCPU 8개에, 1 인스턴스, 2 리드 리플리카가 있다면 총 코어는 24개 이므로 비용은 $312 정도 나오게 됩니다.

태그: ,

카테고리:

업데이트:

댓글남기기