▶ 094 데이터베이스 이중화 / 서버 클러스터링
데이터베이스 이중화(Database Replication) √
오류로 인한 데이터베이스 서비스 중단이나 물리적 손상 발생 시 이를 복구하기 위해 동일한 데이터베이스를 복제하여 관리하는 것
- 데이터베이스에 문제 발생 시 복제된 데이터베이스를 이용하여 즉시 문제를 해결할 수 있음
- 손쉽게 백업 서버를 운영할 수 있음
- 애플리케이션을 여러 개의 데이터베이스로 분산시켜 처리하므로 데이터베이스의 부하를 줄일 수 있음
데이터베이스 이중화의 분류
변경 내용의 전달 방식에 따라 Eager 기법과 Lazy 기법으로 나뉨
Eager 기법 | 트랜잭션 수행 중 데이터 변경이 발생하면 이중화된 모든 데이터베이스에 즉시 전달하여 변경 내용이 즉시 적용되도록 하는 기법 |
Lazy 기법 | 트랜잭션의 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달되는 기법, 데이터베이스마다 새로운 트랜잭션이 수행되는 것으로 간주됨 |
데이터베이스 이중화 구성 방법
데이터베이스 이중화 구성 방법에는 활동-대기 방법과 활동-활동 방법이 있음
활동-대기(Active-Standby) 방법 | - 한 DB가 활성 상태로 서비스하고 있으면 다른 DB는 대기하고 있다가 활성 DB에 장애가 발생하면 대기 상태에 있던 DB가 자동으로 모든 서비스를 대신 수행 함 - 구성 방법과 관리가 쉬어 많은 기업에서 이용됨 |
활동-활동(Active-Active) 방법 | - 두 개의 DB가 서로 다른 서비스를 제공하다가 둘 중 한쪽 DB에 문제가 발생하면 나머지 다른 DB가 서비스를 제공 - 두 DB가 모두 처리를 하기 때문에 처리율이 높지만 구성 방법 및 설정이 복잡 |
클러스터링(Clustering)
두 대 이상의 서버를 하나의 서버처럼 운영하는 기술
- 고가용성 클러스터링 : 하나의 서버에 장애 발생 시 다른 서버가 받아 처리하여 서비스 중단을 방지하는 방식
- 병렬 처리 클러스터링 : 전체 처리율을 높이기 위해 하나의 작업을 여러 개의 서버에서 분산하여 처리하는 방식
*로드 밸런서(Load Balancer) : 특성 서버에 집중되는 부하를 덜기 위해 여러 개의 서버로 부하를 분산시키는 네트워크 서비스
▶ 095 데이터베이스 보안 / 암호화
데이터베이스 보안
데이터베이스의 일부분 또는 전체에 대해서 권한이 없는 사용자가 액세스하는 것을 금지하기 위해 사용되는 기술
암호화(Encryption)
데이터를 보낼 때 송신자가 지정한 수신자 이외에는 그 내용을 알 수 없도록 평문을 암호문으로 변환하는 것
- 암호화(Encryption) 과정 : 암호화되지 않은 평문을 정보 보호를 위해 암호문으로 바꾸는 과정
- 복호화(Decryption) 과정 : 암호문을 원래의 평문으로 바꾸는 과정
- 암호화 기법에는 개인키 암호 방식, 공개키 암호 방식이 있음
⦁ 개인키 암호 방식(Private Key Encryption) = 비밀키 암호 방식
동일한 키로 데이터를 암호화하고 복호화함
⦁ 공개키 암호 방식(Public Key Encryption)
서로 다른 키로 데이터를 암호화하고 복호화함
- 데이터를 암호화할 때 사용하는키(공개키)는 데이터베이스 사용자에게 공개하고, 복호화할 때의 키(비밀키)는 관리자가 비밀리에 관리
▶ 096 데이터베이스 보안 - 접근통제
접근통제
데이터가 저장된 객체와 이를 사용하려는 주체사이의 정보 흐름을 제한하는 것
- 접근통제 기술에는 임의 접근통제(DAC), 강제 접근통제(MAC)가 있음
임의 접근통제(DAC, Discretionary Access Control) | 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식 - 통제 권한이 주체에 있어 주체가 접근통제 권한을 지정하고 제어할 수 있음 - 일반적으로 특정 객체에 대한 조작 권한은 데이터베이스 관리 시스템으로부터 부여받지만 임의 접근통제에서는 객체를 생성한 사용자가 생성된 객체에 대한 모든 권한을 부여받고, 부여된 권한을 다른 사용자에게 허가할 수도 있음 - 임의 접근통제에 사용되는 SQL 명령어에는 GRANT와 REVOKE가 있음 |
강제 접근통제(MAC, Mandatory Access Control) | 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식 - 제 3자가 접근통제 권한을 지정 - 데이터베이스 객체별로 보안 등급을 부여할 수 있고, 사용자별로 인가 등급을 부여할 수 있음 - 주체보다 보안 등급이 높은 객체 : 읽기, 수정, 등록 모두 불가능 - 주체와 보안 등급이 같은 객체 : 읽기, 수정, 등록 가능 - 주체보다 보안 등급이 낮은 객체 : 읽기만 가능 |
*GRANT : 객체에 대한 권한을 부여하는 명령어
*REVOKE : 객체에 부여된 권한을 취소하는 명령어
- 접근통제의 3 요소 : 접근통제 정책, 접근통제 메커니즘, 접근통제 보안모델
접근통제 정책
어떤 주체가 언제, 어디서, 어떤 객체에게, 어떤 행위에 대한 허용 여부를 정의하는 것
- 신분 기반 정책 : 주체나 그룹의 신분에 근거해 객체의 접근을 제한
- 규칙 기반 정책 : 주체가 갖는 권한에 근거해 객체의 접근을 제한
- 역할 기반 정책 : 주체의 신분이 아니라 주체가 맡은 역할에 근거해 객체의 접근을 제한
접근통제 매커니즘
정의된 접근통제 정책을 구현하는 기술적인 방법
- 접근통제 목록, 능력 리스트, 보안 등급, 패스워드, 암호화 등이 있음
접근통제 보안 모델
보안 정책을 구현하기 위한 정형화된 모델
- 기밀성 모델 : 군사적인 목적으로 개발된 최초의 수학적 모델, 기밀성 보장이 최우선
- 무결성 모델 : 기밀성 모델에서 발생하는 불법적인 정보 변경을 방지
- 접근통제 모델 : 접근통제 메커니즘을 보안 모델로 발전시킨 것
▶ 097 데이터베이스 백업
데이터베이스 백업
전산 장비의 장애에 대비하여 데이터베이스에 저장된 데이터를 보호하고 복구하기 위한 작업, 치명적인 데이터 손실을 막기 위해서는 데이터베이스를 정기적으로 백업해야 함
데이터베이스 장애 유형
- 사용자 실수, 미디어 장애, 구문 장애, 사용자 프로세스 장애, 인스턴스 장애 등
로그 파일 √
데이터베이스의 처리 내용이나 이용 상황 등 상태 변화를 시간의 흐름에 따라 모두 기록한 파일로, 데이터베이스의 복구를 위해 필요한 가장 기본적인 자료
- 로그 파일을 기반으로 데이터베이스를 과거 상태로 복귀(UNDO)시키거나 현재 상태로 재생(REDO)시켜 데이터베이스 상태를 일관성 있게 유지
백업 종류
- 물리 백업 : 데이터베이스 파일을 백업하는 방법, 백업 속도 빠름, 작업 단순 / 문제 발생 시 원인 파악 및 문제 해결 어렵
- 논리 백업 : DB 내의 논리적 객체들을 백업하는 방법, 복원 시 데이터 손상 막음, 문제 발생 시 원인 파악 및 문제 해결 수월 / 백업, 복원 시 시간이 많이 소요됨
▶ 098 스토리지
스토리지(Storage)
단일 디스크로 처리할 수 없는 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술
- 스토리지의 종류 : DAS, NAS, SAN
1. DAS(Direct Attached Storage) √
서버와 저장장치를 케이블로 직접 연결하는 방식
- 일반 가정에서 컴퓨터에 외장하드를 연결하는 방식
- 저장장치를 직접 연결하므로 속도 빠르고 설치 및 운영 쉬움
- 초기 구축 비용 및 유지보수 비용 저렴
- 확장성 및 유연성이 상대적으로 떨어짐
- 직접 연결 방식이므로 다른 서버에서 접근할 수 없고 파일을 공유할 수 없음
- 저장 데이터가 적고 공유가 필요없는 환경에 적합
2. NAS(Network Attached Storage) √
서버와 저장장치를 네트워크를 통해 연결하는 방식
- DAS에 비해 확장성 및 유연성 우수
- Ethernet 스위치를 통해 파일 공유 가능, 장소에 구애받지 않고 저장장치에 쉽게 접근 가능
- 접속 증가 시 성능 저하 발생
3. SAN(Strage Area Network) √
DAS의 빠른 처리와 NAS의 파일 공유 장점을 혼합한 방식, 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식
- 파이버 채널(FC) 스위치 이용하여 네트워크 구성
- 확정성, 유연성, 가용성 뛰어남
- 초기 설치 시 비용 많이 듬
- 처리 속도 빠름, 저장장치 및 파일 공유 가능