EC2 (Elastic Compute Cloud)
정의:
EC2는 AWS에서 제공하는 가상 서버 서비스다.
사용자는 서버의 운영 체제, 소프트웨어, 설정 등을 직접 선택하고 관리할 수 있으며, 서버의 유지보수와 보안도 스스로 책임진다.
비유:
EC2를 사용하는 것은 자신의 차를 직접 운전하고 관리하는 것과 같다. 차량의 점검과 수리는 사용자가 직접 해야 하며, 모든 관리와 유지보수가 사용자의 책임이다.
RDS (Relational Database Service)
정의:
RDS는 AWS에서 제공하는 관리형 관계형 데이터베이스 서비스다.
데이터베이스의 생성, 관리, 백업, 보안 패치 등을 AWS가 자동으로 수행하며, 사용자는 데이터베이스의 운영에 대한 부담을 덜 수 있다.
비유:
RDS를 사용하는 것은 장기 렌트카를 이용하는 것과 같다.
렌트 회사가 차량의 유지 관리와 수리를 맡고, 보험도 렌트비에 포함되어 있어 사용자는 차량의 상태나 관리를 걱정할 필요가 없다.
RDS 하나로만 사용하는 경우의 한계
설명:
단일 RDS 인스턴스만 사용할 경우, 데이터베이스의 가용성과 복원력에 제약이 생길 수 있다.
예를 들어:
- 가용성: 단일 인스턴스는 장애가 발생하면 데이터베이스 접근이 불가능해질 위험이 있다.
- 성능: 대규모 트래픽이나 처리량 증가에 대응하기 어렵다.
- 보안: 다중 리전 설정이나 데이터 복제를 통해 보안을 강화하지 않으면, 단일 인스턴스가 보안 취약점이 될 수 있다.
해결 방법:
- 고가용성 설정: RDS의 멀티 AZ(Multi-AZ) 배포를 활성화하여 장애 시 자동으로 다른 가용 영역(AZ)으로 전환할 수 있다.
- 읽기 성능 향상: 읽기 전용 복제본(Read Replica)을 활용하여 읽기 요청을 분산시킨다.
- 백업 및 복구: RDS 자동 백업과 스냅샷을 주기적으로 설정해 데이터 손실에 대비한다.
결론
EC2는 사용자가 모든 것을 직접 관리하는 유연성과 통제력을 제공하지만, 유지보수에 더 많은 시간이 소요된다.
반면, RDS는 관리 부담을 AWS에 위임할 수 있어 운영이 간편하다.
단일 RDS 인스턴스만으로는 한계가 있을 수 있으므로, 복원력과 확장성을 고려한 추가 설정이 필요하다.