728x90

백엔드가 구축한 기능이 로컬에서는 swagger에서 정상 작동하는 것을 확인할 수 있으나, 배포된 서버에서는 500번 에러가 뜨고 있다. 하지만 디버깅이 되고 있지 않는 상황이었다.

 

우리 앱은 dockerfile을 통하여서 container를 구축한 후 ec2에 배포된 상황이기에, ssh를 통하여 ec2에 접속한 후 docker 컨테이너에 접근하여서 log를 확인하면 된다.

아직 ssh와 docker가 익숙하지 않은 단계에서 구글링을 통해 각각의 키워드를 검색하면서 에러를 해결해 나갔다.

(사실 ssh 말고 aws에서 인스턴스에 연결하면 굳이 ssh를 쓸 필요는 없긴하다..)

 

ssh를 하기 위해서 우선 기존에 사용하던 pem파일을 생성하였다.

해당 파일의 경로를 찾은 후 

ssh -i "경로\키파일.pem" 사용자@서버주소 를 통해서 접속하려고 했다.

하지만 pem파일에 권한을 부여하지 않았더니, 경고를 알려주면서  막았따

permissions for c:\\test\\server.pem are too open. it is required that your private key files are not accessible by others. this private key will be ignored. load key c:\\test\\server.pem: bad permissions

 

해당 원인은 아래 블로그를 통해서 확인하였는데, ssh 키는 중요한 파일이기에 다른 사람이 읽을 수 있으면 안된다.

https://www.lesstif.com/lpt/ssh-unprotected-private-key-file-80249001.html

 

SSH 접속시 UNPROTECTED PRIVATE KEY FILE! 에러 해결

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for 'ubuntu@example.com/id_rsa' are too open. It is required that your priva

www.lesstif.com

따라서 권한을 부여할 필요가 있었다. 리눅스 환경에서는 chmod를 통하여 권한을 설정할 수 있다.

하지만 나는 윈도우 환경이기에 다른 명령어를 사용할 필요가 있었다.

리눅스 환경이라면 chmod 0400 ~/.ssh/ubuntu@example.com/id_rsa 해당 파일을 읽기 권한을 줄 수 있다

0400 :  해당 파일을 소유자에 대해서 읽기권한만 부여함.

~/.ssh/ubuntu@example.com/id_rsa  : 파일 경로와 파일

ubuntu@example.com : 사용자 이름

 

하지만 해당 명령어를 윈도우 환경에서는 아래의 명령어로 실행해야 한다.

icacls "C:\test\server.pem" /inheritance:r /grant:r "%username%:R"

내 경우에는 username이 인식되지 않아서 

[System.Security.Principal.WindowsIdentity]::GetCurrent().Name

을 통해서 사용자이름을 구한후 username 대신에 작성하였다.

 

이후 ssh -i "경로\키파일.pem" 사용자@서버주소 을 통하여 서버에 접속하였다.

 

cicd 파이프라인을 구축하여 배포는 완료한 상황에서 , docker container는 올바르게 실행되고 있었다

따라서 docker  ps 로 해당 컨테이너의 이름을 친후 docker logs 를 입력하여 에러 메시지를 확인하였다.

 

에러를 확인하니 table이 생성되어 있지 않았었다.

+ Recent posts