이건 필수는 아니지만...
어디에 문제가 있는지 확인하거나 지금 컨테이너 확인하거나...여러개 알아두면 좋다.
나도 문제를 여기서 확인하고 해결했다.
# 서버 관리
- 나같은 경우에는 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를 이 과정을 통해 실행해서 무사히 서버를 작동시켰다.
# 참고
- .pem permissions 에러 https://rainbound.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B0-ssh-%EC%97%B0%EA%B2%B0-%EC%97%90%EB%9F%ACpermissions-too-open%EB%93%B1
'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 |