목록전체 글 (518)
개발놀이터
0. Introduce 실제 운영은 모니터링 환경을 구축한다는 것을 알고 있었습니다. 때문에 실제 운영환경을 가정하고 모니터링 환경을 구축해야겠다는 니즈를 느꼈습니다. 이에 프로메테우스, 그라파나, 스프링 Actuator와 같은 기술을 공부하고 제 프로젝트에 적용했습니다. 1. 기존 프로젝트의 모니터링 기존 프로젝트엔 모니터링 기능이 없었습니다. 2. 기존 프로젝트의 문제 기존 프로젝트는 모니터링의 부재로 실제 애플리케이션의 상태를 알 수 없었습니다. 때문에 어떤 부분이 문제이고 어떤 부분을 고려하여 확장해야 하는지 알 수 없었습니다. 3. ver.3 에서 해결한 문제 기존 프로젝트의 문제점에 대해서 인지하고 있었으며 ver.3에서 모니터링 기능을 제공하기로 결정했습니다. 모니터링 문제를 해결함으로써 C..
이번 프로젝트에서 프로메테우스와 그라파나로 모니터링 환경을 구축했는데 어떤 포스팅에서 Spring Actuator를 사용해서 의미있는 모니터링을 하고싶다는 글을 봤습니다. 엑추에이터..? 이게 뭐지? 궁금해서 공부해보고 포스팅하려고 합니다! 그리고 실제로 시각화 툴과 조합해서 이용해보도록 하겠습니다. Spring Actuator? Spring Actuator는 우리의 애플리케이션을 모니터링하고, 메트릭스를 수집하고, 트래픽을 관찰하고, 우리의 데이터베이스의 상태를 모니터링할 수 있는 스프링의 프로젝트 중 하나입니다. 이 라이브러리를 사용하면 실제로 아무것도 구현하지 않아도 프로덕션 레벨의 도구를 사용할 수 있다는 엄청난 장점이 있습니다. Actuator는 주로 구동중인 애플리케이션에 대한 설정 정보들을 ..
https://coding-review.tistory.com/436 Docker로 Prometheus, Grafana 배포하기 실제 환경을 모니터링하는 것은 매우 중요한 것으로 알려져있습니다. 물론 항상 모니터링 하진 않겠지만 중요한 서비스를 배포해야 한다거나 버그를 고치고 난 뒤에 모니터링을 통해 실제 환경 coding-review.tistory.com 이전 포스팅과 이어집니다. 우리는 앞서 프로메테우스, 그라파나, node-exporter까지 준비를 완료했습니다. 이제 그라파나를 어떻게 사용하는지 천천히 알아보도록 하죠. 그라파나 시작하기 그라파나를 처음 시작하면 다음과 같은 화면이 보입니다. 디폴트 계정은 ID : admin PW : admin 이렇게 되어있으니 로그인 하시면 됩니다. 로그인 후 비..
실제 환경을 모니터링하는 것은 매우 중요한 것으로 알려져있습니다. 물론 항상 모니터링 하진 않겠지만 중요한 서비스를 배포해야 한다거나 버그를 고치고 난 뒤에 모니터링을 통해 실제 환경에 잘 녹아들었는지 확인해야합니다. 이번 포스팅에선 실제 배포된 환경을 프로메테우스와 그라파나로 연동하여 CPU 사용량, 메모리 사용량, 디스크 사용량, HTTP 트래픽 등을 모니터링하는 환경을 구축해보도록 하겠습니다. 모니터링 환경 구축 우리가 최종적으로 목표하는 것은 바로 아래와 같은 환경을 구축하는 것입니다. 도커를 이용해 프로메테우스를 띄우고 그라파나도 띄운 다음 모니터링 하는 것이죠. 그리고 이것이 모두 이루어지면 나만의 모니터링 시스템을 만들 수 있습니다. 이렇게 만들기 위해서 먼저 우리는 준비물이 필요합니다. 도..
배포 버전에서 HTTPS 접근이 아닌 HTTP 접근이기 때문에 넘어갈 수 없다는 페이지를 만났습니다. 때문에 다음으로 넘어가야 하는 상황에서 다음으로 넘어가지 못하고 멈추는 상황이 반복되었습니다. 이는 반드시 해결해야 하는 문제였기 때문에 어떤 부분이 문제일까 고민했습니다. 문제에 대해 몇가지 해결책이 떠올랐습니다. HttpServletResponse 객체를 받아와서 sendRedirect로 바꾼다. 로드밸런서의 80포트를 HTTPS로 열어준다. 1번같은 경우는 시도해봤지만 다시 페이지로 리턴해야 하는 상황이었어서 성공하지 못했습니다. 때문에 2번으로 넘어갔습니다. "HTTPS 요청이 와야하는데 HTTP 요청이 왔다는 얘기니까 HTTP 요청을 HTTPS로 바꿔주면 되는거 아냐?" 접근 자체는 좋았지만 이..
회고를 일기에 쓰려고 하려다 회고는 아무래도 시간이 좀 지나고 적는 일기이다 보니 큰 일기(?) 느낌으로 회고 카테고리를 만들었습니다. 첫 회고는 앞만보고 미친듯이 달린 개발 공부 2주년을 기념하여 처음으로 뒤를 돌아봤습니다. 회고를 작성하면서 가장 마음에 들었던 점은 제가 문서화를 잘해놔서 연도와 날짜를 정확하게 알 수 있었다는 점입니다. 연도 별로 어떤 일이 있었는지 큼지막하게 적어보도록 하겠습니다. 2021년 6월 20일 개발 공부를 시작하다. 처음으로 개발공부라는걸 해봤습니다. 2021년 상반기에 했던 프로젝트가 자바 기반 프로젝트였기 때문에 자바를 중점적으로 공부해보고 싶었습니다. 굳이 자바였던 이유는 자바가 취직이 잘된다고 하길래... 첫 공부는 jsp 였는데 그 때 당시 남겨놨던 문서를 보면..
이전 포스팅과 이어집니다. https://coding-review.tistory.com/432 ACM + ALB 를 이용해 HTTPS 적용하기 (1) 이번 포스팅에선 AWS에서 HTTPS 적용하는 방법에 대해서 포스팅해보도록 하겠습니다. 조금 복잡할 수 있으니 순서대로 차근차근 알려드리겠습니다. 시작하죠! HTTPS 적용하기 1. 도메인 구매하기 우 coding-review.tistory.com 5. ELB (ALB) 설정하기 로드 밸런서는 EC2 왼쪽 탭 아래쪽에 존재합니다. 우리는 ALB 를 선택할겁니다. Application Load Balancer 를 선택합니다. 우선 로드밸런서 이름을 작성하고요. 네트워크 매핑은 자신의 EC2가 어떤 지역에 떠있는지에 따라 선택해야 하는것이 다릅니다. (사실 네..
이번 포스팅에선 AWS에서 HTTPS 적용하는 방법에 대해서 포스팅해보도록 하겠습니다. 조금 복잡할 수 있으니 순서대로 차근차근 알려드리겠습니다. 시작하죠! HTTPS 적용하기 1. 도메인 구매하기 우선 도메인을 구매해야합니다. 저는 cafe24에서 구매했습니다. 우선 구매하고 잠심 대기해주세요. 도메인의 네임서버를 바꿔줘야하는데 지금은 바꾸지 않습니다. 2. Route 53 도메인 등록 유형 NS를 클릭하면 레코드 세부 정보가 나오는데 값에 해당하는 저 네개를 cafe24 관리자 페이지에 들어가 네임서버를 변경해주면 됩니다. 연결하는 방법은 아래의 링크에 자세히 나와있습니다. https://jsikim1.tistory.com/153 AWS에 Cafe24 도메인 연결하는 방법 - Route 53, EC2..
0. Introduce 배포를 진행할 때 고려해야 하는 점을 공부하다 Warm Up 이라는 개념에 대해서 알게 되었습니다. 그리고 클래스 로더, JIT 컴파일러를 Warm Up 하는 방법에 대해서 학습하고 실습했습니다. 1. 기존 프로젝트의 배포 배포를 진행하고 클래스 로더의 지연로딩, JIT 컴파일러의 활성화 조건을 만족하지 않았습니다. 2. 기존 프로젝트의 문제 배포를 하고 난 조금 뒤에는 지연 시간이 안정되지만 배포를 한 직후에는 지연 시간이 많이 발생할 수 있는 문제점을 파악했습니다. 3. ver.3 에서 해결한 점 ApplicationRunner를 구현함으로써 클래스 로더의 지연 로딩을 해결했습니다. Jenkins의 CI 파이프 라인에서 curl 명령어를 통해 많은 요청이 예상되는 API를 wa..
0. Introduce 블루 그린 배포까지 성공적으로 완료했고 Jenkins라는 CI 자동화 툴로 자동화까지 성공했습니다만 실전에서는 어떻게 배포를 하는지에 대해서 궁금해졌습니다. 때문에 Graceful Shutdown을 도입하게 되었습니다. 1. 기존 배포 블루 그린 배포에서 이전 버전이 내려가고 새로운 버전이 올라간다. 2. 기존 배포의 문제점 블루 => 그린으로 배포하는 과정에서 이전 버전을 갑자기 닫아버리면 이전 버전을 이용하고 있던 사용자의 시스템이 멈춰버립니다. 이 때 결제를 진행하고 있다거나 데이터베이스를 이용하는 로직 도중 서버가 내려가버리면 트랜잭션이 에러에의해 롤백되는 것이 아니기 때문에 도중에 로직이 멈춰버릴 가능성이 있습니다. 이는 부정적인 사용자 경험으로 이어질 뿐더러 롤백을 제대..