본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] DynamoDB (1)

by BTC_톰캣 2023. 9. 15.

베하

비티시 보이즈 입니다!

 

오늘은 AWS의 관리형 NoSQL 데이터베이스 서비스인 DyanmoDB에 대해 알아 보겠습니다!

 

DynamoDB란?

AWS의 DyanmoDB 서비스는 빠르고 확장 가능한 완전 관리형 NoSQL 데이터베이스 서비스 입니다.
DyanmoDB의 특징은 다음과 같습니다.

- NoSQL 데이터베이스로서 스키마리스 형태의 데이터 모델을 사용하며, Json과 같은 유연한 데이터 형식을 지원합니다.

- SSD 스토리지를 사용하여 읽기 및 쓰기 속도가 매우 빠름

- Auto-Scaling 기능이 탑재되어 있어 필요에 따라 용량과 처리량을 조정할 수 있습니다

- 높은 가용성을 보장하며 특정시점으로 백업 가능합니다.

- 다운타임 또는 성능 저하 없이 테이블의 처리 능력을 확장 또는 축소할 수 있습니다.

- AWS Management Console을 사용하여 리소스 사용률 및 성능 지표를 모니터링 할 수있습니다.

- IAM 권한을 이용하여 데이터 접근을 관리 할 수 있습니다.

  (특정 테이블, 특정 데이터만 접근 가능하게 해주는 IAM 역할)

- Global Table을 설정하면 어느가용영역이든 어느 리전에서든 접근 가능 할 수 있게 설계할 수 있습니다.

 

이러한 특징을 가진 DynamoDB는 대용량의 트래픽에대해 데이터를 처리해야하는 서비스와 실시간 데이터를 사용할 때 많이 이용하게 됩니다.

 

DyanmoDB의 구성요소

DynamoDB의 구성요소는 다음과 같습니다.

- 테이블 : 데이터의 집합, 다른 DB시스템들과 마찬가지로 DynamoDB또한 데이터를 테이블에 저장합니다. 

  테이블의 각 항목에는 항목을 테이블의 다른 모든 항목과 구별해 주는 고유 식별자인 기본 키가 있습니다.

  기본키는 하나의 속성으로 구성 될 수도 있고, 여러개의 속성으로 구성할 수 있습니다.

- 항목 : 행, 레코드, 튜플과 유사하며 DyanmoDB 에서는 테이블에 저장할 수 있는 항목의 수에 제한이 없습니다.

- 속성 : 필드, 열과 유사하며 각 항목은 하나 이상의 속성으로 구성됩니다.

 

 

People #테이블
#항목 A
{
    "PersonID": 101,     #속성 1     #항목을 구별해주는 기본 키
    "LastName": "Smith", #속성 2     
    "FirstName": "Fred", #속성 3
    "Phone": "555-4321" #속성 4
}
#항목 B
{
    "PersonID": 102,
    "LastName": "Jones",
    "FirstName": "Mary",
    "Address": {                       #DyanmoDB는 스키마리스로서 데이터 형식을 미리 정의할 필요가 없음
                "Street": "123 Main",
                "City": "Anytown",
                "State": "OH",
                "ZIPCode": 12345
    }
}
#항목 C
{
    "PersonID": 103,
    "LastName": "Stephens",
    "FirstName": "Howard",
    "Address": {
                "Street": "123 Main",
                "City": "London",                                    
                "PostalCode": "ER3 5K8"
    },
    "FavoriteColor": "Blue"
}

 

그리고 DynamoDB의 기본키와 보조인덱스에 대해 알아보겠습니다.

기본키

DynamoDB에 테이블을 생성할 때는 테이블 이름과 테이블의 기본 키를 지정해야 합니다.

DynamoDB는 두 가지의 기본 키를 지원합니다.

 

파티션 키

- 파티션 키로 알려진 하나의 속성으로 구성되는 단순 기본키

- DynamoDB는 내부 해시 함수에 대한 입력으로 파티션 키 값을 사용합니다. 해시 함수 출력에 따라 항목을 저장할 파티션이 결정 됩니다. / 파티션이란 DynamoDB 내부의 물리적 스토리지

- 파티션 키(단순 기본키)로만 구성되어 있는 테이블에서는 어떤 두 개의 테이블 항목도 동일한 파티션 키 값을 가질 수 없습니다.

 

파티션 키 및 정렬  키

- 복합 기본 키로 지칭 되는 이 형식의 키는 두 개의 속성으로 구성됩니다. 첫 번째 속성은 파티션 키, 두 번째 속성은 정렬 키 입니다.

- 이렇게 복합 기본키를 사용하는 경우 여러 항목이 동일한 티션 키 값을 가질 수 있습니다. 하지만 아이템 정렬 키 값은 달라야 합니다.

- 복합 기본 키를 사용하면 보다 유연하게 데이터를 쿼리할 수 있습니다.

아래와 같은 Music 테이블의 경우 복합키를 사용하여 Artist의 파티션 키를 사용해서 같은 Artist의 노래를 모두 찾을 수 있습니다.

 

Music

{
    "Artist": "No One You Know",
    "SongTitle": "My Dog Spot",
    "AlbumTitle": "Hey Now",
    "Price": 1.98,
    "Genre": "Country",
    "CriticRating": 8.4
}

{
    "Artist": "No One You Know",
    "SongTitle": "Somewhere Down The Road",
    "AlbumTitle": "Somewhat Famous",
    "Genre": "Country",
    "CriticRating": 8.4,
    "Year": 1984
}

{
    "Artist": "The Acme Band",
    "SongTitle": "Still in Love",
    "AlbumTitle": "The Buck Starts Here",
    "Price": 2.47,
    "Genre": "Rock",
    "PromotionInfo": {
        "RadioStationsPlaying": {
            "KHCR",
            "KQBX",
            "WTNR",
            "WJJH"
        },
        "TourDates": {
            "Seattle": "20150622",
            "Cleveland": "20150630"
        },
        "Rotation": "Heavy"
    }
}

{
    "Artist": "The Acme Band",
    "SongTitle": "Look Out, World",
    "AlbumTitle": "The Buck Starts Here",
    "Price": 0.99,
    "Genre": "Rock"
}

 

 

여기까지 DynamoDB에 대해 알아 보았습니다!

다음글에서는 DynamoDB 보조인덱스, DyanmoDB Streams등에 대해 더 알아보겠습니다~

'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글

[AWS] AWS DMS - LOB 모드  (0) 2023.09.15
[AWS] CloudWatch Metric Stream  (0) 2023.09.15
VPC Flow Logs  (0) 2023.09.14
[AWS] Amazon linux2 + gnuboard5(1)  (0) 2023.09.13
[AWS] 로드밸런서 Connection Draining  (0) 2023.09.13

댓글