반응형 Django9 Django SQL performance checking & Slack notification django 에서 한 view 내에서 사용되는 쿼리의 성능 체크를 라이브에서 하고 싶을 때 간단하게 signal callback 을 이용하여 쿼리타임을 계산하고, 일정 threshold 값 이상인 경우 슬랙 노티를 보내는 기능을 구현한다. import requests from django.db import connection @receiver(request_finished) def monitor_db_connection(sender, **kwargs): def send_slack_message(query, timer): slack_message = { 'channel': '#{channel_name}', "text": '*Elapsed Time*\n{} sec\n*Query*\n```{}```'.form.. 2020. 12. 9. Nginx 설정으로 분리된 Web, WAS 연결하기 가장 기초적인 단계로는 우분투 서버 한 대에 nginx 설정을 하고, 같은 공간에 서버 프로그램도 둬서 릴리즈를 하는 경우가 있지만, 이런 경우 Web, WAS(Web Application Server)가 분리되지 않아 보안이 취약할 수 있다. 보통 Web과 WAS는 다른 Zone으로 분리되어 있으며, WAS는 내부망으로 설정하여 외부에서 어떠한 접속도 하지 못한다. WAS 로는 DMZ Zone 에 있는 Web으로부터 걸러 들어온 요청만 들어올 수 있게 설계하는 것이 가장 좋다. 이는 다음에 AWS Web, WAS 분리에서 다뤄보겠다. 우선 Web, WAS 가 분리되어 있다고 하고, WAS는 이전 글에 작성한대로 어플리케이션이 이미 실행중이라고 가정한다. nginx 설정은 아래와 같이 할 수 있다. su.. 2020. 11. 27. Ubuntu 16.04 Flask, django uwsgi 서비스 등록하기 Flask, django로 개발을 마친 후에 우분투 기반으로 서버를 가동하고 싶을 때, 사전 작업으로 기존에 쓰던 app.py 혹은 manage.py 를 사용하지 않고, 서버용 스크립트를 따로 만든다. 나는 보통 네이밍을 wsgi_{environment}.py 로 만드는데, 스크립트는 기존 앱과 거의 비슷하게 생겼지만, 해당 서버용 스크립트는 기존 디버그 환경과는 다른 변수로 세팅하는 목적이 있다. (환경 변수로 커버할 수 있으면 같은 것 써도 무방하긴 할 듯..) 우선 ubuntu 에서 uwsgi 설치를 해야 한다. pip3 install uwsgi 그 다음 서비스에 관련된 정보를 넣을 dev.ini 파일을 만든다 [uwsgi] module = wsgi:app # wsgi.py 에서 app 으로 정의된.. 2020. 11. 27. 이전 1 2 다음 반응형