EC2에 DB를 직접 설치하는 것과 RDS를 이용해 서비스 하는것의 차이점에 대해 알아보려고 한다.
AWS RDS는 인프라 및 데이터베이스 업데이트를 관리해주는 것 뿐만 아니라 까다로운 관계형 데이터베이스의 설치, 운영 그리고 관리를 지원하는 서비스
각 RDS 인스턴스에서 “Multi-AZ” 옵션을 설정하면, 다른 가용영역(Availability Zone)에 복제된 데이터베이스를 필요할 때 바로 사용할 수 있다.
한쪽 가용영역에서 장애 및 에러가 발생할 경우, 문제에 영향을 받지 않게 독립된 다른 가용영역에 미리 복제된 데이터베이스를 자동으로 사용해서 복구(Failover)시키는 기능이다.
AWS에 지불하는 비용만 놓고 비교하면 사용 중인 데이터베이스를 직접 설치하는 것이 확연히 저렴합니다.
그러나 비용 외적으로 다른 부분에서 이점이 있다.
서비스를 시장에 출시하는 시기를 앞당김으로써 얻을 수 있는 잠재적 기회 비용 및 시간을 의미
LUN - 디스크넘버, 즉 논리적인 장치 번호를 의미한다. Target에 위치한 디스크의 수를 나타냄
스트라이핑(Striping) - 데이터를 분할하는 것을 의미하고, 데이터를 개별적으로 서버에 분산함으로써 한 대의 서버에 대응하는 부하를 줄이고, 고속 데이터 액세스가 가능한 기술
AWS에서는 Oracle, MSSQL, MySQL, PostgreSQL, MariaDB 를 지원합니다.
뿐만 아니라, 자체 DB인 Aurora 도 제공합니다.
RDS는 풀 매니지드 서비스입니다. AWS가 DB를 전부 관리해 줍니다. 그와 다르게 EC2에 있는 DB는 사용자가 모두 관리해야 합니다.
디스크 프로비저닝, 버전 업데이트, 보안패치, 자동 백업도 모두 직접해줘야 하지만, root 권한을 가질 수 있고, db 파라메터등을 입맛대로 변경해서 튜닝할 수 있다는 장점이 있습니다.
(DB를 잘 알고 있다면 RDS를 뛰어 넘을 튜닝의 여지가 있다.)
RDS 비용체계에 비해 유연하기 때문에 잘 설계하면 비용면에서 더 유리 할 수 있습니다.
즉 RDS는 AWS가 모든 권한과 책임을 가지고 있다 , DB on EC2는 모든 책임과 권한을 사용자가 가집니다.
상황에 맞게 선택하여 구성하면 될것이다.
-DB에 관해 잘 알고, DB, OS 등을 내 마음대로 정하고 튜닝하고 싶다.
참고
https://www.bespinglobal.com/bespins-pick-vol-11-aws-rds-vs-ec2/