환경
Azure Cloud
Linux (Redhat or centos)
Standard A1 v2(1개 vcpu, 2 GiB 메모리)
개요
Azure의 기능을 통해 서버 2대를 이용한 lb test를 진행할 예정입니다.
-> load balancing의 약어로 lb라 부르겠습니다.
목차
- 리소스 그룹 만들기
- 가상 네트워크 만들기
- 부하분산 장치(loadBalancer) 만들기
- lb를 위한 vm 2대 만들기
- 각 서버에 접속할 httpd 생성
- lb test
- 리소스 그룹 만들기
리소스 그룹은 Azure 관련 리소스를 보관하는 컨테이너입니다. 지금 만들어준 그룹에 테스트를 위한 모든 리소스를 할당할 예정입니다.
만들기를 누르면 아래와 같은 그룹 만들기 화면이 나옵니다.
리소스 그룹은 원하는 명칭을 만들어주세요.
저는 서울 쪽에서 일하기 때문에 영역을 한국 중부로 설정했습니다.
바로 만들기를 하면 리소스 그룹이 완성됩니다.
태그 부분은 필요하지 않아 생략하고 바로 만들기를 진행하였습니다.
- 가상 네트워크 만들기
먼저 저희는 리소스 그룹이라는 큰 틀을 만들어주었습니다. 그러면 그 안에서 사용할 네트워크가 필요합니다.
가상 네트워크 만들기를 클릭해줍니다.
리소스 그룹은 사전에 만들어준 것을 사용하고 이름은 유사한 명칭을 사용하였습니다.
Virtual Network 이 때문에 끝부분을 vNet으로 이름을 지정하였습니다.
lb를 test 하기 위함이기 때문에 가상 네트워크의 설정은 위의 기본 설정만으로 만들어줍니다.
- 부하분산 장치 만들기
이전의 만들기 버튼을 클릭한 것처럼 부하 분산장치 또한 만들기 버튼을 찾아 클릭해줍니다.
그다음 리소스 그룹을 선택하고 새로 만들 장치의 이름을 넣어줍니다.
기존 설정은 그대로 진행하며 원하는 이름을 설정해줍니다.
1. 부하분산 장치의 public ip 만들기
프런트 엔드 ip구성 카테고리로 이동하였다면 부하분산 장치에서 사용할 공용 ip를 지정해주어야 합니다.
clustering과 lb기능이 실행될 때 서버에 접근하기 위한 public ip를 설정하는 부분입니다.
맨 왼쪽 그림의 유저가 서버에 접근하기 위해 가운데 그림의 vertual public ip에 접근합니다.
가운데 그림의 public ip가 지금 만들어준 프런트 엔드 public ip입니다.
2. 백 엔드 풀 추가
기존 가상 머신 및 가상 머신 확장 집합을 사용하는 경우 NIC를 통해 백 엔드 풀을 구성합니다.
(NIC는 네트워크 인터페이스 컨트롤러의 약어입니다.)
쉽게 설명드리면 백엔드 풀은 부하 분산을 할 서버의 공간을 만들어주는 것입니다.
실제로 가상 머신을 만든 후 백엔드 풀에 추가해주면 직접적인 링크가 되는 방식입니다.
원하는 이름으로 작성하여 만들어줍니다.
이제 부하 분산 장치를 만들기 해주세요. 만든 후 클릭해주면 아래와 같은 이미지 형태로 나옵니다.
2. 상태 프로브 만들기
상태 프로브 카테고리를 클릭하여 추가를 진행해주세요.
Azure Load Balancer에서 부하 분산 규칙을 사용하는 경우 Load Balancer에서 백 엔드 엔드포인트 상태를 검색할 수 있도록 상태 프로브를 지정해야 합니다.
아래 이미지에 보이시는 이름과 같이 접속할 포트를 설정하고 어느 정도의 간격으로 접속할지, 연속 오류가 몇 번 있어야 오류 상태로 체크하고 다른 서버를 로드할지에 대한 상태 설정입니다.
3. 부하분산 룰 만들기
Azure Load Balancer에서 부하분산 룰을 만들어줍니다. 규칙을 적용할 public ip와 백 엔드 풀을 설정합니다.
포트는 부하 분산 규칙에 따라 트래픽을 배포할 프런트 엔드 IP와 연결된 포트입니다.
그리고 동일하게 트래픽을 받을 백엔드 포트를 적용하고 설정한 상태 프로브를 적용합니다.
- lb를 위한 vm 2대 만들기
1. vm2대 만들기
이제 테스트할 가상 머신 2대를 만들어줍니다. 가상 머신을 클릭하고 만들기를 클릭해주세요.
가상 머신의 기본적인 설정을 완료한 후 네트워킹 카테고리로 접속해주세요.
그리고 하단의 부하분산을 배치한다는 표시를 체크해주세요.
만들어놓은 부하 분산장치와 백엔드 풀을 등록해줍니다.
부하분산 장치의 public ip에서 접근할 때 백엔드 풀에 접근하기 위한 설정입니다.
설정이 완료되었다면 vm을 만들어줍니다.
2. 각 vm에 인바운드 규칙 추가하기
접속할 80 포트에 대한 인바운드 규칙을 허용해야 합니다.
80에 대한 접근을 허용하여 외부에서 접속 테스트를 할 때 접근이 가능하도록 설정해줍니다.
- 각 서버에 접속할 httpd 생성
yum을 업데이트하고 서버 테스트를 위한 httpd를 install 해줍니다. systemctl로 해당 서비스를 실행합니다.
httpd의 웹을 설정하는 기본 경로에 index.html 파일을 echo로 만들어줍니다. 아래의 명령어를 입력해주세요.
html 파일의 내용을 하나씩 01과 02 로설 정해야 나중에 확인하기 편합니다.
# sudo yum update -y
# sudo yum install httpd -y
# sudo systemctl start httpd -y
# cd /var/www/html
# echo "<html><h1>YEOL Server01</h1></html>" > index.html
azure 인바운드 규칙에서 접근을 허용했듯이 방화벽에서도 접근을 허용해주어야 합니다. 명령어를 입력해줍니다.# sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
# sudo firewall-cmd --reload
lb test
Azure 웹사이트에서 부하 분산 장치 카테고리에 접근합니다. 프런트 엔드 ip 구성을 클릭합니다. 그러면 접근 가능한 ip public 주소가 있습니다. 이 ip를 웹에서 실행해주세요. 접근이 잘된다면 계속 새로고침을 눌러주세요. 라운드 로빈은 아니다 보니 바로바로 바뀌지는 않습니다.
분산장치의 public ip로 vm1과 2에서 만든 httpd 서버가 나타났다면 완료입니다.
따라오느라 고생하셨습니다. 성실한 코딩 하세요.