[Docker] JIB로 이미지 빌드하기
·
DevOps/Docker
JIB를 사용하여 Docker 이미지를 빌드해 보자📌 서론이전 포스트에서 Dockerfile을 사용하여 Image를 빌드했다.근데 이미지의 용량을 봤는데 400MB가 넘어가는 것을 확인했다. 이런 이미지의 용량을 보고 최적화를 해보고 싶어 졌고 바로 이미지의 용량 최적화 방법을 알아봤다. 열심히 검색하며 알아보던 도중 JIB라는 것이 존재한다는 것을 알게 되었고 바로 적용시켜 봤다.이번 포스트에서는 스프링 부트에서 JIB를 사용하여 Docker 이미지를 빌드하고 DockerHub에 저장해 볼 예정이다. 또한 이 과정을 통해 이미지의 용량이 얼마나 최적화가 되었는지 알아볼 것이다.이전 포스트 확인하기 [Docker] 단일 단계 빌드 vs 다단계 빌드Docker에서 단일 빌드와 다단계 빌드의 차이점을 알아..
[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개의 포스팅을 천천히..
실전! 테라폼 적용기4편 - ECS 클러스터, 서비스 ,태스크 구성하기
·
DevOps/테라폼(Terraform)
이번 포스트에서는 ECS를 실행시키기 위해 필요한 (cluster, service, task)를 구성해 보자 📌 서론 2편에서 vpc, subnet을 생성했고 3편에서는 그 안에서 사용되는 Auto Scaling Group과 용량 공급자를 모듈로 구성하고 연결했다. 이번에는 ECS 클러스터를 모듈화 하고 클러스터 내에서 운영될 ECS 서비스와 이 서비스가 사용할 ECS 태스크들도 모듈화 하여 ecs 클러스터 구성을 완료시켜 보자 이번 포스트부터는 서브모듈의 폴더 구조 설명은 생략하도록 하겠다. (서브모듈 폴더의 구성은 이전 포스트에 작성되어 있다.) 이전 포스트의 게시글을 읽고 와야 내용이 이어지니 보고 오시는 것을 추천합니다! 실전! 테라폼 적용기3편 - Auto Scaling Group과 용량 공급자..
실전! 테라폼 적용기 [추가설명] - dynamic 블록 사용하기
·
DevOps/테라폼(Terraform)
다이나믹 블록은 설정이 복잡하거나 조건에 따라 변할 수 있는 리소스 속성을 효율적으로 관리하기 위해 사용된다. 📌 서론 우리 팀은 프로젝트에서 3개의 ECS 클러스터를 사용하고 각각 1개씩 ECS서비스를 운영하고 있다. 이 중 2개는 오토 스케일링 그룹(ASG)을 사용하는 반면, 나머지 하나는 ASG를 사용하지 않고 있다. 이런 다양한 설정을 테라폼 코드로 표현하고 싶었는데, 굳이 두 가지 다른 ECS 서비스 모듈을 만들고 싶지는 않았다. 이런 상황에서 테라폼의 유연성을 최대한 활용할 방법이 무엇일까 고민하던 중, 테라폼의 'dynamic 블록'이라는 기능을 발견했다. 이 기능을 사용하면 하나의 모듈 안에서도 조건에 따라 다른 설정을 동적으로 적용할 수 있게 된다. 예를 들어, ASG를 사용하는 경우와 ..