AWS

AWS DynamoDB 구축하기 / AWS Lambda 사용법, 스크립트로 DB 데이터 추가하기

chltjdbs 2024. 1. 4. 17:38

 
 
Scale in(줄이는거) <-> out (늘리는거) : 주로 웹서버 ,
Scale up(늘리는거) <-> down(줄이는거) : 주로 DB서버 개수를 늘리는게 아니라 요청수가 많아지면 스펙을 올려주는거 안쓰면 down하면 되니까.
 
 
테이블 생성 ( 정형화되있는 테이블이 아님 관계형 DB랑 다름 )
 

 Tag 클릭 - 표 항목 탐색 - 항목 생성 
 

 
새속성 추가 누르고 속성 추가
속성이름  
문자열 추가 - item_category
숫자 추가 - price
 
값넣기 
파티션키 - 101ABS
정렬 키 - 2023-11-07
item_category - Storagebox
price - 50000
 
관계형데이터베이스
- 정해준 형태의 알맞은 데이터를 넣어야함 ex ) 정해진 형태는 숫자형인데 문자 넣으면 에러남.
- null도 데이터로 인정함 
 
DynamoDB
- schema 없음 (구조가없음) 특정한 정해진 곳 아니면 그 뒤는 아무렇게나 넣어도 됨 
 
하나의 컬럼에 데이터를 다 넣을때 관계형은 숫자로 지정되어있다면 계속 숫자만 넣어야하지만 Dynamo는 그렇지 않다 문자넣고 숫자넣고 아무거나 넣어도 에러안남.
 
 
선택 - 작업 - 항목복제

 
그냥 아무렇게나 넣어서 데이터 어떻게 넣는지 해보기 
불편하니까 스크립트로 데이터 넣는거 하려고 이거 포스팅 하는거임.
 
IAM - 정책 - 정책생성 - 서비스선택에서 dynamodb 선택 - 쓰기 선택 - batchwriteitem, putitem 선택 - 리소스는 "모두" 선택

 필터에서 고객관리형(유저가만든거) 볼수있음 
 
역할 - 역할생성 - 사용사례 Lambda 선택 - 고객관리형으로 바꿔서 내가 만든거 선택 -  이름 설정- 역할생

 

 
선택후 들어가서 정책연결 - AWSlambdabasicExe...선택 (aws에서 lambda 사용할수있는 권한)

내가 만들었던거랑 AWS 있으면 준비 끝
내가 lambda함수를 생성하면 dynamo가 item를 저장할수있는 권한을 구성한 
 
서비스 - 컴퓨팅 - Lambda - 함수생성 - 

스크립트에 맞는 런타임 선택 - 기본실행역할변경 선택 - 기존역할사용 클릭후 위에서 만든 역할 선택- 함수생성

#Lambda Function for Multiple row insert 
import boto3

def lambda_handler(event, context):
    client = boto3.resource('dynamodb')
    table = client.Table('Customer-Transaction')
    
    with table.batch_writer() as batch:
        batch.put_item(
            Item={
                'customer_id' : '101ABC',
                'transaction_date' : '2023-11-12',
                'item_category' : 'Drawer',
                'price' : 600000
            }
        )
        batch.put_item(
            Item={
                'customer_id' : '103RAX',
                'transaction_date' : '2023-11-12',
                'item_category' : 'Chair',
                'price' : 275000
            }
        )
        
        batch.put_item(
            Item={
                'customer_id' : '304AAC',
                'transaction_date' : '2023-11-12',
                'item_category' : 'Storagebox',
                'price' : 50000
            }
        )

 
샘플코드 지우고 코드에 스크립트 넣기 

다 했으면 Deploy 선택 
 

 

- 실행해보고 데이터가 추가 안됐다면 좀 기다려보자 

처음에 추가가 안되서 에러인줄 알았는데 다음날에 보니까 추가되어있었음