게임을 만듭니다.

개발일기 - AWS DynamoDB 와 관련된 사항 본문

Doona Rebirth

개발일기 - AWS DynamoDB 와 관련된 사항

인카고 인카고 2018.06.24 19:56

두나 리버스는 서버리스 아키텍쳐(?)로 서버를 구성하였습니다.

Lambda를 통해 서버로직을 작성하고 API Gateway로 특정 기능을 URL로 맵핑합니다.

인증은 Cognito를 이용하고 데이터 저장은 DynamoDB를 이용합니다.


여기서 오늘 이야기 할것은 DynamoDB입니다.


문제의 원인은 이것으로부터 시작합니다.


자세한 서버로직을 설명할 수는 없지만 짧게 정리하자면 DynamoDB의(특정 테이블) 사용량이 정해둔 허들을 넘어가 에러가 발생한것입니다.



Lambda 쪽에서 로그를 확인해 보면 위와 같습니다.


DynamoDB는 지정해둔 사용량 한계만큼 요금이 부과 되기 때문에 이 설정을 적절이 해 둘 필요가 있습니다.

처는 초기 값인 읽기/쓰기 양쪽 모두 5유닛을 설정해 두었습니다.


https://aws.amazon.com/ko/dynamodb/pricing/


위 링크의 설명에 의하면 1유닛(읽기 기준) 초당 최대 1건의 읽기 작업을 제공한다고 하네요. 그러면 한달에는 60*60*24*30 = 2592000건의 읽기를 할 수 있는겁니다.


저는 5유닛을 설정했으니 약 1200만건을 처리할 수 있겠군요. 그럼 이것이 충분하느냐에 대한 생각을 해야하는데...

평균적으로 보면 충분할수도있겠지만 사용자가 24시간 고르게 분산되어 접속하는게 아닌지라 이 한계를 넘어서는 경우가 발생하였습니다.


그래서 이 제한을 유동적으로 변경하는 옵션을 제공하는데 이것이 Auto Scaling



위 사진처럼 옵션을 바꾸었습니다. 최소와 최대 유닛량을 설정해 놓으면 사용량에 따라서 유동적으로 변하게됩니다.




위 사진을 보면 빨간색이 유동적으로 변한것을 보실 수 있습니다. 최근에 적용했기때문에 6/24 08:00에는 적절히 대응하지 못했겠군요.


측정치를 보면서 적절하게 사용 유닛을 설정해 주었으니... 다음달 AWS 요금이 궁금해지는군요.



2 Comments
댓글쓰기 폼