# DevOps

    Application 간의 주요 통신 방법 비교 (HTTP, AMQP, Socket)

    주제 HTTP, AMQP, Socket 통신 방법을 각각 비교해보고 주로 사용되는 곳을 알아본다 1. HTTP 특징: 주로 웹 기반 통신을 위해 사용되며, 요청(Request)과 응답(Response)을 기반으로 합니다. Stateless 프로토콜이기 때문에 각각의 요청은 이전 요청과 독립적으로 처리됩니다. 주로 RESTful API를 구축하는 데 사용됩니다. 장점: 간단하며 이해하기 쉽습니다. 다양한 플랫폼에서 지원되고, 프록시나 캐싱 등의 기능을 활용할 수 있습니다. HTTPS를 통해 보안 통신이 가능합니다. 단점: 실시간성이 중요한 경우에는 적합하지 않을 수 있습니다. 요청/응답 기반 모델이므로 양방향 통신이 어려울 수 있습니다. 2. AMQP 특징: 메시지 큐를 통해 비동기 메시지 전달을 위한 프..

    Local private docker registry 구축하기

    주제 Local Docker Registry 만들어보자 1. Registry란? Docker 레지스트리는 Docker 이미지를 저장 및 배포하기 위한 표준 방식 유료 Private Registry를 사용하지 않고 Local 환경에서 Registry를 구축하여 사용하는 방법을 소개한다 2. Local Private Registry 구축 $ docker pull registry $ docker run -dit --name registry -p 5000:5000 registry $ docker push {host_ip}:5000/{image_name}:{version} # 참고자료 https://ikcoo.tistory.com/59 https://kdeon.tistory.com/52

    Minikube를 이용한 로컬 클러스터 구축

    주제 Minikube를 이용해 로컬 클러스터를 구축해본다. BE 어플리케이션을 올려본다. 1. Minikube 설치 1.1 미니큐브 설치 공식 홈페이지에서 가이드를 제공하여 간단하게 설치할 수 있다. 또한 간단한 튜토리얼을 제공한다. https://minikube.sigs.k8s.io/docs/start/ minikube start minikube is local Kubernetes minikube.sigs.k8s.io 2. Minikube 가이드 2.1 소개 minikube is local Kubernetes, focusing on making it easy to learn and develop for Kubernetes. minikube는 Kubernetes를 쉽게 배우고 개발할 수 있도록 하는 데 ..

    배포 방식(롤링, 블루-그린, 카나리아)

    1. Rolling 서버를 한 대씩 구 버전에서 새 버전으로 교체해가는 전략 서비스 중인 서버 한 대를 제외시키고 그 자리에 새 버전의 서버를 추가 구 버전에서 새 버전으로 트래픽을 점진적으로 전환 서버 수의 제약이 있을 경우 유용하나 배포 중 인스턴스의 수가 감소 되므로 서버 처리 용량을 미리 고려해야 함 2. Blue/Green Blue/Green 배포는 구 버전에서 새 버전으로 일제히 전환하는 전략 구 버전의 서버와 새 버전의 서버들을 동시에 나란히 구성하고 배포 시점이 되면 트래픽을 일제히 전환 하나의 버전만 프로덕션 되므로 버전 관리 문제를 방지할 수 있고, 또한 빠른 롤백이 가능 또 다른 장점으로 운영 환경에 영향을 주지 않고 실제 서비스 환경으로 새 버전 테스트가 가능 예를 들어 구 버전과 ..

    컨테이너 개발 환경의 등장 배경과 쿠버네티스

    등장 배경 개발 & 배포 환경의 변화 1. 전통적인 배포 시대(Traditional Deployment) 물리 서버 위에서 애플리케이션을 운영 물리 서버에서는 애플리케이션들 사이에 리소스 경계를 정의할 방법이 없었고, 이로 인해 리소스 할당 문제가 발생 물리 서버 하나에서 여러 애플리케이션을 실행하면, 리소스 대부분을 차지하는 애플리케이션 때문에 다른 애플리케이션 성능이 저하 애플리케이션 마다 서로 다른 물리 서버를 사용하는 방법도 있지만 많은 비용이 발생함 2. 가상화된 배포 시대 가상화의 도입 단일 물리 서버의 CPU에서 여러 가상 시스템 (VM)을 실행 VM간에 애플리케이션을 격리하고 애플리케이션의 정보를 다른 애플리케이션에서 자유롭게 액세스 할 수 없으므로, 일정 수준의 보안성을 제공 물리 서버에..

    [AWS] EC2와 탄력적 IP

    탄력적 IP란? EC2 인스턴에 고정 IP를 할당하지 않고 사용한다면, 인스턴스를 재시작할 때마다 새 IP가 할당되서 도메인 연결을 할 수 없습니다. 이러한 문제를 해결하기 위해 AWS는 탄력적 IP를 제공합니다. 탄력적 IP 설정 튜토리얼 https://jojoldu.tistory.com/259 4) 스프링부트로 웹 서비스 출시하기 - 4. AWS EC2 & RDS 구축하기 이번 시간엔 SpringBoot를 운영할 AWS 환경을 구축하겠습니다. (모든 코드는 Github에 있습니다.) Tip) 운영 서버는 크게 클라우드 서비스(AWS, Azure 등) 과 호스팅 서비스(Cafe24, 코리아호스팅 등)을 이용 jojoldu.tistory.com

    도커 정리 (이론편) 🐳

    도커란 무엇인가 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 다양한 이유로 계속 바뀌는 서버 환경과 개발 환경 문제를 해결하기 위해 등장했다. AWS, Azure, Google cloud 등 어떤 환경에서도 돌아간다. 컨테이너 관리 도구 중 가장 유명한 것 백엔드 프로그램, 데이터베이스 서버, 메시지 큐등 어떤 프로그램도 컨테이너로 추상화할 수 있다. 컨테이너의 장점 하드웨어를 가상화하는 가상 머신과 달리 커널을 공유하는 방식이기 때문에 실행 속도가 빠르고, 성능 상의 손실이 거의 없음 하나의 운영체제 안에서 커널을 공유하며, CPU, 네트워크, 메모리와 같은 시스템 자원을 독자적으로 사용하도록 할당된 환경을 제공하는 격리된 공간 호스트 머신에게는 프로세스로 인식되지만, 컨테이너 관점에서는 독립적..