본문 바로가기

개발

Azure의 핵심 아키텍처 구성 요소 간단 정리

애저를 사용하게 되었는데 aws도 회사에서 쓰다가 모르겠고 

이참에 한번 하면 나중에 aws 쓸때도 좋겟다 싶어서 

아예 처음부터 개념을 잡아 보려고 공식홈페이지에서 자료를 조사해서 써본다. 


애저(Azure)는 마이크로소프트(Microsoft)에서 제공하는 클라우드 컴퓨팅 플랫폼

Azure 서비스를 만들고 사용하려면 Azure 구독이 필요

자체 애플리케이션 및 비즈니스 요구 사항을 해결할 때는 Azure 계정을 만들어 구독을 생성해야 함

Azure 구독을 만든 후에는 각 구독 내에서 Azure 리소스를 만들 수 있다.

  • 리소스: Azure에서 관리되는 엔터티입니다. Azure Virtual Machines, 가상 네트워크, 스토리지 계정 등을 예로 들 수 있다.
  • 리소스 그룹: 구독에서 관련 리소스를 그룹화하는 데 사용하는 논리적 컨테이너. 각 리소스는 하나의 리소스 그룹에만 있을 수 있다. 리소스 그룹을 사용하면 구독 내에서 더 세분화된 그룹화가 가능
  • 구독: 리소스의 논리적 컨테이너입니다. 각 Azure 리소스는 하나의 구독에만 연결됨

  • Azure 계정: Azure 구독을 만들 때 제공하는 메일 주소는 구독에 대한 Azure 계정. 이메일 계정과 연결된 당사자는 구독의 리소스에 의해 발생하는 월별 비용을 담당합니다. Azure 계정을 만들 때 신용 카드와 같은 연락처 정보 및 청구 세부 정보를 제공
  • Active Directory : 회사나 조직에서 구성원들의 계정 정보(ID, Password)와 컴퓨터에 대한 정보, 각 사용자에게 할당하고자 하는 권한, 정책에 대한 정보 등을 저장하고 있는 일종의 데이터베이스 
  • Azure Active Directory (Azure AD)는 Azure상에서의 Active Directory로서 클라우드 기반 id 및 액세스 관리 서비스

 

Azure 리소스

 VM(가상 머신), 가상 네트워크, 데이터베이스, 인식 서비스 등은 모두 Azure 내에서 리소스로 간주

리소스 그룹은 말그대로 리소스를 하나의 그룹으로 묶어 관리하기 유용하도록 한 논리적 컨테이너

 

Azure 구독

Azure에서 구독은 관리, 청구 및 크기 조정의 단위입니다. 리소스 그룹이 리소스를 논리적으로 구성하는 방식과 마찬가지로 구독은 리소스 그룹을 논리적으로 구성하고 청구를 용이하게 할 수 있습니다.

구독을 사용하면 리소스 사용량을 확인하고, 청구 및 지불되는 방식을 제어한다 

 

ex> 사용예시

- 라이브 서버, 테스트 서버가 있다고 가정 

admin 하나에 계정에 라이브 구독, 테스트 구독을 만들었다. 
 - 라이브 구독과 테스트 구독의 그룹을 논리적으로 구성하고
  - 청구 및 지불되는 방식을 제어하기 떄문 

 테스트 구독에서 테스트를 할때 하나의 vm 을 띄우고 싶으면 하나의 vm 리소스를 생성한다. 

db를 하나를 더 띄우싶으면 리소스를 생성해서 그걸 같은 리소스 그룹으로 묶는다.

 

Azure 관리 그룹

구독이 많다면 해당 구독에 대한 액세스, 정책 및 규정 준수를 효율적으로 관리하는 방법이 필요할 수 있습니다. Azure 관리 그룹은 구독 상위 수준의 범위를 제공

관리 그룹을 사용하여 거버넌스 계층 구조를 만드는 예

 

여기까지 기본 개념에 대한 설명이다. 

이제 이 리소스를 다룰려면 어떻게 해야할까 

 

Azure Resource Manager

Azure의 기능을 오케스트레이션하는 서비스를 사용하는 프런트 엔드가 포함 되어있다. 

쿠버네티스도 cpu 나 메모리 상태에 따라 scale out 하는게 있는것 처럼 

Azure 도 리소스에 어떤걸 바꾸고 싶으면 Azure Resource Manager 를 통해서 리소스를 관리 한다. 

RESTful API 로 호출한다.

왜 굳이 RESTful API 로 만들었을까?? 

왜냐 하면 다양한 클라이언트를 지원하기 위해서!! 

Azure 에서는 PowerShell, Azure Portal 및 Azure CLI라는 세 가지 클라이언트를 지원해준다.

그래서 3가지 클라이언트에서 다 쓸수 있는 rest api 로 지원하는것 같다. 

 

이제 Azure Resource Manager  를 통한 동작 방식을 알아보자. 

그림은 아래 그림을 참고 하면된다. 

 

1. Azure Actvie Directory 에 인증된 사용자가 3개의 클라이언트 중 하나로 리소스를 컨트롤 할려고 요청함.

2. 인증된 사용자인지  Azure AD(Azure Active Directory) 에서 사용자를 확인함

3. 사용자에게 요청할 충분한 권한이 있는지 확인함.
Azure RBAC(Azure 역할 기반 액세스 제어)를 사용하여 사용자에 대한 권한을 할당

4. Azure 리소스 정책에 지정된 설정에서 요청이 허용되는지를 검사합니다. Azure 리소스 정책은 특정 리소스에 허용되는 작업을 지정합니다. 예를 들어 Azure 리소스 정책은 사용자가 특정 형식의 가상 머신만을 배포할 수 있도록 지정

5. 요청이 Azure 구독 제한을 초과하지 않는지 검사

6. 구독과 연결된 재무 약정 내에 요청이 있는지 확인하기 위해 검사합니다. 예를 들어 가상 머신을 배포하도록 하는 요청인 경우 Azure Resource Manager는 구독에 충분한 결제 정보가 있는지 확인

 

정리해보자면 사용자는 리소스를 관리하기 위해 Azure Resource Manager  를 통해서 리소스 관리를 해야하고

이 클라이언트는 3개로 나뉜다. 

관리를 하기 위해서는  Azure AD 에 권한이 있어야하고  Azure RBAC 에도 권한이 있어야한다. 

권한이 있다면 설정된 정책, 제한, 결제정보를 확인하고 나서 관리를 하게 된다.