클라우드 환경에서 관계형 데이터베이스를 운영할 때, AWS RDS, GCP Cloud SQL, Azure SQL Database와 같은 관리형 데이터베이스 서비스와 EC2 인스턴스에 직접 설치하는 자체 관리형 데이터베이스 중 어떤 것을 선택할지 결정하는 주요 기준과 각각의 장단점을 설명해 주세요.
힌트 · 관리형 서비스는 운영 부담이 적고 확장성, 고가용성을 기본 제공하지만 제약이 있습니다. 자체 관리형은 높은 제어권을 제공하지만 운영 인력이 필요하고 복잡합니다.
모범답안
클라우드 환경에서 관계형 데이터베이스를 선택할 때 관리형 서비스와 자체 관리형 데이터베이스 중 어떤 것을 선택할지는 여러 요소를 고려해야 합니다.
주요 기준은 총소유비용(TCO), 운영 오버헤드, 확장성, 가용성, 그리고 벤더 종속성입니다.
관리형 서비스(AWS RDS, GCP Cloud SQL, Azure SQL Database)는 운영 부담을 크게 줄여줍니다. 백업, 패치, 모니터링 등을 서비스 제공업체가 알아서 해주기 때문에 개발 및 서비스 운영에 집중할 수 있습니다. 또한, 확장성과 고가용성을 쉽게 확보할 수 있다는 장점이 있습니다. 하지만, 데이터베이스 엔진 버전이나 설정에 제약이 있을 수 있고, 벤더 종속성이 발생할 수 있습니다.
반면, EC2 인스턴스에 직접 설치하는 자체 관리형 데이터베이스는 모든 설정을 직접 제어할 수 있다는 장점이 있습니다. 특정 버전의 데이터베이스 엔진을 사용해야 하거나, 특별한 설정이 필요한 경우에 유용합니다. 하지만, 데이터베이스 운영에 필요한 모든 작업을 직접 수행해야 하므로 운영 인력이 필요하고 복잡성이 증가합니다. 또한, 확장성 및 고가용성을 직접 구성해야 하므로 비용과 시간이 더 많이 소요될 수 있습니다.
따라서, 서비스 요구사항, 예산, 그리고 운영 인력 상황을 종합적으로 고려하여 최적의 선택을 해야 합니다. 일반적으로 운영 부담을 줄이고 빠르게 서비스를 구축해야 한다면 관리형 서비스를, 높은 제어권과 유연성이 필요하다면 자체 관리형 데이터베이스를 선택하는 것이 좋습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 AWS / 클라우드 면접 질문
- 클라우드 로드 밸런서 중 Application Load Balancer (ALB)와 Network Load Balancer (NLB) (또는 이에 상응하는 GCP/Azure 서비스)의 주요 차이점을 설명하고, 각각의 로드 밸런서가 어떤 유형의 애플리케이션에 더 적합한지 사용 시나리오를 들어 설명해 주세요.
- 클라우드 VPC (Virtual Private Cloud) 환경에서 서브넷(Subnet), 라우팅 테이블(Route Table), 보안 그룹(Security Group)을 활용하여 다중 계층(Multi-tier) 애플리케이션의 네트워크를 설계하는 구체적인 방안을 설명해 주세요. 특히 보안 측면을 강조하여 설명해 주세요.
- AWS S3, GCP Cloud Storage, Azure Blob Storage와 같은 오브젝트 스토리지 서비스에서 제공하는 다양한 스토리지 클래스(예: Standard, Infrequent Access, Glacier)의 주요 차이점을 설명하고, 특정 데이터 유형이나 접근 패턴에 따라 어떤 스토리지 클래스를 선택하는 것이 가장 효율적인지 사례를 들어 설명해 주세요.
- 클라우드 IAM (Identity and Access Management)에서 '역할(Role)'과 '사용자(User)'의 주요 차이점을 설명하고, 최소 권한 원칙(Principle of Least Privilege)을 적용하여 클라우드 리소스에 대한 접근 권한을 효과적으로 관리하는 모범 사례를 제시해 주세요.
- 대규모 멀티 클라우드 또는 하이브리드 클라우드 환경에서 트랜잭션 데이터의 일관성(Consistency)과 무결성(Integrity)을 보장하면서 재해 복구(DR) 전략을 설계하는 방안에 대해 설명하고, 발생할 수 있는 주요 도전 과제와 해결책을 제시해 주십시오.
- 복잡한 서버리스 애플리케이션(예: AWS Lambda, GCP Cloud Functions, Azure Functions)에서 콜드 스타트 시간 최소화, 비용 최적화, 그리고 엔드-투-엔드(end-to-end) 가시성(Observability) 확보를 위한 고급 최적화 전략들을 구체적인 사례와 함께 설명해 주십시오.