On a couch

[5주차] 서버 작업 본문

프론트엔드 공부/스파르타 웹개발 종합반

[5주차] 서버 작업

couch 2022. 2. 13. 20:31

일지

더보기

02.13

4, 5주차 계속 듣기만 하다가 메모하지 않으면 안 되겠다 싶어서 다시 메모 시작한다 ㅠ

5강만 2,3번씩은 들은 것 같다.

아.. 이번 강의는 영상보다 강의자료 보는 게 훨씬 편하네 ㅠ

[수업 목표] Flask 프레임워크를 활용해서 API를 만들 수 있다.

 

AWS 이용

1. 용어

* AWS : 아마존 클라우드 서비스

* EC2 : 서버 관리를 위해 항상 켜 놓을 수 있는 컴퓨터 사용권

* 포트(port) : 하나의 IP에 여러 포트가 있다. 하나의 포트에 하나의 프로그램을 실행시킬 수 있다.

 

2. 서버 구매

*ubuntu 베이스의 1년 무료 서버 구매, 무료기간 만료 전 대상 인스턴스에 마우스 우클릭 > 인스턴스 상태 > 중지 클릭하면 결제 안 됨.

 

3. ec2에 접속

* Window: ssh가 없으므로, git bash라는 프로그램을 이용!

* SSH(Secure Shell Protocol) : 다른 컴퓨터에 접속할 때 쓰는 프로그램. 접속할 컴퓨터의 22번 포트가 열려있어야 접속 가능.

* 자주 쓰는 명령어

더보기

서버 접속: ssh -i [키페어] ubuntu@[개방ip]   ->  yes

ls: 내 위치의 모든 파일을 보여준다.

pwd: 내 위치(폴더의 경로)를 알려준다.

mkdir (make directory) : 내 위치 아래에 폴더를 하나 만든다.

cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.

cd .. : 나를 상위 폴더로 이동시킨다.

cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기

rm -rf [지울 것]: 지우기

sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.

sudo su: 관리자 권한으로 들어간다. (나올때는 exit으로 나옴)

[연결 프로그램명] [파일명] : 프로그램으로 파일을 실행

 

서버 세팅

1. 스파르타에서 준 initial_ec2.sh 파일을 파일질라로 업데이트해서 관리자권한 실행 (시간세팅, mongodb 설치, 포트포워딩, pip 설치 등)

sudo chmod 755 initial_ec2.sh

sudo chmod 755 initial_ec2.sh

 

2. pip로 패키지 설치 (pip install flask)

 

3. aws에서 5000포트 열기

* 포트는 ec2서버에서 설정하는 것 외에 aws ec2에서도 관리 가능.

* 네 가지 포트 모두 anywhere로 설정 (매번 뒤에 포트 번호 붙이지 않아도 누구나 접속 가능하게 하려면)

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

4. mongodb 접속

* create -> 접속정보(connection)에 퍼블릭 IPv4 주소 입력 -> authentication 에서 name/id 설정

* 인스턴스에 업로드 된 app.py 에서도 client = MongoClient('mongodb://아이디:비밀번호@localhost', 27017) 로 변경

* 파일질라에서 homework 폴더 째로 EC2 인스턴스의 home/ubuntu 폴더에 업로드

* 만약 name/pw 변경하고 싶으면 initial_ec2 초기세팅 전 파이참으로 열어서 mongo 부분 수정/업로드/실행하면 됨

 

5. nohub 설정(ssh 없이 서버 돌리기)

* 원격접속 끊어도 돌아가게 하기 : nohup python app.py &

* 서버 종료: 

  • pid 값(프로세스 번호) 미리 확인 : ps -ef | grep 'app.py'
  • 특정 프로세스를 죽이기 : kill -9 [pid값]

* 서버 재생 : nohup python app.py &

 

6. 도메인 연결

* 가비아 -> 도메인 연결 -> DNS 설정 -> 호스트이름에 @, IP주소에 IP 입력

 

+) og태그 만들기 : static폴더에 이미지 넣고 html <head>태그에 <meta>로 입력