개발이야기/AWS

AWS Lambda Timeout Error의 원인과 해결방안

nohesitation 2021. 8. 19. 21:26

# 개요

- 고객사의 AWS 환경에서 MS SQL 서버 감사 로그를 설정하는 작업

- 로그 파일은 최대 50MB, [SUCCESSFUL LOGIN GROUP] 지정

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.Audit.html

 

SQL Server Audit - Amazon Relational Database Service

SQL Server Audit In Amazon RDS, you can audit Microsoft SQL Server databases by using the built-in SQL Server auditing mechanism. You can create audits and audit specifications in the same way that you create them for on-premises database servers. RDS uplo

docs.aws.amazon.com

 

# 내용

- RDS 인스턴스에 저장되고 있는 감사 파일을 취득해서 CloudWatch에 로그 파일을 기록하는 Lambda 작성

- Lambda는 python으로 작성하였으며, 주로 사용한 라이브러리는 boto3, pymssql

https://boto3.amazonaws.com/v1/documentation/api/latest/index.html

 

Boto3 documentation — Boto3 Docs 1.18.24 documentation

You use the AWS SDK for Python (Boto3) to create, configure, and manage AWS services, such as Amazon Elastic Compute Cloud (Amazon EC2) and Amazon Simple Storage Service (Amazon S3). The SDK provides an object-oriented API as well as low-level access to AW

boto3.amazonaws.com

https://pymssql.readthedocs.io/en/stable/index.html

 

pymssql — pymssql 2.2.2.dev0+gff84c14.d20210416 documentation

© Copyright 2001-2021, pymssql developers Revision ff84c141.

pymssql.readthedocs.io

- 설정 내용을 정리해놓은 문서대로 설정 진행하였으나, 역시나 여기저기 문제가 발생하였다.

- 그 중, 소스 코드나 Lambda의 설정 등에 문제가 없어 보였으나 실행할 때마다 Timeout에러가 발생했다.

 

# 원인

- 결과적으로 서버의 감사 파일 내용이 생각보다 대용량이었다.

- EC2의 SQL Server Studio에서 직접 SQL을 작성해 확인해본 결과 Lambda에서 설정한 시간보다 오래 걸리는 것을 확인하였다.

 

# 해결방안

- 우선은 임시방편이지만 Lambda의 타임아웃 설정을 더 늘려보았고, Timeout 문제는 해결되었다.

- RDS 인스턴스의 성능이 나쁜 것은 아닌데, DB에 접속하는 빈도수가 높다보니 로그 파일이 크고 많아져서 취득하는데 시간이 너무 오래 걸리는 것이었다.

 

# 그리고

- Lambda는 정상적으로 실행이 되지만, 업무상 이렇게 대용량의 로그를 관리하는 것이 맞는지는 다시 확인해야 할 문제이다.

- 다른 팀에서 전달받은 python 코드가.. 어디서 복붙을 한 것인지 내로라하는 규모의 대기업에서 관리하는 코드라고 하기에 이해하기 힘든 수준이었다.

- CloudWatch의 로그를 다시 Zabbix와 연동하여 실시간 감시와 알림 설정 등을 할 수 있도록 하는 것이 다음 과제가 될 것 같다.

- 서버 감사 설정에서 저장된 파일을 어떻게 처리하는지에 대해서는 TODO..

 

 

 

'개발이야기 > AWS' 카테고리의 다른 글

RDS SQL Server Audit 설정  (0) 2021.08.20