백엔드(Back End)/DevOps12 [TIL]20230826 - 오토 스케일링 주식 매매 프로젝트 진행 중 과부하 테스트를 통해 우리의 인스턴스가 부하에 견디지 못하고 죽어버리거나 요청에 대한 처리를 잘 하지 못하는것을 발견하게 되었다. 때문에 우리는 이에 대비하여 인스턴스를 오토 스케일링을 통해 가변적으로 확장하거나 축소하여 순간 트래픽에 대비하기로 하였다. 스케일링이란 개념은 단지 인스턴스에 한해서뿐만 아니라 다른 곳에서도 적용되는 개념이지만 이 포스트에서는 EC2인스에 대해서 이야기하겠다. 스케일링은 인스턴스 혹은 컨퓨팅 파워를 늘리는것을 말한다. 스케일링에는 두가지 방법이 있다. 1. 스케일 업 수직적 확장이라는 뜻으로 인스턴스의 갯수는 그대로 둔채로 성능을 높이는 방법으로 확장 방법이 비교적 단순하다는 장점이 있다. 하지만 성능과 비용이 비례하지 않는다는 단점이 있다. 예.. 2023. 9. 4. [TIL]20230816 - 배포 환경에서 SpringBoot 모니터링과 로그확인 이전 포스트에서 cloudwatch를 통해 로그를 확인하고 Grafana와 Prometheus를 통해 모니털링을 하였다. 이번에는 배포 환경에서 진행해보았다. 로컬 환경과 크게 다르지 않지만 그대로 배포환경에서는 적용이 안되어 추가적으로 해주어야 할점에 대해 정리하겠다. 1. CloudWatch를 통해 로그 확인 https://tjsdn9803.tistory.com/94 [TIL]20230811 - CloudWatch 로그 남기기 프로젝트 진행시 로그확인이 필요할거 같아 로그를 저장하고 확인해볼 수 있게 하는 방법을 고민하게 되었다. 우리는 로컬에서는 개발을 주로 하게되고 배포환경에서 서비스를 운영하게 될것 tjsdn9803.tistory.com build.gradle과 logback.xml은 동일하게 .. 2023. 8. 17. [TIL]20230815 - 도커 오류 해결 [Ports are not available: exposing port TCP 0.0.0.0:3000 -> 0.0.0.0:0: listen tcp 0.0.0.0:3000: bind: An attempt was made to access a socket in a way forbidden by its access permissions.] 어제 도커에 그라파나와 프로메테우스를 설치하고 오늘 다시 켜보려하니 다음과 같은 에러 메시지와함께 켜지지 않았다. Error invoking remote method 'docker-start-container': Error: (HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:3000 -> 0.0.0.0:0: listen tcp 0.0.0.0:3000: bind: An attempt was made to access a socket in a way forbidden by its access permissions. 에러 메세지에 대해 찾아보니 이미 사용하고 있는 포트여서 발생하는 현상이라는 글들이 있어 netst.. 2023. 8. 17. [TIL]20230812 - Grafana와 Prometheus를 이용한 모니터링(2) 1. Actuator build.gradle 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'io.micrometer:micrometer-core' implementation 'io.micrometer:micrometer-registry-prometheus' spring actuator란 SpringBoot의 서브 프로젝트로 스프링부트 애플리케이션이 제공하는 여러가지 정보를 쉽게 모니터링할 수 있게 지원하는 라이브러리이다 SpringBoot애플리케이션에서 Actuator를 활성화 하면 애플리케이션을 모니터링하고 관리할 수 있는 엔드포인트에 접속이 가능해진다. 위와 같이 의존성을 추가하여.. 2023. 8. 16. [TIL]20230812 - Grafana와 Prometheus를 이용한 모니터링(1) 1. Prometheus Prometheus는 SoundCloud에서 만든 메트릭 기반의 오픈소스 시스템 모니터링 시스템이다. 여기서 메트릭이란 수집하는 시계열 데이터를 말하며 프로메테우스의 메트릭은 "메트릭명{필드1=값, 필드2=값} 샘플링데이터"와 같이 수집된다. 예시로 요청시간, 데이터베이스 활성 연결 수, CPU사용량 프로메테우스가 메트릭을 수집하는 방법은 pulling 방식으로 프로메테우스가 주기적으로 exporter(모니터링 대상 시스템)로부터 pulling방식으로 메트릭을 수집한다. 일반적인 다른 모니터링 도구는 서버에 클라이언트를 설치하고 클라이언트가 메트릭 데이터를 수집해서 서버로 보내는 push방식으로 동작한다. 2. Grafana 그라파나는 프로메테우스를 비롯한 여러 데이터를 시각화해.. 2023. 8. 15. [TIL]20230811 - CloudWatch 로그 남기기 프로젝트 진행시 로그확인이 필요할거 같아 로그를 저장하고 확인해볼 수 있게 하는 방법을 고민하게 되었다. 우리는 로컬에서는 개발을 주로 하게되고 배포환경에서 서비스를 운영하게 될것이므로 EC2환경에서도 로그확인이 필요했는데 CI/CD를 통해 자동으로 배포하다보니 백그라운드로 애플리케이션이 실행되어 로그 확인이 어려웠다. 때문에 로컬뿐 아니라 클라우드 환경에서도 로그를 확인할 수 있게 해야했다. 1. 로깅 vs System.out.println() 나는 기존에 시스템이 내가 의도한대로 잘 흘러가고 있는지 확인하고 싶을 때, 혹은 에러가 발생했을 때 어느 부분에서 에러가 발생했는지 확인하고 싶을 때 System.out.println()을 통해 콘솔창에 문자열을 출력해서 확인하곤 하였다. 하지만 System... 2023. 8. 15. 이전 1 2 다음