데이터베이스 최적화

Last reviewed 2023-08-28 UTC

Google Cloud 아키텍처 프레임워크의 이 문서에서는 데이터베이스 설계를 기반으로 시스템을 배포하기 위한 권장사항을 제공합니다. 데이터베이스 설계, 마이그레이션, 확장, 데이터베이스 정보 암호화, 라이선스 관리, 데이터베이스에서 이벤트 모니터링 방법을 알아봅니다.

주요 서비스

아키텍처 프레임워크 시스템 설계 카테고리의 이 문서에는 다양한 Google Cloud 데이터베이스 서비스가 포함된 권장사항이 나와 있습니다. 다음 표에서는 이러한 서비스에 대해 개략적으로 설명합니다.

Google Cloud 서비스 설명
Cloud SQL PostgreSQL용 Cloud SQL, MySQL용 Cloud SQL, SQL Server용 Cloud SQL을 사용하는 관계형 데이터베이스를 설정, 유지, 관리할 수 있는 완전 관리형 데이터베이스 서비스입니다. Cloud SQL은 고성능과 확장성을 제공합니다. Google Cloud에서 호스팅되는 Cloud SQL은 어디에서나 실행되는 애플리케이션을 위한 데이터베이스 인프라를 제공합니다.
Bigtable 수십억 개의 행과 수천 개의 열까지 확장하여 수 페타바이트의 데이터까지 저장할 수 있는 테이블입니다. 각 행의 단일 값에 대한 색인이 생성되는데, 이러한 값을 row key라고 부릅니다. Bigtable을 사용하면 매우 짧은 지연 시간으로 엄청난 양의 단일 키 입력 데이터를 저장할 수 있습니다. Cloud Bigtable은 낮은 지연 시간으로 높은 읽기 및 쓰기 처리량을 지원하며, 맵리듀스 작업을 위한 데이터 소스입니다.
Spanner 관계형 데이터베이스 구조 및 비관계형 수평적 확장을 포함하여 클라우드에 맞게 설계된 확장 가능한 글로벌 분산형 엔터프라이즈 데이터베이스 서비스입니다. 이 조합을 통해 행, 리전, 대륙 간에 고성능 트랜잭션과 일관성을 유지할 수 있습니다. Spanner는 99.999% 가용성 SLA를 제공하고 예정된 다운타임이 없으며 엔터프라이즈급 보안을 제공합니다.
Memorystore Google Cloud용 완전 관리형 Redis 서비스입니다. Google Cloud에서 실행되는 애플리케이션은 복잡한 Redis 배포를 관리하지 않고도 가용성이 높고 확장 가능하며 안전한 Redis 서비스를 통해 성능을 향상시킬 수 있습니다.
Firestore 자동 확장, 고성능, 애플리케이션 개발을 위해 설계된 NoSQL 문서 데이터베이스입니다. Firestore 인터페이스의 대다수 기능이 기존 데이터베이스와 동일하지만 이 인터페이스는 NoSQL 데이터베이스로서 데이터 객체 간의 관계를 다르게 설명합니다.
Firebase 실시간 데이터베이스 클라우드 호스팅 데이터베이스입니다. Firebase는 데이터를 JSON으로 저장하고 연결된 모든 클라이언트와 실시간으로 동기화됩니다. Google, iOS, Android, 자바스크립트 SDK로 크로스 플랫폼 앱을 빌드하면 모든 클라이언트가 하나의 실시간 데이터베이스 인스턴스를 공유하고 자동 업데이트로 최신 데이터를 수신합니다.
오픈소스 데이터베이스 Google 파트너는 MongoDB, MariaDB, Redis를 포함한 다양한 오픈소스 데이터베이스를 제공합니다.
PostgreSQL용 AlloyDB 까다로운 엔터프라이즈 워크로드를 위한 완전 관리형 PostgreSQL 호환 데이터베이스 서비스입니다. 표준 PostgreSQL과 비교할 때 트랜잭션 워크로드 성능을 최대 4배, 분석 쿼리를 최대 100배 더 빠르게 제공합니다. PostgreSQL용 AlloyDB는 머신러닝 지원 Autopilot 시스템으로 관리를 간소화합니다.

데이터베이스 선택

이 섹션에서는 시스템을 지원할 데이터베이스를 선택하기 위한 권장사항을 제공합니다.

관리형 데이터베이스 서비스 사용을 고려합니다.

자체 데이터베이스 또는 데이터베이스 클러스터를 설치하기 전에 Google Cloud 관리형 데이터베이스 서비스를 평가합니다. 자체 데이터베이스를 설치하려면 패치 및 업데이트 설치, 백업 모니터링 및 수행과 같은 일상적인 운영 활동 관리를 비롯한 유지관리 오버헤드가 필요합니다.

기능적 및 비기능적 애플리케이션 요구사항을 사용하여 데이터베이스 선택을 유도합니다. 지연 시간이 짧은 액세스, 시계열 데이터 처리, 재해 복구, 모바일 클라이언트 동기화를 고려합니다.

데이터베이스를 마이그레이션하려면 다음 표에 설명된 제품 중 하나를 사용하세요.

데이터베이스 마이그레이션 제품 설명
Cloud SQL 원격 리전, 지연 시간이 짧은 읽기, 재해 복구에서 읽기 복제본을 지원하는 리전 서비스입니다.
Spanner 외적 일관성, 전역 복제, 99.999%의 서비스수준계약(SLA)을 제공하는 멀티 리전 제품입니다.
Bigtable 대규모 분석 및 운영 워크로드를 위한 확장 가능한 완전 관리형 NoSQL 데이터베이스 서비스로 최대 99.999%의 가용성을 제공합니다.
Memorystore 널리 사용되는 두 가지 오픈소스 캐싱 솔루션인 Redis 및 Memcached의 관리형 버전을 제공하는 완전 관리형 데이터베이스 서비스입니다.
Firebase 실시간 데이터베이스 Firebase 실시간 데이터베이스는 실시간으로 데이터를 저장하고 사용자 간에 동기화할 수 있는 클라우드 호스팅 NoSQL 데이터베이스입니다.
Firestore 자동 확장, 고성능, 간편한 애플리케이션 개발을 위해 설계된 NoSQL 문서 데이터베이스입니다.
오픈소스 MongoDB 및 MariaDB를 사용하는 대체 데이터베이스 옵션입니다.

데이터베이스 마이그레이션

기존 워크로드를 Google Cloud로 마이그레이션할 때 사용자에게 애플리케이션 다운타임이 발생하지 않도록 하려면 요구사항을 지원하는 데이터베이스 기술을 선택해야 합니다. 데이터베이스 마이그레이션 옵션 및 권장사항에 대한 자세한 내용은 데이터베이스 마이그레이션 솔루션동종 데이터베이스 마이그레이션 권장사항을 참조하세요.

데이터베이스 마이그레이션 계획에는 다음이 포함됩니다.

  • 현재 데이터베이스의 평가 및 검색
  • 마이그레이션 성공 기준의 정의
  • 마이그레이션 및 대상 데이터베이스의 환경 설정
  • 대상 데이터베이스에서 스키마 생성
  • 대상 데이터베이스로 데이터 마이그레이션
  • 마이그레이션이 검증되어 모든 데이터가 올바르게 마이그레이션되고 데이터베이스에 있는지 확인합니다.
  • 롤백 전략 수립

마이그레이션 전략 선택

마이그레이션에 성공하기 위해서는 적절한 대상 데이터베이스를 선택하는 것이 중요합니다. 다음 표에서는 일부 사용 사례에 대한 마이그레이션 옵션을 제공합니다.

사용 사례 권장사항
Google Cloud에서 새로 개발 사용 사례 요구사항에 맞게 클라우드용으로 설계된 관리형 데이터베이스(Cloud SQL, Spanner, Bigtable, Firestore) 중 하나를 선택합니다.
리프트 앤 시프트 마이그레이션 Cloud SQL, MYSQL, PostgreSQL, SQLServer와 같은 호환 가능한 관리형 데이터베이스 서비스를 선택합니다.
애플리케이션에 CloudSQL에서 지원하지 않는 데이터베이스에 대한 세부적인 액세스 권한이 필요합니다. Compute Engine VM에서 데이터베이스를 실행합니다.

Memorystore를 사용하여 캐싱 데이터베이스 레이어 지원

Memorystore는 밀리초 이하의 지연 시간을 지원하는 완전 관리형 Redis 및 Memcached 데이터베이스입니다. Memorystore는 오픈소스 RedisMemcached와 완벽하게 호환됩니다. 애플리케이션에서 이러한 캐싱 데이터베이스를 사용하는 경우 코드에서 애플리케이션 수준을 변경하지 않고도 Memorystore를 사용할 수 있습니다.

베어메탈 서버를 사용하여 Oracle 데이터베이스 실행

워크로드에 Oracle 데이터베이스가 필요한 경우 Google Cloud에서 제공하는 베어메탈 서버를 사용합니다. 이 접근 방식은 리프트 앤 시프트 마이그레이션 전략에 적합합니다.

워크로드를 Google Cloud로 이동하고 기본 워크로드가 작동된 후 현대화하려면 Spanner, Bigtable, Firestore와 같은 관리형 데이터베이스 옵션 사용을 고려합니다.

클라우드용으로 구축된 데이터베이스는 클라우드 인프라의 하향식으로 구축된 최신 관리형 데이터베이스입니다. 이러한 데이터베이스는 자체 데이터베이스 실행 시 확보하기 어려운 확장성 및 고가용성과 같은 고유한 기본 기능을 제공합니다.

데이터베이스 현대화

클라우드에서 새로운 애플리케이션을 설계하든 기존 데이터베이스를 클라우드로 마이그레이션하든 시스템 설계 프로세스 초기에 데이터베이스 전략을 계획합니다. Google Cloud는 MySQL용 Cloud SQLPostgreSQL용 Cloud SQL과 같은 오픈소스 데이터베이스의 관리형 데이터베이스 옵션을 제공합니다. 데이터베이스를 현대화하고 향후 비즈니스 요구사항을 지원할 수 있는 기회로 마이그레이션을 사용하는 것이 좋습니다.

기존 애플리케이션과 함께 고정 데이터베이스 사용

상용 기성품(COTS) 애플리케이션에는 고정된 유형의 데이터베이스와 고정된 구성이 필요합니다. 리프트 앤 시프트는 일반적으로 COTS 애플리케이션에 가장 적합한 마이그레이션 방법입니다.

팀의 데이터베이스 마이그레이션 기술 세트 확인

팀의 데이터베이스 마이그레이션 기능과 역량을 기반으로 클라우드 데이터베이스 마이그레이션 방식을 선택합니다. Google Cloud 파트너 어드밴티지를 사용하여 마이그레이션 여정을 도와줄 파트너를 찾아보세요.

HA 및 DR 요구사항을 충족하도록 데이터베이스 설계

고가용성(HA) 및 재해 복구(DR) 요구사항을 충족하도록 데이터베이스를 설계할 때 안정성과 비용 간의 절충안을 평가합니다. 클라우드용으로 빌드된 데이터베이스 서비스는 데이터베이스 및 구성에 따라 특정 리전 또는 여러 리전에 몇 개의 데이터 복사본을 만듭니다.

BigQuerySpanner 같은 일부 Google Cloud 서비스에는 멀티 리전 변형이 포함됩니다. 리전 장애로부터 복원력을 늘리기 위해서는 가능한 경우 디자인에 멀티 리전 서비스를 사용합니다.

Google Cloud에서 관리형 데이터베이스를 사용하는 대신 Compute Engine VM에서 데이터베이스를 설계할 경우 데이터베이스의 여러 사본을 실행해야 합니다. 자세한 내용은 안정성 카테고리에서 확장 및 고가용성을 위한 설계를 참조하세요.

데이터 보존을 지원하는 클라우드 리전 지정

데이터 보존은 데이터가 실제로 저장되는 위치를 설명합니다. 데이터 보존 요구사항에 따라 데이터베이스를 배포할 특정 클라우드 리전을 선택하는 것이 좋습니다.

데이터베이스를 여러 리전에 배포하면 데이터베이스 구성 방식에 따라 데이터베이스 간에 데이터 복제가 발생할 수 있습니다. 원하는 저장 리전 내에 데이터를 보관하는 구성을 선택합니다. Spanner와 같은 일부 데이터베이스는 기본 멀티 리전 복제를 제공합니다. 리소스 위치 제약조건을 포함하는 조직 정책을 설정하여 데이터 보존을 적용할 수도 있습니다. 자세한 내용은 리소스 위치 제한을 참조하세요.

데이터 보존 설계에 재해 복구 포함

데이터 보존 계획에 복구 시간 목표(RTO)와 복구 지점 목표(RPO)를 포함하고 RTO/RPO와 재해 복구 비용 간의 균형을 고려합니다. RTO/RPO 수가 작을수록 비용이 높아집니다. 시스템이 중단 없이 더 빠르게 복구되도록 하려면 시스템 실행 비용이 증가합니다. 또한 재해 복구 방식에는 고객 만족을 고려하여 적절한 안정성 투자가 필요합니다. 자세한 내용은 100% 안정성이 잘못된 대상재해 복구 계획 가이드를 참조하세요.

Google Cloud 호환 데이터베이스 만들기

워크로드용 데이터베이스를 선택할 때는 선택한 서비스에서 작업 중인 지리적 리전 및 데이터가 물리적으로 저장되는 위치의 규정 준수 요구사항을 충족하는지 확인해야 합니다. Google의 인증 및 규정 준수 표준에 대한 자세한 내용은 규정 준수 제품을 참조하세요.

암호화

이 섹션에서는 암호화 요구사항을 식별하고 시스템을 지원하는 암호화 키 전략을 선택하기 위한 권장사항을 제공합니다.

암호화 요구사항 파악

암호화 요구사항은 회사 보안 정책 및 규정 준수 요구사항을 비롯한 여러 요소에 따라 달라집니다. Google Cloud에 저장된 모든 데이터는 기본적으로 AES256을 사용하여 별도의 조치 없이 암호화됩니다. 자세한 내용은 Google Cloud 저장 데이터 암호화를 참조하세요.

암호화 키 전략 선택

암호화 키를 직접 관리할지 아니면 관리형 서비스를 사용할지 여부를 결정합니다. Google Cloud는 두 시나리오를 모두 지원합니다. 완전 관리형 서비스가 Google Cloud에서 암호화 키를 관리하도록 하려면 Cloud Key Management Service(Cloud KMS)를 선택합니다. 키의 수명 주기를 더 세밀하게 제어하기 위해 암호화 키를 관리하려면 고객 관리 암호화 키(CMEK)를 사용합니다.

Google Cloud 외부에서 암호화 키를 만들고 관리하려면 다음 옵션 중 하나를 선택합니다.

  • 파트너 솔루션을 사용하여 키를 관리하는 경우 Cloud 외부 키 관리자를 사용합니다.
  • 키를 온프레미스에서 관리하고 해당 키를 사용하여 Google Cloud의 데이터를 암호화하려면 키를 KMS 키 또는 하드웨어 키 모듈(HSM) 키로 Cloud KMS가져옵니다. 이러한 키를 사용하여 Google Cloud의 데이터를 암호화합니다.

데이터베이스 설계 및 확장

이 섹션에서는 시스템을 지원하기 위해 데이터베이스를 설계하고 확장하기 위한 권장사항을 제공합니다.

모니터링 측정항목을 사용하여 확장 요구사항 평가

기존 모니터링 도구 및 환경의 측정항목을 사용하여 데이터베이스 크기와 확장 요구사항(예: 데이터베이스 인스턴스의 크기 최적화 및 확장 전략 설계)에 대한 기본 지식을 설정합니다.

새 데이터베이스 설계의 경우 제공 애플리케이션의 예상 부하 및 트래픽 패턴을 기준으로 확장 수를 결정합니다. 자세한 내용은 Cloud SQL 인스턴스 모니터링, Cloud Monitoring으로 모니터링, 인스턴스 모니터링을 참조하세요.

네트워킹 및 액세스

이 섹션에서는 시스템을 지원하는 네트워킹 및 액세스 관리를 위한 권장사항을 제공합니다.

비공개 네트워크 내에서 데이터베이스 실행

비공개 네트워크 내에서 데이터베이스를 실행하고 데이터베이스와 상호작용해야 하는 클라이언트에서만 제한된 액세스 권한을 부여합니다. VPC 내에 Cloud SQL 인스턴스를 만들 수 있습니다. 또한 Google Cloud는 Cloud SQL용 VPC 서비스 제어, Spanner, Bigtable 데이터베이스를 제공하여 이러한 리소스에 대한 액세스가 승인된 VPC 네트워크 내에서 클라이언트로만 제한되도록 합니다.

사용자에게 최소 권한 부여

Identity and Access Management(IAM)는 데이터베이스 서비스를 포함한 Google Cloud 서비스에 대한 액세스를 제어합니다. 무단 액세스의 위험을 최소화하려면 사용자에게 최소한의 권한만 부여하세요. 데이터베이스에 대한 애플리케이션 수준 액세스의 경우 최소 권한 수가 지정된 서비스 계정을 사용합니다.

자동화 및 크기 조정

이 섹션에서는 시스템을 지원하기 위해 자동화 및 적절한 크기 조정을 정의하는 권장사항을 제공합니다.

데이터베이스 인스턴스를 코드로 정의

Google Cloud로 마이그레이션할 때의 이점 중 하나는 컴퓨팅 및 데이터베이스 레이어와 같은 인프라 및 워크로드의 다른 측면을 자동화하는 기능을 사용할 수 있다는 것입니다. Google 배포 관리자Terraform Cloud와 같은 타사 도구를 사용하여 데이터베이스 인스턴스를 코드로 정의하면 데이터베이스를 만들고 업데이트할 때 일관되고 반복 가능한 방식을 적용할 수 있습니다.

Liquibase를 사용하여 데이터베이스 버전 제어

Cloud SQL 및 Spanner와 같은 Google 데이터베이스 서비스는 데이터베이스용 오픈소스 버전 제어 도구인 Liquibase를 지원합니다. Liquibase는 데이터베이스 스키마 변경사항을 추적하고 스키마 변경사항을 롤백하며 반복 가능한 마이그레이션을 수행할 수 있도록 지원합니다.

확장을 지원하기 위한 데이터베이스 테스트 및 조정

데이터베이스 인스턴스에서 로드 테스트를 수행하고 테스트 결과에 따라 애플리케이션 요구사항에 맞게 조정합니다. 핵심성과지표(KPI)에 대한 로드 테스트를 수행하거나 현재 데이터베이스에서 파생된 모니터링 KPI를 사용하여 데이터베이스의 초기 규모를 결정합니다.

데이터베이스 인스턴스를 만들 때 테스트 결과 또는 이전 모니터링 측정항목을 기반으로 하는 크기로 시작합니다. 클라우드에서 예상되는 로드를 사용하여 데이터베이스 인스턴스를 테스트합니다. 그런 다음 데이터베이스 인스턴스의 예상 로드에 대해 원하는 결과를 얻을 때까지 인스턴스를 미세 조정합니다.

확장 요구사항에 적합한 데이터베이스 선택

데이터베이스 확장과 컴퓨팅 레이어 구성요소 확장은 서로 다릅니다. 데이터베이스에는 상태가 존재합니다. 데이터베이스의 한 인스턴스가 로드를 처리할 수 없는 경우 데이터베이스 인스턴스를 확장하기 위한 적절한 전략을 고려합니다. 확장 전략은 데이터베이스 유형에 따라 다릅니다.

다음 표에서는 확장 사용 사례를 해결하는 Google 제품에 대해 자세히 알아볼 수 있습니다.

사용 사례 권장 제품 설명
제공 용량 및 스토리지를 확장해야 하는 경우 데이터베이스에 노드를 추가하여 수평으로 데이터베이스 인스턴스를 확장합니다. Spanner 클라우드용으로 설계된 관계형 데이터베이스입니다.
노드를 추가하여 데이터베이스를 확장합니다. Bigtable 완전 관리형 NoSQL 빅데이터 데이터베이스 서비스입니다.
데이터베이스 확장을 자동으로 처리합니다. Firestore 모바일, 웹, 서버 개발을 위한 유연하고 확장 가능한 데이터베이스입니다.
더 많은 쿼리를 제공하려면 Cloud SQL 데이터베이스 인스턴스를 수직 확장하여 더 많은 컴퓨팅 및 메모리 용량을 확보합니다. Cloud SQL에서 스토리지 레이어는 데이터베이스 인스턴스와 분리됩니다. 스토리지 레이어가 용량에 도달할 때마다 자동으로 확장하도록 선택할 수 있습니다. Cloud SQL Google Cloud에서 관계형 데이터베이스를 설정, 유지, 관리할 수 있는 완전 관리형 데이터베이스 서비스입니다.

운영

이 섹션에서는 시스템을 지원하는 작업에 대한 권장사항을 제공합니다.

Cloud Monitoring을 사용하여 데이터베이스 알림 모니터링 및 설정

Cloud Monitoring을 사용하여 데이터베이스 인스턴스를 모니터링하고 적절한 이벤트 팀에 알림을 보내도록 설정합니다. 효율적인 알림 권장사항에 대한 자세한 내용은 효율적인 알림 설계를 참조하세요.

클라우드용으로 설계된 모든 데이터베이스는 로깅 및 모니터링 측정항목을 제공합니다. 각 서비스는 로깅 및 모니터링 측정항목을 시각화하는 대시보드를 제공합니다. 모든 서비스의 모니터링 측정항목은 Google Cloud Observability와 통합됩니다. Spanner는 디버깅 및 근본 원인 분석을 위해 Key Visualizer와 같은 쿼리 점검 도구를 제공합니다. Key Visualizer는 다음과 같은 기능을 제공합니다.

  • 데이터베이스에 대한 시각적 보고서를 생성하여 Spanner 사용 패턴을 분석하는 데 도움을 줍니다. 보고서에는 시간 경과에 따른 행 범위별로 사용량 패턴이 표시됩니다.
  • 대규모 사용 패턴에 대한 유용한 정보를 제공합니다.

Bigtable은 Bigtable 인스턴스 사용 패턴을 분석하는 데 도움이 되는 Key Visualizer 진단 도구도 제공합니다.

라이선스

이 섹션에서는 시스템을 지원하기 위한 라이선스 권장사항을 제공합니다.

주문형 라이선스와 기존 라이선스 중에서 선택

SQL Server용 Cloud SQL을 사용하는 경우 Bring Your Own License(사용자 라이선스 사용)는 지원되지 않습니다. 라이선스 비용은 코어별 시간당 사용량을 기준으로 합니다.

기존 SQL Server용 Cloud SQL 라이선스를 사용하려면 Compute VM에서 SQL Server용 Cloud SQL 실행을 고려합니다. 자세한 내용은 Microsoft 라이선스주문형 라이선스와 기존 라이선스 가져오기 중에서 선택을 참조하세요.

Oracle을 사용하고 Oracle용 베어메탈 솔루션으로 마이그레이션하는 경우 Bring Your Own License(사용자 라이선스 사용) 적용이 가능합니다. 자세한 내용은 베어메탈 솔루션 계획을 참조하세요.

마이그레이션 타임라인, 방법론, 도구 세트

이 섹션에서는 시스템을 지원하기 위해 데이터베이스 마이그레이션을 계획하고 지원하는 권장사항을 제공합니다.

데이터베이스 현대화 준비 확인

조직에서 데이터베이스를 현대화하고 클라우드용으로 빌드된 데이터베이스를 사용할 준비가 되었는지 평가합니다.

현대화가 애플리케이션 측에 영향을 미칠 수 있으므로 워크로드 마이그레이션 타임라인을 계획할 때 데이터베이스 현대화를 고려합니다.

마이그레이션 계획의 관련 이해관계자 참여

데이터베이스를 마이그레이션하려면 다음 작업을 완료합니다.

  • 대상 데이터베이스를 설정합니다.
  • 스키마를 변환합니다.
  • 소스 데이터베이스와 대상 데이터베이스 간의 데이터 복제를 설정합니다.
  • 마이그레이션 중에 발생하는 문제를 디버깅합니다.
  • 애플리케이션 레이어와 데이터베이스 간에 네트워크 연결을 설정합니다.
  • 대상 데이터베이스 보안을 구현합니다.
  • 애플리케이션이 대상 데이터베이스에 연결되어 있는지 확인합니다.

이러한 작업에는 종종 다른 기술 세트가 필요하고 여러 팀이 조직 내에서 공동작업을 진행하여 마이그레이션을 완료합니다. 마이그레이션을 계획할 때는 앱 개발자, 데이터베이스 관리자, 인프라 및 보안팀과 같은 모든 팀의 이해관계자를 포함합니다.

팀이 이러한 유형의 마이그레이션을 지원할 기술이 없는 경우 Google의 파트너가 마이그레이션을 수행할 수 있도록 지원합니다. 자세한 내용은 Google Cloud 파트너 어드밴티지를 참조하세요.

동종 및 이기종 마이그레이션을 위한 도구 세트 파악

동종 마이그레이션은 동일한 데이터베이스 기술의 소스 데이터베이스와 대상 데이터베이스 간의 데이터베이스 마이그레이션입니다. 이기종 마이그레이션은 대상 데이터베이스가 소스 데이터베이스와 다른 마이그레이션입니다.

이기종 마이그레이션에서는 일반적으로 소스 데이터베이스에서 대상 데이터베이스 엔진 유형으로 스키마 변환을 위한 추가 단계를 수행합니다. 데이터베이스팀은 소스 데이터베이스 스키마의 복잡성에 따라 스키마 변환과 관련된 문제를 평가해야 합니다.

데이터 마이그레이션의 각 단계 테스트 및 검증

데이터 마이그레이션에는 여러 단계가 포함됩니다. 마이그레이션 오류를 최소화하려면 다음 단계로 이동하기 전에 마이그레이션의 각 단계를 테스트하고 검증합니다. 마이그레이션 프로세스를 주도하는 요인은 다음과 같습니다.

  • 마이그레이션이 동종 또는 이기종인지 여부
  • 마이그레이션을 수행하는 데 필요한 도구 및 기술 유형
  • 이기종 마이그레이션의 경우 대상 데이터베이스 엔진 사용 경험

지속적인 데이터 복제 요구사항 확인

데이터를 처음에 마이그레이션한 후 소스에서 대상 데이터베이스로 데이터를 지속적으로 복제하는 계획을 수립합니다. 대상이 안정화되고 애플리케이션이 새 데이터베이스로 완전히 마이그레이션될 때까지 복제를 계속합니다. 이 계획을 사용하면 데이터베이스 전환 중에 잠재적인 다운타임을 식별하고 이에 따라 계획할 수 있습니다.

Cloud SQL, MySQL용 Cloud SQL, PostgreSQL용 Cloud SQL에서 데이터베이스 엔진을 마이그레이션할 계획인 경우 Database Migration Service를 사용하여 완전 관리형 방식으로 이 프로세스를 자동화합니다. 다른 유형의 마이그레이션을 지원하는 타사 도구에 대한 자세한 내용은 Cloud Marketplace를 참조하세요.

권장사항

아키텍처 프레임워크의 안내 사항을 자신의 환경에 적용하려면 다음을 수행하는 것이 좋습니다.

  • 데이터베이스의 멀티테넌시에는 공유 인프라(이 경우 데이터베이스)에 여러 고객의 데이터를 저장하는 작업이 포함됩니다. 고객에게 Software as a service(SaaS) 기반 서비스를 제공하는 경우 다양한 고객에게 속한 데이터 세트를 논리적으로 격리하고 액세스 요구사항을 지원하는 방법을 이해해야 합니다. 또한 분리 수준에 따라 요구사항을 평가합니다.

    SpannerCloud SQL과 같은 관계형 데이터베이스에는 데이터베이스 인스턴스 수준, 데이터베이스 수준, 스키마 수준, 데이터베이스 테이블 수준에서 테넌트의 데이터를 격리하는 것과 같은 여러 가지 접근 방법이 있습니다. 다른 설계 결정과 마찬가지로 격리 수준과 비용 및 성능과 같은 다른 요소 사이에 절충사항이 있습니다. IAM 정책은 데이터베이스 인스턴스에 대한 액세스를 제어합니다.

  • 데이터 모델 요구사항에 맞는 데이터베이스를 선택합니다.

  • 키 핫스팟을 방지하려면 키 값을 선택합니다. 핫스팟은 다른 위치보다 더 많은 액세스 요청을 받는 테이블 내 위치입니다. 핫스팟에 대한 자세한 내용은 스키마 설계 권장사항을 참조하세요.

  • 가능하면 데이터베이스 인스턴스를 샤딩합니다.

  • 연결 풀링 및 지수 백오프와 같은 연결 관리 권장사항을 사용합니다.

  • 매우 큰 트랜잭션을 방지하세요.

  • 데이터베이스의 유지보수 업데이트에 대한 애플리케이션의 응답을 설계하고 테스트합니다.

  • 데이터베이스에 대한 연결을 보호하고 격리합니다.

  • 데이터베이스가 요구사항을 지원하는지 확인하기 위해 데이터베이스 및 성장 기대치를 조정합니다.

  • HA 및 DR 장애 조치 전략을 테스트합니다.

  • 프로세스에 익숙해지도록 백업 및 복원뿐만 아니라 내보내기와 가져오기도 수행합니다.

Cloud SQL 권장사항

  • 비공개 IP 주소 네트워킹(VPC)을 사용합니다. 추가 보안을 위해 다음 사항을 고려합니다.
  • 공개 IP 주소 네트워킹이 필요한 경우 다음을 고려합니다.
    • 제한된 범위 또는 좁은 범위의 IP 주소 목록으로 기본 제공되는 방화벽을 사용합니다. Cloud SQL 인스턴스에는 수신 연결에 SSL을 사용해야 합니다. 자세한 내용은 SSL/TLS 인증서 구성을 참조하세요.
  • 추가 보안을 위해 다음 사항을 고려합니다.
  • 데이터베이스 사용자에게 제한된 권한을 사용합니다.

다음 단계

다음을 포함한 데이터 분석 권장사항 알아보기

아키텍처 프레임워크에서 안정성, 운영 우수성, 보안, 개인정보 보호, 규정 준수 등의 다른 카테고리를 살펴보기