MSA 인프라 구축하기 with Azure(1)-Azure

SeungJu(하늘하늘)·2022년 10월 6일
0

1. 개요

MSA에 대해 공부하면서 토이 프로젝트로 MSA를 구축해보게되었습니다. 그동안 사용하였던 기술들에 대해 따라할 수 있도록 기록 및 공유를 하려고 합니다.

  • 필요한 사전작업
    • docker 설치
    • 배포할 spring 프로젝트 준비
    • Azure 가입 및 구독

프로젝트의 전체 아키텍처 구성은 위와 같이 진행하였습니다.
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 으로 활용하였다.

각 서비스에 대한 설명은 해당 서비스 구축할 때에 설명하도록 하겠습니다.

2. Azure

Azure는 MicroSoft에서 제공하는 Cloud platform으로 아래와 같은 리소스 구조를 갖고 있습니다.

  • 관리 그룹: 이 그룹은 여러 구독에 대한 액세스, 정책 및 규정 준수를 관리합니다.
  • 구독: 구독은 사용자 계정과 해당 사용자 계정에서 만든 리소스를 그룹화해서 관리합니다. 각 구독 별로 리소스 양에 대한 제한 또는 할당량이 있으며, 비용은 구독 단위로 관리됩니다.
  • 리소스 그룹: 리소스는 리소스 그룹으로 결합합니다. 리소스 그룹은 웹앱, 데이터베이스, 스토리지 계정과 같은 Azure 리소스가 배포되고 관리되는 논리적 컨테이너 역할을 합니다.
    • 리소스 그룹 간 리소스 이동이 가능합니다.
    • 리소스 그룹과 하위 리소스는 다른 지역에 위치할 수 있습니다.
    • 리소스 그룹을 삭제하면 하위 리소스도 모두 삭제 됩니다. 따라서 리소스를 수명 주기로 구성하는 방법은 테스트 후 리소스를 폐기하는 개발 및 테스팅 환경에서 유용하게 사용할 수 있습니다.
  • 리소스: 리소스는 가상 머신, 스토리지 또는 SQL 데이터베이스와 같이 사용자가 만드는 서비스의 인스턴스입니다.
    • Azure를 통해 관리 가능한 항목입니다. VM, AKS, ACR, Database 등이 리소스 예시입니다.

3. Azure-cli 연결 및 로그인

Mac에서 연결하기

  • Homebrew가 설치되어 있어야 합니다.

터미널에서 아래 명령 실행을 실행합니다.

  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

Windows에서 연결하기

아래의 링크로 msi 설치를 통해 연결 가능합니다.
https://aka.ms/installazurecliwindows

Azure에 로그인

Azure-cli가 설치된 터미널 환경에서 아래의 명령을 실행합니다.

az login

ResourceGroup 생성

Azure에 로그인 완료 후 아래의 명령을 실행합니다.

az group create --name msa-project-group --location eastus

msa-project-group이라는 이름의 리소스 그룹을 지역 eastus에 만듭니다.



여기까지 따라오셨으면 Azure의 리소스를 만들기 위한 최소한의 준비과정은 마쳤습니다.
다음은 Azure Database for Mysql을 연결하는 과정을 진행하겠습니다.

profile
나의 개발 세상

0개의 댓글