개요 Kubernetes의 Deployment 객체를 이용해 무중단 배포를 적용하는 방법을 정리했습니다. Rolling Update 개념 Rolling Update는 Kubernetes에서 기본적으로 적용하는 업데이트 방식입니다. 이 배포 전략은 다음과 같이 진행됩니다. 기존 버전(v1) 파드 3개가 실행 중인 상태에서 새로운 버전(v2)을 ...
[ArgoCD] 무중단 배포 canary 전략의 파드 개수에 따른 로드밸런싱
개요 ArgoCD에서 지원하는 무중단 배포 전략 중 하나인 canary 전략을 사용해서 업데이트를 진행할 때, 파드의 개수에 따라 트래픽의 로드 밸런싱이 어떻게 이루어지는지 정리했다. canary 개념 새롭게 업데이트 하는 버전을 v2, 기존 실행하고 있는 버전을 v1이라고 해보자. canary 배포 전략에서는 v1에 보내던 트래픽을 v2로 점...
[ArgoCD] 무중단 배포 전략과 함께 HPA 적용하기
개요 Kubernetes의 HPA(Horizontal Pod Autoscaler) 객체를 활용하여 무중단 배포 전략(Rolling Update, Canary)을 설정하고, 오토스케일링을 구현하는 방법을 정리했다. HPA 개념 출처: Was ist (Kubernetes) Autoscaling? VPA vs. HPA [kreyman] HPA(H...
[ArgoCD] RBAC 적용을 위한 AppProject와 무중단 배포를 위한 Argo Rollouts 함께 사용하기
Argo Rollouts 설치(helm) 1. 플레인 쿠버네티스 argo-rollouts 네임스페이스 생성 후 설치 kubectl create ns argo-rollouts helm install argo-rollouts argo/argo-rollouts --version 2.35.1 --namespace argo-rollouts 2. EKS...
[AWS] AWS 3-Tier 아키텍처에서 nginx 리버스 프록시를 이용한 pgadmin 배포 방법
개요 이 글에서는 AWS 에 3-Tier 아키텍처로 배포한 웹 애플리케이션의 DB 데이터를 쉽게 조회하고 수정할 수 있는 pgadmin 을 배포하는 방법을 정리했다. 특히 로컬 환경과 운영 환경에서 pgadmin 설정이 어떻게 달라지는지 기록하기 위해 작성했다. 환경 AWS EC2: amazon linux 2023 Docker: 25....
국가 제한이 걸린 사이트에 접속하는 방법 (feat. Mullvad VPN)
해외 사이트 접속이 왜 안될까? 해외에서 접속이 잘 되는 사이트는 대체로 다른 국가에서도 문제 없이 접속된다. 하지만 일부 사이트는 특정 국가 외에서의 접속을 제한하는 경우가 있다. 예를 들면, 호주의 대형마트인 Coles 는 호주 외 국가에서 접속하는 것을 막고 있다. (2023년 07월 24일 접속 기준) 대부분의 사이트는 이런 제약이 없...
[spring boot] ddl-auto: update 옵션 분석
개요 Spring Boot 에서 spring.jpa.hibernate.ddl-auto 옵션 중 update 가 어떻게 작동하는지 테스트하고, 그 결과를 정리하였다. 개발 환경 Spring Boot: 3.2.3 Java: 17 DB: postgreSQL 16.2 문제 상황 로컬 개발 환경에서 DB 에 데이터를 이미 생성해둔 상태였...
[GitHub] Pull Request 생성 시 빌드 및 테스트 통과 후에만 merge 가능하게 설정하기
개요 GitHub Repository 에서 PR(Pull Request) 이 생성되었을 때, 빌드에 성공하지 않으면 merge 할 수 없도록 설정하는 방법을 정리했다. 현재 진행 중인 백엔드 프로젝트에서는 main 브랜치로 merge 되면 자동으로 배포가 이루어진다. 그러나 스프링 부트가 빌드되지 않거나 테스트 코드가 통과하지 않았음에도 배포 프...
[EKS] AWS EKS Workshop 실습 스터디 2기 내용 정리
개요 CloudNet@ 팀(링크)에서 운영하는 AWS EKS Workshop Study 2기(모집 공고)에 참여하며 학습한 내용을 정리했다. 스터디 기간: 2024.03.10 ~ 2024.04.28 (총 8주) 스터디 규칙: 매주 학습 내용을 개인 블로그에 게시. 1회 미 공유 시 스터디 멤버 제명. 내부 규칙으로 학습한 내용은 Git...
[Next.js] Vercel 대신 AWS 에 배포하기(feat.SST)
개요 Next.js 프로젝트를 SSR 방식으로 AWS 에 간편하게 배포하기 위해 SST 라이브러리를 이용했다. SST 라이브러리를 이용하면 아래의 표와 같은 AWS 서비스를 사용한다. 서비스 설명 Lambda Next.js 의 SSR 을 가능하도록 하는 서버리...