본문 바로가기
반응형

AWS10

60분만에 이해하는 DynamoDB 모델링: DynamoDB Modeling 사실 이 제목은 내가 지은 것은 아니고, AWS re:invent에서 발표될때, "Data modeling with Amazon DynamoDB in 60 minutes" 라는 제목으로 소개가 되서 따라 적어보았다; 도입. 어쨌든 이번 포스트에서 소개하고자 하는 내용은 "어떻게 하면 더 효율적으로 DynamoDB를 모델링 할 수 있을까"에 관한 것이다. RDBMS를 다루면서, 테이블들의 관계를 나타내고 모델링 하는 것은 많이들 경험을 해봤거나, 들어봤을 것이다. 그러나 NoSQL 기술에 해당하는 DynamoDB는 어떻게 모델링하는 것이 좋을까. 게다가 엄밀히는, (MongoDB 같은) 기존에 잘 알려진 NoSQL과는 좀 다른 특성을 가진 DynamoDB는 어떻게 모델링하는 것이 좋은지 살펴보자. Dyna.. 2020. 6. 24.
Lambda를 활용한 저비용 분산 캐시 올 2월, USENIX에서 발표된 아주 따끈따끈한 논문을 하나 소개하고자 한다. 제목은 "InfiniCache: Exploiting Ephemeral Serverless Functions to Build a Cost-Effective Memory Cache" 뭐 어려운 말로 적혀있는 것 같지만, 요약하면, "Lambda를 활용한 저비용 분산 캐시" 쯤 될 것 같다. Lambda를 왜 활용하는 걸까. 무슨 이득이 있을까. AWS에서 (분산) 캐시를 사용하는 가장 간단한 방법은 Managed Service인 ElastiCache를 사용하는 것이다. 클라이언트는 ElastiCache를 쓰기 위해서 특별한 노력이 필요하지 않고, 그저 인스턴스를 생성해서, 만들어진 Endpoint를 통해 명령을 보내고 결과를 받.. 2020. 4. 6.
AWS Lambda Troubleshooting 3: Error handling Lambda에서 Exception이 발생했을 떈 어떻게 될까 특히 Lambda와 Lambda 간의 통신일 땐(, Lambda 1이 Lambda 2에게로 요청을 보냈다고 했을 때), 만약에 Lambda 2에서 에러가 발생하면, Lambda 1은 Retry를 시도한다. Retry는 최대 두 번까지 일어나고, 결과적으로 총 최대 3번의 Request가 들어가게 된다. 만약 이것이 의도된 Retry가 아니라면 비용적으로 문제가 된다. 왜냐면, Lambda는 요청 건 수 당 비용이 발생하는 과금 정책을 가지고 있고, 때문에 의도하지 않은 요청이 두번/세번 더 들어가면, 비용이 불필요하게 두배/세배 늘어날 수 있으니까. 현업에서는 이런 문제를 해결하기 위해서, Exception 객체를 Lambda 밖으로 나가지 않.. 2020. 3. 8.
AWS Lambda Troubleshooting 2: Connection 하나의 요청에 DynamoDB나 Redis와 같은 툴을 사용하기 위해, 여러 커넥션이 만들어지는 상황이라면, 매번 커넥션을 새로 생성하지 않고, 커넥션 정보를 global로 두고 Reuse 하는 방식을 사용하면 성능 최적화가 가능하다. References https://theburningmonk.com/2019/02/lambda-optimization-tip-enable-http-keep-alive/ 2020. 3. 7.
반응형