AWS 배포하기

이지수·2021년 8월 15일
0

sparta-web

목록 보기
7/8
post-thumbnail

지금까지 만들었던 쇼핑몰 페이지를 aws를 이용해 배포해보도록 하겠습니다!

AWS?

AWS는 클라우드 서비스로 이것을 이용해 편하게 서버를 관리할 수 있습니다.

AWS 서버 구매하기

먼저 aws사이트에 접속하여 로그인 해줍니다.
콘솔창으로 이동해서 ec2 인스턴스를 클릭합니다. 그럼 아래와 같은 화면이 보입니다!

인스턴스 시작을 클릭해주세요.

여기서는 ubuntu server 20.04 LTS를 사용하겠습니다.

프리티어 사용이 가능한 t2.micro를 선택하고 다음을 눌러주세요.

다음 단계는 모두 건너뛰고 6단계까지 와서 규칙을 추가해줍니다.

→ 22포트: SSH 접속을 위한 기본포트
→ 80포트: HTTP 접속을 위한 기본포트
→ 5000포트: flask 기본포트
→ 27017포트: 외부에서 mongoDB 접속을 하기위한 포트


이제 시작하기를 누르면 이런 창이 뜨는데 세 키 페어 생성 -> 키 페어 이름을 작성 후 키페어 다운로드를 눌러주세요.
그럼 pem파일이 다운 받아지는데 필요한 파일이니 꼭 기억하기 쉬운 위치에 다운 받아주세요!

EC2에 접속하기

git bash를 실행한 후 다음 명령어를 입력합니다.

ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피

아래와 비슷한 형태가 됩니다.

ssh -i /path/my-key-pair.pem ubuntu@13.125.250.20

SSH(Secure Shell Protocol): 다른 컴퓨터에 접속할 때 쓰는 프로그램입니다. 다른 것들 보다 보안이 상대적으로 뛰어납니다.

  • Key fingerprint 관련 메시지가 나올 경우 Yes를 입력해주세요.
  • git bash를 종료할 때는 exit 명령어를 입력하여 ssh 접속을 먼저 끊어주세요.

쇼핑몰페이지 업로드해보기

Robo3T를 이용해서, "내 컴퓨터에서"→"서버에 있는 mongoDB"에 접속해보겠습니다.

  • 좌측 상단 빨간 상자 내 아이콘을 클릭합니다.
  • Create 클릭!
  • 접속 정보를 세팅합니다.
  • 상단 Authentication 탭을 클릭합니다.
    1. Perform authentication 체크박스를 클릭합니다.
    2. 생성한 계정의 아이디와 비밀번호를 입력하고, 'save'를 클릭합니다.

MongoDB 접속 세팅 바꾸기

AWS의 MongoDB에 아이디와 비밀번호를 추가했으니, pymongo에도 아이디와 비밀번호를 입력해주어야 합니다! 그래야 pymongo가 올바르게 DB에 접근할 수 있습니다.
app.py 파일을 열어서, 아래 처럼 가운데 한 줄을 바꿔주세요!

client = MongoClient('mongodb://아이디:비밀번호@localhost', 27017)

filezilla EC2업로드

filezilla: 내 컴퓨터에 있는 파일들을 FTP서버(파일을 하나의 장치에서 다른 장치로 전송하기 위한 일종의 프로토콜)에 옮기기 위한 프로그램
filezilla 다운: 가장 기본 버전을 다운 받습니다.

  • 파일질라 실행, 다음과 같이 설정
  • 정보들을 입력하고, ok 누르면 서버의 파일들을 볼 수 있습니다.
    (Host: 내 EC2서버의 ip // User: ubuntu 로 입력)
  • 마우스로 드래그 해서 파일을 업로드/다운로드하면 됩니다!
    파일질라에서 homework 폴더 째로 드래그 드롭으로 EC2 인스턴스의 home/ubuntu 폴더에 업로드합니다.

실행해보기

# home 디렉토리로 이동
cd ~

# 해당 폴더로 이동해서 아래 코드를 실행합니다.
python app.py

만약 위에서 에러가 난다면 패키지를 설치하지 않았기 때문에 생긴 오류잉므로 pip install pymongo를 해주고 다시 실행합니다.
이제 브라우저에서 다음 주소로 접속합니다.

http://내AWS아이피/

최종적으로 배포가 완성된 화면을 볼 수 있습니다!

nohup 설정하기

Git bash 또는 맥의 터미널을 종료하면 (=즉, SSH 접속을 끊으면) 프로세스가 종료되면서, 서버가 돌아가지 않고 있습니다. 그러나 우리가 원격접속을 끊어도, 서버는 계속 동작하도록 해보겠습니다.

  • 원격 접속을 종료하더라도 서버가 계속 돌아가게 하기
# 아래의 명령어로 실행
nohup python app.py &

이제 ssh접속을 종료해도 서버는 계속 실행됩니다!

  • 서버 종료하기 - 강제종료하는 방법
# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep 'app.py'

# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]

무사히 배포까지 완료했습니다!

0개의 댓글