본문 바로가기

django/정리

AWS 배포(4) - SSH 연결 및 docker 관리

이건 필수는 아니지만...

어디에 문제가 있는지 확인하거나 지금 컨테이너 확인하거나...여러개 알아두면 좋다.

나도 문제를 여기서 확인하고 해결했다.


# 서버 관리

EC2 인스턴스
EC2 인스턴스 연결

  • 나같은 경우에는 github action에서는 오류가 발견되지 않았는데, 서버가 작동하지 않았다.
  • sudo docker ps로 확인해보니, web container가 돌아가지 않고 있음을 확인했다.
  • 서버를 돌리기 위해 필요한 라이브러리가 설치가 안되있었다. 그러니 로컬에서는 돌아가지만 서버는 안돌아가지...
  • 아무튼 이렇게 AWS 인스턴스에서 직접 연결할 수 있다.

# SSH 터널링

  • SSH(Secure SHell)란 원격의 호스트 컴퓨터에 접속하기 위한 인터넷 프로토콜이다. 
  • ssh key페어(.pem)를 사용하는 암호화 방식이므로 보안이 강력하다.
  • 기본 포트는 22번. 만약 원격으로 접속하고 싶으면, 이전의 EC2 인바운드 규칙의 22번 포트를 로컬 ip 말고 0.0.0.0(IPv4)로 설정해준다. 아니면 거부됨.
  • Window 기준으로 cmd를 연다.

  • 예시에 있는 ssh -i 명령문을 복사한 후 cmd에 붙힌다. 이때 .pem키가 있는 경로로 이동해준다.
  • 성공하면 cmd가 나의 EC2서버로 접속되고, 위와 같이 sudo 명령어를 사용할 수 있다.

연결


# permissions 오류

  • ec2-user@: Permission denied와 같이 .pem파일의 권한 오류가 발생할 수 있다.
  • linux는 chmod 400으로 쉽게 해결할 수 있지만... 윈도우는 좀 더 복잡하다.
  • pem파일의 속성 -> 보안 -> 고급 -> 보안 주체에 접속하고 있는 계정을 선택한 후 권한을 읽기 및 실행, 읽기 허용으로 해준다.

적용 누르기

  • 이것도 안되면 보안그룹에 22 포트번호를 허용했는지 확인하자.
  • 연결할 때 port번호를 직접 설정할 수 있는걸로 아는데, 안해봤음.
  • migrations, migrate를 이 과정을 통해 실행해서 무사히 서버를 작동시켰다.

# 참고

 

[리눅스] ssh란?

SSH는 무엇이고 어떻게 사용하며 어떤 부분이 편리한지에 대해 알아본다.SSH 에 대한 더 많은 정보는 링크를 참고하자.아래 내용은 macOS환경에 대해서만 다룬다. 일반적인 개발서버는 리눅스환경

velog.io

 

윈도우 ssh 연결 에러(permissions ... too open등)

목차 리눅스의 경우 pem 파일을 chmod 400 "파일명" 해주면 됩니다. Permissions... too open 에러 Permissions for '.pem' are too open It is required that your private key files are NOT accessible by others. This private key will be ignored

rainbound.tistory.com

 

'django > 정리' 카테고리의 다른 글

[Django] UML Diagram 자동생성  (0) 2024.04.05
[Django] CEOS vote_project 정리  (0) 2023.06.29
AWS 배포(3) - https, 도메인  (0) 2023.05.24
AWS 배포(2) - EC2, RDS, github action  (0) 2023.05.24
AWS 배포(1) - Django, Nginx, Gunicorn  (0) 2023.05.23