본문으로 바로가기

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 하게 만들기

python - Selenium on MAC, Message: 'chromedriver' executable may have wrong permissions - Stack Overflow

 

-Lambda Memory 에 따른 요금

서버리스 컴퓨팅 – AWS Lambda 요금 – Amazon Web Services

 

-Ubuntu 환경에서 Selenium 사용하기 

amazon web services - running google chrome headless on ec2 ubuntu server - Stack Overflow