앞 글에서 주피터 노트북까지 설치 완료 후,
현재 브라우저의 주피터는 인증서가 적용되지 않은 상태라 통신과정에서 굉장히 위험하다. 그러므로
이번 목표 : HTTPS 적용하는 방법 공부하기!
먼저 콘솔에 sudo netstat -nap | grep 8888 에서 실행중인 키아이디 확인 가능하고 kill 명령어로 해당 주피터 노트북을 종료시킬 수 있다. 그럼 주피터 접속 불가!
1. 공개키, 개인키 만들기
인증과정에서 공개키, 개인키 방식이 있다. 콘솔에서 ssl 디렉토리 생성 후 sudo openssl ~~~ 명령을 이용해 개인키, 공개키를 만든 후
환경설정 파일을 열어서 vi 편집기로 주피터를 이용해 ssl 통신을 하겠다 명시해주기 위해 공개키 파일을 설정해주고,
밑 줄에 개인키까지 설정하게 경로를 넣어준다.
2. 주피터에 ssl 적용
다시 주피터 노트북을 실행시키면 ssl 이 적용된 형태로 서버가 구동중인 것을 확인할 수 있다. !!!
https:// 를 치고 들어가면 사설 인증서를 이용해 ssl 통신을 적용한 것이기 때문에 크롬 브라우저가 우리 인증서를 신뢰하지 못하므로 경고가 뜨는데 무시하고 접속할 수 있게 하면 됨.
왜냐? 인증서 자체를 우리가 만들었으므로 신뢰할 수 있으니까!
이 과정까지 마치면
ssl 이 적용된 상태로 우리의 서버에 접속할 수 있게 된 것이다.
즉 안전하게 통신하기 때문에 ,중간에서 악의적인 사용자가 우리의 서버에 접속했다는 사실을 알고 해당 패킷을 가로채려 하더라도 우리가 서버에 어떤 명령을 넣었는지는 알 수 없다.
3. 시스템 서비스로 등록하기
지금 aws ec2 인스턴스, 즉 우리의 서버를 재부팅하는 등의 작업을 하면 노트북도 자동 종료가 되기 때문에 실행하는 명령어를 계속 넣어줘야 하므로 서버가 재부팅 되었을 때도 자동실행되게 처리하기 위해 주피터를 시스템 서비스로 등록시켜야 한다.
3-1. 서비스 파일 작성하기
주피터 노트북 실행 파일 위치를 알기위해 which 명령어를 사용해 경로를 찾아내 주고,
sudo vi etc/systemd/system/jupyter.service 를 이용해 서비스 파일을 만든다.
이 시스템 파일은 정해진 양식이 있다.
윗칸에 설명을 넣어주고,
밑 칸에 어떤 서비스가 실행될건지 명시해준다.
user : aws ec2 ssh 로 접속하면 우분투 계정으로 접속을 하게된다. 그래서 유저가 우분투!
xecStart : 어떤 명령을 수행할건지를 나타냄. sudo~ 명령어로 root 권한 허락한다.
주피터를 사용하겠다고 잡아주고 환경설정 명령 또한 명시해준다. (환경설정 파일 있는 위치로 설정)
실행중인 주피터 서비스 구동중인 것 확인 가능! ( ssl 로 8888포트로 열린 것 )
서비스 다시 시작하고자 할 땐 restart 명령어로 사용 가능.