코딩공작소

MSA(12) - 마이크로서비스 배포 본문

어플리케이션개발/MSA

MSA(12) - 마이크로서비스 배포

안잡아모찌 2024. 8. 6. 20:28

마이크로서비스의 주요 장점은 마이크로서비스가 상호 독립적으로 운영 환경에 빠르게 빌드, 수정, 배포되는 작은 코드 단위라는 것이다.

  • 자동화/반복성/완전성/불변성

 

빌드/배포 파이프라인 아키텍처

 

 

 

클라우드에 핵심 인프라스트럭처 설정

  1. 도커 컨테이너로 배포되며, 컨테이너들은 EKS 클러스터의 단일 노드에서 실행된다. EKS는 도커 클러스터를 실행하는 데 필요한 서버를 구성하고 설정
  2. 아마존 RDS와 아마존 ElasticCache 서비스를 사용
  3. 모든 트래픽이 API 게이트웨이를 통과해야 한다.
  4. 유효한 OAuth2 토큰을 제시해야 한다.
  5. EKS 컨테이너 내부에서만 해당 포트 액세스가 가능

 

 

ELK 배포

ELK EC2 생성

  1. 아마존 머신 이미지 선택
  2. 인스턴스 타입 선택
  3. 구성 세부 정보, 스토리지, 태그에 대한 기본 구성 설정
  4. 새 보안 그룹 생성
  5. EC2 인스턴스 시작

EC2 인스턴스에 ELK 스택 배포

  1. EC2 인스턴스 업데이트
  2. 도커 설치
  3. 도커 컴포즈 설치
  4. 도커 실행
  5. ELK 서비스가 포함된 docker-compose 파일 실행

EKS 클러스터 생성

EKS는 AWS에서 쿠버네티스를 실행할 수 있는 아마존 서비스로 배포, 스케줄링, 컨테이너 생성 및 삭제를 자동화하는 오픈 소스 시스템이다.

  1. 쿠버네티스 클러스터 프로비저닝
  2. 마이크로서비스 이미지를 리포지터리롯 푸시
  3. 마이크로서비스를 수동으로 쿠버네티스 클러스터에 배포

EKS 클러스터에 마이크로서비스 배포

 

 

빌드/배포 파이프라인 인 액션

 

 

빌드/배포 파이프라인 생성

깃허브 설정

  1. 파이프라인 프로젝트가 포함된 리포지토리로 이동
  2. 설정 메뉴 선택
  3. 웹훅 선택
  4. 웹훅 추가 선택
  5. 특정 페이로드 URL 제공
  6. 단순 푸시 이벤트 옵션 클릭
  7. 웹훅 추가

젠킨스에서 서비스 빌드 활성화

  1. 로컬 머신에서 명령줄 프로그램 실행
  2. 메이븐 스트립트 실행. 모든 서비스를 빌드한 후 도커 이미지로 패키징하여 로켈에서 실행되는 도커 리포지터리에 푸시
  3. 로컬 도커 리포지터리에서 새로 생성된 도커 이미지 시작. docker-compose 및 docker-machine 명령을 사용하여 모든 서비스 함께 시작


쿠버네티스 파이프라인 스크립트 작성

  1. 젠킨스 대시보드 페이지로 이동하여 파이프라인 선택
  2. 대시보드 왼쪽 열에 표시된 파이프라인 구문 옵션 클릭
  3. KubernetesDeploy: Deploy to Kurbernetes 선택
  4. Kubernetes credentials 선택
  5. configserver-deployment.yaml 파일 선택
  6. 파이프라인 스크립트 생성

 

 

  • 사람의 직접적인 개입 없이 자동화되어야 한다. 프로세스의 모든 수동 작업은 변동성과 고장 가능성을 나타낸다
  • 제대로 작동하려면 많은 양의 스크립팅과 구성이 필요하다
  • 불변 가상 머신이나 컨테이너 이미지를 제공해야 한다.
  • 서버의 환경별 구성은 서버가 시작될 때 매개변수로 전달되어야 한다.