임베디드 관련 카테고리/aws

AWS DynamoDB 리소스 접근에 권한 설정이 필요한 이유

CBJH 2024. 9. 25.
728x90
반응형

1. DynamoDB vs RDS 기본 개념

  • DynamoDBNoSQL 데이터베이스로, 키-값(Key-Value)문서(Document) 모델을 지원합니다. 고속의 데이터 처리와 **수평적 확장성(Scale-out)**을 목적으로 설계되었으며, 완전 관리형 서비스로 AWS에서 자동으로 스케일링 및 성능을 조정합니다.
  • **RDS(Relational Database Service)**는 관계형 데이터베이스로, 전통적인 SQL 쿼리를 사용하여 데이터를 관리합니다. PostgreSQL, MySQL, Oracle, SQL Server 등 여러 데이터베이스 엔진을 지원하며, 구조화된 데이터를 테이블 간 관계를 정의하여 관리할 수 있습니다.

2. DynamoDB와 RDS의 차이점

차이점DynamoDBRDS

데이터 모델 NoSQL (키-값, 문서 기반) 관계형 SQL (테이블, 행, 열 기반)
확장성 수평적 확장 (자동 확장성) 수직적 확장 (한정된 서버 리소스 내에서)
스키마 스키마가 필요 없음 스키마 필요 (테이블, 열 정의)
쿼리 방식 기본적으로 키 기반 조회, 고정된 패턴 SQL 쿼리 사용 가능, 복잡한 조인 지원
사용 편의성 IAM 권한 및 설정 필요 RDS 엔진에 따라 다르지만 SQL 접근 방식 간편
성능 대규모 읽기/쓰기 트래픽에 최적화 트랜잭션 일관성과 복잡한 쿼리에 최적화
운영 방식 완전 관리형, 서버가 노출되지 않음 관리형이지만 서버 인스턴스가 존재
사용 사례 실시간 대규모 데이터 처리, 로그 저장 등 전통적인 트랜잭션, 복잡한 관계 데이터 처리

 

3. 차이점이 생기는 이유

3.1. DynamoDB의 권한 설정(IAM 설정 등)

DynamoDB는 AWS 리소스의 일부로 동작하기 때문에 AWS의 보안 모델(IAM)을 따릅니다. 이 보안 모델은 기본적으로 API 기반 접근을 하게 되어 있고, 데이터에 접근하려면 IAM 역할이나 액세스 키를 사용해 AWS 리소스에 대한 권한을 설정해야 합니다.

DynamoDB에서 값을 읽어오려면 AWS 서비스들과 상호작용할 수 있는 자격 증명(IAM 역할 또는 액세스 키)이 필요합니다. 이는 AWS의 모든 관리형 서비스들이 기본적으로 IAM을 사용해 보안과 접근을 제어하는 방식과 동일합니다.

  • IAM 설정 이유: DynamoDB는 분산형 데이터베이스API 호출을 통해 접근합니다. 이는 사용자가 직접 서버를 운영하지 않고, AWS 관리 하에 있는 데이터 리소스에 대해 접근 권한을 세밀하게 제어할 수 있게 합니다.
  • CLI 설정 이유: DynamoDB는 클라우드 네이티브 API를 통해 관리되므로, AWS CLI나 SDK를 통해 API 호출 방식으로 접근해야 하며, 이를 위해 AWS 자격 증명(IAM 또는 액세스 키)이 필요합니다.

3.2. RDS의 편리한 접근 방식

반면, RDS는 전통적인 관계형 데이터베이스로, **데이터베이스 엔진(MySQL, PostgreSQL 등)**을 사용하며, 보안 설정과 권한 부여는 해당 엔진의 기존 방식(SQL 권한 등)에 기반합니다. 즉, IAM 기반의 설정은 필요 없으며, 데이터베이스에 접근할 때는 SQL 사용자 이름과 비밀번호만 있으면 됩니다.

  • RDS는 사용자에게 SQL 서버를 노출시키기 때문에, 일반적인 데이터베이스 클라이언트나 관리 도구에서 직접 접근 가능합니다. AWS 관리형이지만 전통적인 데이터베이스처럼 사용되기 때문에, 다른 플랫폼에서도 손쉽게 연동이 가능합니다.

3.3. 사용 시나리오에 따른 설계 차이

  • DynamoDB분산형 데이터 처리를 위해 설계되었으며, 대규모 데이터를 처리하는 데 최적화되어 있습니다. 이를 위해 IAM과 같은 세밀한 접근 제어가 필수적입니다.
  • RDS전통적인 관계형 데이터베이스로, 복잡한 트랜잭션 처리 및 데이터 관계를 다루는 데 적합하며, 이 경우 단순한 사용자/비밀번호 기반 접근 방식이 더 편리합니다.

요약:

  • DynamoDB는 AWS에서 관리하는 NoSQL 데이터베이스로, API 호출을 통한 접근이 필요하며, IAM 권한 설정을 통해 보안을 제어합니다.
  • RDS는 전통적인 관계형 데이터베이스로, SQL 사용자 이름과 비밀번호를 통해 더 직관적이고 쉽게 접근할 수 있습니다.
  • 이러한 차이점은 두 데이터베이스의 설계 철학과 보안 모델에 따른 것으로, DynamoDB는 분산형 대규모 데이터 처리에 적합하고, RDS는 복잡한 트랜잭션 처리관계형 데이터에 적합합니다.

이 차이점은 보안과 성능, 그리고 확장성 요구에 따라 설계된 두 데이터베이스의 특징에서 비롯된 것입니다.

댓글