Amazon Web Services 한국 블로그
Amazon RDS 활용 시, 데이터베이스 관리자 (DBA)의 역할 변화
DBA(데이터베이스 관리자)는 다양한 측면에 걸쳐 비즈니스 가치를 창출하기 위해 매일 엄청난 압박을 받고 있습니다. 수집된 데이터를 사용하려는 기업의 목표는 해당 비즈니스를 더 잘 이해하고, 비용을 절감하며, 수익을 증대하고, 개선을 이루고 결과를 실현하는 것입니다. 만약 매일 같이 소프트웨어 설치, 시스템 준비 또는 여러 중복 작업을 수행하는 데 대부분의 시간을 소비하고 있다면, 실제 비즈니스 목표를 달성하기 위해 노력하는 시간이 줄어들게 됩니다.
여러분이 비즈니스를 발전시키는 데 더 많은 시간을 할애할수록, 사업의 개선과 발전에 더 많은 기여를 할 수 있을 것입니다.
이 블로그 게시물은 두 부분으로 구성된 시리즈 중 첫 번째입니다. 이 첫 번째 게시물에서는 Amazon Relational Database Service(Amazon RDS)로의 전환을 통해 기존 DBA의 역할이 어떻게 변하며 여러분, 비즈니스, 주요 프로젝트 및 최종 사용자가 어떻게 더 많은 가치를 구현할 수 있는지에 대해 설명합니다. 그리고 다음 게시물에서는 다른 AWS 제품을 사용하여 Amazon RDS의 나머지 정규 작업을 자동화하는 방법에 관해 논의합니다.
기존 데이터센터 환경에서 DBA 역할
Wikipedia에 따르면 기존 온-프레미스 DBA는 일반적으로 다음 표에 나열된 여러 업무를 수행합니다. 본 게시물의 목적을 위해, 각 직무를 애플리케이션, 액세스, 데이터베이스, 모니터링 및 플랫폼의 5가지 관리 범주로 분류했습니다.
범주 | DBA 업무 | 기존 DBA 역할 |
애플리케이션 | 스키마, 액세스 패턴, 잠금 전략, SQL 개발 및 튜닝 설계 | ✓ |
데이터베이스 구조 수정 | ✓ | |
애플리케이션 및 최종 사용자 쿼리 최적화(반응적 튜닝) | ✓ | |
데이터 보관 | ✓ | |
데이터베이스에서 쿼리하여 필요한 임시 보고서 생성 | ✓ | |
사전 대응적으로 성능 튜닝 | ✓ | |
액세스 | 사용자 등록 및 시스템 보안 유지 관리 | ✓ |
데이터베이스에 대한 사용자 액세스 제어 | ✓ | |
호스트 액세스 잠금 | ✓ | |
데이터베이스의 권한 있는 자격 증명 보호(Oracle의 경우 SYSDBA 또는 SYSTEM, SQL Server의 경우 sa) | ✓ | |
데이터베이스 | 파라미터 구성 및 조정 | ✓ |
캐시 관리 | ✓ | |
작업 예약 | ✓ | |
모니터링 | 성능 지표, 응답 시간 및 요청 비율 모니터링 | ✓ |
알림 제공 | ✓ | |
객체 액세스 | ✓ | |
로그 | ✓ | |
플랫폼 | 데이터베이스 공급업체 라이선스 계약 준수 보장 | ✓ |
DR(재해 복구) 솔루션 설계 및 구현 | ✓ | |
시스템 스토리지 할당 및 데이터베이스 시스템의 향후 스토리지 요구 사항 계획 | ✓ | |
데이터베이스 소프트웨어 설치 및 업그레이드 | ✓ | |
데이터 백업 수행 | ✓ | |
HA(고가용성) 시스템 생성, 관리 및 모니터링 | ✓ | |
데이터베이스를 구동하는 소프트웨어에 패치 적용 | ✓ | |
DB 오류 문제 해결 및 기술 지원을 위해 공급업체에 문의 | ✓ |
DBA는 용량 계획, 데이터베이스 생성 및 소프트웨어 설치를 수행하거나, 향후 스토리지 요구 사항에 대한 계획을 세우기 위해 데이터의 증가 패턴을 이해하는 데 많은 시간을 할애하기도 합니다. 그리고 패치를 평가 및 적용하고, 포인트 릴리스 데이터베이스 소프트웨어를 업그레이드하고, 백업을 진행하기도 합니다. 또한, 높아지는 RPO(복구 시점 목표) 및 RTO(복구 시간 목표) SLA를 준수할 수 있는 HA 시스템을 설정 및 관리하기 위해 노력합니다. 데이터베이스 생성, 구성, 백업, 패치 적용, 업그레이드 및 DR 관련 작업은 시간이 오래 걸리며 반복적이며, 이러한 작업 중 일부는 운영 중인 프로덕션 시스템을 방해하지 않기 위해 퇴근 후 시간 또는 사용량이 적은 시간에 수행됩니다.
또한, DBA는 데이터베이스에 대한 액세스를 제어하고, 애플리케이션 팀이 데이터베이스 구조의 초안을 작성하고 변경 사항을 적용하도록 지원하며, 반응적 튜닝을 수행할 뿐만 아니라 사전 대응적인 성능 튜닝을 수행해야 할 수도 있습니다. 사전 대응적인 성능 튜닝을 수행하고 애플리케이션을 개선하는 데 더 많은 시간을 할애할수록 일반적으로 비즈니스 시스템이 더 빠르고 더 효율적으로 실행됩니다. 그런데 이러한 개선이 데이터베이스 자체의 일상적인 관리보다 우선순위가 떨어지는 경우가 많습니다. DBA의 일정에 따라, 비즈니스 부문에서 요청하는 새로운 기능 추가가 지연되는 경우도 있습니다.
클라우드 기반 Amazon RDS의 장점
Amazon RDS를 통해 클라우드에서 관계형 데이터베이스를 손쉽게 설정, 운영 및 확장할 수 있습니다. Amazon RDS는 비용 효율적이고 크기 조정이 가능한 용량을 제공하는 동시에 하드웨어 프로비저닝, 데이터베이스 설정, 패치 적용, 백업 등 시간이 걸리는 관리 작업을 자동화합니다. 따라서 DBA는 애플리케이션에 집중할 수 있으므로 애플리케이션에 필요한 빠른 성능, 고가용성, 보안 및 호환성을 제공할 수 있습니다.
다음 표에는 Amazon RDS 사용의 이점이 요약되어 있습니다.
관리 용이성 | Amazon RDS를 사용하면 프로젝트 계획부터배포까지 쉽게 진행할 수 있습니다. AWS Management Console, AWS 명령줄 인터페이스 또는 API를 통해 몇 분 만에 프로덕션 지원 관계형 데이터베이스의 기능을 사용할 수 있습니다. 인프라 프로비저닝, 데이터베이스 소프트웨어 설치 및 유지 관리가 필요하지 않습니다. |
탁월한 확장성 | 대개 다운타임 없이 데이터베이스의 컴퓨팅 및 스토리지 리소스를 독립적으로 확장할 수 있습니다. 여러 Amazon RDS 엔진 유형을 통해 하나 이상의 읽기 전용 복제본을 사용하여, 기본 데이터베이스 인스턴스에서 읽기 트래픽을 오프로드할 수 있습니다. |
높은 가용성 및 내구성 | Amazon RDS는 다른 AWS 제품에서 사용하는 것과 동일하게 고도로 안정적인 인프라에서 실행됩니다. 다중 AZ DB 인스턴스를 프로비저닝하는 경우 Amazon RDS가 다른 가용 영역의 대기 인스턴스에 데이터를 동기적으로 복제합니다. 여기에는 자동 백업, 데이터베이스 스냅샷 및 자동 호스트 교체도 포함됩니다. |
빠른 속도 | Amazon RDS는 가장 까다로운 데이터베이스 애플리케이션을 지원합니다. 두 가지 SSD 지원 스토리지 옵션인 고성능 OLTP 애플리케이션에 최적화된 옵션과 비용 효율적인 범용 용도를 위한 옵션 중에서 선택할 수 있습니다. |
뛰어난 보안 | Amazon RDS를 사용하면 데이터베이스에 대한 네트워크 액세스를 쉽게 제어할 수 있습니다. 또한, Amazon Virtual Private Cloud(Amazon VPC)에서 데이터베이스 인스턴스를 실행할 수도 있습니다. 따라서 데이터베이스 인스턴스를 격리하고 산업 표준의 암호화된 IPsec VPN(가상 프라이빗 네트워크)을 통해 기존 IT 인프라에 연결할 수 있습니다. 많은 Amazon RDS 엔진 유형에서 저장 시 암호화 및 전송 중 암호화 기능을 제공합니다. |
낮은 비용 | 실제로 사용하는 리소스에 대해서만 저렴한 요금을 지급하면 됩니다. 또한, 선결제 또는 장기 약정 없이 온디맨드 요금 옵션의 이점을 누릴 수 있으며, 예약 인스턴스 요금을 통해 시간당 요금을 낮출 수도 있습니다. |
RDS 데이터베이스를 만들려면 Amazon RDS 사용 설명서를 참조하세요.
Amazon RDS 에서의 DBA 역할
Amazon RDS로 인해 DBA 역할이 바뀌었습니다. 이제 일상적인 관리 작업에는 약간의 시간만 투자하면 되고, 따라서 남는 시간에 비즈니스 부문과 더 긴밀하게 협력하고, 관리하는 데이터로부터 파생된 가치에 맞춰 업무를 조정할 수 있습니다.
플랫폼
최소 RPO로 고가용성 시스템을 생성하는 작업을 적절히 수행하는 것은 어렵습니다. 다중 AZ DB 인스턴스를 프로비저닝하는 경우 고가용성이 추가됩니다. Amazon RDS는 기본 DB 인스턴스를 자동으로 생성하고, 다른 가용 영역의 대기 인스턴스에 데이터를 동기적으로 복제합니다. 각 가용 영역은 물리적으로 별개의 독립적인 자체 인프라에서 실행되며, 높은 안정성을 유지하도록 설계되었습니다. 인프라 장애가 발생할 경우 Amazon RDS는 대기 또는 복제본으로 자동 장애 조치를 수행하므로 장애 조치가 완료되는 즉시 데이터베이스 작업을 재개할 수 있습니다. 이처럼 중요한 복구 기능으로 인해 DBA는 더 이상 설정 및 관리에 대해 막대한 투자를 하지 않아도 됩니다.
참고: 클라이언트 애플리케이션에서 DNS(도메인 이름 서비스) 데이터를 캐시하는 경우 장애 조치 이후 DB 인스턴스의 기본 IP 주소가 변경될 수 있으므로 TTL(Time-To-Live) 값을 30초 미만으로 설정하십시오.
Amazon RDS에서는 플랫폼 작업량이 크게 줄어들지만, 여전히 DBA가 수행해야 하는 작업이 몇 가지 있습니다. 때로 DBA는 데이터베이스를 다른 환경으로 복원(예: 개발 또는 테스트 환경 복원)하거나 논리적 손상(예: 테이블이 삭제되거나 실수로 데이터가 삭제된 경우)으로부터 데이터베이스를 복원하기 위해 명시적으로 조치를 취해야 할 수 있습니다. Amazon RDS 자동 백업 기능이 PITR(지정 시간 복구)을 제공하므로 DBA는 이 복원 프로세스를 쉽게 수행할 수 있습니다. 이제 DBA의 역할은 신속하고 목표가 지정된 조치를 취하여 복원을 시작하는 것이며, 경우에 따라 테이블 복구 관리가 포함될 수도 있습니다. 지정 시간 복구에 대한 자세한 내용은 Amazon RDS 설명서에서 DB 인스턴스를 지정된 시간으로 복원을 참조하십시오.
플랫폼 작업의 또 다른 예는 라이선스 포함 모델을 보유했는지 또는 BYOL(기존 보유 라이선스 사용) 모델을 보유했는지에 따라 라이선스 준수를 추적하는 것입니다. Amazon RDS 설명서에서 Microsoft SQL Server 라이선스 옵션 및 Oracle 라이선스 옵션에 대한 자세한 내용을 확인할 수 있습니다.
접근 제어
DBA의 주요 역할 중 하나는 실수로 또는 악의적으로 데이터가 파기되는 것을 방지하기 위해 데이터베이스에 기업 보안 정책을 구현하는 것입니다. Amazon RDS를 사용하면 사용자, 권한, 역할 및 프로파일을 통한 데이터베이스 액세스를 관리하는 DBA의 역할이 동일하게 유지됩니다. 따라서 DBA는 계속 사용자가 데이터베이스에 연결하여 객체 및 데이터에 안전하게 액세스할 수 있게 할 수 있습니다.
참고: 추가적인 데이터 보호 수단을 위해 산업 표준 AES-256 암호화 알고리즘을 사용하여 RDS DB 인스턴스 및 스냅샷을 암호화하도록 선택할 수 있습니다. 또한, RDS SQL Server 및 Oracle DB 인스턴스는 TDE(Transparent Data Encryption)도 지원합니다.
모니터링
Amazon RDS는 여전히 데이터베이스 로그 파일을 제공합니다. 하지만 로그를 가져오기 위해 호스트에 연결하는 대신 콘솔 또는 AWS CLI을 사용할 수 있습니다. 콘솔에서 로그 데이터를 보려면 RDS 인스턴스 중 하나를 선택하고 로그를 선택하여 해당 인스턴스에 대한 로그 파일 목록을 엽니다. 목록에서 원하는 로그를 찾은 후 다음 중 하나를 수행합니다.
- 화면에 전체 로그를 표시하려면 보기를 선택합니다.
- 가장 최근 이벤트를 보여주는 로그의 끝에 있는 테일을 표시하려면 watch를 선택합니다.
- 편집기에서 검토할 수 있도록 컴퓨터에 파일로 저장할 수 있는 링크를 열려면 다운로드를 선택합니다.
Amazon RDS의 로그 파일 액세스에 대해 자세히 알아보려면 Oracle 로그 파일 및 SQL Server 로그 파일에 대한 AWS 설명서를 참조하십시오.
Amazon RDS는 상당한 수의 이벤트를 제공 합니다. 이러한 이벤트는 콘솔, AWS CLI 또는 API를 사용하여 구독할 수 있는 범주로 분류됩니다. 해당 범주의 이벤트가 발생하면 이에 대한 알림을 받게 됩니다. DB 인스턴스, DB 클러스터, DB 스냅샷, DB 클러스터 스냅샷, DB 보안 그룹 또는 DB 파라미터 그룹에 대한 이벤트 범주를 구독할 수 있습니다. 예를 들어 특정 DB 인스턴스의 백업 범주를 구독하는 경우 DB 인스턴스에 영향을 주는 백업 관련 이벤트가 발생할 때마다 이에 대한 알림을 받게 됩니다. 또한, 이벤트 알림 구독이 변경되는 경우에도 알림을 받습니다.
Amazon RDS의 이벤트에 대한 자세한 내용은 RDS 사용 설명서의 RDS 이벤트 알림 사용을 참조하십시오.
데이터베이스 구성 관리
온-프레미스의 인스턴스에는 데이터베이스를 구성하는 중요한 메커니즘이 있습니다. Oracle에서는 호스트 데이터베이스의 초기화 파일을 변경합니다. SQL Server에서는 SQL Server Management Studio를 통해 설정을 변경합니다. Amazon RDS에서는 Amazon RDS 콘솔, AWS CLI 또는 API를 사용하여 설정하거나 변경할 수 있는 데이터베이스 파라미터가 포함된 파라미터 그룹을 통해 각 데이터베이스 엔진의 구성을 관리합니다. 공통 파라미터 세트를 설정하면 여러 데이터베이스 인스턴스에 걸쳐 해당 파라미터 그룹을 다시 사용할 수 있습니다.
일부 DB 엔진은 데이터 및 데이터베이스를 더 쉽게 관리하거나 보안을 강화할 수 있는 기능을 제공합니다. 온-프레미스 환경에서는 일반적으로 설치 또는 패치 적용을 통해 기능을 추가합니다. Amazon RDS는 옵션 그룹을 사용하여 이러한 기능을 활성화 및 구성합니다. 옵션 그룹은 특정 RDS DB 인스턴스에 사용할 수 있는 옵션이라는 기능을 지정할 수 있습니다. 옵션에는 옵션의 작동 방식을 지정하는 설정이 있을 수 있습니다. DB 인스턴스를 옵션 그룹과 연결하면 지정된 옵션 및 옵션 설정이 해당 DB 인스턴스에 대해 활성화됩니다. Amazon RDS 콘솔, AWS CLI 또는 API를 사용하여 옵션 및 옵션 그룹을 설정하거나 변경할 수 있습니다.
애플리케이션 검토
비즈니스 및 애플리케이션 팀은 DBA 또는 데이터베이스 개발자가 스마트한 기술을 사용하여 효율적으로 데이터를 처리할 것으로 기대합니다. 이를 통하여, 저장되는 데이터를 이해하는 데 더 많은 시간을 할애할수록 비즈니스에 더 많은 가치를 제공할 수 있습니다. 온-프레미스 환경에서는 애플리케이션 팀에 조언하는 데 할애할 시간이 많지 않은 경우가 대부분입니다.
Amazon RDS를 사용하면 애플리케이션 팀과 협업할 시간을 할애하여 중요한 자산(데이터)을 보호하는 데 집중할 수 있습니다. 애플리케이션 변경에 따라 데이터베이스 변경을 자동화하는 데 팀과 협업할 수 있습니다. 데이터베이스 변경은 까다롭기 때문에, 프로덕션에 들어가기 전에 최적화를 제안하고 문제를 사전에 처리함으로써 비즈니스에 가치를 부여하고 재작업 및 롤백을 방지할 수 있습니다. 이러한 직무야말로 DBA의 직무라 할 수 있습니다. 인프라를 관리하는 대신 이제 비즈니스 부문의 더 많은 부분을 관리할 수 있습니다.
다음은 Amazon RDS를 사용할 때, DBA가 애플리케이션 관리에 기여할 수 있는 추가적인 역할입니다.
범주 | DBA 업무 | Amazon RDS 사용 시 |
애플리케이션 | 스키마, 액세스 패턴, 잠금 전략, SQL 개발 및 튜닝 설계 | ✓ |
데이터베이스 구조 수정 | ✓ | |
애플리케이션 및 최종 사용자 쿼리 최적화(반응적 튜닝) | ✓ | |
데이터 보관 | ✓ | |
데이터베이스에서 쿼리하여 필요한 임시 보고서 생성 | ✓ | |
사전 대응적으로 성능 튜닝 | ✓ | |
액세스 | 사용자 등록 및 시스템 보안 유지 관리 | ✓ |
데이터베이스에 대한 사용자 액세스 제어 | ✓ | |
데이터베이스 | 파라미터 구성 및 조정 | ✓ |
캐시 관리 | ||
작업 예약 | ✓ | |
모니터링 | 알림 제공 | ✓ |
결론
데이터 관리가 비즈니스의 최종 결과에 영향을 준다는 데는 의문의 여지가 없습니다. 그러나 플랫폼 범주에 많은 시간을 소비하면 비즈니스에서 더 많은 기능을 구현하고 프로젝트 시간을 단축하며 예산을 절감할 가능성은 낮아집니다. 애플리케이션 및 최종 사용자에게 데이터에 대한 액세스를 빠르고 효율적으로 제공하는 데에서 비즈니스에 가장 큰 가치를 부여할 수 있습니다.
이 시리즈의 2부에서는 다른 AWS 서비스를 사용하여 이러한 나머지 작업을 자동화하는 방법에 대해 논의합니다.
Wendy Neu 는 Amazon에서 데이터 아키텍트로 근무하고 있습니다. Amazon에 입사하기 전에는 오하이오주 신시내티에서 컨설턴트로 일하면서 다양한 데이터 소스의 데이터를 통합 및 관리할 수 있도록 고객을 지원했습니다.
이 글은 AWS Database Blog의 Part 1 – Role of the DBA When Moving to Amazon RDS: Responsibilities의 한국어 번역본입니다.