웹개발 종합반 5주차 개발일지

1. 수업목표

1) Flask 프레임워크를 활용하여 API를 만들 수 있다.

2) '버킷리스트'를 완성한다.

3) EC2에 내 프로젝트를 올리고, 자랑한다!

2. 배운것들

1) 서버에 올리기

(1) aws서버 구입

Ubuntu server 20.04

(서버 중지는 인스턴스- 인스턴스 상태- 종료)

(2) EC2접속하기

터미널에서

sudo chmod 400 받은키페어끌어놓기       (받은 키페어의 접근 권한 바꿔주기)

ssh -i 받은키페어끌어놓기 ubuntu@AWS에적힌내아이피       (SSH접속)

———————————————————
리눅스에서 자주 쓰는 명령어

ls : 내 위치의 모든 파일 보여줌
mkdir : 내 위치 아래 폴더 생성
cd [] : []로 나를 이동
cd .. : 나를 상위 폴더로 이동

(3) 서버 세팅하기

 1. EC2 한번에 설정하기 (차례로 터미널에 넣는다.)


python3 -> python
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

pip3 -> pip
sudo apt-get update
sudo apt-get install -y python3-pip
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

port forwarding
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 7777

2. FileZilla에서 작업한 것들 올리기

다음과 같이 설정한다.

그 후 넣을 폴더에 작업한 static폴더, templates폴더, app.py를 filezilla로 올린다. 

3. pip으로 패키지 설치하기 (프로젝트 폴더 안에다가)

바로 python app.py 하면 실행이 안된다.
따라서 flask, pymongo,dnspython을 설치해준다.

pip install flask
pip install pymongo
pip install dnspython

4. AWS에서 5000포트 열어주기


(포트80도 추가해주기)

6. nohup 설정하기

원격접속 종료해도 서버 돌아가게
nohup python app.py &

강제종료
ps -ef | grep 'python app.py' | awk '{print $2}' | xargs kill

7. 도메인 연결

가비아 접속 -> dns설정 -> 호스트 : @ / 위치 : aws 퍼블릭 주소 숫자만


8. 내용 변경시

서버를 멈춘다 -> 파일 수정 -> filezilla에 다시 올리기 -> 서버 키기

2) og 태그 넣어주기

head에 넣어주기

<meta property="og:title" content="내 사이트의 제목" />
<meta property="og:description" content="보고 있는 페이지의 내용 요약" />
<meta property="og:image" content="이미지URL" />

3. 느낀점,보완점

과제를 하면서 처음으로 사이트가 제대로 동작을 안하는 상황을 겪었다. 서버를 켰을 때 mongoDB가 연결이 되지 않는 문제였다. 그냥 localhost로 켰을 때는 작동이 잘되서 만든 python파일과 html파일은 문제가 없다는 결론을 내렸고 강좌 FAQ를 읽고 해결하고자 했다. 하지만 해결할 수 없었고 구글링을 통해 알 수 있었다.
문제는 mongoDB cloud에 network access에 문제가 있었다. 따라서 security-network access에서 어디서나 접속 가능하도록으로 바꾸면서 해결할 수 있었다.

이렇게 마지막 주차의 강좌와 과제까지 다 해결했다. 아직 완전히 내 것이 된 것 같지는 않아 복습과 연습을 꾸준히 하면서 노력해야겠다.

좋은 웹페이지 즐겨찾기