# 개요
- 고객사의 AWS 환경에서 MS SQL 서버 감사 로그를 설정하는 작업
- 로그 파일은 최대 50MB, [SUCCESSFUL LOGIN GROUP] 지정
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.Audit.html
# 내용
- RDS 인스턴스에 저장되고 있는 감사 파일을 취득해서 CloudWatch에 로그 파일을 기록하는 Lambda 작성
- Lambda는 python으로 작성하였으며, 주로 사용한 라이브러리는 boto3, pymssql
https://boto3.amazonaws.com/v1/documentation/api/latest/index.html
https://pymssql.readthedocs.io/en/stable/index.html
- 설정 내용을 정리해놓은 문서대로 설정 진행하였으나, 역시나 여기저기 문제가 발생하였다.
- 그 중, 소스 코드나 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 |
---|