Cloud Study - Docker, Python, Flask

2021. 3. 16. 02:12Work/Cloud_Devops

728x90
반응형

-> Docker Image Build

** Flask?

: 웹 애플리케이션 개발을 위한 파이썬 프레임워크, 마이크로 프레임 워크

: 애플리케이션 기능을 추가할 수 있는 확장 기능 지원

** Python web framework

: Django >> 가장 인기가 많고 널리 쓰이는 프레임 워크, 웹 개발 작업을 처리하는 데 사용하는 수십 개의 추가 기능이 포함되어 있어서 조금 무겁다. 

: Flask >> 개발자가 사용하려는 도구와 라이브러리를 스스로 선택하도록 하여 가볍다.

: Tornado >> 비공기 작업을 지원하기 위해 구축 되었다. 네이티브 웹 소켓을 지원한다. 웹 소켓을 매우 쉽고 간단히 구현할 수 있다.

: Pyramid >> 웹 응용 프로그램을 쉽게 작성할 수 있게 해준다. 작은 규모로 시작하지만 점차 확장하여 응용프로그램이 커짐에 따라 확장되는 아키텍처 디자인

: Bottle >> 빠르고 간단하며 가벼운 WSGI 마이크로 웹 프레임 워크

 

-> python3-pip 설치

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, Docker!'

-> AWS에서 인바운드 규칙을 풀어 줘야 연결이 된다.

-> flask를 실행 시켜 준다. 연결이 완료 되면 EC2의 퍼블릭 IPv4 주소를 사용하여 연결해야 한다.

: py에 등록된 것이 잘 뜨는 것을 확인 할 수 있다.

 

-> Dockerfile 생성

Docker 이미지는 다른 이미지에서 상속 될 수 있습니다. 
따라서 자체 기본 이미지를 만드는 대신 Python 애플리케이션을 실행하는 데 필요한 모든 도구와 패키지가 이미 포함 된 공식 Python 이미지를 사용합니다.

-> 이미지 구축

Got permission denied while trying to connect to the Docker daemon socket...

: 해당 관련 오류가 나오면 아래와 같이 처리 한다.

sudo usermod -a -G docker $USER 
sudo reboot

-> 현재는 Flask만 필요하기 때문에 requirements.txt에 Flask만 넣습니다.

-> Docker images가 잘 생성된것을 볼 수 있습니다.

** docker rmi -f $(docker images -f "dangling=true" -q)라는 명령어를 통해 none type을 지울 수 있다.

 

-> Docker를 통한 flask 실행

-> 서버 연결이 거부되어 명령이 실패했다. 호스트의 포트를 5000에 매핑 해야 한다.

-> curl이라는 http 메시지를 요청하여 결과를 확인할 수 있다. $ curl <AWS의 Public IP>

 

*본 내용은 코멘토 직무 부트 캠프를 진행하면서 공부, 혹은 배용 내용들을 정리한 글입니다.

(AWS 해커톤 우승자 출신 글로벌 엔지니어와 클라우드 직무 A to Z)

 

728x90
반응형

'Work > Cloud_Devops' 카테고리의 다른 글

Cloud Study - DevOps  (0) 2021.03.19
Cloud Study - Docker, mysql  (0) 2021.03.17
Cloud Study - Docker  (0) 2021.03.15
Cloud Study - AWS EC2 설치, Ubuntu  (0) 2021.03.15
Cloud Study - 비용 알람  (0) 2021.03.15