MySQL은 전 세계에서 가장 인기 있는 오픈소스 관계형 데이터베이스 중 하나입니다. 인기 있는 이유 중 하나는 사용자의 워크로드 요구사항에 부합하는 다양한 방식으로 데이터베이스를 호스팅하고 관리할 수 있기 때문입니다. 사용자는 데이터베이스 온프레미스에서 자체 관리형으로 설정하거나, 클라우드의 가상 머신에서 자체 관리형으로 설정하거나, 클라우드 제공업체의 완전 관리형 제품을 사용하도록 선택할 수 있습니다. 이 도움말에서는 자체 관리형 MySQL 옵션과 Google Cloud에서 제공하는 완전 관리형 솔루션인 MySQL용 Cloud SQL을 집중적으로 살펴봅니다. 각 옵션의 장단점에 대해 다룹니다.
자체 관리형 MySQL 옵션은 사용자(대부분의 경우 데이터베이스 관리자)가 데이터베이스, 운영체제(OS), 네트워킹, 스토리지, 가상 머신(VM) 인스턴스, 그리고 데이터베이스 인스턴스 및 서버를 호스팅하는 하드웨어의 설정, 설치, 구성, 유지보수와 관련된 대부분의 활동을 담당한다는 것을 의미합니다. 하드웨어, VM 인스턴스, 스토리지, 네트워킹, 운영체제 태스크와 같은 일부 태스크는 Google Cloud와 같은 클라우드 서비스 제공업체를 활용하면 더 쉽게 수행할 수 있습니다. 사용자가 온프레미스 데이터베이스를 직접 관리하든 클라우드에서 직접 관리하든 상관없이 원활한 시스템 실행에 필요한 주요 데이터베이스 관리 태스크에 대한 책임은 사용자에게 있습니다. 이러한 태스크는 아래에 나열되어 있습니다.
아래 다이어그램은 자체 관리형 설정을 선택하는 경우 사용자의 책임을 보여줍니다. Google Cloud에서 직접 관리하면 하드웨어, 컴퓨팅, 네트워킹, 스토리지와 관련된 일부 태스크가 줄어들지만, 나머지 스택 레이어 관리에 대한 책임은 여전히 사용자에게 있습니다. 데이터베이스 관리자와 애플리케이션 개발자는 여전히 MySQL을 관리하는 데 충분한 시간과 에너지, 리소스를 쏟아야 합니다.
Cloud SQL은 Google Cloud에서 MySQL, PostgreSQL, SQL Server 데이터베이스를 손쉽게 설정, 구성, 유지보수, 관리할 수 있는 완전 관리형 데이터베이스 서비스입니다. Cloud SQL은 하드웨어, 네트워킹, OS, 보안, 모니터링, 유지보수, 가용성, 확장 등 MySQL 데이터베이스의 모든 측면을 관리합니다. 이러한 모든 책임은 사용자에게 모호하므로 사용자는 애플리케이션 개발에 집중하고 고객에게 가치를 제공할 수 있습니다.
아래 다이어그램은 MySQL 데이터베이스의 다양한 레이어 관리와 관련된 태스크를 보여주는 위의 다이어그램과 유사합니다. Cloud SQL이 사용자를 대신하여 관리하는 모든 태스크가 파란색으로 표시된다는 점만 다릅니다.
위에서 설명한 여러 태스크를 관리하는 것 외에도 Cloud SQL은 자체 관리형 환경에서 네이티브 방식으로 사용할 수 없는 다양한 기능과 솔루션을 제공합니다. Cloud SQL에서 제공하는 주요 기능은 다음과 같습니다.
안정성: 백업 및 복구는 데이터베이스 관리에서 가장 중요한 활동입니다. Cloud SQL은 손상, 재해 또는 의도하지 않은 데이터 수정이 발생한 경우 데이터베이스를 특정 시점으로 복원하는 데 사용할 수 있는 자동 백업 및 주문형 백업을 제공합니다.
가용성: Cloud SQL은 VM 또는 데이터 센터에 장애가 발생할 경우 고가용성을 제공하기 위해 자동 장애 조치 기능을 통해 여러 영역에 데이터베이스를 호스팅하는 여러 서버를 인스턴스화하여 고가용성을 제공합니다. Cloud SQL은 전 세계 어디에서든 99.95% 이상의 가용성을 보장합니다.
고가용성 기능 외에도 Cloud SQL은 Google Cloud에서 MySQL용 Cloud SQL 데이터베이스 인스턴스의 안정성을 담당하는 연중무휴 24시간 사이트 안정성 엔지니어링(SRE)팀을 제공합니다.
리전 간 읽기 복제본은 장애가 발생할 경우 재해 복구 메커니즘으로 사용할 수 있는 또 다른 기능입니다. 이를 통해 사용자는 비즈니스에 미치는 영향을 최소화하면서 영향을 받은 데이터베이스를 다른 사이트(리전)로 신속하게 불러올 수 있습니다.
확장성: Cloud SQL은 동일한 리전 또는 원격 리전에서 MySQL의 추가 읽기 전용 인스턴스와 같은 MySQL 읽기 복제본을 생성하므로 복제본 및 기본 인스턴스의 요청을 처리할 수 있고 따라서 읽기 성능이 향상됩니다. 읽기 복제본은 보고 목적으로도 사용할 수 있으며 비즈니스 요구사항이 충족되면 폐기할 수 있습니다.
Cloud SQL은 최소한의 다운타임으로 MySQL 인스턴스에서 리소스(CPU, 메모리, 스토리지)의 수직 확장 및 리소스의 축소를 지원합니다. 반면 자체 관리형 설정에서는 이러한 복잡한 활동에 상당한 노력과 전문성, 계획이 필요합니다.
보안: MySQL용 Cloud SQL 데이터베이스 서버는 최고 수준의 보안을 보장하는 Google Cloud 보안 데이터 센터에 위치합니다. 또한 Google Cloud는 Virtual Private Cloud와의 비공개 연결과 방화벽으로 보호되는 사용자 제어 네트워크 액세스를 제공하므로 사용자 데이터베이스 서버가 악의적인 행위자의 도달범위를 벗어납니다.
보안의 또 다른 측면은 보안 규정 준수입니다. Cloud SQL은 SSAE 16, ISO 27001, PCI DSS, HIPAA 등 인정되는 여러 규정을 준수합니다.
Cloud SQL은 IAM 통합을 통해 데이터베이스에 대한 액세스와 사용자를 관리하는 기능을 제공합니다. 이 통합은 Google Cloud 사용자의 승인 및 인증을 관리하고 특정 Google Cloud 리소스에 대한 세분화된 액세스 권한을 제공하여 데이터베이스에 대한 무단 액세스를 방지합니다. 또한 Cloud SQL은 Cloud SQL 리소스에 대한 액세스를 제어하도록 설계된 사전 정의된 역할을 제공하여 ID 및 액세스를 쉽게 제어할 수 있습니다.
Cloud SQL의 또 다른 보안 기능은 승인되지 않은 사용자가 사용자 데이터에 액세스하지 못하도록 보장하는 저장 데이터와 전송 중 데이터의 암호화입니다.
Cloud SQL은 데이터베이스 사용자를 위한 비밀번호 검증 기능을 제공합니다. 이 기능을 통해 고객은 인스턴스 수준에서 비밀번호 복잡성, 최소 비밀번호 길이, 비밀번호 변경 간격, 비밀번호에 사용자 이름 사용에 대한 비밀번호 정책을 정의할 수 있습니다. 또한 개별 사용자 수준에서 비밀번호 만료일, 실패한 시도 횟수, 이전 비밀번호 변경 요건에 대한 정책을 정의할 수 있습니다. Cloud SQL의 이러한 기능은 보안 규정 준수 권장사항을 제공하고 중요한 데이터에 대한 무단 액세스의 위험을 줄여줍니다.
Cloud SQL은 또한 감사 로그 플러그인을 사용하여 MySQL 데이터베이스에서 작업과 운영을 감사하는 방법도 제공합니다. 감사 로그는 누가, 언제, 어떤 객체에서 어떤 작업을 했는지에 대한 유용한 정보를 제공합니다. 데이터베이스 감사를 사용하면 데이터베이스에서 테이블 업데이트, 읽기 쿼리, 사용자 권한 부여와 같은 특정 사용자 작업을 추적할 수 있습니다.
관측 가능성: Cloud SQL은 다양한 모니터링 솔루션을 제공하며 데이터베이스 상태에 대한 유용한 정보를 제공하는 즉시 사용 가능한 측정항목이 점점 늘어나고 있습니다. 사용자는 관리자가 데이터베이스의 상태를 알 수 있도록 이 측정항목을 활용하여 알림을 만들 수 있습니다.
또한 Cloud SQL은 쿼리 통계 및 추천자와 같은 기능을 제공하므로 사용자는 쿼리 또는 워크로드의 성능 병목 현상을 식별하고 해결할 수 있습니다. 이러한 기능은 자체 관리형 MySQL 환경에서 복제하기 어렵습니다.
통합: Cloud SQL은 간편한 네트워킹 연결과 Google Cloud 내 다른 서비스(예: Google Kubernetes Engine, Compute Engine, Cloud Run)와의 통합을 제공하므로 긴밀하게 통합된 솔루션을 쉽게 개발할 수 있습니다. 또한 Cloud SQL은 Cloud SQL에 있는 데이터의 분석 처리에 사용할 수 있는 BigQuery 및 Looker와의 기본 통합도 제공합니다.
패치 적용: 관리형 서비스인 Cloud SQL은 기본 하드웨어와 운영체제가 안정적이고 성능이 우수하며 안전한 최신 상태를 유지할 수 있도록 인스턴스를 자동으로 업데이트합니다. 이러한 업데이트 대부분은 Cloud SQL 인스턴스가 실행되는 동안 수행됩니다. 그러나 특정 시스템 업데이트를 수행하려면 사용자가 업그레이드 활동의 유지보수 기간을 정의할 수 있는 짧은 서비스 중단이 필요할 수 있습니다.
버전 업그레이드: Cloud SQL은 데이터베이스(MySQL) 버전을 업그레이드하는 자동 프로세스를 제공합니다. 또한 사용자는 데이터를 상위 버전의 인스턴스로 마이그레이션하여 주 버전을 업그레이드할 수도 있습니다.
장점
단점
장점
단점