궁금한게 많은 개발자 노트

AWS와 Azure 본문

DevOps

AWS와 Azure

궁금한게 많은 개발자 2024. 11. 1. 16:29

많은 분들이 이미 잘 알고 계시겠지만, AWS(Amazon Web Services)와 Azure(Microsoft Azure)는 세계에서 가장 널리 사용되는 두 클라우드 컴퓨팅 플랫폼입니다. 각각의 서비스는 인프라, 애플리케이션 개발, 데이터 관리, AI 등 다양한 영역에서 기업과 개발자들에게 필수적인 도구를 제공합니다. 두 플랫폼은 공통된 서비스들을 제공하면서도 고유한 특성과 장점을 가지고 있습니다.

 

 

AWS는 Amazon Web Service로 아마존에서 제공하는 클라우드 플랫폼으로 2006년 최초 출시 이후 클라우드 컴퓨팅의 선두주자로 자리 잡았으며, 현재 업계 최고 수준의 자동화, 보안 및 확장성을 갖춘 클라우드를 제공하고 있습니다. (시장 점유율 약 32%)

마이크로소프트에서 개발한 Azure는 2010년에 시작하였으며, 2011년 PaaS에 이어 2013년 IaaS서비스를 시작했습니다. Azure는 전세계 많은 기업 및 기관들이 윈도우 및 오피스와 같은 MS 소프트웨어를 사용하기 때문에 윈도우 플랫폼 및 Active Directory와 같은 시스템을 사용하는 기업에서 선호하는 특징을 가지고 있습니다. 가장 많은 60개 이상의 글로벌 Region을 운영하고 있습니다. (시장 점유율 24%)

 

이미 AWS에 대해서는 잘 알고 있다고 생각하고, Azure에 대해 알아보면서 AWS와 비교해서 어떤 점이 비슷하고 어떤 점이 다른 지에 대해 상세히 알아보도록 하겠습니다 😁

 

AWS와 Azure는 계정의 계층 구조가 서로 다릅니다. 기본적으로 Azure에서는 Tenant밑에 구독이 생기는 구조로 이루어져 있으며, AWS에서 Organiztation은 필수가 아닌 선택 사항입니다. 또한 Resource Group이라는 것이 차이점인데, AWS에서도 존재하긴 하지만 TAG와 Cloudformation기반으로 동작하며 특정 TAG를 기준으로 Resource를 묶어서 관리하거나 Cloudformation에 의해 생긴 resource들을 그룹화하는 것을 의미합니다. 하지만 Azure에서 리소스 그룹은 특정 그룹 내의 리소스들을 일괄 배포, 관리, 삭제할 수 있는 단일 관리 단위입니다.

 

 

 

Azure관점에서 좀 더 자세히 알아보자면 리소스는 Azure에서 관리하는 엔티티로 가상머신(VM), 가상 네트워크, 스토리지 등을 의미합니다. 리소스 단위로 액세스 제어가 가능하며 상위 구독, 리소스 그룹에서의 액세스 제어(IAM)을 상속받습니다.

 

리소스는 하나의 리소스 그룹에 속해야 하며, 리소스 그룹은 여러 리소스를 그룹화하여 생명 주기, 보안 설정, 액세스 제어 등을 관리할 수 있는 논리적 단위입니다. 리소스 그룹에 속하는 리소스는 다른 지역에 위치할 수 있으며 위에서 언급한 것처럼 리소스 그룹에서 설정한 리소스 잠금, 액세스 제어(IAM)은 하위 리소스에 상속됩니다.
또한 리소스 그룹 내 리소스들은 동일한 수명 주기를 공유하며 배포, 업데이트, 삭제를 함께 하며 다른 배포 주기가 존재하는 경우 다른 리소스 그룹에 속해야 합니다.

 

리소스 그룹의 상위 개념으로는 구독이 있습니다. Azure의 구독(Subscription)은 리소스 그룹과 하위 리소스들을 그룹화하는 단위로 구독 단위로 리소스 요금을 관리합니다. AWS의 Account와 상응하는 개념으로 볼 수 있습니다.

구독은 Azure의 리소스 매니저에 사용되는 컨트롤과 연결되어 있으며, 구독에 대한 액세스 권한 할당은 RBAC(Role Based Access Controls)을 기반으로 합니다.

 

 

최상위 개념으로는 관리 그룹(Management Group)이 있습니다. 하나 이상의 구독에 대한 액세스, 정책 등 효율적으로 관리하기 위한 구독 상위 수준의 범위이며 단일 관리 그룹 내의 모든 구독은 동일한 Azure AD(Active Directory) 테넌트를 신뢰해야 합니다. 

관리 그룹은 Azure계정의 리소스와 구독을 계층적으로 구성하여 보다 높은 수준에서 관리할 수 있는 기능입니다. Azure의 리소스 그룹이 주로 개별 애플리케이션이나 프로젝트에 속한 리소스를 묶는 용도로 사용된다면, 관리 그룹은 여러 개의 구독과 리소스 그룹을 한 계층에서 관리할 수 있도록 설계되어 조직 전체 수준의 거버넌스와 정책 설정에 도움을 줍니다.

관리 그룹을 통해 Azure Policy 및 RBAC 정책을 조직 전체 또는 특정 구독 및 리소스 그룹에 걸쳐 일괄 적용할 수 있습니다. 보안 규칙, 비용 관리 규칙 등의 정책을 상위 레벨에서 설정하고, 하위 구독들이 이를 상속받아 일관된 정책을 유지할 수 있습니다. 또한 계층 구조를 지원함으로써 회사 전체, 부서, 팀 등의 구조에 맞게 정책과 권한을 세밀하게 적용이 가능합니다. 관리 그룹 아래에 다중 구독을 배치하면서 dev, stg, prd 환경을 구분하여 각각 환경에 적합한 정책을 적용할 수도 있습니다.

 

 

또한 루트 관리 그룹은 전체 관리 그룹의 최상위에 위치한 기본 그룹이며 Azure 테넌트가 생성될 때 자동으로 생성되며 해당 테넌트 내 모든 구독과 관리 그룹을 포함합니다. 사용자 액세스 관리자는 Azure의 다른 사용자에게 리로스 액세스 권한을 부여할 수 있는 특별한 역할입니다. 이 역할을 가진 사용자는 특정 구독, 리소스 그룹 또는 리소스에 대 해 접근 권한을 설정하거나 수정할 수 있습니다. 이는 RBAC과 통합되어 있습니다.

 

 

다음은 AWS와 Azure의 용어 및 서비스를 비교해보고자 합니다.

 

 

 

 

AWS에서 네트워크를 생성할 때 VPC를 생성하고 Subnet과 Route Table을 생성하며 Public Subnet의 경우 IGW를 생성하여 Route Table에 연결해주고, Private Subnet에서 외부와 통신이 필요할 경우 NAT를 통해 외부와 통신하게 됩니다.

하지만, Azure에서는 기본적인 Virtual Network를 생성하고 라우팅 테이블로 Public/Private 서브넷을 구분하지 않습니다. 또한 NAT 기능이 필요한 경우 LB에 sNAT기능이 있기에 LB를 사용한면 따로 NAT를 연결할 필요가 없습니다. (LB를 사용하지 않는 경우에는 NAT가 필요할 수 있습니다)

기본적으로 Azure에서 생성한 Subnet에 존재하는 VM에서 명시적 아웃바운드 연결이 없는 경우에도 기본 아웃바운드 IP(Public IP, 임시 IP로 리소스 그룹에 속하지 않으며 Azure가 관리하기에 변경 가능)가 생성되어 외부로 소통이 가능합니다. 이는 System Route가 기본으로 구성되며 그 중 하나가 0.0.0.0/0에 대한 인터넷 연결을 의미합니다. 

 

하지만, 2023년 11월에 Private Subnet 기능이 Preview로 추가되었습니다. Private Subnet은 기본 Outbound Access를 False로 제한하기 때문에 Private Subnet의 VM에서 명시적인 아운바운드 구성을 통해서 가능합니다. NAT Gateway를 통해 라우트 테이블에서 연결하고, 아웃바운드 규칙 생성을 통해 가능합니다.

reference: https://sundlscha.tistory.com/35

 

 

 

 

 

 

 

 

위와 같이 AWS와 Azure의 차이점에 대해 알아봤으며, Azure에서 제공하는 아래 링크를 참고하여 더 자세한 AWS전문가가 Azure를 사용하는 경우 참고할 수 있는 다양한 내용을 확인할 수 있습니다. 긴 글 읽어주셔서 감사합니다 😎👍

참고 사항: https://learn.microsoft.com/ko-kr/azure/architecture/aws-professional/

'DevOps' 카테고리의 다른 글

[ Kubernetes ] CPU 알뜰하게 사용하기  (0) 2024.11.12
azure & github certification  (0) 2024.11.08
클라우드 관련 업무 지식  (0) 2024.09.23
컨테이너와 가상 머신  (0) 2024.09.23
서버리스 (Serverless)  (2) 2024.09.17
Comments