반응형 프로그래밍/invest helper5 Container 내 python앱에서 Google Error Reporting 사용하기 서버에 오류가 발생했을 때 실시간으로 알림을 받을 수 있는 방법이 없나 검색하던 중, Google에서 제공하는 Google Error Reporting 서비스를 찾았다. (https://cloud.google.com/error-reporting) 이 서비스의 장점을 정리해보면 1. 서비스 규모가 크지 않을 경우 거의 무료 2. Google cloud console 앱만 설치하면 실시간 푸시 알림 3. 오류 스택 상세히 확인 가능 4. 문서화가 잘되있어 적용이 매우 쉬움 (https://cloud.google.com/error-reporting/docs/setup/python) 문서를 따라 서버에 Google Error Reporting을 적용한 결과, 서버에서 버그 발생 시 실시간으로 앱으로 푸시알림을 .. 2020. 12. 30. Portainer를 이용해 container 모니터링하기 Portainer란 Portainer는 "Docker 명령을 일일이 수행할 필요가 없이 손쉽게 관리할 수 있는 web UI를 제공해주는 툴"입니다. docker 관리외에 로깅, 모니터링 용도로도 사용이 가능할 뿐만 아니라 설치가 간단하고 직관적으로 사용하기가 쉽습니다. Portainer 설치 ubuntu 18.04 환경에서 도커를 설치한 후에, 아래 명령어로 바로 설치 및 실행이 가능합니다. docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer 설치 및 실행이 완료되면 9000번 포트를 통해 접속하여 테스트합니다. Nginx를 이용해 https 적용 p.. 2020. 12. 29. GCE (Google Compute Engine)에 nginx로 무료로 https 적용하기 GCE에 https를 적용하기 위해 가장 간단한 방법은 GCP의 load balancer 기능을 이용하는 것입니다. 관련 내용은 아래 링크에서 확인할 수 있습니다. 하지만, 이 방법을 사용할 경우 시간 당 비용을 지불해야 됩니다. https://cloud.google.com/load-balancing/docs/ssl-certificates 부하가 작을 경우 큰 비용이 아니지만, 작은 서비스를 시작하는 사람에게는 부담이 될 수 있습니다. Nginx를 이용하면 무료로 https를 적용할 수 있다. GCE에 ubuntu 18.04 OS를 기준으로 방법을 설명하겠다. Nginx 1. nginx 설치 sudo apt update sudo apt install nginx -y 2. 발급받은 도메인을 nginx에 등.. 2020. 12. 29. GCE (Google Compute Engine)에 mysql-server 설치하기 Invest Helper의 sql 데이터베이스를 만들기 위해 GCP (Google Cloud Platform)의 GCE (Google Compute engine)를 이용하였다. GCP에서 제공하는 sql database 전용 서비스인 Cloud SQL이 있지만, GCE와 동일 성능 대비 가격이 비싸다. 물론, Compute Engine에 직접 sql database를 구축할 시 여러 설정을 직접 해야하고 자동백업, 자동스케일링 등의 기능을 제공받지 못하지만 서비스가 매우 커질때까지는 큰 의미가 없을 것 같다. 1. GCE 인스턴스를 생성 콘솔 혹은 gcloud 명령어로 본인이 원하는 성능의 인스턴스를 직접 생성한다. 2. mysql server 설치 현재는 mysql 5.7 버전을 사용하고 있다. sud.. 2020. 12. 28. GCP Compute engine에서 Cloud Run으로 이전하기 첫 선택은 GCP의 compute engine Invest Helper의 "데이터베이스인 mysql"과 "api 구축을 위한 python flask앱"을 google cloud platform (이하 GCP)의 compute engine으로 운영하고 있었다. 작은 compute engine에 mysql + flask를 동시에 올려서 운용하면, 비용적으로 큰 부담이 없을 거라는 판단에서였다. GCP를 선택한 이유도 작은 앱을 운용하는데 마이크로소프트의 Azure나 아마존의 AWS보다 성능 대비 비용이 저렴했다고 판단했기 때문이다 (GCP의 UI/UX가 직관적이고 documentation이 잘되있는 것도 한몫했다) 도커와 쿠버네티스에 눈을 뜨다 최근에 유행하는 마이크로서비스 패턴이 향후 서비스가 커졌을 때 .. 2020. 12. 21. 이전 1 다음 반응형