Root289 [NCP] NKS로 개발환경 구성하기 Chapter 5. Loki, Promtail, Grafana를 활용한 로그 통합 모니터링 구축 - Feat Loki-Stack 서론loki-stack은 grafana labs에서 좀 더 쉽게 loki-promtail-grafana 스택을 구축할 수 있도록 개발한 하나의 스택입니다. 때문에 loki-stack을 활용한 통합 모니터링 구축은 정말 쉽습니다. 다만 하나의 클러스터에 모든 자원이 설치되기 때문에, 현업에서 사용하기에는 추천할 수 없는 방법이라고 생각하였습니다. 본 포스팅에서는 loki-stack을 활용해서 하나의 클러스터에 통합 모니터링을 구축하는 방법부터 시작하여, 두 개 이상의 클러스터에서 (mgt-cluster 및 dev-cluster) 알맞은 소프트웨어를 설치하여 그 상호작용을 통해 제가 Loki-promtail-grafana 스택을 구축한 방법을 포스팅해보려 합니다. dev-cluster 및 mgt-clust.. Infrastructure/Kubernetes 2025. 2. 18. Kubernetes 오브젝트 - Deployment에서 Pod,Container 리소스 조절하기 서론우리가 kubernetes를 사용하는 목적은 많지만, 가장 큰 목적은 "효율적인 자원의 관리"라고 생각합니다. 쿠버네티스 deployment 오브젝트를 통해 pod를 생성할 때 파드의 리소스를 효율적으로 관리하는 방법을 알아보도록 하겠습니다.본론1.. spec.replicas디플로이먼트에서는. spec.replicas 스펙을 통해서 replicasets을 조절 가능합니다. 아래와 같이 spec 하위에 replicas의 개수로 배포되는 파드의 레플리카 수를 조절할 수 있는 건 다들 아실 텝니다.apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-deployment labels: app: nginxspec: replicas: 3그렇다면, 각 파.. Infrastructure/Kubernetes 2025. 2. 17. [NCP] NKS로 개발환경 구성하기 Chapter 4. Service, Ingress, Ingress Controller를 이용한 DNS의 네트워킹 구성 with Aws ALB 서론이전 포스팅들을 통해 cluster 내부에 deployment로 생성된 pod들로 트래픽을 보내야 합니다. 우리는 파드로의 접근을 이전 포스팅에서 서비스라는 쿠버네티스 오브젝트를 사용하여 이미 완성시켜 놨습니다. [이전글] [NCP] NKS로 개발환경 구성하기 Chapter 3. NextJs Application 배포하기 (Feat Ncp SourcePipeLine)서론NextJs 프레임워크로 제작한 Front Application을 cluster에 배포하는 일련의 과정을 포스팅하고자 합니다. 본 포스팅은 NCP 서비스를 기반으로 작성되는 점 참고 부탁드립니다. 빌드는 NCP의 SourceBuildmin-nine.tistory.com본론1. Service1-1. 기존 service.yaml 설명아래.. Infrastructure/Kubernetes 2025. 2. 15. [NCP] NKS로 개발환경 구성하기 Chapter 3. NextJs Application 배포하기 (Feat Ncp SourcePipeLine) 서론NextJs 프레임워크로 제작한 Front Application을 cluster에 배포하는 일련의 과정을 포스팅하고자 합니다. 본 포스팅은 NCP 서비스를 기반으로 작성되는 점 참고 부탁드립니다. 빌드는 NCP의 SourceBuild, 배포는 SourceDeploy, 파이프라인은 SourcePipeLine을 사용하며 Kubernetes는 NKS로 작성하였습니다.[이전글] [NCP] NKS로 개발환경 구성하기 Chapter 2. Spring Boot Application 배포하기 (Feat Ncp SourcePipeLine)서론SpringBoot 프레임워크로 제작한 API Application을 cluster에 배포하는 일련의 과정을 포스팅하고자 합니다. 본 포스팅은 NCP 서비스를 기반으로 작성되는 .. Infrastructure/Kubernetes 2025. 2. 14. Docker을 이용해 NextJs Application 빌드하기 서론NextJs Framework 기반의 Application을 build하는 방법중 많이 쓰이는 방법은 패키지 매니저를 활용한 빌드입니다. 는 패키지 매니저와 더불어 Docker를 활용하여 빌드 및 이미지화 하는 방법을 포스팅하려 합니다. 본 포스팅에서는 yarn 패키지 매니저를을 활용합니다. 본론1. Node 버전 확인nextJs는 react기반의 프레임워크로써 버전에 따라 최소 지원되는 NodeJs버전이 다릅니다. 저는 nextJs 14 버전의 어플리케이션을 빌드할 예정이고 Node.js 버전은 최소 18.17.0 버전을 사용해야하는데 저는 20버전을 활용합니다. package manager로 yarn을 사용하기 때문에 docker hub에서 node 20버전중 yarn이 함께 설치되어있는 ap.. Infrastructure/Docker 2025. 2. 14. [NCP] NKS로 개발환경 구성하기 Chapter 2. Spring Boot Application 배포하기 (Feat Ncp SourcePipeLine) 서론SpringBoot 프레임워크로 제작한 API Application을 cluster에 배포하는 일련의 과정을 포스팅하고자 합니다. 본 포스팅은 NCP 서비스를 기반으로 작성되는 점 참고 부탁드립니다. 빌드는 NCP의 SourceBuild, 배포는 SourceDeploy, 파이프라인은 SourcePipeLine을 사용하며 Kubernetes는 NKS로 작성하였습니다. [이전글] [NCP] NKS로 개발환경 구성하기 Chapter 1. 개발 환경이 없었다서론우리 회사에는 개발환경이 존재하지 않았습니다. local에서 개발하고, production에 바로 배포하고 오류가 발생하면 롤백하며 프로덕션 서비스를 운영하는 것이였습니다. 맞습니다. 흔히 말하min-nine.tistory.com 본론1. CI/CD .. Infrastructure/Kubernetes 2025. 2. 13. Kubernetes Object 알아보기 2 – StatefulSet, DaemonSet, Job, CronJob 서론쿠버네티스에는 워크로드를 배포하고 관리하기 위해 다양한 오브젝트가 존재합니다. 그중에서도 일반적인 서비스(웹, API 등)를 배포할 때 주로 쓰이는 Deployment와는 달리 StatefulSet, DaemonSet, Job, CronJob은 각각 특수한 목적을 갖습니다.StatefulSet: 상태ful(상태가 중요한) 애플리케이션을 위해, 안정적인 네트워크 ID 및 스토리지 관리 등을 제공DaemonSet: 모든 노드마다 반드시 실행되어야 하는 워크로드(Pod)Job: 특정 작업을 한 번(또는 정해진 횟수) 실행 후 종료해야 하는 배치성 작업CronJob: 스케줄러 역할을 수행하며, 정해진 시간/주기에 맞춰 Job을 실행이번 포스팅에서는 위 4가지 오브젝트가 각각 어떤 역할을 하고, 어느 상황에서.. Infrastructure/Kubernetes 2025. 2. 13. Kubernetes Object 알아보기 1 - Pod, Namespace, Service, Deployment, ConfigMap, Secret, Ingress 서론쿠버네티스에는 pod, namespace, service, deployment, configMap, secret, ingress 등 엄청나게 많은 Object들이 존재합니다. Kubernetes를 사용하려면 꼭 알아야 할 Object들에 대해서 상세히 알아볼 겸 본 포스팅을 작성합니다.본론1. PodPod란?쿠버네티스에서 가장 작은 배포 단위(Unit)입니다.하나 이상의 컨테이너가 모여서 동작하는 논리적인 집합체입니다.일반적으로 하나의 Pod에는 하나의 주 컨테이너가 들어가지만, 사이드카 컨테이너(예: 로그 수집, 프록시 등)를 함께 두는 경우도 많습니다.언제/어떻게 사용하나?실제 애플리케이션을 컨테이너 단위로 배포하고 실행할 때 사용합니다.로그 수집 에이전트나 모니터링 에이전트를 같이 배포해야 하는.. Infrastructure/Kubernetes 2025. 2. 13. Docker을 이용해 SpringBoot Application 빌드하기 서론SpringBoot Framwork 기반의 Application을 build하는 방법은 많이 있습니다. 그 중 Docker를 활용하여 빌드 및 이미지화 하는 방법을 포스팅하려 합니다. 본 포스팅에서는 gradle build tool을 활용합니다. 본론1. JDK , Spring Boot 버전 및 빌드 툴 확인하기Application에서 사용하는 java 및 springboot 버전을 확인하려면 build.gradle 파일에서 확인할 수 있습니다. 2. docker hub에서 jdk 이미지 찾기어플리케이션을 컨테이너 이미지로 만들때에 중요한건 아무래도 경량화라고 생각합니다. 때문에 저는 jdk 버전에 맞는 slim(경량화된 버전) 이미지를 활용하여 빌드를 시켜줄 예정입니다. Docker Hub에 접속하.. Infrastructure/Docker 2025. 2. 13. [NCP] NKS로 개발환경 구성하기 Chapter 1. 개발 환경이 없었다 서론우리 회사에는 개발환경이 존재하지 않았습니다. local에서 개발하고, production에 바로 배포하고 오류가 발생하면 롤백하며 프로덕션 서비스를 운영하는 것이였습니다. 맞습니다. 흔히 말하는 stg나 dev 환경의 구성에 적용하여 진행하는 알파테스트 개념이 없었습니다. 때문에 개발환경 구성은 꼭 필요하다고 생각되었고, Kubernetes를 적용해서 개발 환경을 구성하면 추후 production 서비스도 쉽게 k8s로 마이그레이션이 가능할 것이라 생각하였습니다. 그리고 솔직히 k8s를 공부하고 실제로 사용해보고 싶기도 하였습니다. 팀장님께 k8s의 도입의 필요성을 보고를 드린 후, k8s를 사용해서 개발환경 구성을 진행하기로 하였고 본 포스팅에서는 도입과정과 부딪힌 문제들을 해결해 나가는 일련의 .. Infrastructure/Kubernetes 2025. 2. 13. [Mac Mini 홈 서버 구축] 외부 접속 테스트 - SKB 포트 포워딩으로 외부에서 접속해본 후기 서론이제 슬슬 나만의 프로덕션 서비스를 만들어 보자 생각하며, 클라우드 서버 임대는 비용적인 문제가 많으므로 제외하고 서버 호스팅 같은 차선책을 생각하다가 회사에서 한 과장님이 서버 및 네트워크 공부할 겸 GMKtec G5 mini pc 16g Ram / 512g SSD 를 26만원 주고 구매하신 것을 같이 구경하며 '나는 mac mini를 사용해보자!' 라는 생각과 함께 바로 오늘! 당근으로 Mac Mini M1 깡통 모델을 35만원에 구입했습니다. 집에서 굴러다니는 노트북으로 홈 서버 구축해본게 10년 전이기는 하지만, 검색해봤을 때 많은 양의 블로그 포스팅들을 발견하여서 쉽게 구축할 수 있을것이라 자신했습니다. 그리고 그 생각이 틀렸다는 것을 4시간 가까이 삽질하며 깨닫게 되었고, 삽질한 후기겸 .. Infrastructure/Network 2024. 11. 9. [Query Tuning] 요청사항을 듣고, 그대로 구현하면 안되는 이유 - feat DataJPA,JPQL 서론개발자들이 흔히 저지르는 실수 중 하나는 요구사항을 듣고 이를 곧바로 비즈니스 로직이나 쿼리로 구현하는 것입니다. 이게 왜 문제가 될까요? 아래 이미지는 팀의 백엔드 개발자 채널 내용 중 일부입니다. 주목할 부분은 빨간색으로 표시된 요청사항입니다.요청사항:5년이 지난 결제 정보를 찾아, 개인정보 관련 특정 컬럼(id, 이름, 필명, 연락처)만 null로 업데이트하기.요청사항만 보고 그대로 Spring Data JPA로 구현한다면, 보존 기간이 지난 데이터를 findAll()로 조회하고, 데이터가 많다면 청크 단위로 나눠서 saveAll()로 저장하면 된다고 생각할 수 있습니다. 하지만 이렇게 접근할 경우 큰 문제가 발생합니다. Spring Data JPA의 saveAll은 개별 update 쿼리를 실.. Framework/Spring Boot 2024. 11. 8. 이전 1 2 3 4 5 ··· 25 다음