Flask란?
Flask는 웹 어플리케이션 개발을 위한 파이썬 프레임워크이다.
Flask는 Django보다 가볍고 micro한 웹 서비스를 지향해서 초보자가 접근하기 쉽고, 확장성도 좋다.
Flask 사용을 위한 환경설정
1. AWS에서 OTP설정 후 EC2 생성
- MFA 활성화를 통해 OTP를 설정하여 보안을 강화한다.
- AWS에서 EC2 인스턴스를 생성한다.
아래 링크를 참조하여 생성하면 되고, ubuntu계정에 접속까지만 완료하면 된다.
https://ssongblog.tistory.com/134?category=902345
2. FTP 서비스 설정 : cyberdunck
- 파일을 전송하는 방법은 두 가지가 있다.
1. SCP : ftp프로그램보다 속도가 빠르며, 서버와 서버간 파일을 이동할 때 유용하다
아래 코드를 통해 pyenv.sh파일을 key.pem로 인증하여 퍼블릭IP서버의 ubuntu계정 최상위 디렉토리로 옮긴다.
scp -i ~/Downloads/.ssh/key.pem ~/Downloads/pyenv.sh ubuntu@퍼블릭IP:~/
2. FTP (cyberduck)
- cyberduck (다운로드)
https://cyberduck.io/download/
- filezilla
https://filezilla-project.org/download.php
- cyberduck 서버 접속 설정
- SFTP 선택
- 서버 : 퍼블릭 IP 설정
- 사용자 이름 : ubuntu
- SSH Private Key : key.pem 파일 선택
- 접속을 허용하여 들어가보면, 쉽게 파일을 옮기고 전송할 수 있게 된다. (매우 편리)
3. pyenv 설정
- cyberduck을 이용해 환경설치를 위한 pyenv.sh파일과 requirements.txt를 서버로 이동한다.
- 서버에서 pyenv.sh 파일을 실행한다. (시간이 조금 오래 걸린다 - 파이썬 설치도 있기 때문)
ls
source pyenv.sh
- 패키지를 설치한다.
pip install -r ~/requirements.txt
4. Jupyter Notebook 설치 및 설정
- ipython jupyter 패키지를 설치한다.
pip install ipython jupyter
- 설정 파일을 생성한다.
jupyter notebook --generate-config
- 패스워드를 생성한다.
ipython
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password: password
Verify password: password
Out: sha1:6600c5733ef3:b683d6afba16b3403fdf9a75ac38b7d8e7f733bb
In [3]: quit
위 패스워드값을 기억해야한다.
- 설정파일에 접속하여 파일을 수정한다.
sudo vi /home/ubuntu/.jupyter/jupyter_notebook_config.py
[수정모드]
c.NotebookApp.ip = '프라이빗IP' # 내부 IP 주소
c.NotebookApp.open_browser = False
c.NotebookApp.password = 'sha1:6600c5733ef3:b683d6afba16b3403fdf9a75ac38b7d8e7f733bb'
- 서버의 8888 포트를 활성화한다.
이미 인스턴스 생성 시에 보안규칙에 8888포트를 추가해놓았다.
- 서버에서 jupyter notebook을 실행한다.
jupyter notebook
- 브라우저로 접속한다 http://퍼블릭IP:8888
이제 아까 설정해줬던 패스워드를 입력하면 접속이 완료된다.
*터미널 창에서 ctrl + c 를 누르면 접속을 종료한다.
5. Mysql 설치 및 설정
아래 링크에서 2.개인 PC에서 생성한 서버에 접속하고 MySQL 설치하기를 참고한다. (내용이 똑같음)
https://ssongblog.tistory.com/134?category=902345
- mysql-server와 mysql-client를 설치한다.
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install -y mysql-server mysql-client
- python 패키지를 설치한다.
sudo apt-get install libmysqlclient-dev
pip install mysqlclient sqlalchemy pymongo
- 내부접속 패스워드를 설정한다.
mysql -u root -ppassword
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'dss';
mysql> FLUSH PRIVILEGES;
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
mysql> exit
- 외부접속 허용을 설정한다.
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1을 0.0.0.0으로 수정한다.
- 외부접속 패스워드를 설정한다.
mysql -u root -ppassword
mysql > grant all privileges on *.* to root@'%' identified by 'password';
exit
- 서버를 재시작한다.
sudo systemctl restart mysql
- Instance의 3306번 포트를 활성화한다.
이미 인스턴스 생성 시에 보안규칙에 3306포트를 추가해놓았다.
- Database management application을 다운로드한다
MAC : Sequel Pro https://www.sequelpro.com/
common : MySQL Workbench https://www.mysql.com/products/workbench/
- 샘플데이터를 저장한다.
world database https://dev.mysql.com/doc/index-other.html
mysql -u root -p world < world.sql
을 통해 옮기거나,
sql> create database world;
sql> use world;
sql> source world.sql
를 통해 샘플데이터를 저장한다.
6. MongoDB 설치 및 설정
포스팅을 참조하여 몽고DB 설치 및 설정을 진행해준다.
https://ssongblog.tistory.com/151?category=902869
- MongoDB 설치
sudo apt install -y mongodb
- MongoDB 설정
sudo vi /etc/mongodb.conf
vi 에디터를 통해 아래 설정을 변경해준다.
bind_ip = 0.0.0.0 # 외부접속 허용
auth = true # 패스워드 설정 허용
- 패스워드 설정
mongo
> use admin
> db.createUser({user:"user", pwd:"password", roles:["root"]})
> quit()
- 서버를 재시작한다.
sudo systemctl restart mongodb
- Instancedml 27017번 포트를 활성화한다.
이미 인스턴스 생성 시에 보안규칙에 27017포트를 추가해놓았다.
이제 FLASK를 사용하기 위한 환경설정이 완료되었다.
'Skills > Flask' 카테고리의 다른 글
[Flask] ngrok과 nginx 설치하기 (0) | 2021.11.21 |
---|---|
[Flask] Jupyter Notebook에서 Falsk 사용하기 (1) | 2021.11.21 |