On a couch
[5주차] 서버 작업 본문
일지
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>로 입력
'프론트엔드 공부 > 스파르타 웹개발 종합반' 카테고리의 다른 글
스파르타 내일배움단 웹개발5주패키지 후기 (0) | 2022.03.01 |
---|---|
[메이킹챌린지] 10기 4조 개발일지 (0) | 2022.02.10 |
[4주차] python (0) | 2022.02.08 |
[3주차] python (0) | 2022.02.03 |
[2주차] js, jquery, ajax (0) | 2022.01.23 |