웹 개발 prep course 5주차

배운 내용

EC2에 프로젝트 올리기 (feat. filezilla, gabia, AWS EC2)

ubuntu 서버 접속

ssh -i keypair 위치(파일을 터미널로 드래그해도 됨) ubuntu@AWS IP
  • EC2 세팅 파일 내용 (initial_ec2.sh)

UTC to KST

sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

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
pip3 --version
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 5000

MongoDB - install

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo mkdir -p /data/db

MongoDB - run

sudo service mongod start
sleep 7
netstat -tnlp

MongoDB set user, set conf file

mongo admin --eval 'db.createUser({user: "test", pwd: "test", roles:["root"]});'
sudo sh -c 'echo "security:\n authorization: enabled" >> /etc/mongod.conf'
sudo sed -i "s,\(^[[:blank:]]bindIp:\) .,\1 0.0.0.0," /etc/mongod.conf
sudo service mongod stop
sudo service mongod start
sleep 5
netstat -tnlp

  • 위 initial_ec2.sh 파일을 파일질라로 업로드하고, 터미널에서 아래 코드를 차례대로 입력해준다.
sudo chmod 755 initial_ec2.sh
./initial_ec2.sh
  • 원격 접속을 종료하더라도 서버가 계속 돌아가게 하기
nohup python app.py &
  • 서버 종료하기 - 강제종료하는 방법 (파일을 바꿔줄때 연결을 끊었다가 재접속 해야함.)
# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep 'app.py'
# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]

  • og 태그 넣기
<meta property="og:title" content="원페이지 쇼핑몰" />
<meta property="og:description" content="맥북 급처" />
<meta property="og:image" content="{{ url_for('static', filename='ogimage.png') }}" />
  • og 태그를 바꾸더라도 카카오톡 등의 서버에서는 캐시를 사용하기 때문에 바로 변경되지 않는다

페이스북 og 태그 초기화 하기: https://developers.facebook.com/tools/debug/
카카오톡 og 태그 초기화 하기: https://developers.kakao.com/tool/clear/og

느낀 점

혼자 프로젝트를 진행할때엔 git을 이용해 올리고, github.io에 페이지를 보여주는 방식을 사용했다.
서버도 구매하고, filezilla를 통해 파일관리도 용이하게 하며, 도메인도 내가 원하는 도메인을 사용할 수 있어서 굉장히 신선한 프로젝트였다. 실제 페이지를 지인에게 공유하고 받은 데이터를 DB에 저장할 수 있어서 대략적인 웹 개발의 flow를 이해할 수 있었다.

좋은 웹페이지 즐겨찾기