Microsoft Azure/Demo

Azure Network 구성 -1-

UnknownFolder 2023. 2. 3. 11:18

오랜만에 글입니다.

원래는 Azure Networking 관련하여 여러가지를 이야기할 예정이였는데...

글을 구성하는 도중에 이럴바에는 걍 다 이야기하는게 좋겠다 생각하여..

 

이 글은 2023년에 2월부터 작성된 글입니다. 날짜를 표기하는 이유는 Azure는 워낙 Portal UI의 변경이 심하고(그렇다고 뭐 천지개벽정도의 변경이 일어나는건 아닙니다.) 많은 기능들이 생겼났다가 없어지기도 해서.. 일단 날짜를 표기합니다.

 

해당 글은 단편이 아니라 시리즈로 업로드 될 예정입니다.(제가 귀찮음이 많아서... 중간에 글이 안올라올수도..) 

 

해당 시리즈를 읽거나 보게된다면 여러분은 Azure상에 다음과 같은 내용을 알수가 있게 됩니다.

  • Network 구성
  • VM 생성
  • Network Route 설정
  • 부하분산
  • Network 모니터링

등 Azure에서 구성할 수 있는 기본적이면서도 중요한 Infra를 설계 및 구성할 수 있습니다.

 

다만 각각의 서비스에 대해서는 자세하게 설명하지 않을 예정입니다. 자세한 설명들은 각각 서비스에 대해 별도로 글을 적을 예정입니다.

 

또한 해당 글은 저의 개인적인 공부의 목적도 있어 간혹 틀린 내용이 있을 수 있습니다. 이럴 경우 제발!!!! 덧글등으로 알려주세요..(나도 좀 알자!!!)

 

해당 글을 보시고 실습하시길 원하신다면 다음과 같은 준비물이 필요합니다.

  • 의지, 용기, 끈기 (다 제게는 없는 것들입니다..)
  • Azure의 매우 간단한 지식 (적어도 AZ-900 교육을 이수하는것을 권장드립니다.)
  • Azure 구독

Azure 구독은 Azure상에 리소스(Network, VM, Disk 등)를 배포하기 위한 도화지 같은 개념으로 생각하시면 됩니다.

Azure의 비용 청구는 구독단위로 청구된다는 것을 기억하세요!

Azure 구독에 대해서는 별도로 포스팅 하도록 하겠습니다.

 

이 데모에서 하고자 하는 것은 On-Premise와 Azure 간의 Network 연결 및 Azure Network의 Hub/Spoke 네트워크 구성을 진행할 겁니다.

 

대략적인 글 개요는 끝났으니 이제 시작하도록 하겠습니다.

 

첫번째로 설명을 위한 On-Premise 환경을 구성해야 합니다.

다만 저는 서버도, 네트워크 장비도 없는지라... On-Premise 환경을 Azure상에 생성할 예정입니다.

그러니까 무슨이야기냐면... 실제로는 Azure에서 Network든 VM이든 생성할 꺼지만 우리는 이 환경을 On-Premise라고 생각하자는 겁니다.

 

일단 아래의 그림을 배포할 예정입니다.

Azure에 배포하지만.. On-Premise라고 생각하며 구성될 그림

 

이번 글은 여기까지 만드는 것으로 끝낼 듯 합니다. 천천히 가시죠 천천히..

다시한번 설명하지만 위의 그림처럼 리소스들은 Azure상에 배포할꺼지만 우리는 배포된 환경을 On-Premise로 생각해야 합니다.

 

그럼 On-Premise 환경을 만들기 위해 Azure상에 가상 네트워크를 생성해야 합니다.

 

가상네트워크는 Azure에 IaaS 그리고 일부 PaaS 서비스를 구성하기 위한 필수적인 리소스 입니다. IaaS와 PaaS의 개념을 모르신다면 이전 글을 참고 하세요. 2017.02.12 - [Microsoft/Azure] - Azure를 이용하기 전에.. Cloud의 종류를 알아보고가요!

가상 네트워크는 여러분들이 회사에서 사용하는.. 혹은 공유기(또는 허브, 스위치)를 사용하는 환경의 사설 공간을 만드는 것입니다. 해당 네트워크는 독립적이며 다른 네트워크에 간섭을 받지 않습니다. 그렇기 때문에 해당 네트워크 안에 리소스들은 통신할 수 있지만 다른 네트워크와는 통신할 수 없습니다.(일반적으로 그렇습니다. 설정등을 통해 다른 네트워크와 통신하게 만들 수 있습니다.)

이후 생성하게 될 VM에 사설 IP를 지금 만들 가상네트워크에서 받게 됩니다.

 

그럼 가상네트워크를 배포하도록 하겠습니다.(Azure 구독이 있다는 전제하에 이야기합니다.)

 

Azure 가상네트워크 생성

Azure Portal에 로그인

로그인 하시면 아래와 비슷한 화면이 보이시게 될겁니다.

Azure Portal 화면

 

리소스 그룹 생성

메뉴에서 리소스 그룹을 클릭 후 만들기를 클릭하여 리소스 그룹을 만듭니다.
리소스 그룹은 Azure의 리소스들을 관리하기 위한 일종에 컨테이너라고 생각하시면 됩니다. 아니면 정말 제한적인 폴더 역할을 한다 라고 생각하셔도 됩니다.(당연히 폴더와는 다릅니다... 폴더와는.. ) 리소스 그룹에 대한 내용도 별도로 정리할 예정입니다.
왼쪽 위에 메뉴 버튼(짝대기 3개로 표시된..) 클릭 후 리소스 그룹을 클릭합니다.
이 후 만들기를 클릭하여 아래의 화면 순서대로 리소스 그룹을 만듭니다.
리소스 그룹 이름은 onprem-network-rg 로 설정 하고 위치는 한국 중부 로 설정합니다.

왼쪽 상단의 햄버거 버튼(짝대기 3개)클릭 후 리소스 그룹 클릭
만들기를 클릭
리소스 그룹 이름 입력, 영역에는 한국 중부 선택 후 검토+만들기를 선택하여 리소스 그룹 생성(화면에 보이는 구독은 여러분들과 다를 수 있습니다.)

 

가상 네트워크 생성

가상네트워크는 IaaS 또는 일부 PaaS 서비스를 운영하는데 반듯이 필요한 리소스 입니다. 가상 네트워크를 생성하는 것은 간단하지만 계획하는 것은 수많은 요건들을 생각하셔야 합니다. 워낙 내용이 많아 가상 네트워크 또한 별도로 글을 작성할 예정입니다.

왼쪽 상단 메뉴버튼 클릭 후 리소스 만들기를 클릭하여 가상네트워크를 만듭니다.

메뉴 버튼을 눌러 리소스 만들기를 클릭
virtual network 검색
만들기 클릭
네트워크 이름 및 물리적인 위치 설정

위와 같이 리소스 그룹은 앞 단계에서 생성한 onprem-network-rg를 선택, 이름엔 onprem-vnet 지역은 한국 중부 선택 후 다음:IP 주소 를 클릭합니다.

주소공간 설정

주소공간은 여러분이 사용할 사설 IP 주소 대역대를 기입하시면 됩니다. 해당 실습에서는 192.168.0.0/16 대역을 사용합니다.

서브넷을 설정합니다.

주소공간에 포함되는 서브넷을 설정합니다. 서브넷 이름은 default , 서브넷 주소범위는 192.168.0.0/24 대역을 기입합니다.

참고로 Azure에서 네트워크 계획을 하실때에는 잘 생각하셔야 합니다. 가상네트워크 주소공간을 24대역 이하로 주면 이후에 서브넷을 설정하는데 한계가 있을 수 있습니다. Azure의 특정 서비스는 별도의 서브넷이 주어져야 하는 경우가 있습니다. 가능하다면 넉넉한 IP 대역대를 가지고 시작하는게 좋습니다. 또한 다른 네트워크와 연결(ex : VPN, Peering등)할 계획이 있다면 연결할 IP주소 대역대와 겹치지 않게 설정해야합니다.

또한 서브넷 처음 4자리 및 끝에 1자리는 사용할 수 없습니다. 표준 규약 및 Azure에서 예약되어 사용되는 IP입니다. 예를 들어 지금처럼 192.168.0.0/24 대역을 갖는 서브넷이라고 한다면 192.168.0.0 , 192.168.0.1, 192.168.0.2 , 192.168.0.3 , 192.168.0.255 IP는 사용할 수 없습니다.

앞에 설정한 내용들을 검토합니다.

그 외에 다른 설정들은 기본값으로 하여 가상네트워크를 만듭니다. 위의 화면에서 만들기를 클릭 합니다.

 

가상머신 생성

가상 네트워크가 만들어 졌다면 해당 네트워크에서 실행되는 서버(혹은 클라이언트)를 생성합니다.

Azure에서는 가상머신이라고 합니다.(참고로 AWS에서는 ec2, 구글클라우드에서는 Compute Engine 라고 하더군요.)

가장 대표적인 IaaS 서비스 입니다. VM 관련해서도 별도로 글을 적도록 하겠습니다.

 

우리가 만들 VM은 익숙한 Windows VM으로 하겠습니다. (Windows Server 2016)

참고로 Azure상에 있는 Windows Server의 에디션은 Datacenter 에디션만 존재합니다. 또한 영문 버전만 있으니 다른 언어가 필요하다면 OS 내에서 언어 변경을 하셔야 합니다.

 

우선 VM이 위치할 리소스 그룹을 생성 합니다.

리소스 그룹 만드는 방법은 위에 설명하였으므로 동일한 방법으로 이름과 위치만 설정하여 생성합니다.

 

리소스 그룹 이름 : onprem-vms-rg

위치 : 한국 중부

리소스 그룹이 생성 되었다면 이제 Azure Portal의 왼쪽 메뉴에서 리소스 만들기를 클릭한 후 "
windows"라고 검색합니다.

나오는 검색 결과에서 Windows Server를 선택한 후 Windows Server 2016 이미지를 선택 합니다.

만들기를 클릭하면 VM에 대한 정보를 입력하는 화면이 나옵니다.

아래의 정보를 기입한 후 디스크를 클릭합니다. (별도로 기입하지 않은 정보가 있다면 기본값으로 진행 합니다.)

리소스 그룹 : onprem-vms-rg

가상 머신 이름 : onprem-vm1

지역 : 한국 중부

크기 : B2ms

사용자 이름 : (직접 설정해 주세요.)

암호 및 암호 확인 : (직접 설정해 주세요)

디스크 화면에서는 디스크 유형을 HDD로 변경 후 네트워킹을 클릭 합니다.

네트워킹 설정에서는 아래와 같이 설정 합니다.

가상 네트워크 : onprem-vnet

서브넷 : default

NIC 네트워크 보안 그룹 : 없음 (따로 만들 예정)

이후 관리, 모니터링, 고급, 태그는 다음을 클릭하여 검토+만들기 과정까지 갑니다.

참고로 비용 때문에 VM을 자동 종료 하고 싶다면 관리쪽에서 자동종료 옵션을 설정 합니다. (필수 아님)

검토 화면에서 나오는 내용을 확인 후 문제가 없다면 만들기를 클릭합니다.

1~2분 정도 지나면.... 알림을 통해...

짜잔!!!!

VM 배포 성공 알람이 뜹니다.

해당 리소스 그룹에 가서 확인하면...

이렇게 4개의 리소스가 만들어 진것을 확인할 수 있습니다. 이중 공용Ip는 VM 생성 시 옵션이기 때문에 경우에 실제 VM의 필요한 리소스는 VM, 디스크, 네트워크 인터페이스 3개가 VM생성 시 만들어지는 최소의 리소스 입니다.

 

자 이제 VM을 만들었으면 무엇을 해야할까요? 바로 보안 입니다.

 

방화벽 생성

현재 우리는 Azure상에 네트워크 및 VM을 배포하였지만 우리끼리의 약속으로 On-premise라고 생각하기로 했습니다.

On-prem과 마찬가지로 보안은 중요한 요건 입니다. 다행이도 Azure에서는 Azure Datacenter 단에 보안이 상당히 잘되어 있기 때문에 On-Premise에서 보안을 꾸밀때 보다 상대적으로 용이합니다. 또한 비용도 절감되구요... 다만 모든 보안을 Azure에서 책임지지 않습니다. Azure에서 제공하는(또는 3rd party) 보안 서비스를 이용해 자신의 환경에 맞게 구성 및 설정을 해야합니다. 가장 기본적으로 무료로 제공되는 보안 리소스는 Network Security Group(이하 NSG)라는 IP/Port 기반의 방화벽입니다. NSG에 대해서도 별도로 글을 적도록 하겠습니다. 지금은 IP/Port 기반에 방화벽이며, 서브넷에 연결할꺼다! 정도만 기억해두세요.

 

Azure Portal에서 왼쪽에 리소스 만들기를 클릭한 후 Network Security Group(또는 네트워크 보안 그룹)을 검색하여 만들기를 클릭합니다.

NSG는 Netwrok 리소스로 판단하여 기존에 만들었던 onprem-network-rg에 위치합니다. 아래 설정을 참고 후 검토+만들기를 클릭하시면 NSG는 생성 됩니다.

리소스 그룹 : onprem-network-rg

이름 : onprem-vnet-defaultsubnet-nsg

지역 : 한국 중부

생성이 완료되면 onprem-network-rg에 NSG가 보일 겁니다. 만들어진 NSG를 클릭합니다.

인바운드 보안 규칙에 외부에서 RDP(원격데스크톱)와 연결하기 위해 규칙을 추가합니다. 사실 실제 운영환경에서는 이런한 구성은 보안 상 매우 위험합니다.(사실 공용 IP 생성 부터가 위험한 부분이긴 합니다.) 이부분은 보안 요건에 따라 규칙을 만들어야 하지만 이번은 그냥 Demo이므로 외부에 3389 Port를 open합니다.

 

왼쪽 인바운드 보안 규칙 클릭 후 추가를 클릭합니다.

소스는 트래픽이 어디에서 오는 것인지 정하는겁니다.

원본 포트 범위는 트래픽이 어느 포트에서 출발한 것인지를 적으면 됩니다.

대상 주소는 들어오는 트래픽의 목적지를 적으면 됩니다.

서비스는 이미 고정되어 사용된 Port를 지정 할 수 있습니다. 임의의 Port라면 Custom을 선택하면 됩니다.

프로토콜을뭐 보시다시피.. 들어오는 트래픽이 어떤 프로토콜을 이용하는지 선택하면 되고

위의 규칙에 따라 들어오는 트래픽을 허용 할것인지 거부할 것인지 작업에서 체크하면 됩니다

이렇게 만들어진 규칙은 우선순위가 있습니다. 숫자가 낮은것부터 우선 적용 됩니다.

저는 아래와 같이 설정할 것입니다. 일단 지금은 같이 따라와 주세요. NSG에 대한 부분은 별도로 자세히 다룰 예정입니다.

자.. NSG를 만들었고 규칙을 추가했다 해서 바로 적용되는 것이 아닙니다. 규칙이 만들어진 NSG가 어디에 적용될 지 연결을 시켜야 합니다. NSG는 VM에 Network Interface에 연결할 수 있으며 가상네트워크에 서브넷에 연결할 수 있습니다. 또 하나의 NSG는 다수의 서브넷, Netwrok Interface에 연결이 가능합니다. 이 과정에서는 만들어진 NSG를 서브넷에 연결하도록 하겠습니다. 

NSG 왼쪽 메뉴에 서브넷을 클릭하고 연결을 클릭합니다. 클릭하면 우리가 만들었던 가상네트워크와 해당 가상네트워크에 있는 서브넷이 자동으로 선택되어져 있습니다. 만약 여러개의 가상네트워크와 여러개의 서브넷이 있다면 드롭다운을 통해 연결하고자 하는 서브넷을 선택 할 수 있습니다. 지금은 그냥 바로 연결합니다.

이렇게 하면 Default 서브넷은 NSG에 지정한 규칙에 따라 네트워크 제어를 할 수 있습니다.

VPN Gatewat 생성

앞서 개요에서 이야기 했듯이 On-Premise와 Azure 구간의 연결을 하기 위한 VPN을 구성할 에정입니다.

현재 과정은 On-Premise라면 별도의 VPN장비(Fortigate 라든가 cisco 장비들..)를 구성해야하지만.. 여건상 그렇게 안되니.. Azure에서 제공하는 VPN Gateway를 On-Prem에 VPN Device라고 생각합니다.

마찬가지로 VPN Gateway에 대해서도 별도로 글을 적도록 하겠습니다.

지금을 일단 구성만 하는 것으로.. 

 

Azure Portal 왼쪽 메뉴에서 리소스 만들기를 클릭 후 Virtual network gateway(또는 가상 네트워크 게이트웨이)라고 검색 후 나오는 리소스에서 만들기를 클릭합니다.

VPN gateway 생성 시 리소스그룹은 가상네트워크의 리소스 그룹을 따라 갑니다.

아래 설정처럼 구성 합니다.

여기서 중요한점은 가상네트워크 게이트웨이는 가상네트워크에서 별도의 서브넷을 사용해야 합니다. 오로지 게이트웨이만을 위한 서브넷이 필요합니다. 따라서 만약 Azure상에 가상네트워크 게이트웨이를 사용할 예정이라면 가상네트워크의 주소공간을 넉넉히 가져가는 것을 권장 합니다.

나머지 설정도 아래와 같이 설정 후 검토+만들기 를 클릭하여 VPN gateway를 생성합니다.

이 가상네트워크 게이트웨이는 Azure에서 제공하는 모든 리소스 중에 배포과정이 긴 편에 속합니다. 약 20~30분 정도 소요됩니다. 참고하세요.

 

이로써!!!

일단은 Azure 상에 구성되었지만 우리는 On-premise라고 생각하기로한 On-premise 환경 구성이 완료 되었습니다.

 

솔직히 분량 미스입니다.. 이리 길줄은... 하고자하는 말이 많아서.. ㅎㅎ

나중에 유튜브로 만들어야 겠습니다.

 

여튼 여기까지 따라오시느라 고생하셨고 다음 과정도 곧 글을 적도록 하겠습니다.

감사합니다. 😊