BE 분들이 원본 API로부터 데이터를 엄선해서 짜오신 CSV 파일을 mongoDB에 import해서 진행하기로 했다.
1) mongoDB를 깔고 mongoDB Database Tool을 받아서 bin 폴더 안의 내용물을 mongoDB가 설치된 폴더 안의 bin 폴더에 붙여넣는다.
2) 명령 프롬포트를 실행 후 CSV와 서버 파일(app.py)을 한 폴더에 넣고mongoimport --db DB이름 --collection collection이름 --type csv --headerline --file csv이름.csv
3) 성공메세지 확인 후 Robo3T를 통해 데이터베이스가 들어갔는지 확인한다.
상세페이지와 메인페이지를 연결하는데 오류가 난다고 한다.
어떻게 연결할 수 있을지 고민해보기.
발표 방법 논의 : PPT, 영상, 실시간 구동 ... 자세한건 다음 회의에.
만약 컴퓨터로 서버를 구동을 한다면
하지만 사실상 개인이 개인의 컴퓨터로 그렇게 하기는 어렵기에 AWS를 이용한다.
AWS : 클라우드 서비스
/ 보통 Linux 기반의 원격 조종이 가능한 서버구동 컴퓨터
IP : 컴퓨터마다 주어진 고유의 특수한 번호 / 주소
PORT : 하나의 IP에 여러개의 포트를 가지게 되고 한 개의 포트에서 한 개의 프로그램이 실행될 수 있다.
EC2 콘솔 창
https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2
- 보통 많이 쓰는 것은 Linux의 Ubuntu
SSH(Secure Shell Protocol) : 다른 컴퓨터에 접속할 때 쓰는 상대적으로 보안이 뛰어난 프로토콜
Windows : SSH가 기본적으로 주어지지 않으므로 Gitbash를 사용
1) ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
: ex) ssh -i /path/my-key-pair.pem ubuntu@13.125.250.20
2) Key fingerprint 관련 메시지가 나올 경우 Yesgit bash를 종료할 때는 exit 명령어를 입력
ls: 내 위치의 모든 파일을 보여준다.
pwd: 내 위치(폴더의 경로)를 알려준다.
mkdir: 내 위치 아래에 폴더를 하나 만든다.
cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.
cd .. : 나를 상위 폴더로 이동시킨다.
cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기
rm -rf [지울 것]: 지우기
sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)
파일질라를 통해 EC2로 파일 전송
sitemanager > new site > 설정
(Host: 내 EC2서버의 ip // User: ubuntu 로 입력)
1) 한국 시간으로 셋팅
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
2) Python3를 python 으로 입력
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
3) pip3 설치 ( 패키지 설치를 도와준다. )
sudo apt-get update sudo apt-get install -y python3-pip
4) pip3를 pip 으로 입력
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
5) mongoDB 설치
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org
6) mongoDB 실행
sudo service mongod start
7) mongoDB 계정 만들기
mongo #>로 바뀌면
# admin으로 계정 바꾸기 use admin;
# 계정 생성하기 db.createUser({user: "test", pwd: "test", roles:["root"]});
8) mongoDB 나오기 & 재시작
# 나오기 exit
# MongoDB 재시작 sudo service mongod restart
9) mongoDB 외부에 열어주기
sudo vi /etc/mongod.conf # sudo: 관리자(SuperUser) 권한으로 다음을 실행 # => "관리자 권한으로 /etc 폴더 아래 mongod.conf 파일을 Vim으로 켜줘!"라는 뜻입니다
그러고 나서 아래방향 화살표키
# 입력 모드 전환 i
# network interfaces net: port:27017 bindIP:0.0.0.0
# how the process runs processManagement: timeZoneInfo: /usr/share/zoneinfo
security: authorization: enabled
로 수정하고 난뒤,
# 내용 저장하고 에디터 종료하기. esc 누르고 다음 입력. :wq
# 재시작 sudo service mongod restart
1) 패키지 설치
pip install flask
2) AWS에서 포트 열기
EC2 콘솔 > 보안 그룹 > 인바운드 룰 수정
(1) 80포트: HTTP 접속을 위한 기본포트
(2) 5000포트: flask 기본포트
(3) 27017포트: 외부에서 mongoDB 접속을 하기위한 포트
:인바운드 룰 수정에서 자꾸 에러가 나서 진행이 힘들다. 내일 처 음부터 다시 따라해봐야겠다. 그리고 어제 회의에 참석하지 못해서 자세한 내용들을 모두 알 수 없지만 예시로 원본 API 사용시에 있 었던 Cors 에러는 자체 데이터 베이스 사용을 통해 사라졌고, 또 한 상세페이지에 검색 부분은 없애는 방향으로 가는 듯하다. 그리고 자체 데이터베이스는 csv를 import해서 사용하기로 하여 각자 컴퓨터에 import를 한 상태이고, 내일은 상세페이지와 메인 페이지를 서로 오고 갈 수 있도록 구현하는 것과 발표 관해서 회의 가 진행될듯하다.