StoryCode

RDS vs EC2 란 ?

AWS, 아마존
반응형

[참조] https://www.bespinglobal.com/bespins-pick-vol-11-aws-rds-vs-ec2/


기존의 서버, 어플리케이션, 데이터베이스 관리 체계는 비용 및 옵션에 대해 고려해야 할 사항이 많지 않았습니다.
단순히 물리적 서버를 선정하고 필요한 OS를 얹고 데이터베이스 및 어플리케이션을 설치하는 것 외에는 별다른 옵션이 없었습니다.
그러나 머지 않아 하이퍼바이저(Hypervisor)를 통해 가상머신(Virtual Machine)을 운영하고
그 위에 OS를 설치할 수 있는 옵션이 생겼고 기업의 서버에 가상머신을 필요한 만큼 빌려 쓸 수도 있게 되었습니다.

2009년부터 Amazon은 관계형 데이터베이스 서비스(RDS)라는 플랫폼 형태의 서비스(PaaS)를 제공함으로써
기업이 더 이상 OS 및 서버에 신경 쓸 필요 없이 데이터베이스를 빌려 쓸 수 있도록 지원하기 시작했습니다.
해당 서비스로 인해 기업은 인프라 관리에 있어서 고려해야 할 옵션이 더 많아진 셈입니다.
AWS RDS에 대해 살펴보고 어떤 기능들이 함께 제공 되는지 자세히 알아봅시다.

AWS RDS는 인프라 및 데이터베이스 업데이트를 관리해주는 것 뿐만 아니라 까다로운 관계형 데이터베이스의 설치, 운영 그리고 관리를 지원하는 서비스입니다.
Amazon RDS는 현재 MySQL, Oracle, SQL Server, PostgreSQL, MariaDB, Aurora(MySQL과 호환)을 비롯한 총 6가지 데이터베이스 엔진을 지원하고 있습니다.

데이터베이스의 크기는 기본(m4), 메모리 최적화(r3), 마이크로(t2), 총 3가지 카테고리로 나뉩니다.
최적화 된 I/O을 실현할 수 있도록 각 그룹마다 특성에 맞게 vCPUs, GiBs 메모리, 네트워크 성능 수준이 설정되어 있습니다.

각 RDS 인스턴스에서 “Multi-AZ” 옵션을 설정하면, 다른 가용영역(Availability Zone)에 복제된 데이터베이스를 필요할 때 바로 사용할 수 있습니다.
이는 주로 프로덕션 데이터베이스에 사용됩니다.
한쪽 가용영역에서 장애 및 에러가 발생할 경우, 문제에 영향을 받지 않게 독립된 다른 가용영역에 미리 복제된 데이터베이스를 자동으로 사용해서 복구(Failover)시키는 기능입니다.

이 뿐만 아니라, Amazon은 Aurora라는 자체 데이터베이스를 제공합니다.
이는 장애(fault) 발생에도 더 안전하고 가용영역을 통해 자체 복구가 가능하며 또한 추가적인 퍼포먼스 기능들을 제공합니다.

RDS는 EC2 인스턴스를 기반으로 운영하는 서비스 입니다.

RDS 인스턴스 요금은 기본 인스턴스 크기, 데이터 스토리지, 멀티 가용영역, 데이터 전송에 따라 달라집니다.
각 데이터베이스(MySQL, Oracle 등) 엔진마다 위의 요소들에 대해 다른 요금을 적용하기 때문에 기업이 비용 측면에서 고려해야 할 부분이 더 많아집니다.
게다가, Aurora를 사용할 경우 추가적으로 I/O에 대한 비용이 발생합니다.

총 비용을 따져보면 고용량 데이터베이스를 사용할 경우 RDS 인스턴스의 비용이 예상보다 높을 수 있습니다.
또한 데이터베이스에서 특히 새로운 어플리케이션에서 필요한 사용량, 스토리지 등에 대해 예측하기 어려울 수 있습니다.
그리고 자체 하드웨어 또는 인스턴스에서 운영하는 것보다 실제 성능이 훨씬 낮을 수 있습니다.

그러나 비용 측면에서 여전히 RDS가 왜 효율적인지에 대해 알아봅시다.

기업이 선택할 수 있는 데이터베이스 사용 방안은 대개 2가지로 좁혀집니다.

기업은 RDS를 사용할 것인지, 아니면 EC2 인스턴스에 사용 중인 데이터베이스를 직접 설치하는 기존 방식을 택할 지 결정해야 합니다.
AWS에 지불하는 비용만 놓고 비교하면 사용 중인 데이터베이스를 직접 설치하는 것이 확연히 저렴합니다.
하지만 이러한 결정을 내리는 데 있어서 기업들이 쉽게 간과하는 부분이 있습니다.

바로 기업이 RDS를 사용할 경우 빠른 시간 내에 가치를 이룸으로써 생기는 비용 절감입니다.
이는 서비스를 시장에 출시하는 시기를 앞당김으로써 얻을 수 있는 잠재적 기회 비용 및 이점과 시간을 의미합니다.
예를 들어 사용 중인 데이터베이스 대신에 RDS를 사용하게 되면, OS 및 데이터베이스의 설치 및 관리 그리고 업데이트를 따로 할 필요가 없어집니다.
게다가, AWS 콘솔이나 AWS API를 통해 손쉽게 백업이나 복구(recovery)가 가능합니다.

기업은 RDS를 사용함으로써 더 이상 스토리지의 LUN을 구성하고 더 나은 I/O를 위해 스트라이핑(Striping)을 최적화하는 데 시간과 노력을 쓸 필요가 없습니다.
또한 간단하게 인스턴스 크기를 축소 및 확장할 수 있으며, 클릭 한번으로 간단하게 높은 가용성을 이룰 수 있습니다.
이러한 모든 기능들을 통해 기업은 데이터베이스 도입 및 관리하는 데 있어서 시간과 노력을 줄일 수 있는 것입니다.
약간의 추가적인 요금이 발생하긴 합니다. 하지만 이를 통해 단축된 도입 시간은 시장에서 두드러진 성과로 이어질 수 있습니다.

모든 PaaS 서비스의 취약점 중에 하나는 사용 중이지 않을 때도 상관없이 계속 비용을 지불해야만 한다는 점이었습니다. RDS에도 예외는 아니었습니다.
하지만 최근 AWS의 RDS 업데이트를 통해 더 이상 사용 중이지 않을 때에 대한 불필요한 비용을 지불하지 않아도 됩니다.

결론

AWS RDS 요금 정책은 다소 복잡하고 어려울 수 있습니다.
또한, 사용 중인 데이터베이스에 대해 정확히 파악하지 않으면 제대로 된 빌링(Billing)을 예측하기 어렵습니다.

그러나 이러한 단점을 보완하는 많은 이점이 있습니다.
RDS는 데이터베이스의 백엔드(Backend)에 대한 관리 및 구축을 지원하면서 기업의 시스템 관리를 간소화 시킵니다.

특히 클라우드로 이전하려는 기업의 경우, 분리된 인스턴스 또는 하이퍼바이저(Hypervisor)에서의 운영보다 RDS를 사용하는 것이 좋습니다.
데이터베이스의 관리보다는 기업의 비즈니스와 어플리케이션에 집중할 수 있기 때문입니다.

인프라 운영을 위한 어플리케이션, 제대로 설계된 자동화 그리고 데이터베이스 전문 관리 팀이 있는 기업의 경우 RDS가 꼭 필요하지 않을 수 있습니다.

사용 중인 데이터베이스에 필요한 딱 맞는 결정을 내리려면 위에서 다룬 것처럼 RDS의 기능, 장단점 그리고 비용 요소를 정확히 파악하는 것이 중요합니다.

TIP. 물론 RDS의 설계와 운영, 어플리케이션 이전은 DBA 전문가의 도움을 받아야 합니다.

RDS를 통한 비즈니스 차별화,
베스핀글로벌의 클라우드 DBA(DB Administration)팀에 문의하세요.



단점 1) ssh 로 직접 서버에 접근할 수는 없는 것 같다.

반응형

'AWS, 아마존' 카테고리의 다른 글

Beanstalk.ssh 접속 키  (0) 2020.04.08
EC2 에 Apache/ Tomcat 7/ MySQL 설치  (0) 2018.12.12
(필수) 최초 사용법  (0) 2018.12.11
VPC 생성  (0) 2018.12.11
RDS 생성  (0) 2018.12.11