맹그로브 남는 방을 주기적으로 체크하기 위해 12시간마다 페이지를 크롤링해서 알림이 오도록 하는 작업을 했다.
컴퓨터를 24시간 켜둘 수는 없기 때문에 AWS Lambda를 이용했다.
우선 https://sales.mangrove.city/sinseol/calendar 사이트가 노션으로 만들어져서 동적으로 작동하기 때문에 bs4로는 충분하지 않고 selenium을 이용해야 했다.
문제는 AWS Lambda 서버에는 셀레니움, 크롬이 모두 설치되어 있지 않기 때문에 넣어주어야 했다.
기본적으로 아래 링크를 참고했다.
도커 이미지는 https://github.com/uiandwe/lambda-selenium-docker를 이용했다.
chrome-deps.txt 파일을 보면 chrome 구동에 필요한 라이브러리들이 적혀있고, Dockerfile에서 RUN yum install -y $(cat /tmp/chrome-deps.txt) 과 같이 설치를 해준다. 이로써 첫번째 삽질 때의 문제는 해결되었다.
그리고 텔레그램 봇 파이썬 패키지도 필요하므로 requirement.txt에 추가해줬다.
AWS Lambda에서 Docker 이미지를 이용하기 위해서는 Amazon Elastic Container Registry에 도커 이미지를 업로드하여야 한다. 우선 ECR을 이용하기 위해서는 IAM 사용자를 생성해야 한다.

IAM에 들어가서 사용자를 생성하고 권한 정책으로 AdministratorAccess을 주면 된다. 그냥 귀찮아서 전체 권한을 준 것이지만 실전에서는 필요한 권한만 줘야겠지?

그리고 엑세스키를 생성한다. 사용 사례로는 CLI를 체크해주면 된다.

이 엑세스 키는 csv로 다운받거나 해서 잘 보관해 둬야 한다. (private 키 다시 못 봄)