AWS 기술 블로그

클라우드 데이터베이스 엔지니어의 역할 강화

이 글은 AWS Database Blog에 게시된 Empowering the role of the cloud database engineer by Wendy Neu and Rajib Sadhu을 한국어 번역 및 편집하였습니다.

자동화는 전통적인 데이터베이스 관리자(DBA)에게 보상이자 선물이었습니다. DBA의 대부분의 기존 역할에는 프로비저닝, 접근 관리, 유지 관리, 모니터링, 고가용성 및 백업/복원이 포함됩니다. 시리즈의 1부에서 우리는 그 역할이 플랫폼보다는 애플리케이션에 더 집중하도록 어떻게 진화했는지에 대해서 이야기를 했습니다. 2부에서는 업무가 클라우드로 이동함에 따라, 이러한 작업을 보다 안정적이고 효율적으로 수행할 수 있는 도구와 코드화가 가능한지에 대해서 논의했습니다. 이것은 최근에도 여전히 유효합니다. 변경된 것은 역할이 다시 한 번 발전하는 시점까지, 일상적인 DBA 작업을 훨씬 더 쉽게 수행할 수 있도록 도구와 방법이 발전했다는 것입니다. 대형 고객들이 대규모로 데이터베이스를 클라우드로 마이그레이션함에 따라, 이러한 데이터베이스 역할이 클라우드 데이터베이스 엔지니어라는 새로운 역할로 변모하는 것을 볼 수 있습니다.

온프레미스에서 데이터베이스를 관리하는 고객은 이전에는 데이터베이스 개발자, DBA 및 데브옵스와 같은 역할을 통해 업무의 분리를 유지했습니다. 각 역할은 전체 프로세스의 일부만 담당했기 때문에, 프로젝트 지연이나 오해로 이어지는 긴장과 병목 현상이 있을 수 있습니다. 데이터베이스 구현 및 유지 관리가 모두 수동인 경우, 여러 역할을 갖는 것이 작업을 나누는 방법입니다. 클라우드에서는 획일적인 대규모의 작업을 코드 기반의 관리형 서비스 및 인프라로 처리가 되므로, 빠른 혁신을 위한 여지가 생깁니다. 이러한 변화는 전담 리더가 엔드 투 엔드 데이터베이스 프로젝트를 감독할 수 있는 기회를 제공하여, 프로세스를 간소화하고 책임을 보장합니다. 클라우드 데이터베이스 엔지니어는 비즈니스 크리티컬 애플리케이션과 서비스를 지원하는 전담 리더입니다. 이 역할에는 데이터베이스 관리, 소프트웨어 엔지니어링, 아키텍처, 클라우드 인프라, 데이터베이스 설계, 관리 및 최적화의 조합이 포함됩니다. 클라우드 데이터베이스 엔지니어는 클라우드 기반 애플리케이션과 서비스의 안정성, 성능 및 보안을 보장하는 데 매우 중요합니다. 클라우드 기반 데이터베이스를 설계, 구현 및 유지 관리할 뿐만 아니라 네트워크 세분화, 규정 준수, 고가용성 향상 및 재해 복구, 인벤토리 관리, 위험 평가와 거버넌스에 대한 책임도 있습니다.

클라우드 데이터베이스 엔지니어의 새로운 책임은 기존 데이터베이스 전문 지식과 새로운 기술을 결합하는 흥미로운 작업 입니다. 엔지니어는 현재의  데이터베이스 기술에 대한 지식에 기반하여 키-밸류, 인메모리, 문서, 그래프, 시계열, 와이드 컬럼 및 데이터 웨어하우징과 같이 그 이상으로 범위를 확장할 수 있는 기회를 얻습니다. 점차 AWS 서비스, 코드형 인프라, 데브옵스 사례, 보안, 네트워킹 및 스크립팅 언어에 능숙해지게 됩니다. 새로운 기술은 클라우드 중심의 데이터베이스 환경을 탐색하고 성공하는 데 도움이 될 수 있습니다.

이 블로그에서는 데이터베이스 엔지니어로서, AWS 서비스를 사용하고 관리형 서비스, 자동화 및 도구들을 이용하여 일상적인 데이터베이스 관리를 위한 획일적인 대규모 작업을 자동화하는 방법에 대해 설명합니다. 효율성을 확보할 수 있고, 커뮤니케이션과 의사 결정을 간소화할 수 있습니다. 협업하거나 변경 사항을 승인하는 데 필요한 사람이 더 적어집니다. 클라우드 데이터베이스의 경우 프로젝트 완료 시간을 단축하기 위하여 데이터베이스 엔지니어에게 역할이 주어집니다. Amazon Aurora, Amazon Relational Database Service(Amazon RDS), Amazon DynamoDB, Amazon ElastiCacheAmazon DocumentDB(MongoDB 호환 가능)와 같은 다양한 데이터베이스를 다룰 수 있으므로, 조직은 기술 변화나 신제품에 빠르게 적응할 수 있습니다. 기본적인 자동화를 통해, 새로운 데이터베이스 엔지니어 역할이 기존의 역할 범위를 넘어설 수 있습니다.

AWS가 어떻게 도울 수 있나요?

AWS는 작업을 혁신하고 생산성을 높이며 가능성의 경계를 재정의할 수 있는 서비스 도구 키트를 보유하고 있습니다. Aurora, DynamoDB, Amazon MemoryDB for Redis, Amazon Neptune과 같은 관리형 데이터베이스 서비스를 사용하면 많은 작업이 자동으로 처리됩니다. 이러한 서비스는 프로비저닝, 소프트웨어 패치, 설정, 구성 및 백업과 같은 관리 작업을 능숙하게 관리하고 신뢰할 수 있는 그룹입니다. 즉, 자신의 역할과 비즈니스에 가치를 부여하는, 보다 영향력 있는 작업에 자유롭게 집중할 수 있음을 의미합니다. 혁신하고, 전략을 세우고, 엔지니어링할 수 있는 방법을 학습하면 좋습니다. 이것이 클라우드에서 데이터베이스 엔지니어가 되는 진정한 본질입니다.

기초: AWS 데이터베이스 서비스

AWS는 특정 워크로드 및 사용 사례에 최적화된 다양한 관리형 데이터베이스 서비스를 제공하며 애플리케이션의 성능, 확장성 및 안정성을 향상하는 데 도움이 될 수 있습니다. 데이터 환경이 점점 더 복잡해짐에 따라 데이터베이스에 대한 일률적인 접근 방식은 부족한 경우가 많습니다. 목적에 맞게 구축된 데이터베이스는 특정 데이터 워크로드를 위해 설계되었습니다. 키-밸류, 문서, 시계열, 인메모리 또는 그래프와 같은 특정 데이터 모델 또는 워크로드 유형에 맞게 변경됩니다. 각각은 기초부터 다시 설계되었으며, 대량의 데이터를 처리하거나 워크로드 수요가 갑자기 증가할 때 쉽게 확장할 수 있도록 구축되었습니다. 다음 표는 AWS 관리형 데이터베이스 서비스에 대한 개요를 제공하고 각각에 대한 사용 사례의 예를 제공합니다.

Aurora는 고가용성과 내구성이 필요한 미션 크리티컬 애플리케이션에 장점이 있는 관계형 데이터베이스 서비스입니다. Amazon RDS는 기존 애플리케이션, 고객 관계 관리(CRM) 및 일부 전자상거래 애플리케이션에 사용되는 관계형 데이터베이스입니다. DynamoDB는 트래픽이 많은 웹 애플리케이션, 웹 규모 전자상거래 시스템 및 게임 애플리케이션에 일반적으로 사용되는 키-밸류 스토어입니다. ElastiCache는 캐싱, 세션 관리를 위한 완전 관리형 인메모리 데이터베이스입니다. MemoryDB는 마이크로초 단위의 읽기, 게임 순위표 및 지리 공간 애플리케이션에 사용되는 한 자릿수 밀리초 미만의 쓰기를 지원하는 내구성 있는 데이터베이스입니다. DocumentDB는 특화된JSON 문서 저장소로 콘텐츠 관리, 카탈로그 및 사용자 프로필에 사용됩니다. Amazon Keyspaces는 장비 유지 관리, 차량 관리 및 경로 최적화를 위한 대규모 산업 애플리케이션을 위한 와이드 컬럼 저장소를 제공합니다. Neptune은 부정 거래 탐지, 소셜 네트워킹 서비스 및 추천 엔진을 손쉽게 만들어주는 완전 관리형 그래프 데이터베이스입니다. Amazon Timestream은 데브옵스, 산업용 원격 측정 및 사물 인터넷(IoT)과 같은 사용 사례를 위해 시계열 데이터용으로 특별히 제작되었습니다. Amazon Redshift는 비즈니스 인텔리전스, 데이터 통합 및 분석을 위해 데이터에 액세스하고 분석할 수 있는 클라우드의 페타바이트 규모 데이터 웨어하우스 서비스입니다.

숙련도 향상: 향상된 툴을 활용하여 반복적인 작업을 단순화합니다.

클라우드에서 데이터베이스 엔지니어 역할로의 전환을 하려면 워크로드에 적합한 데이터베이스를 사용하는 것뿐만 아니라, 일상적인 작업을 단순화, 자동화 및 발전시키는 향상된 제품군을 활용하는 것도 포함됩니다. 데이터베이스 프로비저닝과 같은 일반적인 작업을 생각해 보십시오. 전통적인 방법으로는, 하드웨어를 요청하고 소프트웨어를 설치하고 설정을 구성하는 데 몇 시간 또는 며칠이 걸릴 수 있습니다. 클라우드에서는 단 몇 줄의 코드로 몇 분 만에 완전 관리형 데이터베이스를 프로비저닝할 수 있습니다. 또한 고가용성, 백업 및 자동 확장을 구성하여 운영 오버헤드를 줄이고, 보다 전략적인 작업에 집중할 수 있습니다. AWS는 데이터베이스 프로비저닝과 액세스 관리에서부터 유지 관리, 백업 및 고가용성에 이르기까지, 모든 것을 최적화하여 일상적인 작업을 한 단계 끌어올리는 강력한 서비스 및 기능 라인업을 제공합니다. AWS의 강력한 제품을 사용하면, 반복적인 작업이 보안과 효율성을 향상시키는 전략적 작업이 됩니다. AWS는 데이터베이스 엔지니어의 환경을 재정의하고 클라우드 컴퓨팅의 미래로 가는 역할로 나아가게 하고 있습니다.

데이터베이스 프로비저닝

IaC(Infrastructure as Code)를 사용하면 코드를 이용하여 규모에 맞게 인프라를 프로비저닝하고 관리하는 프로세스를 자동화할 수 있습니다. IaC는 인프라를 캡슐화하는 구성 파일을 생성하여 구성 변경과 배포 프로세스를 단순화합니다. AWS Cloud Development Kit(CDK)를 사용하면 익숙한 프로그래밍 언어를 사용하여 AWS 리소스를 생성, 업데이트 및 삭제할 수 있습니다. AWS CDK를 사용하면 데이터베이스를 포함한 전체 AWS 리소스 스택을 자동화되고 반복 가능한 방식으로 생성하고 관리할 수 있습니다.

AWS Command Line Interface(AWS CLI) 또는 AWS Software Development Kits(SDK)를 사용하여 AWS에서 데이터베이스 생성 및 관리 프로세스를 자동화할 수도 있습니다. AWS CLI는 명령줄에서 AWS 서비스를 관리하기 위한 통합 도구입니다. 완전한 프로그램을 작성하지 않고도 이를 사용할 수 있으며 모든 장치에서 사용할 수 있습니다. Bash 또는 Python과 같은 스크립트를 사용하여 작업을 자동화하는 경우 스크립트에서 직접 AWS CLI 명령을 쉽게 호출할 수 있습니다. AWS SDK의 장점은 여러 프로그래밍 언어(JavaScript, Python, PHP, .NET, Ruby, Java, Go 및 Node.js)를 지원하고, 애플리케이션 코드에 내장되어 운영 환경 수준의 애플리케이션에  통합될 수 있다는 것입니다. AWS SDK는 더욱 향상된 오류 처리 기능과 사용하기 쉬운 고급 기능을 제공합니다.

데이터베이스 접근 관리

AWS는 고도화된 서비스 통합 접근 관리를 결합하여, 안전하고 확장 가능하며 관리 가능한 인증 메커니즘을 제공함으로써 데이터베이스 액세스 관리에 혁명을 일으켰습니다. 특히, AWS Identity and Access Management(IAM)과 AWS Secrets Manager를 사용하여 직접 인증하는 기능으로 기존의 방식을 완전히 바꾸고 있습니다. IAM은 데이터베이스를 포함한 AWS 리소스에 대한 세분화된 권한을 통해 중앙 집중식 제어를 지원하여, 각 데이터베이스 내에서 사용자 및 자격 증명을 관리하는 기존 접근 방식을 효과적으로 대체할 수 있습니다. 단기 자격 증명을 지원하여 자격 증명이 손상될 위험을 줄여 보안을 더욱 향상시킵니다. Secrets Manager는 데이터베이스 및 기타 서비스에 대한 자격 증명을 안전하게 저장, 검색 및 교체하여 자격 증명의 관리 문제를 해결합니다. AWS 데이터베이스와 원활하게 통합되므로 민감한 정보를 일반 텍스트로 하드코딩할 필요가 없습니다. 이러한 향상된 기능은 조화롭게 작동하여 데이터베이스 액세스 관리를 위한 훨씬 더 안전하고 능률적이며 자동화된 환경을 제공합니다.

데이터베이스 유지 관리

AWS 클라우드의 데이터베이스 유지 관리는 여러 가지 강력한 도구와 서비스의 출현으로 인해 크게 단순화되고 자동화되었습니다. Amazon CloudWatch와 결합된 Aurora, Amazon RDS 및 DocumentDB용 Amazon RDS Performance Insights는 데이터베이스 성능에 대한 깊은 통찰력을 제공하여 사전 예방적인 유지 관리를 지원합니다. RDS용 Amazon DevOps Guru for RDS는 기계 학습(ML)을 사용하여 운영 문제가 비즈니스에 영향을 미치기 오래 전에 식별합니다. AWS CloudTrail은 사용자 활동 및 API 사용을 추적하여 거버넌스, 규정 준수 및 위험 감사 개선에 기여합니다. AWS Backup은 정책 기반 백업 보존 및 계정 간 백업을 포함하여, AWS 서비스와 자동화된 백업 작업 전반에 걸쳐 중앙 집중식 백업을 제공하여, 데이터 보호 및 재해 복구를 향상시킵니다. 이런 기술의 발전들은,  Amazon Keyspaces, DocumentDB 및 Aurora와 같은 관리형 데이터베이스 서비스의 지속적인 발전과 함께, 클라우드 데이터베이스의 유지 관리를 더욱 효율적으로 만들어, 데이터베이스 엔지니어가 일상적인 유지 관리가 아닌 보다 가치가 있는 작업에 집중할 수 있게 해줍니다.

글로벌 데이터 베이스 확장

최근 몇 년간 AWS 데이터베이스는 Amazon Aurora Global Database, DynamoDB 글로벌 테이블DocumentDB 글로벌 클러스터와 같은 강력한 기능을 도입함으로써 멀티 리전 기능을 크게 발전시켰습니다. 이러한 발전은 애플리케이션을 위해 진정한 글로벌 확장성의 문을 열어주었으며, 사용자의 지리적 위치에 관계없이 낮은 지연 시간으로 읽기 및 쓰기 요청을 처리할 수 있게 했습니다. 예를 들어, Aurora Global Database는 Aurora 데이터 베이스가 여러 리전에 걸쳐 확장되어, 변경 사항을 1초 미만의 일반적인 지연 시간으로 복제할 수 있게 해줍니다. NoSQL 워크로드의 경우, DynamoDB 글로벌 테이블은 테이블을 여러 리전에 걸쳐 복제하여, 읽기 및 쓰기 트래픽 모두에 대해 전 세계적으로 완전히 접근 가능하게 합니다. 더 나아가 Amazon RDS 리전 간 읽기 전용 복제본를 통해 계속해서 교차 리전 복제가 가능하여, 지리적 장애 복구 및 멀티 리전 애플리케이션 배포와 같은 이점을 제공합니다. 이러한 기능은 가장 가까운 지리적 위치에서 고객에게 서비스를 제공함으로써 향상된 가용성, 재해 복구, 대기 시간 감소와 향상된 사용자 경험을 제공하는 전 세계적으로 설치되어 있는 애플리케이션에 매우 중요합니다.

고급 숙련: 보안, 규정 준수 및 최적화에 대한 전략 수립

데이터베이스 엔지니어 역할의 기본 그리고 향상된 숙련 단계를 달성하였다면, 다음 단계는 고급 숙련입니다. 이는 일상적인 데이터베이스 관리를 넘어서 위험 평가와 거버넌스, 재고 관리 및 규정 준수와 같은 전략적이고 영향도가 높은 영역에 집중합니다. 업무 운영 우수성에서 전략적 거버넌스로 초점이 옮겨가며, 데이터베이스 엔지니어는 데이터 무결성, 보안 및 규정 기준 준수를 보장하는 데 중요한 역할을 합니다. 여기서 진정한 데이터베이스 전략가가 되어, 조직적인 위험을 선제적으로 대응하고 자원 사용을 최적화하며, 비즈니스 목표와 규제 요구 사항과의 조화를 확보합니다.

위험 평가와 거버넌스

데이터베이스 엔지니어로서 조직에서 중요한 책임 중 하나는, 클라우드 거버넌스 계획을 통해 데이터베이스와 해당 호스트 계정의 취약성을 식별하는 것입니다. 위험을 완화하기 위한 계획을 실행하고 보안 조치의 영향을 측정할 지표를 설정해야 합니다. AWS는 데이터베이스의 위험 평가와 거버넌스를 지원하는 여러 서비스와 기능을 도입했습니다. AWS Config를 사용하여 데이터베이스의 구성을 평가, 감사 및 평가할 수 있습니다. IAM Access Analyzer를 사용하여 RDS 인스턴스와 같이, 조직 내에서 외부 엔터티와 공유하는 자원을 식별할 수 있습니다. 이를 통해 최소한의 권한 원칙을 지키고 자원에 대한 액세스를 관리하며 잠재적인 보안 위험을 줄일 수 있습니다. Amazon Macie는 기본적으로 데이터 보안 및 데이터 프라이버시 서비스로서, Amazon RDS나 DynamoDB와 같은 Amazon 데이터베이스에 저장된 개인 식별 정보 (PII)와 같은 민감한 데이터를 식별하고 보호하는 데 도움을 줍니다. Amazon GuardDuty는 데이터베이스 서비스를 포함하여 AWS 계정과 워크로드를 지속적으로 모니터링합니다. AWS와 주요 타사의 이상 탐지, ML, 동작 모델링 및 위협 인텔리전스 피드를 사용하여 위협을 신속하게 노출합니다. GuardDuty를 사용하면 자동화된 대응을 시작하여 위협을 조기에 완화할 수 있습니다.

이러한 보안 서비스들 (AWS Config, IAM Access Analyzer, Macie 및 GuardDuty)은 모두 AWS Security Hub와 내장된 통합을 갖추고 있어 서비스들의 검색 결과를 통합합니다. Security Hub는 보안 모범 사례 검사의 수행, 경고 집계, 그리고 자동화된 업데이트 적용을 지원하는 클라우드 보안 태세 관리 서비스로, AWS 계정 전반에 걸쳐 보안 경고 및 보안 상태를 종합적으로 볼 수 있습니다.