티스토리 뷰

AWS Lambda로 간단한 Proxy를 만들게 된 경위는 이렇습니다. 

밥대생 크롤링 서버는 openssl 1.0.2 버전, Python 3.5 버전에서 구동되고 있습니다.


하지만, 특정 학교의 홈페이지는 openssl 1.0.2 버전으로 요청할 시에

제대로 된 응답을 하지 않았습니다. 

계속해서 "handshake failure"라는 오류를 뱉었고, 

이 사이트(https://www.ssllabs.com/ssltest/)에서의 확인 끝에 

openssl 버전이 너무 높기 때문임을 알 수 있었습니다.


특히 Python3 내장 http request 라이브러리와 https의 행동 결과가

다르다는 점은 저에게 있어 상당히 흥미로웠습니다.

이 오류를 해결하기 위해서느 openssl 버전을 다운그레이드해야 하는데, 

파이썬에서 사용하는 openssl을 다운그레이드 하기 위해서는

1. openssl을 다운그레이드하고,

2. 파이썬을 새로 컴파일해야 합니다. 


이 문제를 해결하기 위해서 상당히 많은 공수가 들어갈 수 있는 상황이라고 생각했습니다.

실제로 이 문제를 해결하기 위해 거의 일주일을 낭비한 것 같습니다. 


밥대생 팀에서는 AWS Lambda를 통해 이 문제를 해결하기로 결정했습니다. 

다음 포스팅을 하게 된 것도 바로 이 때문입니다. 


AWS Lambda로 간단한 Proxy 만들기


AWS Lambda로 낮은 openssl 버전을 가진 Proxy 서버(혹은 이와 유사한 기능을 수행하는 서버)를 만들고,

이 서버가 대신 요청을 수행하게 하자! 


처음에 고민은 이랬습니다. 

AWS lambda가 openssl 최신버전을 사용하면 어떡하지?

하지만, 아닐 것이라고 예상했습니다. 

최적화가 필요한 람다 서비스 특성 상 자주 업데이트 힘들 것 같다는 나름대로의 예상이 있기 때문이었습니다. 


테스트 했고 openssl 버전은 역시 최신이 아니었습니다.

이 방식을 통해 현재 ssl 버전 문제를 해결했고, 

다른 마이너한 이슈들도 lambda 생성을 통해 해결해나가고자 합니다. 


댓글
댓글쓰기 폼
공지사항
Total
32,371
Today
26
Yesterday
20
링크
«   2019/02   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28    
글 보관함