본문은 MAR, 자동 장애 조치, 데이터 보안 암호화와 같은 테넌트 보안 기능에 대해 설명합니다.
다중 스레드 비동기 복제(MAR)
배경
데이터베이스가 데이터를 기록하므로 여러 데이터베이스 간에 전환하려면 해당 데이터가 동기화되어야 합니다. 따라서 데이터 동기화는 데이터베이스 고가용성 솔루션의 기초입니다.
현재 오픈 소스 MySQL 데이터베이스는 비동기 및 반동기 데이터 복제 모드를 지원합니다. 그러나 두 모드 모두에서 노드 오류가 발생하면 데이터가 손실되거나 올바르지 않거나 지저분할 수 있습니다. 또한 복제는 직렬이며 성능이 낮습니다.
솔루션
MySQL 프로토콜을 기반으로 하는 Tencent Cloud의 독점 병렬 다중 스레드 비동기 복제(Multi-thread Asynchronous Replication, MAR) 솔루션에서 요청이 애플리케이션 레이어에서 시작되면 복제 노드(Slave)가 성공적으로 메시지를 반환한 후에만 원본 노드(Master)가 응답할 수 있습니다. 원본 및 복제본 노드가 동일한 데이터를 갖도록 하여 요청 성공으로 애플리케이션 레이어로 전송합니다.
MAR을 수행할 때 복제본 데이터베이스에서 연결이 끊기거나 복제본 데이터베이스가 실패하면 원본 데이터베이스가 중단(Hang)됩니다. 원본 또는 복제 데이터베이스가 하나만 있는 경우 고가용성 솔루션을 사용할 수 없습니다. 단일 서버만 사용하는 경우 오류가 발생하면 데이터의 일부가 완전히 손실되어 금융급 데이터 보안 요구 사항을 충족하지 않기 때문입니다.
따라서 TDSQL for MySQL은 MAR을 기반으로 Google의 semi-sync 기술과 유사하지만 구현 방식이 다른 다운그레이드 가능한 강력한 동기화 방식을 제공합니다.
또한 TDSQL for MySQL은 직렬 동기화 스레드를 병렬화하고 작업자 스레드 기능을 도입하여 성능을 크게 향상시킵니다. 동일한 교차 AZ(지연 시간이 약 10ms – 20ms인 IDC) 테스트에서 MAR의 기술 성능은 MySQL 5.6의 반동기화 복제의 약 5배, MariaDB Galera Cluster의 기술 성능은 1.5배입니다. OLTP RW(원본/복제본 아키텍처에서 읽기/쓰기 혼합)에서 성능은 MySQL 5.7의 비동기 복제 성능의 1.2배입니다. 인텔® 기술 팀에서 테스트한 특정 성능의 비교는 다음과 같습니다.
자동 장애 조치 및 복구
프로덕션 시스템에서는 중단 없는 시스템 작동을 보장하기 위해 고가용성 솔루션이 필요한 경우가 많습니다. 시스템 데이터 저장 및 서비스의 핵심으로서 데이터베이스에 대한 가용성 요구 사항은 컴퓨팅 서비스 리소스에 대한 가용성 요구 사항보다 높습니다.
TDSQL for MySQL의 고가용성 솔루션은 여러 데이터베이스 서비스의 협업을 허용함으로써 작동합니다. 이러한 방식으로 데이터베이스에 장애가 발생하면 다른 서버가 즉시 작업을 인계 받게 되므로 서비스가 중단되지 않거나 매우 짧은 시간 동안만 중단됩니다. 이 솔루션을 원본/복제본 고가용성이라고도 합니다.
일반적인 원본/복제본 고가용성을 기반으로 TDSQL for MySQL은 다음과 같은 고급 기능을 추가로 지원합니다.
자동 장애 조치, 클러스터 구성원 제어 및 클러스터에서 노드 제거가 지원됩니다. 인스턴스 수준 원본 복제본 스위치의 경우 VIP(가상 IP)는 변경되지 않은 상태로 유지됩니다. MAR 정책은 원본/복제본 장애 조치 시 완전한 원본/복제본 데이터 일관성을 보장하여 데이터 일관성에 대한 금융급 요구 사항을 완전히 충족합니다.
자동 복구가 지원됩니다. 샤드를 운반하는 물리적 노드에 장애가 발생하면 스케줄링 시스템이 자동으로 노드 복구를 시도합니다. 노드를 복구할 수 없는 경우 30분 이내에 자동으로 교체됩니다. 새 노드는 백업에서 재구축(Rebuild)되고 클러스터에 자동으로 추가되어 장기적으로 인스턴스의 고가용성 아키텍처를 보장합니다.
각 노드는 데이터의 완전한 복제본을 포함하며 DBA의 필요에 따라 전환될 수 있습니다.
Do-not-switch 설정이 지원됩니다. 즉, 지정된 시간 동안 장애 조치가 수행되지 않습니다.
x86 PC가 지원되며 저장 장치를 공유할 필요가 없습니다.
교차 AZ 배포가 지원됩니다. 원본 인스턴스와 복제본 인스턴스가 서로 다른 데이터 센터에 있더라도(동일한 리전에 관계없이) Direct Connect를 통해 실시간으로 데이터를 복제할 수 있습니다. 로컬 노드가 원본이고 원격 노드가 복제본이면 로컬 노드에 먼저 액세스하고 장애가 발생하거나 연결할 수 없게 되면 원격 노드에 액세스합니다. 또한 Tencent Cloud VPC의 도움으로 지역 내 Active-Active 아키텍처를 구현할 수 있습니다. 즉, 비즈니스 시스템은 두 데이터 센터의 데이터베이스를 직접 읽고 쓸 수 있습니다.
이 기능은 TDSQL for MySQL에 다중 AZ 재해 복구 기능을 제공하여 단일 IDC 배포로 인한 운영 위험을 제거합니다.
모든 TDSQL for MySQL 샤드는 MAR 기반 고가용성 체계를 지원합니다. 원본 데이터베이스에 장애가 발생하면 시스템이 자동으로 최적의 복제본 데이터베이스를 즉시 선택하여 작업을 인계합니다. 전환 프로세스는 사용자가 감지할 수 없으며 액세스 IP는 변경되지 않고 데이터베이스 및 기본 물리적 장치에 대해 7 x 24시간 지속적인 모니터링이 제공됩니다.
장애가 발생하면 시스템은 데이터베이스와 관련 프로세스를 자동으로 다시 시작합니다. 노드가 충돌하여 복구할 수 없는 경우 아래와 같이 백업 파일에서 자동으로 재구축됩니다.
중국 및 국제 인증
TDSQL for MySQL은 적용 가능한 중국 정보 보안 표준을 준수하며 TencentDB를 대표하여 많은 중국 및 국제 인증을 획득했습니다.
MariaDB 플래티넘 회원
ACMUG 및 중국 컴퓨터 산업 협회 - 오픈 소스 데이터베이스 위원회(CCIA-ODC) 상임 회원
ISO27001
ISO27001: 2013
ISO20000
ISO20000-1: 2011
ISO22301
ISO9001
ISO27018
PCI DSS 레벨1 서비스 공급자 자격
SOC 감사
ITSS 클라우드 서비스 고급 인증
퍼블릭 클라우드에 대한 사이버 보안 분류 보호 레벨3 파일링 및 평가
금융 클라우드에 대한 사이버 보안 분류 보호 레벨4 비안 및 평가
신뢰할 수 있는 클라우드 데이터베이스 서비스 인증
신뢰할 수 있는 클라우드 사용자 데이터 보안 보호 기능 평가
신뢰할 수 있는 클라우드 골드 클래스 운영 특별 평가
ITSS 인증
CSA STAR Gold 인증 및 CNAS 및 UKAS의 정보 보안 관리 시스템 이중 인증
포괄적인 보안 감사
보안 감사는 가장 중요한 추적 방법 중 하나입니다. 따라서 중국의 사이버 보안 분류 보호 인증(레벨3)은 정보 시스템이 감사를 지원해야 한다고 규정하고 있습니다. TDSQL for MySQL은 완벽한 보안 보호를 제공하기 위해 다음 세 레이어에서 감사 기능을 제공합니다.
Chitu 운영 체제의 운영 로그에 의해 구현되는 OPS 시스템에 대한 보안 감사.
Tencent Cloud의 독점 데이터베이스 감사 시스템에 의해 구현되는 데이터베이스 시스템에 대한 보안 감사.
Tencent Cloud의 독점 Tiejiangjun 시스템으로 구현되는 서버 운영 체제에 대한 보안 감사.
설명:
퍼블릭 클라우드에서는 모든 보안 감사 기능이 기본적으로 설정됩니다.
프라이빗 클라우드에서는 시스템 운영 로깅(Chitu 시스템)이 기본 설정되어 있으며 데이터베이스 SQL 감사 및 서버 운영 감사 기능은 선택 사항입니다.
커널 수준 보안 정책
TDSQL for MySQL은 데이터베이스 커널 수준에서 다양한 오픈 소스 보안 솔루션을 제공하며 그 중 일부는 커뮤니티에서 인정을 받았습니다. 다음은 몇 가지 커널 보안 조치입니다.
슬로우 삭제
drop table 또는 alter table ... drop partition 명령을 실행하는 경우 데이터베이스는 테이블 스페이스 파일을 즉시 삭제하지 않습니다. 대신 파일 이름을 바꾸고 백엔드에서 점차 축소한 다음 최종적으로 삭제합니다. 이 기능은 단일 요청에서 대용량 테이블 스페이스 파일이 삭제될 때 서버 파일 시스템의 I/O 로드 급증으로 인한 시스템 성능 변동을 방지할 수 있습니다.
우발적 메타데이터 삭제 방지
승인된 사용자만 시스템에 로그인하고 메타데이터 테이블을 삭제할 수 있으므로 잘못된 운영으로 인한 비즈니스 가용성이 저하되는 것을 방지할 수 있습니다.
권한이 없는 사용자의 플러그인 설치 금지
데이터베이스 서비스는 사용자가 사용자 정의 기능을 구현하기 위한 표준 API를 제공하지만 해커는 일반적으로 이 취약점을 악용하여 공격을 시작합니다. 따라서 지정된 관리자만 플러그인을 마운트할 수 있습니다.
물리적 서버 파일 시스템에 대한 무단 사용자 액세스 금지
해커가 파일 선택, 파일 주입, 경로 탐지 등의 방법으로 보안 시스템을 우회하는 것을 방지하기 위해 권한이 없는 사용자가 물리적 서버의 디렉터리 구조 및 파일 시스템에 접근하는 것을 차단합니다.
데이터 폐기
TDSQL 인스턴스를 종료하면 해당 인스턴스에 저장된 모든 데이터(백업 데이터 포함)가 폐기됩니다. Tencent Cloud는 데이터를 유지하거나 인스턴스를 자동 복구하지 않습니다.
1-DC 재해 복구 배포에 대한 제안
1-DC 재해 복구를 배포할 때 데이터베이스 클러스터에 대해 다음 오류를 방지해야 합니다.
데이터 센터 스위치, 로드 밸런서 및 ENI와 같은 장치의 단일 장애 지점.
랙 전원, 팬 및 냉각기와 같은 장치의 단일 장애 지점.
데이터베이스 서버 하드웨어의 단일 실패 지점.
따라서 1-DC 재해 복구 배포에 대해 최소한 다음 요구 사항을 충족하는 것이 좋습니다.
스위치 및 로드 밸런서와 같은 네트워크 장치에 대해 최소한 Active-Active 재해 복구를 배포합니다.
데이터베이스 서버와 관리 및 스케줄링 시스템을 위해 하나의 원본과 두 개의 복제본을 배포합니다.
여러 랙에 동일한 모듈의 다른 장치를 배포합니다.
데이터 백업 모듈을 배포합니다.
2-region-3-DC 배포에 대한 제안
2-region-3-DC 배포는 1-region-2-DC 배포를 기반으로 재해 복구 센터를 추가하는 것입니다. 두 재해 복구 인스턴스는 데이터 일관성을 보장하기 위해 DCN(Data Communication Network)을 통해 동기화됩니다.