Azure Virtual Network2. 가상 머신과 서브네트워크 이해

염지현·2024년 1월 23일

Azure

목록 보기
4/4

가상 머신과 네트워크 이해를 보고 오시면 조금 더 편하게 이 글을 이해할 수 있을 것 같아요!
https://velog.io/@yeomja99/Azure-Virtual-Network1.-%EA%B0%80%EC%83%81-%EB%A8%B8%EC%8B%A0%EC%9D%84-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%9D%B4%ED%95%B4

2. 가상 머신과 서브네트워크 이해

2.1. 왜 가상네트워크 안에 서브네트워크가 필요할까?

우리가 가상 머신을 2개 만들게 되면 각 가상머신별로 가상머신, 가상네트워크, 네트워크보안그룹, public IP, 디스크, 네트워크인터페이스가 만들어진다.(가상 머신 2개 * 관련 장치 6개 = 12개)

이렇게 되면 모든 것이 가상 머신 독립적으로 일어나게 된다.

그런데 개발을 할 때를 생각해보자.
프론트엔드와 백엔드가 독립적으로 개발이 될 것이다. 하지만 최종적으로는 프론트엔드에서 입력된 정보를 저장하거나, 요청하거나, 수정하거나, 삭제를 해야 하기 때문에 프론트엔드와 백엔드 간의 통신이 필요하고, 사용자가 백엔드 딴과 통신을 할 필요가 없다.(해서도 안 되고)

2.2. 먼저 같은 서브네트워크 안에 VM을 넣어주자


이렇게 되면 VM 간의 통신이 직접적으로 가능해진다.
이런 궁금증이 생길 수도 있을 것 같다.
public IP로도 접속이 되는데 왜 굳이 subnetwork에 같이 넣어주지?
먼저 public IP를 사용할 경우, 그림처럼 VNet 외부에 있는 public IP를 거쳐서 다른 VM의 private IP로 접근해야 한다. 하지만 subnetwork에 넣어줄 경우 굳이 public IP를 거치지 않고 내부 private IP만으로 서로 접근이 가능해진다.

또한 네트워크보안그룹을 subnetwork에 적용해서 VM 각각 nsg를 따로 줄 필요 없이 한 번의 규칙 정리로 두 VM에 적용할 수 있다.(그림에서 subnetwork 좌상단 방화벽이 NSG다.)

2.3. 하나의 public IP로 두 개 가상 머신 접속하기

앞서 말했듯이 개발을 하면 프론트엔드로 접속하고, 프론트엔드랑 백엔드만 통신하게 된다. 그렇기 때문에 우리는 굳이 2개의 public IP가 필요하지 않다.

위와 같이 frontend와 backend를 만들 수 있다. 서브네트워크를 두 개 만드는 이유는 프론트엔드 인바운드 규칙과 백엔드 인바운드 규칙이 다를 가능성이 크기 때문이다. 예를 들어 프론트엔드는 윈도우 os를, 백엔드는 리눅스 os를 사용한다고 하면 두 vm에 접속하는 포트가 다를 수 밖에 없다. 그렇기 때문에 서브네트워크를 각각 만들어 네트워크 보안 그룹으로 인바운드/아웃바운드 규칙을 명시해준다.

0개의 댓글