EC2
- 아마존 일래스틱 컴퓨트 클라우드(Amazon Elastic Compute Cloud, EC2)는 사용자가 가상 컴퓨터를 임대 받아 그 위에 자신만의 컴퓨터 애플리케이션들을 실행할 수 있게 하는 것이다.
→ elastic(탄력적인) 용어를 사용하게 된 이유는 사용자는 필요하면 서버 인스턴스를 만들고 시작하고 종료할 수 있으며, 실행 중인 서버에 대해 시간 당 지불하기 때문이다.
RDS
- 아마존 관계형 데이터베이스 서비스 (Amazon Relational Database Service) RDS는 아마존 웹서비스가 서비스하는 분산 관계형 데이터베이스이다.
- 클라우드 내에서 동작하는 웹서비스
- 데이터베이스 소프트웨어 패치, 백업, 복구 활성화 등의 복잡한 관리 프로세스들이 자동으로 관리됨
- 스토리지, 연산자원을 스케일링 하는 것을 하나의 API 호출로 수행 가능
EC2에 DB를 직접 설치하여 서비스하는 것과 RDS를 이용해 서비스하는 것의 차이는?
- EC2는 내가 직접 리눅스 위에 사용하려는 DB를 설치하고 그 위에 서비스하는 것
- RDS는 EC2와 함께 사용하며 아마존에서 DB의 설정, 운영, 백업 등의 기능을 편하게 이용할 수 있게 해주는 EC2와 분리된 DB전용서버이다. → RDS 사용 시 지불해야할 돈이 업됨..!
- 단순 테스트 개발 용도라면 EC2로 사용하자
이런경우 RDS
- 난 DB 잘모른다. 디스크 프로비저닝, 버전 업데이트, 보안 패치, 자동 백업도 AWS 맡기고 싶다. 비용이 조금 더 나가는 것은 괜찮다.
- failover 등을 위한 클러스터, 리플리카 등을 편하게 만들고 관리하고 싶다.
- 운영/관리 인력이 없기에 코스트가 높아도 편하게 운영하고 싶다.
이런 경우 EC2
- 난 DB에 관해 잘 알고, DB, OS 등을 내 마음대로 정하고 튜닝하고 싶다.
- 난 DB에 관해 잘 모르지만, DB 전문가가 있으므로, 백업, 리플리카 등을 구성하는데 어려움이 없다.
- AWS RDS에서 지원하지 않는 DB를 사용하고 싶다.
- EC2 컴퓨테이션 파워가 허락하는 한 최대한의 퍼포먼스를 머신에서 끌어 쓸 수 있다.
[참고]