※ 일본의 한 블로그 글을 번역한 것입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적 부탁드립니다.
AWS는 어느정도 알고 있지만 Azure은 처음인 경우 당황하는 경우가 많다. 나도 그런 사람 중 한 사람이었다. 따라서 이번 포스팅에서는 AWS의 환경 구축 순서를 바탕으로 Azure에서는 어떻게 환경을 구축하는지 차이를 살펴보고자 한다. 참고로 아래의 내용은 2021년 5월 기점에 작성된 것으로 현재는 바꼈을 가능성이 있으니 참고하길 바란다.
구축할 환경
AWS와 Azure 각각에 가상 머신을 1개 실행하여 인터넷에서 부터 접속 할 수 있는 심플한 환경을 만들어 볼 것이다. 이러한 환경을 구축해 가면서 두 개의 차이점에 대해서 간단히 설명하고자한다. 아래의 그림은 AWS와 Azure의 구성도이다. 메모에도 기재해뒀지만, 지역이나 AZ의 설정 단위가 다르다.
Azure은 리전 그룹 이하의 리소스가 모두 개별로 지역을 설정할 수 있다. 또한 AZ도 가상 먼신 단위로 설정하게 된다. AWS와는 차이가 있으므로 이 점을 의식할 필요가 있다.
구분 | AWS | Azure |
과금 단위 | AWS 계정 단위 | 서브 스크립션 단위 |
지역 단위 | Region 단위 | 리소스 단위 |
AZ 단위 | subnet 단위 | 리소스 단위 |
다음은 인터넷 접속에 관련된 이야기이다. Azure에서는 처음부터 인터넷 접속이 전제로 되어 있다. 따라서 AWS와 같이 IGW를 붙일 필요가 없다. 이러한 전제를 유념해서 설정 작업을 실시해보도록 하자.
초기 설정 순서
초기 설정 순를 비교해보자. 기본적으로 AWS 초기 설정을 바탕으로 설명할 것이다.
1. 계정 등록
계정을 만든다. 계정 등록후 1년간 어느정도의 범위 내에서 무료 이용이 가능하므로, 실제로 사용할 마음이 있을 시기에 계정을 만드는 것을 추천한다. 특히 Azure은 "이용 시작 30일 간 20만원정도의 지원"을 해준다.
2. 루트 유저의 MFA 설정
루트 유저의 이중 인증 설정이다. AWS와 Azure 모두 동일한 처리가 필요하다. AWS의 유저 관리는 IAM에서 설정하지만, 루트 유저는 그곳에서 설정하지 않는다. 루트 유저의 MFA 설정의 경우 "내 보안 자격 정보"에서 해야 할 필요가 있다.
AWS의 루트유저에 상응하는 것이 Azure의 Micorosoft 계정이다. Azure의 유저 관리는 AzureAD에서 하지만, Micorosoft 계정의 경우 그렇지 않다. Microsofot 계정의 MFA 설정의 경우 "Microsofot 계정"에 액세스해서 설정할 필요가 있다.
3. 조작 로그 추적 설정
AWS도 Azure도 조작 로그는 초기 설정 상태라면 90일간 보관된다. 그 이상의 기간을 저장하고 싶은 경우아 아래와 같이 설정한다. 특히 AWS에 관련해서는 추적을 하도록 설정하는 것을 추천한다.
구분 | 기능 | 로그 저장 장소 |
AWS | CloudTrail | - S3 - CloudWatch |
Azure | 액티비티 로그 - 진단 설정 | - 스토리지 어카운트 - Log Analytics 워크 스페이스 - Event Hubs |
4. 청구 알람 설정 추가
설정한 과금이상 금액이 발생하는 경우 알람을 보내주는 설정은 AWS, Azure 둘 다 거의 동일하다.
구분 | 기능 |
AWS | CloudWatch |
Azure | Cost Alerts |
Azure는 1개의 예산 설정 안에 여러 개의 알람을 설정할 수 있다. AWS는 금액 단위로 각각 알람을 설정할 필요가 있어 이 부분은 Azure의 경우가 사용하기 편리하다고 느꼈다. 그러나, AWS은 설정한 금액을 넘었을 경우 액션(서버를 중지하는 등)을 설정할 수 있으므로, 운영면에서는 AWS가 메리트가 있는 느낌이 었다.
5. 비밀번호 규칙 설정
AWS는 비밀번호 조건을 설정할 수 있다. Azure은 고정된 규칙이 있으므로 변경할 수 없지만, 커스텀할 수 없는 패스워드를 설정할 수 있다.
구분 | 기능 |
AWS | IAM |
Azure | AzureAD |
6. 관리자 유저 생성
맨처음 만든 "루트 유저"는 작업 등에 사용하지 않는 것을 AWS에서는 권장한다. Azure의 "Microsoft 계정"에 관해서는 이러한 방침이 딱히 없으나, 따로 관리자 유저를 만들 수 있다.
구분 | 기능 | 권한 |
AWS | IAM | 관리 정책 "Adiministrator Access" |
Azure | i) AzureAD ii) 서브 스크립션 |
i) AzureAD롤 "글로벌 관리자' ii) AzureAD롤 "소유자" |
Azure 환경은 환경마다 롤이 존재한다. 다만, AWS와 같은 IAM롤과 완전히 동일한 것은 이다.
7. 관리자 유저로 로그인
생성한 관리자 유저로 로그인한다. 이 이후로는 기본적으로 루트 유저는 이용하지 않는다.
구분 | 기능 |
AWS | IAM |
Azure | AzureAD |
기본 환경 생성
이제부터 본격적으로 환경구축에 돌입한다. 맨 처음에서 설명했듯, 아래와 같이 간단한 환경을 만들 것이다.
1. 리전 그룹의 작성
Azure의 리소스는 반드시 1개의 리소스 스룹에 소속될 필요가 있다. 그 때문에, 리소스 그룹을 맨 처음에 만들 필요가 있다. AWS에는 이러한 개념이 존재하지 않는다.
구분 | 기능 |
AWS | 없음 |
Azure | 리소스 그룹 |
2. 가상 네트워크의 생성
가상 네트워크를 작성한다. AWS의 경우 매니저 콘솔 화면에서 리전을 지정한 후에 VPC를 생성한다. Azure은 리소스 단위로 리전을 설정한다. 이 부분이 가장 큰 차이점이다.
구분 | 기능 | 리전의 설정 |
AWS | VPC | 리소스 단위로는 지정하지 않는다. |
Azure | 가상 네트워크 | 리소스 단위로 지정한다. |
3. 서브넷의 생성
서브넷을 생성한다. AWS는 서브넷에 AZ를 설정하지만, Azure은 서브넷와 AZ을 링크하지 않고 가상머신을 작성할 때에 설정한다. 이 전제로 인해 Azure는 AZ장애가 발생했을 경우에도 서브넷이 죽지 않는다. 따라서 단체 서브넷 중에 단순히 가상 머신의 AZ를 변경하여 구성할 수 있다.
구분 | 기능 | AZ |
AWS | VPC-서브넷 | 여러 개의 AZ에서 한 가지를 선택 |
Azure | 가상 네트워크-서브넷 | - |
예를 들어 3개의 가상 머신의 AZ를 분할하여 확장된 구성을 하고 싶은 경우 아래와 같이 구성되게 된다.
4. 인터넷 게이트 웨이(IGW)의 작성
AWS에서는 IGW를 작성한다. 인터넷에 접속할 경우는 VPC에 IGW를 붙일 필요가 있다. Azure에는 반대로 기본적으로 인터넷 접속이 가능하게 되어 있다. 따라서 인터넷 접속하고 싶지 않은 경우에는 FW등에 통신 제어를 할 필요가 있다.
구분 | 기능 |
AWS | VPC-IGW |
Azure |
5. 라우팅 테이블의 작성
AWS는 Default 라우팅 테이블과 커스텀 라우팅 테이블을 선택할 수 있다. Azure에서는 반드시 시스템 라우터가 서브넷에 설정된다. 변경하고 싶은 경우 커스텀 라우팅을 덮어쓰는 방식으로 설정할 수 있다.
구분 | 기능 |
AWS | VPC-라우팅 테이블 |
Azure |
또한, Azure의 시스템 라우터는 아래와 같다. 빨간 박스로 테두리친 부분이 인터넷 접속 설정이다.
6. 라우팅 테이블과 IGW의 연결
AWS는 라우팅 테이블에 IGW를 연결함으로써 "퍼블릭용 라우팅 테이블"이 된다.
구분 | 기능 |
AWS | VPC-라우팅테이블 |
Azure |
7. 라이팅 테이블과 서브넷의 연결
AWS에서는 "퍼블릭용 라이팅 테이블"을 연결한 서브넷이 "퍼블릭 서브넷"이 된다. 이것은 인터넷 접속이 가능한 서브넷이라는 의미가 된다. Azure은 맨 처음부터 인터넷 접속이 가능하므로 이러한 작업이 필요없다.
구분 | 기능 |
AWS | VPC-서브넷 |
Azure |
8. 세큐리티 그룹의 생성
AWS와 Azure 양쪽 모두 세큐리티 그룹을 작성한다. RDP의 프로토콜의 허가를 부여한다.
구분 | 기능 |
AWS | VPC-세큐리티 그룹 |
Azure |
또한, FW 기능에 있는 세큐리티 그룹 및 ACL의 설정 내용은 다음과 같다. 이번 작업의 경우 AWS쪽은 네트워크 ACL을 이용하지 않는다.
9. 플로우 로그(흐름 로그) 발행용 IAM 롤의 작성
AWS 인증 자격 시험에 자주 등장하는 플로우 로그이지만, 출력하기 위해서는 설정이 필요하다. 권한 부여한 IAM롤을 작성할 필요가 있다. 한편, Azure에서는 IAM롤과 같이 필수 설정이 없다.
구분 | 기능 |
AWS | IAM-IAM롤 |
Azure |
10. 플로우 로그(흐름 로그)의 작성
AWS의 플로우 로그 작성과 비교하여, Azure의 설정항목은 비교적 많다. 여러 개의 자격을 확인하지 않으면 설정되지 않는 레벨이다.
구분 | 기능 | 로그 저장 장소 |
AWS | VPC, EC2 - 플로우 로그 | CloudWatch(S3도 지정할 수 있다.) |
Azure |
11. 플로우 로그(흐름 로그)의 확인
플로우 로그를 가시화하여 확인한다.
구분 | 기능 |
AWS | Cloudwatch-logs |
Azure |
EC2 실행과 초기 설정(WindowsOS)
AWS에서 인스턴스 접속에 필요한 키 페어를 생성한다. Azure에서는 키페어라는 개념이 없다. Vertual Machine를 생성할 때에 유저와 패스워드를 입력한다.
구분 | 기능 |
AWS | EC2 |
Azure | Virtual Machines |
2. 가상 머신의 실행
가상 머신을 실행한다.
구분 | 기능 |
AWS | EC2 |
Azure |
Azure과 AWS의 가상 머신에는 몇 가지 다른 점이 있기에 기재한다.
디스크 영역에 대해서
AWS는 디스크 영역을 EBS에서 설정한다. 디스크 용량 등도 설정할 수 있다. Azure은 이미지내에 OS 디스크 영역이 포함되어 있어, 사이지는 일시 디스크 영역에 포함되게 된다. 각각을 선택하면 용량도 자동적으로 정해지므로, 용량 변경은 불가능하다.
용량지정이 필요한 경우에는 가상 머신을 생성한 후에 "사이즈 및 퍼포먼스"에서 디스크 사이즈를 변경해야할 필요가 있다. 또한, Azure의 디스크 영역은 기본적으로 암호화된다.
구분 | CPU | 메모리 | 디스크 |
AWS | O | O | X(EBS) |
Azure | O | O |
조금 더 Azure에 대해서 설명을 추가하자면, Azure의 OS 디스크의 용량은 다음과 같은 룰이 있다. 아래는 Windows2019의 예이다. 이름은 smalldisk가 붙어있는지의 여부에 따라 용량이 다르다.
이미지 | OS |
Windows Server 2019 Datacenter-Gen 1 | 128G |
[samlldisk]Windows Server 2019 Datacenter-Gen 1 | 30G |
Azure의 일시 디스크의 용량은 가상 머신 생성후의 "사이즈" 화면에 표시된다.
AZ(가용성존)에 대해서
AZ에 대해서는 AWS가 서브넷으로 설정하지만, Azure에서는 가상 머신 단위로 설정한다. Azure에서는 AZ을 가용성존이라고 부른다.
Azure에는 가용성 존이외에 가용성 세트이라는 확장화 방식도 있다. 확장하할 경우는 둘 중에 한 쪽을 선택할 필요가 있다. Azure의 가용성 세트는 AWS 스프레드 플레이스먼트 그룹(배치 그룹)에 가까운 이미지이다.
그 외에, 아래의 설정이 필요하다. Azure에는 IAM롤과 같은 필수 롤 설정은 없다. 가까운 것은 서비스 정책이 있지만, 추가적인 요소이므로, 설명은 여기서 스킵하도록 하겠다.
구분 | 프라이빗 IP | FW설정 | 롤 |
AWS | IP 설정(지정가능) | 세큐리티 그룹 | IAM롤 |
Azure | 자동IP설정(지정불가) | NSG | 없음 |
또한, 퍼블릭 IP는 Azure도 AWS도 자동적으로 IP가 할당된다. 위의 점들을 고려하여 가상 머신을 생성하자. 가상 먼신의 생성이 완료되면, 아래의 작업을 계속해서 실시하자.
3. 프라이빗 IP 주소의 설정
Azure은 가상 머신 생성시에 프라이빗 IP주소를 지정할 수 없으므로, 가상 머신 생성 후에 변경한다.
구분 | 기능 |
AWS | 불필요 |
Azure | Virtual Machines-Networking |
4. OS디스크 사이즈의 변경
Azure은 가상 머신 생성시에는 OS디스크의 용량을 지정할 수 없으므로, 가상 머신 생성후에 변경한다.
구분 | 기능 |
AWS | 불필요 |
Azure | Virtual Machines-Disks |
5. 가상머신으로의 접속
RDP에 접속하자. Windows의 OS환경이 실행된다.
구분 | 기능 | 접속 방법 |
AWS | EC2 | RDP |
Azure | Virtual Machines | RDP |
가상머신 운용상의 주의점
운용면에서는 AWS와 사양가 다른 점이 있다. AWS는 OS로부터 셧다운했을 경우는 인스턴스는 중지하여 과금이 멈추지만, Azure은 OS로부터 셧다운했을 경우에도 계속해서 과금이 되므로 주의할 필요가 있다.
참고자료
'IT > 기초 지식' 카테고리의 다른 글
[Azure] Azure으로 MLOps 구현하기 <실전편> (0) | 2022.04.12 |
---|---|
[Azure] Azure으로 MLOps 구현하기 <개념편> (0) | 2022.04.11 |
[git] git submodule 기초 (0) | 2022.04.04 |
[UML] 클래스 다이어그램 (0) | 2022.03.30 |
[Docker] NVIDIA Container Toolkit(NVIDIA Docker)의 동작원리 (0) | 2022.02.18 |