[Docker] JIB로 이미지 빌드하기
·
DevOps/Docker
JIB를 사용하여 Docker 이미지를 빌드해 보자📌 서론이전 포스트에서 Dockerfile을 사용하여 Image를 빌드했다.근데 이미지의 용량을 봤는데 400MB가 넘어가는 것을 확인했다. 이런 이미지의 용량을 보고 최적화를 해보고 싶어 졌고 바로 이미지의 용량 최적화 방법을 알아봤다. 열심히 검색하며 알아보던 도중 JIB라는 것이 존재한다는 것을 알게 되었고 바로 적용시켜 봤다.이번 포스트에서는 스프링 부트에서 JIB를 사용하여 Docker 이미지를 빌드하고 DockerHub에 저장해 볼 예정이다. 또한 이 과정을 통해 이미지의 용량이 얼마나 최적화가 되었는지 알아볼 것이다.이전 포스트 확인하기 [Docker] 단일 단계 빌드 vs 다단계 빌드Docker에서 단일 빌드와 다단계 빌드의 차이점을 알아..
[Docker] 단일 단계 빌드 vs 다단계 빌드
·
DevOps/Docker
Docker에서 단일 빌드와 다단계 빌드의 차이점을 알아보자📌 서론사이드 프로젝트를 진행하면서 SpringBoot로 백엔드 서버를 구성했고 K8s를 통해 관리하고 있다. 이때 Spring 프로젝트를 Docker로 빌드하여 그 이미지를 pod에 올려서 배포하고 있는데 이 과정에서 스프링부트를 이미지화시키는 Dockerfile을 작성하면서 어떻게 작성해야 Dockerfile을 잘 작성했다고 할 수 있을지에 대한 고민이 생겼다.그래서 여러 가지 작성 방식을 알아보다가 "단일 단계 빌드, 다단계 빌드"가 존재한다는 것을 알게 되었다.이번 포스트에서는 이 내용들에 대해서 간단하게 정리해 보도록 하겠다. 1. Dockerfile 코드단일 단계 빌드 Dockerfile# 사용할 Java 이미지FROM eclipse..
[k8s] M1 mac에서 k8s, k8s dashboard 구성하기
·
DevOps/k8s
M1에서 k8s 환경을 구성하고 k8s dashboard까지 세팅해 보자📌 서론최근 새로운 회사로 이직한 후 회사 적응에 집중하기로 정하여 한동안 글을 작성하지 못했습니다.한 달쯤 지난 지금 그동안 스스로의 미래에 대해 많은 생각과 고민을 했으며 저는 개발, DevOps를 모두 해보고 싶다는 생각이 들어 다시 개인 공부를 시작했습니다.그래서 이 모든 것을 할 수 있는 개인 프로젝트를 하나 만들었고 이 프로젝트의 로컬 인프라 구성을 k8s로 정했습니다. 이번 포스트는 제가 Apple silicon chip 맥북(M2 max)에서 k8s를 설치한 후 k8s 대시보드까지 세팅해 보는 과정을 설명하고자 합니다. 이 과정 중 많은 블로그들을 확인했지만 그중 한 블로그의 도움을 많이 받았으며 저는 그 과정을 그대..
[nGrinder] ECS로 기동중인 SpringBoot 부하 테스트
·
DevOps/nGrinder
상용에서 실행 중인 레시피 서버에 부하 테스트를 진행했다. 📌 서론 이번 포스트에서는 "레시피아" 상용 서버의 부하 테스트를 진행했다. 테스트를 통해 서버 성능을 비교하기 위해 내 노트북(M2 max)과 냉면님의 노트북(m1 air)을 사용했다. 상용 서버는 AWS의 t4g.small을 사용 중이다. (아직 사용자가 없어서 저성능 ec2를 사용하고 있다.) 지금부터 테스트 결과를 같이 확인해 보자 1. 점차 유저수를 증진시키며 테스트 "레시피 상세 조회" API에 get요청을 보내는 것으로 모든 테스트를 진행했다. 테스트 시간은 모두 1분으로 동일하게 설정했다. 상용 (t4g.small): 10명 상용 (t4g.small): 50명 상용 (t4g.small): 99명 상용 (t4g.small): 198명..
[nGrinder] 서버 부하 테스트 진행 (SpringBoot)
·
DevOps/nGrinder
세팅과 스크립트 설정이 모두 끝났으니 테스트를 진행해 보자 📌 서론 이전 포스트를 통해 테스트에 사용할 스크립트까지 작성을 완료했다. 자바 버전 때문에 발생한 오류로 조금 고생했지만 간단하게 해결되었고 JMeter에 비해 훨씬 우수한 UI와 사용성으로 세팅 자체가 너무 즐거웠다. 오늘 포스트에서는 지금까지 열심히 세팅한 nGrinder를 통해 로컬 환경(Mac OS)에 띄운 SpringBoot서버 테스트를 진행해 본 결과를 공유하고자 한다. 1. 성능 테스트 생성 상단의 "성능 테스트" 메뉴를 누른다. 테스트를 생성하는 페이지로 이동된다. 이동된 페이지 우측의 "테스트 생성" 버튼을 클릭한다. 테스트 생성하기 아래와 같이 테스트를 세팅하는 화면으로 이동된다. 가장 먼저 "테스트명"과 설명을 적어줬다. ..
[nGrinder] 스크립트 작성하기
·
DevOps/nGrinder
nGrinder 테스트를 위한 스크립트를 작성하자 📌 서론 이전 포스트에서 nGrinder 세팅을 마쳤다면 이번에는 스크립트를 작성해 보자 자바 버전에서 오류가 나서 약간 고생했지만 빠르게 해결되었다. (자바 17 말고 자바 11을 사용해야 한다.) 만약 zsh를 사용하고 있다면 2번 중간에서 읽다가 바로 3번으로 넘어가서 세팅하는 것을 추천한다. 만약 nGrinder 설치를 안했다면 아래의 포스트를 보고 설치부터 진행하도록 하자 [nGrinder] M1 Mac에 설치하기 부하 테스트를 위해 nGrinder를 사용해 보자 📌 서론 열심히 레시피아를 만들어서 원스토어에 배포했지만 아직 유저가 별로 없다. (거의 없다... 또륵) 사용하는 유저는 별로 없지만 AWS에서 Cloud Nat curiousjina..
[nGrinder] M1 Mac에 설치하기
·
DevOps/nGrinder
부하 테스트를 위해 nGrinder를 사용해 보자 📌 서론 열심히 레시피아를 만들어서 원스토어에 배포했지만 아직 유저가 별로 없다. (거의 없다... 또륵) 사용하는 유저는 별로 없지만 AWS에서 Cloud Native로 구축한 레시피아 서버가 어느 정도의 부하를 버틸 수 있는지 궁금했다. 다른 프로젝트를 JMeter로 테스트 해본적이 있는데 편하긴 했지만 뭔가 부족한 느낌이었다. 그래서 이번에는 팀원인 평양냉면님과 회의를 통해 nGrinder 사용해서 부하 테스트를 진행하기로 결정했다. 지금부터 설명할 nGrinder는 "nGrinder 설치, groovy 스크립트 작성, 테스트 진행" 총 3가지 내용으로 포스팅이 나눠질 예정이다. 만약 nGrinder를 직접 사용해보고자 한다면 3개의 포스팅을 천천히..
단일 장애 지점(SPOF)이란?
·
DevOps
단일 장애 지점에 대한 궁금증이 생겼다. 지금부터 알아보도록 하자! 📌 서론 세미나 영상을 보던도중 단일 장애 지점에 대한 언급이 있었는데 설명없이 넘어가다보니 흐름상 이해는 했지만 정확히 이게 어떤 상황인지 잘 몰라서 답답했던 기억이 있다. 그래서 직접 단일 장애 지점이 뭔지 조사해보고 정리해 봤다. 1. 단일 장애 지점(SPOF)이란? 단일 장애 지점(SPOF) 단일 장애 지점(SPOF)은 시스템이나 네트워크의 한 부분이 고장 났을 때 전체 시스템의 가동이 멈추는 상황을 말한다. 이런 지점은 시스템의 취약점으로 작용하고, 이를 해결하지 않으면 예기치 않은 상황에서 전체 시스템이 마비될 수 있다. 가장 흔한 예로는 중요한 데이터베이스 서버, 핵심 네트워크 스위치, 또는 주요 애플리케이션 서버가 하나만 ..