AWS/SSH
[ssh] 터널링하여 DB 접속 - 2
bbmon2
2023. 3. 13. 23:43
1. 문제 정의
터널링 후 pymysql을 통해 여러개의 execution을 실행하고자 하였는데, tunnel이 닫혔다는(already closed) 오류 메시지를 확인. 혹은 connection이 종료되었다는 오류 메시지 확인
airflow를 활용하는 경우에도 여러 건의 execution을 동시에 처리하는 경우 처리가 필요
2. 해결 방향
1) python스러운 with절을 활용하지 않고,
순서에 따라 작성하였고, tunnel 생성 → conn 생성 → cur 생성 이후 아래와 같이 역순으로 종료하여야 문제가 없음
2) try, except 구문으로 rollback 기능까지 포함
tunnel 생성(시작)
ㄴ tunnel 시작
ㄴ conn 생성 (시작)
ㄴ cursor 생성(시작)
ㄴ 하위에서 메인코드 진행 (여러 execution 실행)
ㄴ write한 경우 commit
ㄴ cursor 종료
ㄴ conn 종료
tunnel 중지
3. 구현 코드
추후 추가
4. 추가 고민 필요
tunnel start & stop를 제외하고는, with절로 처리할 수 있을 듯
try, except 구문을 조금 더 보완할 것
5. 참고 자료
http://www.reversenote.info/protect-pymysql-connection-ssl-ssh-tunneling/