웹 개발 일지 _ 서버 올리기

8481 단어 webweb

컴퓨터 한대한대를 '인스턴스'라고 한다.



이녀석을 사용할 것임

원격에서 사용하기 위한 key설정

1년동안 무료


  • 원격 접속 하기

    sudo chmod 400 *keypair*
    ssh -i *keypair* ubuntu@*IPv4주소*

  • filezilla를 이용해서 GUI환경으로 원격 저장소에 파일 올리기

    호스트 : IPv4주소 Port:22

로그온 유형 : 키 파일
사용자 ubuntu
keyfile : keypair

접속 완료.


  • 서버 환경 통일하기
# 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: "testID", pwd: "testPW", 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
  • 실행시키기

    권한 설정
    sudo chmod 755 initial_ec2.sh
    실행
    ./intial_ec2.sh

*pip -> 파이썬 패키지 설치 도와주는 Library

*mongo -> mongoDB로 들어옴

EC2 컴퓨터에 flask서버 실행하기

  • flask & pymongo & bs4 & request설치

    pip install flask
    pip install pymongo
    pip install requests
    pip install bs4

이후 APP.py를 올려 실행해도

IPv4주소 : 5000에서 실행이 되지 않음..

AWS의 자체 방화벽이 설정되어 있기때문에 포트를 열어주어야한다


22번 포트는 미리 열려있었으므로 우리가 filezila를 통해 접속할 수 있었던 것

  • DB연결하기
    Robo3T에서 접속하기

    mongoDB setting을 test,test로 했다.. 그러므로 그 값을 입력해주어야 함.



    접속 완료

APP.py 에서 mongoDB연결하기

from pymongo import MongoClient

from flask import Flask, render_template, jsonify, request

app = Flask(__name__)
client = MongoClient('mongodb://ID:PW@localhost', 27017)

# client = MongoClient('localhost', 27017)
db = client.practice

옮겨서 실행시켜놓기

  • 5000번 포트 번호 떼어내기@@

리눅스 자체는 포트 번호를 입력하지 않아도 자동으로 접속할 수 있도록 80포트로 이부 요청을 받아들인다.

그러므로 5000번 포트를 표기하기 싫다면 80포트로 들어오는 요청들을 5000번으로 전달하게 하는 port forwarding을 사용하면 된다.

port forwarding

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

  • 자동으로 구현하기

  1. nohub 이용하기

    nohup python 구동할 파일 &

ps -ef | grep 찾는 파일 -> 실행중인 파일들은 보여줌
kill -9 프로세스 번호 -> 해당 프로세스를 중단시킨다.

  1. 도메인 연결하기
    가비아에서 산 도메인에 나의 주소를 연결

  2. ogtag설정하기

<meta property="og:title" content="내 사이트의 제목" />
<meta property="og:description" content="보고 있는 페이지의 내용 요약" />
<meta property="og:image" content="{{ url_for('static', filename='ogimage.png') }}" />

좋은 웹페이지 즐겨찾기