[RabbitMQ] 설치해보고 사용해보기
·
Infra
RabbitMQ란RabbitMQ는 시스템 간 메시지를 비동기로 주고받게 해주는 AMQP 프로토콜을 준수하는 메시지 브로커이다. 직접 통신 대신 큐를 두어 시스템을 느슨하게 연결하고, 한쪽에 장애가 나도 메시지는 안전하게 보관된다. 주요 활용 사례는 이메일/SMS 발송, 이미지 처리 같은 무거운 작업의 비동기 처리, 주문-결제-배송 같은 이벤트 전파가 있다. 여러 Worker로 작업을 분산시키거나 트래픽이 몰릴 때 요청을 큐에 쌓아두고 천천히 처리해서 시스템 안정성을 높일 수 있고, Spring Boot와 통합이 쉽고 관리 UI가 직관적이라 마이크로서비스 환경에서 많이 쓰인다.AMQP란AMQP는 Advanced Message Queuing Protocol의 약자로 메시지 지향 미들웨어를 위한 표준 프로토콜..
ArgoCD 설치 및 배포해보기
·
Infra
ArgoCD란?ArgoCD는 Kubernetes 환경에서 애플리케이션을 배포하고 관리하는 GitOps 도구이다. Git 저장소를 원천으로 삼아, 코드로 정의한 배포 상태와 실제 클러스터의 상태를 지속적으로 비교하고 자동으로 동기화해준다.동작 방식은 개발자가 Kubernetes 설정 파일(YAML)을 Git에 푸시하면, ArgoCD가 이를 감지하여 자동으로 클러스터에 배포한다. 별도로 복잡한 배포 스크립트를 작성하거나 kubectl 명령어를 실행할 필요가 없게된다.또한 직관적인 웹 UI를 제공하여 배포 상태를 실시간으로 확인할 수 있다. 배포에 문제가 생겼을 때는 Git 커밋 이력을 통해 손쉽게 이전 버전으로 롤백할 수 있으며, 하나의 ArgoCD로 여러 Kubernetes 클러스터를 동시에 관리할 수도 ..
K3S 대시보드 설치
·
Infra
공식 문서를 찾아보니 manifest 방식 지원은 중단했고, helm을 활용해서 설치를 해야한다해서 helm 부터 설치해주자curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4chmod 700 get_helm.sh./get_helm.sh# 또는curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4 | bashhelm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/helm upgrade --install kubernetes-dashboard k..
K3S 설치해보기
·
Infra
curl -sfL https://get.k3s.io | sh -컴포넌트kubectl get pods -A 를 하면 설치된 컴포넌트들을 볼 수 있는데, 정리하면 다음과 같다.Core DNScoredns-64fd4b4794-pqbzb역할: 클러스터 내부 DNS 서버서비스 이름을 IP로 변환 (예: spring-app-service → 10.43.x.x)Pod 간 통신 시 도메인 네임으로 접근 가능하게 함예: curl http://spring-app-service:8080Traefik (Ingress Controller)helm-install-traefik-crd-csb2g # Traefik Custom Resource Definition 설치helm-install-traefik-64qp7 ..
[Docker] Docker-compose를 활용한 nginx + spring boot + mariadb 연결하기
·
Infra
개념도 중요하지만, 우선 실전 위주로 팍팍 써봤다. Docker-compose란 compose라는 단어 뜻이 "구성하다"처럼 한 번에 컨테이너를 만들어 주고, 이를 연동해주기 아주 용이하게 해준다. 이렇게 보면 해외 개발자들은 명칭을 아주 직관적으로 잘 만드는 것 같다. 왜 연동하기 용이하냐면, docker-compose에서 작성한 컨테이너들은 하나의 네트워크로 인식시켜주기 때문이다. 그렇게 하면, 아래의 예제처럼 spring boot, mariadb, nginx 등 이미지들이 따로 분리하면서 연결할 수 있으니 관리 차원에서 아주 편해지는 것이다. NGINX + SpringBoot + MariaDB 컨테이너 생성 먼저 docker-compose.yml 파일을 만들어 주어 아래와 같이 작성해 보자. # 파..
[Docker] DockerFile 정리
·
Infra
Docker도 알아야 하는 개념이 많지만, 내 글에서는 일단 사용법 위주로 정리하려고 한다. (자꾸 잊어 먹어서 찾는게 너무 일이다..) DockerFile이란 간단 예제 먼저 아무 디렉토리를 만들어 그 안에다가 DockerFile을 만들어 작업해주자. home이나 상위 경로 아무데다 했더니 문제가 발생했는데, DockerFile을 찾을 때 상위 경로에서 하위 경로까지 다 탐색을 하게 되면서 문제가 발생할 수 있기에 DockerFile이 위치한 경로를 파악하여 사전에 차단해준다고 한다. Warning Avoid using your root directory, /, as the root of the source repository. The docker build command will use whateve..