ls: 내 위치의 모든 파일을 보여준다.
pwd: 내 위치(폴더의 경로)를 알려준다.
mkdir: 내 위치 아래에 폴더를 하나 만든다.
cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.
cd .. : 나를 상위 폴더로 이동시킨다.
cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기
rm -rf [지울 것]: 지우기
sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)
shell에서 ubuntu@ 로 시작하면 원격접속 중
리눅스 커널에서 ↑ 누르면 직전에 사용한 명령어 나옴
3. 서버 세팅
filezilla: 로컬 컴퓨터와 원격 컴퓨터 사이에 파일 업로드, 다운로드 해주는 프로그램
filezilla 설정(host는 내 인스턴스 IP)
마우스 드래그&드롭으로 파일 옮기기
shell에서 인스턴스의 sparta 디렉토리에서 python3 test.py 명령어 입력시 해당 파일 실행
서버 환경 통일 (EC2 한방에 세팅)
sudo chmod 755 initial_ec2.sh
권한 변경
./initial_ec2.sh
파일 실행
initial_ec2.sh: 업그레이드, DB설치, 명령어 통일 등의 세팅을 위한 코드 모음
예) python3가 python으로 통일됨 -> python app.py 로 실행
4. flask 서버 실행
로컬 컴퓨터에서 했던 것처럼 똑같이 원격 컴퓨터에도 flask, pymongo 등의 모듈 설치 필요 -> pip
pip install flask
원격 컴퓨터의 sparta 디렉토리에서 python app.py 로 서버 실행, ctrl + c로 서버 종료
크롬에서 http://[내 EC2 IP]:5000/ 접속 -> 오류 발생 -> AWS 설정 필요
EC2 서버 (원격 컴퓨터) 포트 설정 외에도, AWS 자체적인 방화벽이 있어 관련 포트 설정 필요
해당 인스턴스 선택 -> 보안 탭에서 보안그룹 링크 클릭 -> 인바운드 규칙 -> 규칙 추가 클릭 -> 포트 추가
80포트: HTTP 접속을 위한 기본포트
5000포트: flask 기본포트
27017포트: 외부에서 mongoDB 접속을 하기위한 포트
5. 원페이지 쇼핑몰 업로드
robo 3T로 원격 컴퓨터의 mongoDB 접속
address는 내 원격컴퓨터 IP 주소, 보안을 위한 이름, 비밀번호 설정
우리의 pymongo에도 이름, 비밀번호 입력
# client = MongoClient('localhost', 27017) 대신
client = MongoClient('mongodb://test:test@localhost', 27017)
# id: test, pw: test
filezilla에서 homework 디렉토리를 원격 컴퓨터에 업로드
6. 포트포워딩 (port forwarding)
80포트로 오는 요청을 5000포트로 전달
http 요청에서는 80포트가 기본이기 때문에, 굳이 :80을 붙이지 않아도 자동으로 연결 가능
우리 웹페이지는 5000포트에서 실행 중이므로 :5000을 붙여야함 (세팅은 이미 서버환경 통일에서 함)
포트 번호를 입력하지 않아도 자동으로 접속되기 위해, 80포트로 오는 요청을 5000 포트로 전달하게 하는 포트포워딩(port forwarding) 을 사용 (리눅스 기본 제공)
7. nohup 설정: 로컬 컴퓨터에서 SSH 접속을 끊어도 원격 서버가 계속 실행되게 해주는 설정
nohup python app.py &
# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep 'app.py'
# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]
서버 강제 종료
8. 도메인 연결
도메인을 구매한다는 것은, 네임서버를 운영해주는 업체에, IP와 도메인 매칭 유지비를 내는 것
가비아 페이지 -> my가비아 -> DNS 관리툴 -> 설정 -> 레코드 수정 -> 레코드 추가