Server

Server/Architecture

Github Actions + Code Deploy + S3 + NginX 로 Spring Boot 블루/그린 무중단 배포 구현하기 (3)

2023.08.27 - [Server/Architecture] - Github Actions + Code Deploy + S3 + NginX 로 Spring Boot 블루/그린 무중단 배포 구현하기 (1) Github Actions + Code Deploy + S3 + NginX 로 Spring Boot 블루/그린 무중단 배포 구현하기 (1) 시스템 아키텍쳐 해당 프로젝트에서 사용한 시스템 아키텍쳐는 다음과 같다. 1. 개발자가 코드를 수정하고, 배포를 원하는 브랜치로 Github에 Push한다. 2. Github Actions에서 정해진 워크플로우에 따 mingyum119.tistory.com 2023.08.27 - [Server/Architecture] - Github Actions + Code De..

Server/Architecture

Github Actions + Code Deploy + S3 + NginX로 Spring Boot 블루/그린 무중단 배포 구현하기 (2)

2023.08.27 - [Server/Architecture] - Github Actions + Code Deploy + S3 + NginX 로 Spring Boot 블루/그린 무중단 배포 구현하기 (1) Github Actions + Code Deploy + S3 + NginX 로 Spring Boot 블루/그린 무중단 배포 구현하기 (1) 시스템 아키텍쳐 해당 프로젝트에서 사용한 시스템 아키텍쳐는 다음과 같다. 1. 개발자가 코드를 수정하고, 배포를 원하는 브랜치로 Github에 Push한다. 2. Github Actions에서 정해진 워크플로우에 따 mingyum119.tistory.com 위 포스팅에 이어서, Github Actions 워크플로우를 실행하고 CodeDeploy, S3를 이용해 EC..

Server/Architecture

Github Actions + Code Deploy + S3 + NginX 로 Spring Boot 블루/그린 무중단 배포 구현하기 (1)

시스템 아키텍쳐 해당 프로젝트에서 사용한 시스템 아키텍쳐는 다음과 같다. 1. 개발자가 코드를 수정하고, 배포를 원하는 브랜치로 Github에 Push한다. 2. Github Actions에서 정해진 워크플로우에 따라 두 가지 작업을 수행한다. (1) CodeDeploy에 배포 요청을 보낸다. (2) Gradle 빌드를 수행한 후 생성된 jar 파일을 S3 버킷에 저장한다. 3. 배포 요청을 받게 되면, CodeDeploy Agent (배포 작업을 수행하는 프로그램) 가 EC2 서버 내에서 개발자가 직접 작성한 appspec.yml를 스캔 후 빌드 스크립트를 실행하게 된다. 4. 빌드 스크립트 내에서 두 개의 포트를 번갈아가며 스위칭하여, 블루/그린 배포를 수행한다. 이 결과 8081 포트가 작동 중일 ..

Server/Docker

[Trouble Shooting] Ubuntu 환경에서 gradlew build 시 createScriptPluginFactory() 관련 오류

Could not create service of type ScriptPluginFactory \ using BuildScopeServices.createScriptPluginFactory(). > Could not create service of type CrossBuildFileHashCache \ using BuildSessionScopeServices.createCrossBuildFileHashCache(). ./gradlew build를 입력했을 때 위와 같은 에러가 뜨면서 Build가 실패되었다. ./gradlew build --stacktrace로 예외클래스를 찾아보니 ServiceCreationException이라는 친구였다. * Exception is: org.gradle.internal..

Server/Docker

[Trouble Shooting] Ubuntu 환경에서 Docker Image Build 시 Geographic area에서 Building이 멈추는 현상

RUN apt-get install -y apache2​ FROM ubuntu:20.04 MAINTAINER MINGYUM KIM RUN apt-get updatee RUN apt-get install -y apache2 EXPOSE 80 CMD ["apachectl", "-D", "FOREGROUND"] Dockefile을 위와 같이 작성하고 Docker 이미지를 빌드하였다. 그러나 아래 코드에서 "Geographic Area:"를 출력한 후 Building이 더 진행되지 않는 문제가 있었다. RUN apt-get install -y apache2 해결 방법 (1) apt 패키지 관리자가 지역 설정을 찾지 못하는 경우 FROM ubuntu:20.04 MAINTAINER MINGYUM KIM # 로케일 ..

Server/Architecture

[MSA] 터빈 서버 (Turbine Server)로 Hystrix Client 메시지 수집하기

터빈 서버란 ? 마이크로서비스에 설치된 히스트릭스 (Hystrix) 클라이언트 스트림 메시지를 터빈 서버로 통합하여 관리한다. 히스트릭스 클라이언트 스트림이란, 마이크로서비스에 설치된 ‘히스트릭스 클라이언트’ 에서 서비스 처리 요청에 대한 결괏값을 스트림으로 전달해준다. 사용자는 이를 통해 서비스가 잘 돌아갔는 지 확인할 수 있게 된다. 터빈 서버 구축하기 터빈 서버를 마이크로서비스에 등록하기 위해서는, 먼저 터빈 서버를 생성하고 build.gradle에 아래 라이브러리를 추가해준다. implementation 'org.springframework.cloud:spring-cloud-starter-netflix-turbine' 터빈 서버의 application.yml을 보면 아래와 같다. server: p..

Server/Architecture

[MSA] Spring Cloud Config Server 구축 및 profiles 설정

설정 서버 (Config Server)란 ? 설정 서버는 각 Config Client들이 사용할 수 있는 설정 정보를 한 곳에 모아 저장한 Server이다. Spring Cloud Server의 역할 깃에 설정된 profile의 정보가 바뀌게 되어도 마이크로서비스의 재기동 없이 적용이 가능하다. Spring Config Client들에게 설정 정보를 뿌려서, Application의 외부 속성을 중앙 집중식 관리가 가능하도록 한다. 서버는 주로 마이크로서비스를 개발하는 개발서버와 운영 서버, 스테이지 서버, 테스트 서버로 분리된다. 이런 서버들의 포트와 IP주소는 각기 다른데, 환경 설정 정보를 소스로부터 분리하여 소스코드와의 결합도를 낮추는 역할을 하는 것이 설정 서버의 역할이다. 그렇다면 설정 서버에서..

Server/Architecture

[MSA] 유레카(Eureka)서버, 줄(Zuul) 서버 설정 및 구동하기

유레카 서버 (Eureka Server) 마이크로서비스의 기동 여부를 체크하고, 마이크로서비스가 등록되거나 삭제될 때 이에 대한 상태정보를 동적으로 감지하는 역할을 한다. 마이크로서비스는 기동되는 시점에 유레카 서버에게 이 정보를 전달한다. 유레카 서버는 유레카 클라이언트가 접속할 수 있는 defaultZone 서버 주소를 오픈한다 . server: port: 9091 spring: application: name: msa-architecture-eureka-server # 유레카 서버 이름 # Config server cloud: config: url: http://localhost:8888 name: msa-architecture-config-server # Eureka Standalone Serve..

Server/MQ

[kafka] Window OS에 Kafka 설치하고 실행하기

HTML 삽입 미리보기할 수 없는 소스 Kafka란 ? 간단하게 설명하자면, 이벤트 생산자(Producer)와 소비자(Consumer)가 큐잉 시스템을 통해서 데이터를 주고 받는 메시지 큐이다. 예를 들어, 마이크로서비스에서는, 각 서비스 간의 데이터 전달이 필요한 상황에서 느슨한 결합을 이루기 위해 큐잉 시스템을 사용하게 된다. 이렇게 여러 송신자가 메시지를 발행하고 여러 수신자가 구독하는 방식을 Pub/Sub구조라고 한다. Producer는 이벤트를 데이터를 구분하기 위한 저장소(Topic)에 저장하게 된다. 하나의 Topic은 여러 개의 Partition으로 나뉘어져 있다. 그리고 이 Topic에 저장된 이벤트들 저장, 전달하는 역할을 Broker가 하게 되는 것이다. Zookeeper란 ? Kaf..

MINGYUM
'Server' 카테고리의 글 목록