본문 바로가기

IT87

Actuator & Prometheus를 활용한 Spring Boot 애플리케이션 모니터링 이번 글에서는 Actuator와 Prometheus를 활용하여 쿠버네티스 클러스터 내에서 실행 중인 스프링부트 애플리케이션 모니터링을 하는 방법에 대해 알아볼 것이다. Prometheus Server도 쿠버네티스 클러스터 내에서 구동중이라는 전제로 진행하도록 하겠다. 1. 알아보기 전에 우선 알아보기 전에 Actuator와 Prometheus의 정의에 대해서 알아보자. 1-1. Actuator란? actuator란 쉽게 말해 스프링부트 애플리케이션에서 제공하는 여러가지 정보를 모니터링 하기 쉽게 해주는 기능이며, 컨텍스트 빈, 환경설정, 자동설정, JVM 상태 등의 정보를 확인할 수 있다. 또한 필요한 정보를 가공할 수도 있으며, 내가 만든 어떤 값을 actuator를 통해 제공할 수도 있다. 2-1. .. 2020. 1. 19.
AWS 구성요소 정리 이번 글에서는 AWS(Amazon Web Service)의 구성요소에 대해 정리를 하고자 한다. 1. EC2(Elastic Compute Cloud) AWS 클라우드에서 확장식 컴퓨팅을 제공한다. EC2를 사용하면 하드웨어에 선 투자할 필요가 없어 빠른 애플리케이션 배포가 가능하다. 또한 원하는 만큼 가상서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 가능하다. 요구사항이나 갑작스런 인기 증대 등 변동사항에 따라 신속하게 규모 확장/축소가 가능하여 서버 트래픽 예측 필요성이 줄어든다. Amazon EC2는 다음의 기능을 제공한다. Instance(인스턴스) : 가상 컴퓨팅 환경 AMI(Amazon Machine Image) : 서버에 필요한 운영체제와 여러 소프트웨어들이 구성된 상태로 제공되는 .. 2020. 1. 17.
쿠버네티스 시작하기(12) - Prometheus와 Grafana 연동으로 모니터링 대쉬보드 구축하기 지난 장에서는 Prometheus & Node-Exporter & AlertManager를 활용한 모니터링 시스템을 구축하였다. 하지만 Prometheus로는 지표(Metric)정보를 확인하기는 많이 불편했다. 따라서 이번 장에서는 지표정보를 좀 더 쉽게 볼 수 있게 Prometheus(프로메테우스)와 Grafana(그라파나)를 연동시켜 모니터링 대쉬보드를 구축할 것이다. 1. Grafana란 무엇인가? 그라파나(Grafana)란 지표(metric)정보를 분석/시각화하는 Open source 툴이다. 주로 인프라 정보 및 App 분석 데이터를 시각화하기 위한 대쉬보드로 주로 사용된다. 그라파나는 Graphite, Prometheus, Elasticsearch, InfluxDB와 같은 시계열데이터베이스를 .. 2020. 1. 17.
쿠버네티스 시작하기(11) - Prometheus & Node-Exporter & AlertManager 연동 이전 장에서는 CI/CD를 구축하고 SonarQube & Jacoco로 코드정적분석 & 소스커버리지 관리 기능까지 적용해 보았다. 이번 장에서는 쿠버네티스 클러스터에 Prometheus(프로메테우스) & NodeExporter & AlertManager를 연동시켜 쿠버네티스 클러스터 및 서버환경를 모니터링할 수 있는 프로세스를 구축해보도록 하겠다. 1. 프로세스 구성도 이번 프로젝트에서 진행한 Prometheus & Node-Exporter & AlertManager를 활용한 모니터링 프로세스 구성도는 다음과 같다. 그림에 대해 간략하게 설명하자면, 우선 각 서버 및 각 쿠버네티스 노드에 Node-Exporter가 구동되고 있으며, Node-Exporter와 kube-state-metrics를 통해 Pr.. 2020. 1. 15.
CI/CD 란 무엇인가? DevOps 관련 공부를 하다보면 CI/CD에 대한 말이 자주 나온다. 하여 CI/CD에 대해 정리를 간단하게 해보고자 한다. 1. CI/CD란? CI/CD란 Continuous Integration(지속적인 통합), Continuous Delivery(지속적인 서비스제공), Continuous Deployment(지속적인 배포)의 약자로, 애플리케이션 개발 단계를 자동화하여 애플리케이션 개발을 보다 짧은 주기로 고객에게 제공하는 방법이며, 새로운 코드 통합으로 인해 개발 및 운영팀에서 발생하는 문제(일명 통합지옥(Integration hell))를 해결하는 솔루션이다. CI/CD는 애플리케이션 통합, 테스트, 제공, 배포에 이르는 라이프사이클 전체에 걸쳐서 지속적인 자동화와 모니터링을 제공하며, 이러한.. 2020. 1. 13.
쿠버네티스 시작하기(10) - SonarQube & Jacoco 연동하기 지금까지 쿠버네티스 클러스터에 간단한 CI/CD 파이프라인을 만들어보았다. 이제 기본적인 파이프라인은 생성해보았으니 파이프라인을 좀 더 업그레이드 해보도록 하자. 우리가 구축한 CI/CD 파이프라인에 추가적으로 필요한 기능은 바로 테스트 자동화다. 이번 장에서는 테스트 자동화를 위해 CI/CD 파이프라인에 SonarQube와 Jacoco를 적용할 것이다. 1. 테스트 자동화란? 보통 JAVA로 개발된 소스를 테스트할 때는 JUnit을 활용해 테스트 코드를 작성하고 해당 코드를 실행해서 개발한 소스가 원하는대로 정상 동작하는지를 테스트한다. 테스트 자동화란 이 테스트 코드를 자동으로 실행시키는 것으로, 보통 CI/CD 파이프라인 내 STEP에 추가시켜 파이프라인 실행 중에 배포 환경에서 개발한 소스가 정상.. 2020. 1. 13.
쿠버네티스 시작하기(9) - CI/CD 파이프라인 만들기(3/3) - Gitlab webhook 설정 및 Slack 연동 이전 글에서 쿠버네티스 클러스터에 올라간 Jenkins와 Gitlab간의 연동을 시킨 후 컨테이너 배포까지 수행해 보았다. 이번 글에서는 Gitlab으로 로컬PC의 소스 Push/Merge 시 자동으로 Jenkins에서 빌드/배포가 수행되는 프로세스를 만들어 볼 것이고, 빌드/배포가 완료된 후에는 Slack을 통해 알람 메시지를 전송할 것이다. 1. 시작하기 전에 현재까지 완성된 빌드/배포 프로세스를 보면 아래와 같다. 개발/운영자가 로컬PC에서 소스 변경 후 git push/merge를 통해 Git Repository(gitlab/github ...)로 소스 업로드 -> 완료 소스가 업로드되면 Git Repository에서 Jenkins로 Webhook 전송 ->미완료 jenkins에서 Webhook을.. 2020. 1. 11.