본문 바로가기

내일배움단/웹개발 종합반

[내일배움단] 웹개발 종합반 - 5주차 - 배운 내용 정리

AWS (Amazon Web Services)

지역이 서울로 설정되어 있는지 확인.

인스턴스

대여하는 컴퓨터를 인스턴스라고 함.

인스턴스 시작 할 때 애플리케이션 및 OS 이미지를 설정 함.

보안 설정

SSH 접속을 위한 22번 포트 개방 ( 인스턴스 시작 당시 개방되어 있음. )

웹 서비스를 제공하기 위한 80번 포트 개방

데이터베이스 접속을 위한 27017 포트 개방

Ubuntu 원격 SSH 접속

Git bash를 이용함. ( SSH 명령이 가능한 다른 프로그램도 사용 가능. )

ssh -i Downloads/AWS_keypair.pem ubuntu@"ip_address"

"ip_address" 자리에 인스턴스의 공유 ip 기입

 

Ubuntu 초기 설정

시간 설정

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

포트 포워딩 ( 옵션 )

예제는 80번 포트를 5000번 포트로 포워딩 함.

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

MongoDB 설치

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 구동

sudo service mongod start

MongoDB 구동 확인

netstat -tnlp

MongoDB 사용자 계정 설정

mongo admin --eval 'db.createUser({user: "userid", pwd: "password", roles:["root"]});'

MongoDB conf 파일 설정 ( nano 에디터 사용 )

sudo nano /etc/mongod.conf

net:
    bindIp: 0.0.0.0

security:
    authorization: enabled
으로 수정

MongoDB 재시작

sudo service mongod stop
sudo service mongod start

sudo service mongod restart

Robo 3T 원격 접속

Connection 탭에서

Address: AWS 인스턴스의 퍼블릭 ip

Authentication 탭에서

Perform authentication 체크

Database: admin

User Name: 사용자 계정 설정에서 사용한 userid

Password: 사용자 계정 설정에서 사용한 password

Test 버튼을 사용하여 접속 확인

프로세스 백그라운드 실행 ( SSH 접속 종료시에도 서버 구동 )

nohup python app.py &

구동중인 프로세스 확인

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') }}" />