코딩공작소
MSA(12) - 마이크로서비스 배포 본문
마이크로서비스의 주요 장점은 마이크로서비스가 상호 독립적으로 운영 환경에 빠르게 빌드, 수정, 배포되는 작은 코드 단위라는 것이다.
- 자동화/반복성/완전성/불변성
빌드/배포 파이프라인 아키텍처
클라우드에 핵심 인프라스트럭처 설정
- 도커 컨테이너로 배포되며, 컨테이너들은 EKS 클러스터의 단일 노드에서 실행된다. EKS는 도커 클러스터를 실행하는 데 필요한 서버를 구성하고 설정
- 아마존 RDS와 아마존 ElasticCache 서비스를 사용
- 모든 트래픽이 API 게이트웨이를 통과해야 한다.
- 유효한 OAuth2 토큰을 제시해야 한다.
- EKS 컨테이너 내부에서만 해당 포트 액세스가 가능
ELK 배포
ELK EC2 생성
- 아마존 머신 이미지 선택
- 인스턴스 타입 선택
- 구성 세부 정보, 스토리지, 태그에 대한 기본 구성 설정
- 새 보안 그룹 생성
- EC2 인스턴스 시작
EC2 인스턴스에 ELK 스택 배포
- EC2 인스턴스 업데이트
- 도커 설치
- 도커 컴포즈 설치
- 도커 실행
- ELK 서비스가 포함된 docker-compose 파일 실행
EKS 클러스터 생성
EKS는 AWS에서 쿠버네티스를 실행할 수 있는 아마존 서비스로 배포, 스케줄링, 컨테이너 생성 및 삭제를 자동화하는 오픈 소스 시스템이다.
- 쿠버네티스 클러스터 프로비저닝
- 마이크로서비스 이미지를 리포지터리롯 푸시
- 마이크로서비스를 수동으로 쿠버네티스 클러스터에 배포
EKS 클러스터에 마이크로서비스 배포
빌드/배포 파이프라인 인 액션
빌드/배포 파이프라인 생성
깃허브 설정
- 파이프라인 프로젝트가 포함된 리포지토리로 이동
- 설정 메뉴 선택
- 웹훅 선택
- 웹훅 추가 선택
- 특정 페이로드 URL 제공
- 단순 푸시 이벤트 옵션 클릭
- 웹훅 추가
젠킨스에서 서비스 빌드 활성화
- 로컬 머신에서 명령줄 프로그램 실행
- 메이븐 스트립트 실행. 모든 서비스를 빌드한 후 도커 이미지로 패키징하여 로켈에서 실행되는 도커 리포지터리에 푸시
- 로컬 도커 리포지터리에서 새로 생성된 도커 이미지 시작. docker-compose 및 docker-machine 명령을 사용하여 모든 서비스 함께 시작
쿠버네티스 파이프라인 스크립트 작성
- 젠킨스 대시보드 페이지로 이동하여 파이프라인 선택
- 대시보드 왼쪽 열에 표시된 파이프라인 구문 옵션 클릭
- KubernetesDeploy: Deploy to Kurbernetes 선택
- Kubernetes credentials 선택
- configserver-deployment.yaml 파일 선택
- 파이프라인 스크립트 생성
- 사람의 직접적인 개입 없이 자동화되어야 한다. 프로세스의 모든 수동 작업은 변동성과 고장 가능성을 나타낸다
- 제대로 작동하려면 많은 양의 스크립팅과 구성이 필요하다
- 불변 가상 머신이나 컨테이너 이미지를 제공해야 한다.
- 서버의 환경별 구성은 서버가 시작될 때 매개변수로 전달되어야 한다.
'어플리케이션개발 > MSA' 카테고리의 다른 글
MSA(11) - 스프링 클라우드 슬루와 집킨을 이용한 분산 추적 (0) | 2024.07.28 |
---|---|
MSA(10) - 스트림을 사용한 이벤트 기반 아키텍처 (0) | 2024.07.25 |
MSA(9) - 마이크로서비스 보안 (0) | 2024.07.22 |
MSA(8) - 게이트웨이를 이용한 서비스 라우팅 (0) | 2024.07.16 |
MSA(7) - Resilience4j를 사용한 회복성 패턴 (1) | 2024.07.14 |