지금까지 만들었던 쇼핑몰 페이지를 aws를 이용해 배포해보도록 하겠습니다!
AWS는 클라우드 서비스로 이것을 이용해 편하게 서버를 관리할 수 있습니다.
먼저 aws사이트에 접속하여 로그인 해줍니다.
콘솔창으로 이동해서 ec2 인스턴스를 클릭합니다. 그럼 아래와 같은 화면이 보입니다!
인스턴스 시작을 클릭해주세요.
여기서는 ubuntu server 20.04 LTS를 사용하겠습니다.
프리티어 사용이 가능한 t2.micro를 선택하고 다음을 눌러주세요.
다음 단계는 모두 건너뛰고 6단계까지 와서 규칙을 추가해줍니다.
→ 22포트: SSH 접속을 위한 기본포트
→ 80포트: HTTP 접속을 위한 기본포트
→ 5000포트: flask 기본포트
→ 27017포트: 외부에서 mongoDB 접속을 하기위한 포트
이제 시작하기를 누르면 이런 창이 뜨는데 세 키 페어 생성 -> 키 페어 이름을 작성 후 키페어 다운로드를 눌러주세요.
그럼 pem파일이 다운 받아지는데 필요한 파일이니 꼭 기억하기 쉬운 위치에 다운 받아주세요!
git bash를 실행한 후 다음 명령어를 입력합니다.
ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
아래와 비슷한 형태가 됩니다.
ssh -i /path/my-key-pair.pem ubuntu@13.125.250.20
SSH(Secure Shell Protocol): 다른 컴퓨터에 접속할 때 쓰는 프로그램입니다. 다른 것들 보다 보안이 상대적으로 뛰어납니다.
Robo3T를 이용해서, "내 컴퓨터에서"→"서버에 있는 mongoDB"에 접속해보겠습니다.
AWS의 MongoDB에 아이디와 비밀번호를 추가했으니, pymongo에도 아이디와 비밀번호를 입력해주어야 합니다! 그래야 pymongo가 올바르게 DB에 접근할 수 있습니다.
app.py 파일을 열어서, 아래 처럼 가운데 한 줄을 바꿔주세요!
client = MongoClient('mongodb://아이디:비밀번호@localhost', 27017)
filezilla: 내 컴퓨터에 있는 파일들을 FTP서버(파일을 하나의 장치에서 다른 장치로 전송하기 위한 일종의 프로토콜)에 옮기기 위한 프로그램
filezilla 다운: 가장 기본 버전을 다운 받습니다.
# home 디렉토리로 이동
cd ~
# 해당 폴더로 이동해서 아래 코드를 실행합니다.
python app.py
만약 위에서 에러가 난다면 패키지를 설치하지 않았기 때문에 생긴 오류잉므로 pip install pymongo
를 해주고 다시 실행합니다.
이제 브라우저에서 다음 주소로 접속합니다.
http://내AWS아이피/
최종적으로 배포가 완성된 화면을 볼 수 있습니다!
Git bash 또는 맥의 터미널을 종료하면 (=즉, SSH 접속을 끊으면) 프로세스가 종료되면서, 서버가 돌아가지 않고 있습니다. 그러나 우리가 원격접속을 끊어도, 서버는 계속 동작하도록 해보겠습니다.
# 아래의 명령어로 실행
nohup python app.py &
이제 ssh접속을 종료해도 서버는 계속 실행됩니다!
# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep 'app.py'
# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]