Lambda 에서 Selenium 을 사용해 백엔드를 구성하려 했으나 메모리를 늘려도 로컬에서 브라우저를 사용해 테스트 하던 것 처럼 시간이 짧게 걸리지 않았다.
selenium 을 serverless 인 Lambda 에서 사용하려면 최소 메모리가 384mb 여야 하고, 최소 타임 아웃이 30초여야 한다.
람다의 기본 메모리 128MB에선 당연히 되지 않았고, 그 약 20배인 2048MB 환경에서 테스트를 해보고, 내 람다 함수의 최대 메모리인 3008MB 에서도 테스트 해봤으나 아무리 시간을 줄여봐도 최소 6초 이상 걸렸다.
자주 호출되는 백엔드를 구성하기엔 너무 긴 시간이라 판단하였고, 그냥 ec2에서 selenium 코드를 활용해
기존 API 호출 횟수를 줄이는 방향으로 ec2 코드를 개선하는게 낫다고 생각했다.
스트리머 1명당 약 90초 이상 걸리던 데이터 갱신을 약 6~7 초로 줄이게 되면 괜찮은 개선이 될 것이다.
| 주의사항
크롬 드라이버와 설치된 크롬의 버전이 같아야한다.
다음의 명령어를 통해 버전을 확인하도록 한다.
google-chrome-stable --version
| 참조
- Linux AMI 에서 chormedriver 의 올바른 option 세팅
[Error] 파이썬 셀레니움 크롬 chrome not reachable 에러 해결 (tistory.com)
How to Setup Selenium with ChromeDriver on Ubuntu 20.04 & 18.04 – TecAdmin
Install Chrome Browser and Chromedriver Ubuntu 20.04 | Skolo Online Docs
- EC2에서 chromedrvier executable 하게 만들기
-Lambda Memory 에 따른 요금
서버리스 컴퓨팅 – AWS Lambda 요금 – Amazon Web Services
-Ubuntu 환경에서 Selenium 사용하기
amazon web services - running google chrome headless on ec2 ubuntu server - Stack Overflow