서버 관리와 파일 전송에 사용되는 SSH(Secure Shell)을 알아보겠습니다.
사용자가 원격으로 다른 컴퓨터에 안전하게 접속하도록 도와주는 프로토콜이다.
기본 형태는 다음과 같다.
ssh [options] [user@]hostname
user@
: 로그인 할 사용자 이름hostname
: 원격 서버의 도메인 이름 혹은 IP 주소ssh -p port username@remote_host
기본적으로 22포트를 사용하며, port
자리에 다른 포트 번호를 명시할 수 있다.
ssh -i /path/to/my_key.pem username@remote_host
키가 있는 경로에서 실행 혹은 경로를 명시하여 private key로 접속이 가능하다.
scp local_file username@remote_host:/remote/directory/
local_file
이라는 이름의 로컬 파일을 원격 호스트의 /remote/directory/
로 복사하는 명령이다.
키로 인스턴스에 접속하는 것이 안전하긴 하지만 항상 키를 갖고 다닐 순 없다. 따라서 비밀번호로 접속을 하는 방법을 알아보자.
# ssh 설정 파일 수정
sudo vim /etc/ssh/sshd.config
# /etc/ssh/sshd.config
...
PasswordAuthentication no -> yes 로 변경
...
파일 초중반 부에 있는 Password...
인증 부분을 허용한다.
# 서비스 재시작
sudo systemctl restart ssh
이후 키로 접속한 것과 마찬가지로
ssh {사용자이름}@{ip주소}
와 같이 접속 가능하다.
Lightsail을 활용하여 간단하게 서버를 만들어 보자.
보통은 위 사진처럼 Django를 직접 선택하지 않고 OS만 선택하지만 간단한 진행을 위해 선택하였다.
인스턴스 아이디에는 규칙이 존재한다.
이후 인스턴스를 생성하고 활성화까지 대기한다.
활성화가 되었으면 다음과 같은 버튼을 클릭하여 터미널에 들어간다.
이후 깃허브에서 django todolist 소스코드를 클론한다.
git clone https://github.com/beomjae/django-todolist.git
다운받은 소스코드 디렉토리로 이동한다.
cd django-todolist
정의되어 있는 라이브러리를 설치한다.
pip install -r requirements.txt
데이터베이스 변경내역을 데이터베이스에 적용하기 위해 마이그레이트를 진행한다.
# migrate
python manage.py migrate
8000번 포트로 Django 서버를 실행한다.
python manage.py runserver 0.0.0.0:8000
만약, 8000번 포트가 막혀 있다면, Lightsail 인스턴스의 네트워킹탭에서 포트를 추가한다.
서버 생성이 완료된 모습이다.
간단한 구조 그림이다.