안녕하세요! 안드로이드 AWS SDK 쓰시는 분들께 여쭤보고 싶은게 있는데요 AmazonDynamoDB.putItem…

안녕하세요!

안드로이드 AWS SDK 쓰시는 분들께 여쭤보고 싶은게 있는데요

AmazonDynamoDB.putItem 이 자주 씹히는데 이유를 알고 싶습니다.

특히 putItem 끼리의 텀이 짧으면 짧을수록 아이템 저장이 안됩니다.

테스트로 putItem 을 100번 연속으로 돌렸더니…

1, 6, 8, 17… 뭐 이런 순으로 뻥뻥 빕니다.

프리티어 사용하고 돈이 없는지라 DynamoDB 만들때 Provisioned read/write capacity units 를 1로 뒀는데

저 숫자가 낮아서 초당 읽거나 쓸 수 있는 처리량이 최저수준이라 그런거… 맞죠? ㅠㅠ

2 thoughts on “안녕하세요! 안드로이드 AWS SDK 쓰시는 분들께 여쭤보고 싶은게 있는데요 AmazonDynamoDB.putItem…

  1. 네 맞습니다. 많이 사용하려면 한도를 키우라고 하죠;; EC2 인스턴스에 직접 mongoDB를 띄워서 써보시는건 어떠실런지.. 아니면 앞단에 SQS로 보내고 좀 더 천천히? DynamoDB에 저장하도록 처리해도 좋을거 같습니다

  2. ProvisionedThroughputExceededException 예외 발생하면 capacity문제입니다. DynamoDB의 문제는 최대 트레픽에 맞춰 capacity을 사전에 설정한다는 건데 야간의 트레픽이 적을때 비용을 낭비하는 꼴이 되죠. 그래서 등장한 OSS툴이 Dynamic Dynamodb 입니다. 트레픽에 맞춰서 capacity를 자동으로 변경해주는 거죠. 실제로 저도 유용하게 사용하고 있습니다. 단 Dynamic Dynamodb는 Cloud Watch 테이타를 기반으로 capacity를 조정하기 때문에 대량 메일 발송등으로 갑작스런 트레픽 변화에 따라가지 못하는 경우가 있어 capacity가 up될때까지 결국엔 위와 같은 예외 발생할수 있다는 것과 AWS DynamoDB의 제한조건으로 하루(UTC기준)에 최대 4번까지 밖에 capacity를 down할수 없다는것이죠. 참고로 하시길.

    https://github.com/sebdah/dynamic-dynamodb

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.