분류 전체보기 239

[kubernetes] Probe

Probe쿠버네티스에서 컨테이너 상태를 주기적으로 진단하기 위해 사용되는 기능이다.이를 통해 쿠버네티스는 각 컨테이너의 상태를 체크하고 문제가 발생한 경우에는 해당 컨테이너를 자동으로 재시작하거나 서비스에서 제외할 수 있다. 쿠버네티스의 Probe는 크게 세 가지 유형으로 나뉜다. 1. Liveness Probe컨테이너가 살아있는지 주기적으로 확인응답하지 않거나 문제가 있는 경우 해당 컨테이너 재시작(실습에서 확인 가능) 2. Readiness Probe컨테이너가 외부 트래픽을 받을 준비가 되었는지를 확인준비가 되지 않은 경우, 해당 Pod를 서비스 엔트포인트 목록에서 제외하여 트래픽이 들어가지 않도록 한다.readiness Probe에 실패하면 외부 API 호출에 실패하게 된다. 3. Startu..

DevOps/Kubernetes 2025.07.31

[Kubernetes] 쿠버네티스 오브젝트 정리

쿠버네티스 오브젝트란?- 클러스터 내부에서 사용자가 관리하고자 하는 리소스의 실체를 의미한다.- 클러스터의 원하는 spec(스펙, 명세)과 status(상태)를 선언적으로 정의해두면 쿠버네티스가 이를 실제 상태로 맞추려고 지속적으로 관리한다. 쿠버네티스의 주요 오브젝트들이 어떤 역할을 하는지 정리해보자. Namespace쿠버네티스 클러스터에서 사용되는 리소소들을 구분해서 관리하는 그룹이다.apiVersion: v1kind: Namespacemetadata: name: anotherclass-123 labels: part-of: k8s-anotherclass managed-by: dashboard위 YAML파일은 쿠버네티스 클러스터 안에 새로운 격리 공간 (anotherclass - 12..

DevOps/Kubernetes 2025.07.30

쿠버네티스 자동화 모니터링 환경 만들기: Loki-Stack과 Grafana 연동, 쿠버네티스 대표기능 테스트

Prometheus란?오픈소스 기반의 모니터링, 메트릭(지표) 수집 및 알람 시스템쿠버네티스 클러스터, 파드, 서비스, 노드 등의 리소스 사용량, 상태 등 모든 메트릭을 실시간으로 수집·저장 Loki-Stack이란?컨테이너 환경에 특화된 로그 수집/조회 시스템 Grafana란?오픈소스 기반의 데이터 시각화 및 모니터링 도구로, 여러 데이터 소스에서 자동으로 데이터를 가져와 사용자가 원하는 대시보드를 구성하고 시각화할 수 있게 해준다. 쿠버네티스를 사용하면 모니터링툴을 통해 메트릭(성능 정보)과 로그(이벤트/에러)를 자동 수집,시각화 하여 운영을 투명하고 쉽게 만든다. 실습 과정 1. Github(k8s-1pro)에서 Prometheus(with Grafana), Loki-Stack yaml 다운로드..

DevOps/Kubernetes 2025.07.29

Kubernetes란?, Kubernetes 설치

Kubernetes란? 쿠버네티스란 컨테이너화된 애플리케이션을 배포,관리,확장하는 오픈소스 기반 컨테이너 오케스트레이션(Container Orchestration) 도구이다. 여기서 컨테이너 오케스트레이션이란 ‘컴퓨터 리소스 자원과 애플리케이션 및 서비스에 대한 자동화된 설정 및 관리’를 의미한다.같은 의미를 차용하여 컨테이너 오케스트레이션(Container Orchestration)을 해석하자면, "컨테이너화 된 애플리케이션에 대한 자동화된 설정, 관리 및 제어 체계"로 받아들일 수 있을 것이다. 쉽게 말하면 컨테이너들을 통합적으로 문제없이 잘 돌아갈 수 있도록 해주는 자동 컨테이너 관리 솔루션 정도로 해석하면 될 것 같다. Kubernetes 주요 기능 1. 자동 복구 : 실패한 컨테이너를 자..

DevOps/Kubernetes 2025.07.29

Cloudflare를 사용하여 EC2 웹서버에 HTTPS 적용하기

Cloudflare를 사용하여 EC2 웹서버에 HTTPS를 적용시켜봤다. 이전 실습에서는 AWS의 ELB(Elastic Load Balancer)로 HTTPS 설정을 해줬다. 이 방법은 AWS의 여러 서비스와의 연동에서 강점을 보이지만, ELB셋팅 과정과 인증서 발급과정이 복잡하여 시간이 매우 오래 걸렸다. 하지만, Cloudflare를 사용하여 HTTPS 적용을 하면 비교적 저렴한 비용과, 간단한 설정들을 통해 쉽고 간편하게 구현 가능하다. 적용 과정 우선 cloudflare에 내 도메인을 등록 해줘야 한다.Cloudflare에 내 도메인을 등록하게 되면 Cloudflare 네임서버 값을 제공해주는데 이 값을 도메인을 구매한 곳에 등록을 해줘야 한다. 필자는 가비아에서 도메인을 구매해서 가비아에 Cl..

가비아 도메인 설정 EC2에 적용, Nginx Reverse Proxy 적용

가비아에서 도메인을 구입하여 EC2에 적용을 해봤다. 기존에는 Route53에서 도메인을 구입하였지만 가비아에서 더 저렴한 가격으로 구입할 수 있다고 해서 해봤다. 도메인 적용 1. 도메인 구입 나는 yangwoohyeon.shop을 500원에 구입했다. 2. AWS Route53에서 DNS 관리 접속, 호스팅 영역 생성 3.가비아에서 구입한 도메인 이름 등록호스팅 영역을 생성해주면 아래 사진과 같은 화면이 보인다. 여기서 NS 유형의 "값/트래픽 라우팅 대상"은 가비아에 나중에 등록해줘야 한다. 4.레코드 생성 값에는 EC2 인스턴스의 퍼블릭 IP 주소를 넣어준다. 5. 가비아에서 도메인 관리 페이지로 이동방금 전 레코드에서 확인했던 NS 유형의 "값/트래픽 라우팅 대상"을 모두 등록해준다.(..

Deployment/AWS 2025.05.31

WebSocket + STOMP로 채팅 구현하기

STOMP란?Simple Text Oriented Messaging Protocol의 약자로 메시지를 전송하기 위한 프로토콜이다.메시지 브로커와 publisher - subscriber 방식을 사용하고, 메시지 브로커는 발행자가 전송하는 메시지를 구독자들에게 전송한다. 왜 STOMP를 사용 했는가?Spring WebSocket은 단순히 양방향 연결 채널일 뿐, 메시지를 어디로, 누가, 무엇을 보내는지 구조적으로 정의되어있지 않다. 하지만 STOMP를 WebSocket위에서 동작시키면 채널 구독, 메시지 목적지(채팅방) 구분, 구독 관리 등 실시간 채팅에 맞는 다양한 기능을 사용 가능하다. 따라서 이번에 구현한 채팅은 WebSocket 위에서 STOMP를 사용하여 채팅방 생성, 채팅방 구독, 전송, 읽..

BackEnd/spring 2025.05.30

GitHub Actions + Docker로 CI/CD 구축

GitHub Actions + Docker를 이용해 CI/CD 구축을 해봤다. GitHub Actions는 다음과 같은 장점을 가진다. 다른 CI/CD툴에 비해 사용하기 쉽다.YAML 파일을 통해 원하는 워크플로우를 손쉽게 정의하고 커스터마이징 가능공개 리포지토리의 경우 무료로 이용, 제한된 범위 내에서 사설 리포지토리도 무료로 사용 가능CI/CD를 위한 별도의 서버가 필요 없다. 구현 목표1. deploy.yml를 통해 GitHub Actions가 워크플로우 수행 2. Dockerfile을 이용해서 Docker Image 빌드3. DockerHub에 이미지를 업로드4. EC2에서 최신 이미지를 pull 받아서 실행 개발 과정은 다음과 같다. 1. DockerHub에 리포지토리 생성 리포지토리 ..

Spring Webocket을 이용한 실시간 채팅 구현(+ JWT 인증)

GitHub - yangwoohyeon/OAuth2_9oormthonUNIVContribute to yangwoohyeon/OAuth2_9oormthonUNIV development by creating an account on GitHub.github.com WebSocket이란?서버와 클라이언트 간에 Socket Connection을 유지해서 언제든 양방향 통신 또는 데이터 전송이 가능하도록 하는 기술로써, sns, 화상 채팅, 증권 거래 등에서 널리 사용되고 있다. 왜 WebSocket을 사용하는가? HTTP를 사용하여 실시간 양방향 통신을 구현하기 위해서는 다음과 같은 방법을 사용할 수 있다. 백엔드에서 변경 사항이 생길 때마다 프론트엔드에게 응답을 보내주는 방식 : Server-Sent-Eve..

BackEnd/spring 2025.05.14

Jenkins + Docker를 활용한 기본 CI/CD 파이프라인 구축

Jenkins와 Docker를 활용하여 CI/CD 파이프라인을 구축하는 과정을 공부했다. 사용되는 것1) 두개의 EC2서버JenkinsSpring 서버2) github webhook 3) jenkins-pipline 4) jenkinsFile 5) docker-compose CI/CD 흐름 1. GitHub에서 코드 푸시 GitHub Webhook → Jenkins로 알림 2. Jenkins Pipeline 실행 (CI 단계) Docker Image 빌드빌드된 이미지를 Docker Hub 저장소에 업로드DooD방식 사용3. Spring EC2 서버로 배포 (CD 단계)EC2에 SSH 접속하여 최신 이미지로 컨테이너 재배포 구현 방법 1. jenkinsfile 생성pipeline { agent any..