그림으로 배우는 데이터베이스 Chapter 6

prana·2022년 12월 30일
0

database

목록 보기
29/38
post-thumbnail

Chapter 6 데이터베이스 운용

6-1 온프레미스, 클라우드

  • 데이터베이스가 위치하는 장소

1. 자체 설비인가, 외부 시스템을 이용하는가?

  • 온프레미스(On-premise)
    • 자체 설비를 이용하여 데이터베이스를 운용하는 방법
    • 서버나 회선을 사내에서 조달하여 시스템을 구축한다.
       
  • 클라우드(Cloud)
    • 인터넷을 통하여 사업자가 제공하고 있는 데이터베이스를 사용하는 것
    • 자체적으로 설비를 떠안을 필요가 없고, 외부 사업자에 의해 미리 준비되어 있는 시스템을 이용한다.

2. 비용과 보안 측면의 차이

온 프레미스클라우드
비용설비 금액이나 전기료, 보수 비용이
들어가기 때문에, 높은 금액이 되기 쉽다.
사업자에 따라 다르지만, 보다 저렴할 수 있다.
도입+운용
걸리는 수고
모두 내부에서 수행어느 정도는 사업자에 맡김
보안내부에서만 사용하는 경우
외부와의 접속이 없는 만큼 안전
온라인 상에 있는 만큼 위험도는 올라간다
커스터마이즈
자유도
요구에 맞게 자유롭게
커스터마이즈 할 수 있다
사업자에 의해 준비되어 있는 플랜(plan)만

6-2 전원, 바이러스, 비용

  • 자체적으로 데이터베이스 서버를 관리할 때의 주의점

1. 온프레미스에서 주의해야 하는 것

1) 정전에 대비한다.

  • 무정전 전원장치(UPS)나 비상용 자가발전 장치 등을 검토해야 한다.

2) 외부로부터의 공격에 대비한다.

  • 수시로 최신의 수정 프로그램이나 패치(patch)를 적용하거나 바이러스 소프트웨어의 도입을 검토해야 한다.

3) 비용을 견적하다

  • ex) 서버, 소프트웨어, 라이선스의 구입 비용, 운용하는 기술자의 채용,
    보안 대책 관련 비용이나 전기세, 기기가 고장나거나 낡았을 때의 교환 비용 등을 미리 정리

6-3 이니셜 코스트(initial cost), 러닝 코스트(running cost)

  • 데이터베이스 운용에 드는 비용

1. 초기 비용과 유지 비용

1) 이니셜 코스트 : 초기 비용으로 데이터베이스를 도입할 때 드는 비용

  • 설비 구입 비용이나 상용 데이터베이스나 클라우드 서비스를 이용할 때 처음에 지불해야 하는 비용

2) 러닝 코스트 : 데이터베이스 도입 이후 매월 소요되는 비용

  • 온프레미스(전기세), 상용 데이터베이스나 클라우드 서비스(사업자에게 매월 지불하는 이용료/유지보수에 드는 인건비 등)

2. 데이터베이스에 드는 여러 가지 비용 사례

1) 온 프레미스

  • 이니셜 코스트 : 서버와 랙(rack) 등 설비 구입 비용
  • 러닝 코스트 : 전기료 + 인건비 + 보안 및 장애 대책을 위한 비용

2) 클라우드 서비스

  • 초기 비용 + 매월 고정된 이용료 + 사용한 만큼 과금되는 종량제 과금 방식

3) 상용 데이터베이스를 사용하는 경우

  • 라이선스 비용, 데이터베이스의 규모나 사용자 수, 옵션에 따라 가격이나 청구 시기는 다양하다.

6-4 사용자, 권한

  • 사용자에 따라 접속가능 범위를 바꾼다

1. 사용자와 권한을 설정한다

  • 사용자를 생성하고, 그 사용자가 데이터베이스에 대해 어떠한 조작을 할 수 있게 할 것인가 권한을 부여할 수 있다.

  • 권한 : 데이터베이스의 생성, 삭제, 테이블의 생성/편집/삭제, 레코드의 추가/편집/삭제 이외에 데이터베이스 전체에 관련된 시스템 조작 권한 등

    권한 : 데이터베이스별, 테이블별, 컬럼별 등 범위 지정 가능


6-5 조작 이력, 로그(log), 리소스

  • 데이터베이스를 감시하다

1. 데이터베이스를 감시하다

  • 데이터베이스에 이상이 발생하거나 동작이 정지되면 데이터베이스를 사용하고 있는 업무나 서비스를 정지시켜야 한다.

  • 방법 : DBMS에 기본으로 준비되어 있는 기능을 사용하는 것 이외에 시중에 판매되고 있는 감시 도구를 도입하는 방법이나 자체적으로 만드는 방법 등

2. 다양한 감시 대상 항목

1) 데이터베이스 조작 이력

  • 데이터베이스 관리자가 언제 어떤 조작을 했는지 기록해 둔다.

2) 쿼리 로그(Query Log)

  • 데이터베이스에서 수행된 SQL의 이력 로그를 남겨둠으로써 장애 대응 등에 이용할 수 있다.
  • DBMS에 의해 실행하는데 시간이 걸리는 SQL을 출력하는 슬로우 로그(slow log)와 발생한 오류를 출력하는 에러 로그(error log)등이 있다.

3) 서버 자원

  • CPU나 메모리, 네트워크 대역, 디스크의 빈 용량 등 자원에 이상이 없는지 체크해 둔다.

6-6 백업, 풀 백업, 차분 백업, 증분 백업

  • 정기적으로 현재의 데이터를 기록해 두다

1. 데이터 파손에 대비하여 백업한다

  • 조작하는 로직에 존재하는 버그(bug)로 인해 데이터에 모순이 생기거나, 조작 실수로 데이터가 사라져 버리는 경우가 있다.

  • 데이터를 복제해 두는 것을 백업이라 하며, 데이터가 파손되어도 백업 파일에서 데이터를 복구할 수 있다.

⭐2. 백업 방식 분류

1) 풀 백업 (Full Backup)

  • 모든 데이터를 백업 받는 방법
  • 👍: 해당 시점의 데이터를 나중에 완전히 복구 가능
  • 👎: 많은 양의 데이터를 조회하기 때문에 처리에 시간이 걸리거나 시스템에 과부하가 걸리기 때문에 많은 경우에는 적합하지 않다.

2) 차분 백업 (Differential Backup)

  • 풀 백업 후 추가된 변경 부분을 백업하는 방법
  • 데이터 복구 시에는 첫 번째 풀 백업과 최신 차분 백업의 두 가지 파일을 사용하여 복구
  • 최초의 풀 백업 후에 추가된 데이터를 백업
  • 👍: 변경된 부분만큼 백업 처리 시간이 짧아 시스템 부담이 적다.

3) 증분 백업(Incremental Backup)

  • 풀 백업 후의 변경 분을 백업하는 방식
  • 차분 백업과 비슷하지만 백업을 할 때는 이전에 백업한 이후에 변경 부분만 백업하는 방식
  • 시스템에 부담을 주지 않지만 데이터 복구 시 지금까지의 모든 파일이 필요하기 때문에 하나라도 파일이 빠져 있으면 복구할 수 없다.

6-7 덤프(dump), 리스토어(restore)

  • 데이터를 이행한다

1. 같은 내용의 데이터베이스를 생성한다

  • 덤프(dump) : 데이터베이스의 내용을 출력하는 것

  • 덤프를 수행하면, 데이터베이스의 내용을 반영한 덤프 파일을 생성할 수 있다.

  • 리스토어(restore) : 덤프 파일에서 데이터를 복원하는 것

  • 이 파일을 사용해서 다른 데이터베이스에 리스토어(restore)라는 작업을 실행함으로써, 덤프를 가져온 데이터베이스와 동일한 데이터베이스를 생성할 수 있다.

테스트 환경이나 개발 환경용으로 동일한 데이터베이스를 생성하거나,

  • 오래된 데이터베이스에서 새로운 데이터베이스로 데이터를 이행하거나 백업으로 데이터를 취득해 둘 수 있다.

2. 덤프 파일 내용물

  • CREATE TABLE 이나 레코드를 생성하는 INSERT INTO 와 같은 명령어를 실행하면 덤프를 조회한 데이터베이스 내용과 동일한 데이터베이스를 만들 수 있다.

3. 덤프를 실시하는 명령어

  • myslqump
  • (PostgreSQL) : pg_dump 등
  • 데이터가 많은 경우 실행이 지연될 수 있다.

6-8 암호화, 복호화

  • 기밀 데이터를 변환하여 보존한다

1. 정보 유출을 막는 암호화

  • 암호화 : 데이터를 다른 사람이 읽을 수 없는 정보로 변환하는 기술
  • 복호화 : 암호화된 데이터는 특별한 처리를 통해 원래대로 되돌림

2. 다양한 암호화 방식

1) 애플리케이션에서 암호화

  • 데이터를 저장하기 전 애플리케이션으로 암호화 후 저장하는 방법
  • 데이터베이스에는 암호화된 상태로 데이터가 저장
  • 데이터를 조회한 경우에도 암호화된 상태로 조회하게 되어 애플리케이션에서 복호화를 수행

2) 데이터베이스 기능에 의한 암호화

  • 관리 시스템에서 데이터를 저장/조회 시 암호화나 복호화 처리를 실시
  • 애플리케이션에서는 암호화 여부를 의식할 필요가 없어서 편리

3) 스토리지 기능을 통한 암호화

  • 데이터를 저장하고 있는 스토리지 기기나 OS의 기능을 사용하는 방법
  • 스토리지에 데이터를 저장할 때 자동적으로 암호화된다.

6-9 버전 업(Version up)

  • OS와 소프트웨어의 버전을 올린다

1. 버전을 올려야 하는 필요성

  • 보안 강화나 성능 향상이 예상되기 때문에 DBMS와 OS 버전 업에 유의한다.

    😈 OS나 소프트웨어를 갱신하지 않고 오래된 이전 버전 상태로 두면,

    • 최신 기능을 사용할 수 없으며,
    • 다른 소프트웨어와 연계를 할 수 없게 되거나,
    • 충분한 지원을 받지 못해서 트러블이 발생했을 때 대처가 어려워진다.

2. 버전 업(Version up)의 흐름

  1. 현재 버전 및 설정 등의 환경을 기록해 둔다.
  2. 데이터 백업을 한다.
  • 1,2🎈
    만약 문제가 발생했을 떄를 위해 원래대로 되돌릴 수 있도록 해야 한다.


3. OS나 소프트웨어 버전 업을 실행


4. 정상적으로 동작하고 있는지 테스트

4.🎈

  • 실행하고 있는 SQL에 에러가 나지는 않았는가?
  • SQL 처리에 시간이 걸리지는 않았는가?
  • 로그나 서버의 리소스에 문제가 생기지는 않았는가?

0개의 댓글

관련 채용 정보