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 선택
- 실행해보고 데이터가 추가 안됐다면 좀 기다려보자
처음에 추가가 안되서 에러인줄 알았는데 다음날에 보니까 추가되어있었음
'AWS' 카테고리의 다른 글
AWS 로드밸런서 사용법, AWS AutoScaling이란?, 용법 (1) | 2024.01.05 |
---|---|
AWS Bastion Host 사용법 / AWS Bastion Host 의 개념 (0) | 2024.01.05 |
AWS mysql 사용법 / AWS mysql로 DB구성하기 (0) | 2024.01.04 |
AWS 프라이빗 서브넷 EC2접속실패 에러 해결 (0) | 2024.01.04 |
NFS (0) | 2024.01.03 |