MSA에 대해 공부하면서 토이 프로젝트로 MSA를 구축해보게되었습니다. 그동안 사용하였던 기술들에 대해 따라할 수 있도록 기록 및 공유를 하려고 합니다.
프로젝트의 전체 아키텍처 구성은 위와 같이 진행하였습니다.
Cloud 환경은 Azure에서 구성하였으며 사용한 서비스는 AKS(Azure Kubernetes Service), ACR(Azure Container Registry), Azure VM, Azure Database for MySQL입니다.
k8s 내부에는 istio를 설치하여 서비스 메시를 구성하였고, CI/CD 툴로는 Jenkins / ArgoCD를 활용하였고,
통합 로깅 체계는 EFK, 메시지 브로커는 kafka, 서비스 메시 모니터링 툴은 kiali, 매트릭 모니터링은 prometeus & grafana, 분산 추적 모니터링 툴은 zipkin 으로 활용하였다.
각 서비스에 대한 설명은 해당 서비스 구축할 때에 설명하도록 하겠습니다.
Azure는 MicroSoft에서 제공하는 Cloud platform으로 아래와 같은 리소스 구조를 갖고 있습니다.
터미널에서 아래 명령 실행을 실행합니다.
brew update && brew install azure-cli
# xcode관련 오류 발생시
xcode-select --install
# python 관련 오류 발생시
brew update && brew install python@3.10 && brew upgrade python@3.10
brew link --overwrite python@3.10
아래의 링크로 msi 설치를 통해 연결 가능합니다.
https://aka.ms/installazurecliwindows
Azure-cli가 설치된 터미널 환경에서 아래의 명령을 실행합니다.
az login
Azure에 로그인 완료 후 아래의 명령을 실행합니다.
az group create --name msa-project-group --location eastus
msa-project-group이라는 이름의 리소스 그룹을 지역 eastus에 만듭니다.
여기까지 따라오셨으면 Azure의 리소스를 만들기 위한 최소한의 준비과정은 마쳤습니다.
다음은 Azure Database for Mysql을 연결하는 과정을 진행하겠습니다.