본문 바로가기
Azure :: 애저 지식/02 Azure :: 애저 기초 지식

01 Azure Application Gateway :: 다중 사이트 호스팅 방법으로 어플리케이션 게이트웨이 구축 해보기

by Jasie 2020. 7. 15.

이번 포스팅은 다중사이트호스팅으로  Application Gateway(어플리케이션게이트웨이)로  만들어 보려한다

어플리케이션 게이트웨이를 통해 접속하게되면 각 하위 URL을 기반으로 다른 웹 서버를 라우팅 해주는 방식이다

즉 a1.com으로 접속하면 user페이지가 노출되고  b2.com으로 접속하면 admin페이지가 나오도록 말이다

아래 그림은 어플리케이션 게이트웨이의 기본적인 동작 구조이다

 

※ 경로기반 어플리케이션 게이트웨이 생성 및 설정 순서 요약

1. 가상머신 생성
  → 가상머신에서 웹서버 설치 및 설정을 한다
  → 가상머신에 대한 설정은 네트워크 보안그룹에서 Http 허용에 대한 내용이다

2. 로드벨런서 생성
  → 로드밸런서의 프론트 엔드 IP생성 해준다
  → 백엔드 풀을 설정해준다 (앞에서 생성한 가상머신을 선택한다)
  → 상태 프로브와 부하 분산규칙을 설정해준다 ( 80/443번 포트를 오픈해준다)

3. 어플리케이션 게이트웨이 생성
  → 어플리케이션 게이트웨이 프론트 엔드 IP 생성 
  → 어플리케이션 게이트웨이의 프론트 엔드 IP를 이용해 2개의 도메인을 만들어준다

 

 

  → 백엔드 풀 설정 (URL경로기반 라우팅을 하기때문에 n개의 백엔드 설정값이 필요하다,)

  → 수신기 설정 (이름, 프론트엔드, 포트를 설정해주고 수신기유형은 URL기반으로 라우팅될 수 있도록 '다중사이트'를 선택해준다)


  → 규칙 생성중 수신기 설정을 합니다니다
      

  → 규칙 생성중 백엔드 대상을 설정 합니다
      또한 어플리케이션 게이트웨이의 수신기(URL)를 통해 들어온 유저를 어떤 백엔드(로드벨런서)로 보낼지 결정하는 곳



 

 

 

1. 제일먼저 가상머신 이미지가 필요하다
(웹서버가 배포된 리눅스/윈도우 이미지를 캡쳐합니다, 웹서버가 접속을 확인할 수 있는 가장 쉬운 방법입니다.)

 

 

 

2. 이미지를 캡쳐하면서 "이미지를 만든 후 가상 머신을 삭제"를 Check해준다. (비용절약이 이유)
이미지가 캡쳐했다면 이제 어플리케이션 게이트웨이를 만들어준다

 

 

3. 어플리케이션 게이트웨이의 가상네트워크를 만든다

리소스 그룹, 리전, 가상네트워크를 설정해 준다
가상 네트워크를 만들 때 서브넷을 2개 만들어준다, 2개를 만드는 이유는 어플리케이션 게이트웨이가 하나의 서브넷을 차지하고 나머지 서브넷은 로드벨런서,VM을 묶어주기 위해서다

 

 

4. 어플리케이션 게이트웨이의 프런트엔드를 만든다
외부 사용자가 어플리케이션 게이트웨이를 통해 들어올 수 있도록 공용 IP를 할당해준다
물론 실제 서비스는 도메인으로 이루어진다

 

 

5. 백엔드를 할당 해준다
로드밸런서를 추가해줘야한다 (아직 만들지 않았기 때문에, 비워둔채 생성후 뒤에서 설정한다)

 

 

6. 수신기를 추가 설정해준다 (회람규칙)

외부 사용자가 어플리케이션으로 접속했을 때 어떤 URL로 보낼지 설정해주는 부분
☞ HTTP(tcp:80) 통신이 수신되면 가리키는 백엔드로 넘김 
여기서 어플리케이션의 백엔드는 로드 밸런서를 가리키고 있습니다

 

 

 

 

도메인을 등록하는 방법
  ▼ Click                           

더보기

https://www.freenom.com/ 에서 무료로 도메인을 사용할 수 있다 여기서 도메인을 생성하고 아래와 같이 따라하면 된다

임의의 도메인을 dns에 등록하는 것
임의의 도메인을 dns에 등록하는 것

 

7. 백앤드를 추가 설정해준다 (회람규칙)
당연하지만, 백 엔드를 지정해 주기전 로드밸런서가 생성되어있어야지 ip를 써줄 수 있다

 

 

8. 로드밸런서를 만들어줍니다

표준을 선택해주고 동일 가상네트워크을 선택하고 서브넷2를 선택해준다
서브넷1,서브넷2를 만들었는데 서브넷1을 사용 못하는 이유는 어플리케이션 게이트웨이가 하나를 모두 할당 받고있기때문에 서브넷2만 이용 가능하다

 

 

9. 로드밸런서의 백엔드를 지정해줍니다

로드밸런서는 2개를 만들어서 하나는 VMSS1를 가리켜 a1.com 을 또다른 하나는 VMSS2를 가리켜 2b.com을 가리킬수있게 한다
즉 백엔드는 VMSS(Virtual Machine Scale Set)를 가리킨다

또한 VMSS1은 1a.com을 보여주기 위한 VM을 세팅하고  VMSS2는 2b.com을 보여주기 위한 VM을 세팅한다

 

10. 로드밸런서의 백엔드를 할당하기위해서 VMSS(Virtual Machine Scale Set)를 생성한다

☞ VMSS를 사용하기 위해 이미지 파일은 이전에 생성해뒀던 이미지로 생성한다
☞ 디스크는 테스트용이니 표준HDD를 사용한다
☞ 네트워크는 서브넷2를 선택하고 프론트엔드(부하분산장치)는 로드밸런서를 선택한다 (서브넷1은 AG가 할당되어 사용할 수 없다)
☞ 가상머신의 분산처리(스케일업/다운)는 원하는값으로 적절하게 지정한다

 

11. 로드벨런서의 probe와 규칙을 지정해준다

probe와 규칙은 로드밸런서로 특정포트가 들어오면 다음 리소스(백엔드)로 넘기는 작업을 선언하는 것이다

12. 마지막으로 가상네트워크(V-Net1) 인바운드 규칙을 수정한다
여기서 V-Net1은 서브넷1(어플리케이션 게이트웨이), 서브넷2(로드밸런스, VMSS)에 대한 모든 트래픽에 대한 설정이다

외부에서 홈페이지로 유저가 들어올수있도록 80번 포트만 열어준다

 

결과

☞ 다음과 같은 화면을 볼수있다
123**.com를 접속하면  'HI HI 1"이라는 문구를 볼수있고, 1-**.com를 접속하면 관리자페이지를 볼수 있다

 

 

댓글