본문 바로가기
반응형

DevOps96

CloudFront 모니터링 하기 최근에 AWS의 서울/도쿄 리전에서 CloudFront 장애가 발생했다. (착한 트위터의 세계에서는 실시간으로 공유가 된다) EC2, RDS, ElasticCache에 비해 CloudFront는 모니터링을 잘 안하게 되는데, 장애가 발생하면 서비스 전체에 직격타가 된다. 대부분의 정적 파일 (이미지 등)이 CloudFront를 통한 CDN으로 전달이 되기 때문이다. 그래서 CloudFront가 평소보다 응답이 늦거나 에러 발생율이 높을때를 알 수 있게 모니터링할 필요가 있다. 여기서는 바로 적용할 수 있는 CloudWatch로 모니터링 하는 방법을 소개하지만, 만약 Datadog 같이 전문적인 APM 도구를 사용하고 있다면 APM을 통해 CloudFront를 모니터링하고 알람을 거는 것이 장기적인 관점에.. 2022. 4. 17.
Github Action 빌드 결과 Telegram Bot으로 보내기 팀 단위의 프로젝트에서는 Github Action 빌드의 결과를 Slack으로 보내겠지만, 개인적인 프로젝트에서는 Telegram을 사용할 때가 많다. 메세지 제한이 없고 슬랙은 무료 Plan에서는 채널당 메세지가 10,000개 제한이 있다. 네이티브 앱이라 슬랙에 비해 속도 체감이 심하다 특정 프로젝트의 build 결과를 텔레그램 메신저로 받을 수 있도록 진행한다. 1. bot 생성 먼저 텔레그램 봇을 생성한다. 텔레그램 메신저로 이동하여 BotFather 를 찾는다. 아래와 같이 BotFather 채팅방에서 /newbot을 입력한다 그리고 나선 봇 이름을 등록한다. 봇 이름은 다음과 같은 규칙이 필요하다 XXXBot 혹은 XXX_bot 과 같이 마지막 뒤에 Bot 혹은 _bot 이 들어가야만한다 생성.. 2022. 3. 26.
CloudFlare Pages로 Next.js 서비스 배포하기 CloudFlare의 정적사이트 플랫폼인 CloudFlare Pages가 출시되었다. https://pages.cloudflare.com/ 이미 Netlify 와 같이 정적 사이트 플랫폼이 많은데 굳이 CloudFlare를 써야하나? 싶었다. (저도 그동안은 Netlify을 썼기 때문에) 그럼에도 써봐야하는 이유는 Free Plan의 구성이 말도 안되게 좋기 때문이다. 무제한 사이트 발행 무제한 요청 무제한 대역폭 Free Plan 라고는 믿을수 없을만큼의 좋은 혜택을 제공한다. 대부분의 정적 사이트가 저정도 혜택은 유료 Plan인걸 고려하면 선택하지 않을 이유가 전혀 없다고 생각했다. 1. Next.js App 생성 먼저 간단한 Next.js App을 생성한다. 여기서 사용된 코드는 모두 Github .. 2022. 3. 25.
Mac 업데이트 이후 Docker 실행 안될 경우 어느날 Mac 업데이트 이후부터, docker-compose 실행이 안되기 시작했습니다. 아래와 같은 에러가 발생했는데요. 전체 에러로그는 다음과 같습니다. Traceback (most recent call last): File "docker/api/client.py", line 268, in _raise_for_status File "requests/models.py", line 941, in raise_for_status requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: http+docker://localhost/version During handling of the above exception, anothe.. 2022. 1. 9.
docker-compose clean restart 하기 docker를 사용하다보면 한번씩 전체 컨테이너를 싹 다 지우고, 깔끔하게 다시 시작하고 싶을때가 있습니다. FATAL: database files are incompatible with server DETAIL: The data directory was initialized by PostgreSQL version xx, which is not compatible with this version yy 언제든 삭제해도 되는 데이터가 아니라, 실제로 계속 저장이 되어야 한다면 Volume에 있는 모든 데이터들을 백업해놓고 진행하셔야 합니다. 지금 같은 경우는 테스트 코드로만 수행될 컨테이너들이라서 바로 삭제할 수 있었습니다. 먼저 기존의 도커 컨테이너를 모두 삭제합니다. (물론 실행중인 컨테이너가 있다면 d.. 2021. 10. 4.
Github Pull Request시 Jest & Docker Test Code 수행하기 테스트 코드를 작성과 함께 항상 해주어야하는 기반 작업중 하나가 Pull Request와 Develop & Master 브랜치 Push시에 전체 테스트 코드가 수행되도록 테스트 자동화 환경을 구축 하는 것입니다. 그래야만, Pull Request의 코드리뷰를 진행할때 기존 기능이 정상작동하는 것을 믿고 리뷰만 진행할 수 있기 때문입니다. 이를 위해 젠킨스와 같은 설치형 CI를 써도 되지만, 배포용도가 아닌 코드리뷰로 요청온 Pull Request는 무조건 전체 테스트를 수행한다로 본다면 Github Action은 꽤나 좋은 선택지입니다. 그래서 이번 시간에는 Jest & Docker 환경에서 Pull Reqeust 발생시 Github Action으로 테스트 수행과 결과를 알려주는 환경을 구성해보겠습니다... 2021. 10. 1.

728x90
반응형