-
Flask, Gunicorn, Nginx, EC2 Ubuntu Server 3] Python 라이브러리 세팅Development Note/H891: YouTube Playlist Application 2023. 12. 29. 23:33
지난번에는 git을 설치하고, ssh 세팅을 완료했다.
git 설치ssh 세팅- python 설치, pip 설치
- Python Environment 설치
- google client 설치
- Flask 설치
- Gunicorn 설치
- nginx 설치
Install Python & Pip
이제, python과 pip를 설치해서 필요한 라이브러리들을 설치해보자. 먼저, python이 설치되어있는지 확인한다.
ubuntu@ip-172-31-34-15:~$ python3 --version Python 3.10.12
이미 설치 되어있었다. 만약 안되어있다면 아래와 같이 설치할 수 있다. apt를 업데이트 한 후 python3를 설치해주면 된다.
sudo apt update sudo apt install python3
이후 pip를 이용해 다른 library를 설치할 수 있도록 아래와 같이 설치해준다.
# Install pip sudo apt install python3-pip pip --version
Python Virtualenv
먼저, 가상환경을 설정할 수 있도록 python3-venv를 설치해준다.
sudo apt-get update sudo apt-get install python3-venv
flask 앱이 있는 디렉토리로 이동해서, 가상 환경을 만들어주고, activate 해준다.
# Move to Directory cd ~/h891-youtube-api/ # Create the virtual environment python3 -m venv venv # Activate the virtual environment source venv/bin/activate
Library 설치
# Google client 설치 # https://developers.google.com/docs/api/quickstart/python pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib # Flask 설치 pip install flask
라이브러리가 잘 설치되었는지 확인하기 위해, 파이썬 프로젝트를 돌려본다. Flask는 간단하게 호출을 할 수 있는 서버이다. 콜의 예시는 아래와 같다. repository에 사용되는 코드는 다음과 같다.
from flask import Flask from google_auth_oauthlib.flow import Flow, InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.http import MediaFileUpload, MediaIoBaseDownload from google.auth.transport.requests import Request app = Flask(__name__) @app.route("/") def health_check(): playlist_id = "PL_A2Ex0h1WCg5V1o4MMFTQQLamZukQAER" // Sample Playlist ID url = f"https://www.youtube.com/playlist?list={playlist_id}\n".format(playlist_id) return url @app.route("/create_pl") def create_pl(title, video_ids): // YouTube logic goes here return url if __name__ == "__main__": app.run(host='0.0.0.0', port=5000)
간단한 Python 앱으로, YouTube에서 플레이리스트 아이디를 이용해서 URL 을 리턴하는 로직이다. 실제 YouTube와 소통하는 로직은 생략했지만, 여기서 핵심은 health_check API 를 이용해서 외부에서 호출이 되는지 확인할 예정이다. 생략된 코드에는 YouTube playlist 생성을 호출하는 API를 사용하므로, google client를 사용한다.
이제, 코드를 실행해준다.
python youtube_api.py
https://en.wikipedia.org/wiki/Flask_%28web_framework%29 Flask app이 돌아가는것을 볼 수 있다.
ubuntu@ip-172-31-34-15:~/h891-youtube-api$ python youtube_api.py * Serving Flask app 'youtube_api' * Debug mode: off WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on all addresses (0.0.0.0) * Running on http://127.0.0.1:5000 * Running on http://172.31.34.15:5000
잘 돌아가는지 테스트를 해보자.
python youtube_api.py
이제 curl을 이용해서 해당 API를 호출해보자.
curl localhost:5000/
health_check만 할 수 있도록 한다.
ubuntu@ip-172-31-34-15:~/h891-youtube-api$ curl localhost:5000/ 127.0.0.1 - - [29/Dec/2023 15:08:13] "GET / HTTP/1.1" 200 - https://www.youtube.com/playlist?list=PL_A2Ex0h1WChzcMQoWfryIQ2Mdj9PAARl
코드에 넣어둔 플레이리스트 주소를 정상적으로 반환했다.
Reference
https://github.com/yeshwanthlm/YouTube/blob/main/flask-on-aws-ec2.md
https://en.wikipedia.org/wiki/Flask_%28web_framework%29
Flask (web framework) - Wikipedia
From Wikipedia, the free encyclopedia Python web framework Flask is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries.[2] It has no database abstraction layer, form valid
en.wikipedia.org
'Development Note > H891: YouTube Playlist Application' 카테고리의 다른 글
Flask, Gunicorn, Nginx, EC2 Ubuntu Server 5] Gunicorn & Nginx (0) 2023.12.30 Flask, Gunicorn, Nginx, EC2 Ubuntu Server 4] Security Group 세팅 (0) 2023.12.30 Flask, Gunicorn, Nginx, EC2 Ubuntu Server 2] Git과SSH 세팅 (1) 2023.12.29 Flask, Gunicorn, Nginx, EC2 Ubuntu Server 1]인스턴스 생성 및 연결 (1) 2023.12.29 Project H891 (1) 2023.12.28