현재 시스템은
이 구조로 되어있다.
여기서 발생한 문제는 API를 요청했을 때, 가끔 null값이 리턴된다는 점이었는데 이 부분을 해결해야 했다.
처음 null 값이 리턴됐을 때, 서비스에서 보내는 값이라고 생각했는데, 확인해보니 아니었다 그래서
API Gateway나 lambda를 의심하게 되었는데, 결론을 말하면 lambda 설정 문제였다.
lambda는 각 리전별로 동시에 수행할 수 있는 람다함수의 개수를 최대 1000개로 제한하고 있는데, request 수가 이를 넘게 되면, 람다가 수행되지 않는 문제점이 발생할 수 있다고 한다.
이유는 동시성 문제가 발생한다는 점이었는데, 만약 요청을 처리하는 와중에 다시 람다 함수가 호출이 된다면, 또 다른 컨테이너를 띄우기에 동시성이 증가하기 때문이다.
예약된 동시성을 통해 동시성 개수를 늘린다.
람다 함수의 설정을 보면(사진 참조) Reserved concurrency 값을 늘립니다.
이렇게 하면, 동시 인스턴스 수를 보장해줍니다.
이렇게 해결하여 문제가 발생하지 않았고, 추후에 더 많은 요청이 발생하여 같은 문제가 발생한다면 reserved concurrency 값을 증가시킬 예정입니다.
장애 보고서 쓰는 팁 (0) | 2022.05.07 |
---|---|
jsp에서 disabled 주의할 점 (0) | 2022.05.07 |
와일드 카드 import와 예방법 (0) | 2022.04.26 |
개발을 하기 전에 해야할 것 (0) | 2022.04.21 |
변수명과 함수명 짓기 (0) | 2022.04.18 |