<Cloud 종류>

  • IaaS(Infrastructure as a Service) : 상/하수도, 전기, 도로, 항만, 통신 / Network, Server Computer, Firewall, VPN
  • PaaS(Platform as a Service) : 시장(거기에 가면 모든 물건을 구매할 수 있다) Amazon, 쿠팡 / OS 및 관련 프로그램 설치 (App Service, Azure SQL, VM with Visual Studio, Azure Container Instance(도커), Azure Kubernetes Service)

  • SaaS(Software as a Service) : 음식, 장난감, 스포츠, 놀이공원, 핸드폰 / Application (DB, Spread Sheet, Document, 통신...) / Microsoft 365, ZOOM, EverNote

  • CaaS(Code as a Service) : VM, Network, Firewall 하기 위해서 Code로 구축하기(DebOps) / GUI(Azure Portal) -> CLI(Azure PowerShell, Azure CLI) -> Template(ARM Template) -> Code(Terraform으로 작업을 하면 AWS, Azure, GCP 등등의 VM을 한 방에 생성할 수 있다(표준)) -> Ansible(VM 관리)

  • DaaS(Desktop as a Service) : WDS(Windows Desktop Service ; AWS, Azure) 데스크톱을 빌림

** DevOps : Development & Operations(개발 및 운영). 개발자가 운영도 같이 해라

** Serverless Computing : Cloud에서 Kubernetes 운영, Azure의 App Service  등


<Azure 보안 기술>

Shared Responsibility Model

- 서비스를 어떻게 하느냐에 따라 신경 쓸 부분(책임)이 달라진다.

- IaaS > PaaS > SaaS 순으로 고객이 할 일이 줄어든다. 보안이 높아진다.

Azure Cloud Security Advantages

- 클라우드 사용 시 보안성이 매우 높다

 

Azure Hierarchy

- Management Group : 구독을 관리하는 그룹

- Management Group(이건 잘 안씀) > Subscription(그 계정을 위한 제품과 서비스를 준비함) > Resource Group(리소스를 논리적으로 묶어 관리함. 리소스끼리는 life cycle이 같음) > Resource

Azure Policy

- Resource에 Property를 적용(type, locations, tag, SKU 등) 

- 먼저 조사 후 그 규정에 준수하고 있지 않은 Resource를 체크한다

- 장점 : 강제와 규정을 통한 확실한 관리 가능/범위 조정 가능

Azue Role-Based Access Control

- 특정 유저, 그룹에게 특정 자원 액세스 통제권 줌. "자원"에 대해서!!

- OWNER, Contributor, Reader 등 

- Azure AD와 다른 수준임(AAD에서 유저에게 role 주는 경우. Azue Portal에 접속하게 하기 위해서. Global admin, Application admin 등)

** RBAC - 해당 자원에 대해 뭐할건지, 어떤 역할을 둘건지. Azure Resource에 대해 누가 접근할 수 있는지. 

** Azure Policy - 자원을 만들 때 어떤 규칙을 꼭 준수해야 한다.

Built-in Roles for Azure Resources

  • Owner : resource에 대한 모든 것 관리
  • Contributor : resource 접근 통제 권한은 없고 owner와 같음
  • Reader : 볼 수 있지만 수정 불가
  • User Access Administrator 등등

 

Resource Locks 

- Read-only, Delete 등을 못하게 막는 것 

- 대상 : 구독, 리소스 그룹, 리소스


출처&nbsp;https://365tips.be/en/user-servers-workstations-analysis-in-active-directory-for-a-security-assessment/

Azure Active Directory

 

Roles

  • Global Administrator : 모든 관리 기능(Resource가 아니라 Azure AD에 대해서) > 가능하면 5명 이내로 지정하는 것을 추천
  • Security Administrator : Microsoft 365 등에서 보안 관리
  • Billing Administrator : 구독 관리, 서비스 상태 모니터링 등 관리
  • Global Reader , Application Administrator , Application Developer; Azure Information Protection Administrator 등등


Azure AD Domain Service

- Azure VNet을 도메인으로 관리 

- On-premise 상의 Active Directory와 통합

Azure AD Users

- 모든 사용자는 account를 가지고 있어야 함

- account는 인증과 권한에 사용

  1. Cloud indentities : Azure AD에만 있는 users
  2. Directory-syncronized identities : on-premises에 있는 users를 동기화
  3. Guest : Azure 바깥에 있는 users

Azure AD Groups 

- users 모음(permission 주기 위한)

  1. Security Groups : 모든 멤버에게 한 번에 permission 주기
  2. Microsoft 365 groups : 이메일, 캘린더, files 등에 접근 가능한 그룹

- Types 

  1. Assigned : 수동으로 추가
  2. Dynamic User : 사용자의 속성값을 보고 자동적으로 추가/삭제
  3. Dynamic Device(Security Group only) : 디바이스의 속성값을 보고 자동적으로 추가/삭제

Administrative Units in Azure AD

- 어떤 user, group에 특정 role을 부여하는 것

Passwordless

ex) Windows hello(생체인식), FIDO2 보안 키, Microsoft Authenticator 앱

- 보안성 강화 : 공격 위험 줄일 수 있음

- 사용자 환경 개선 : 어디서나 편리하게 데이터에 액세스


Azure AD Identity Protection 

Risk Events - 각 탐지된 리스크가 risk event에 기록으로 남음 

User Risk Policy

- user sign-in 할 때 적용됨

- 특정 조건(risk level)에 따라 달라짐

- access, block 설정

Multi-Factor Authentication

- 다단계 인증

1) Account lock : 인증이 안되면 잠궈버림

2) Block/Unblock : mfa 요청 사항 시 block/unblock

3) Fraud Alerts : 경고 

Conditinal Access

- 상황에 따라 Allow, Require MFA, Block 로 Identity 보호

 


실습) MFA - Conditional Access - Identity Protection 

실습 구성

1. Azure AD multi-factor authentication
2. Azure AD conditional access
3. Azure AD Identity Protection

 

Exercise 1: Implement Azure MFA

Task 1: Activate Azure AD Premium P2 trial

Azure AD Premium P2 라이센스가 필요하다

Task 2: Create Azure AD users and groups.

user 생성

Task 3: Assign Azure AD Premium P2 licenses to Azure AD users

각 user들에게 License 추가

Task 4: Configure Azure MFA settings.

MFA - service settings 탭에선 검증 옵션을 선택할 수 있다.

MFA - users 탭에서 aaduser1에 대해 Multi-factor을 Enable로 변경한다. 

(좌) Fraud Alert , (우) 보안 기본값 사용여부 NO로 설정하여 우리가 설정한 대로 동작하게 한다.

Fraud alert 창에선 여러 옵션을 선택할 수 있다.

- 사용자의 이상 행위를 제출하도록 허용/불허

- 이상 행위 보고하는 사용자 자동 차단 허용/불허

- 이상 행위 신고코드 설정

 

 

Task 5: Validate MFA configuration

하단에 I want to set up a different method 탭을 사용하면, phone, email 등으로 인증이 가능하다.


Exercise 2: Implement Azure AD Conditional Access Policies

Task 1 - Configure a conditional access policy

새로운 access policy를 생성

사용자 선택 칸에서 aaduser2를 선택한다.

클라우드 앱 선택 칸에서는 Microsoft Azure Management를 선택한다.

Muti-Factor Authentication 필요 확인란을 선택하여 On을 선택한다.

각 설정을 마친 뒤 가장 마지막 옵션 Enable policy 를 On으로 설정한 후 create를 마친다.

 

 

Task 2 - Test the conditional access policy.

그리고 나서 aaduser2로 로그인하면 aaduser1과 같이 다중 인증을 요구하는 창이 뜬다.


Exercise 3: Implement Azure AD Identity Protection

Task 1: Enable Azure AD Identity Protection

Task 2: Configure a user risk policy

User risk policy 설정

Task 3: Configure sign-in risk policy

sign-in risk 설정

 

Task 4: Simulate risk events against the Azure AD Identity Protection policies

 

ⓐ InPrivate Internet Explorer 창에서 https://www.torproject.org/projects/torbrowser.html.en Windows 버전을 다운로드하여 설치한다.

Tor은 'The Onion Router'의 약칭이다. 네트워크 우회와 익명화를 위해 사용하는 툴 중 하나며, 딥 웹과 다크 웹에 이용되는 소프트웨어이다. 



ⓑ 설치가 완료되면 ToR 브라우저를 시작하고 초기 페이지의 Connect 옵션을 사용한 후 Application Access Panel(https://myapps.microsoft.com)을 찾는다.

ⓒ 먼저, aaduser3계정으로 로그인을 시도한다.

※  "로그인이 차단되었습니다"라는 메시지가 표시된다. ToR Browser 사용과 관련된 로그인 위험 증가를 고려해 block 했으며 aaduser3이 MFA로 구성되어 있지 않기 때문이다.

ⓓ aduser1 계정으로 로그인한다.

※ 이번에는 의심스러운 활동 탐지 메시지가 표시된다. 이 계정은 MFA로 구성되었으므로 다중 인증을 시도한다.

ⓔ 확인을 완료하고 성공적으로 로그인했는지 확인한다.

Task 5: Review the Azure AD Identity Protection reports

Security 탭에서 위험한 사용자 관리, 위험 탐지 등과 관련된 정보를 볼 수도 있다.

'Study > Cloud' 카테고리의 다른 글

AZ500 (Implement Platform Protection)  (0) 2022.08.18
AZ500 (Hybrid Identity)  (0) 2022.08.18
AZ104 (NAT)  (0) 2022.08.12
AZ104 (Container, Kubernetes)  (0) 2022.08.12
AZ104 (App Services)  (0) 2022.08.12

Virtual Network(VNET)

: VM들을 내부적으로 통신시키기 위해 같은 네트워크에 연결시킴

: 다른 네트워크에서 사설 IP로 들어오지 못하도록 하는 것(공인 IP의 경우 포트를 열면 들어오게 할 수 있음)

* VNET은 location이 중요하다. 한 번 설정한 지역은 못 바꾼다.

** DHCP 기능 : VNET에 연결을 해야지 vm이 사설 IP를 받는다.(같은 location이어야 함)

 

 

Network Security Groups(NSG)

NSG 예시

: 기본적으로 Internet에서 접속하는 모든 Traffic에 대하여 차단 및 허용하는 것

(적용 대상 : VM의 NIC 및 Subnet)

: VNET에 있는 리소스에 대한 트래픽을 제한

: Inbound/outbound에 대해 보안 규칙을 적용

: 하나를 만들어 다른 서브넷에 적용시킬 수 있다.(비용절약)

 

  • NSG default rules
    : default 룰은 삭제할 수 없고, 새로운 규칙은 이들의 후위 순서로 넣을 수 있다
  • NSG Effective Rules
    : allow의 경우 서브넷, LAN 모두에 있어야 한다.

 

NSG 사용

** Subnet : 서브넷에 NGS를 할당하고 보호된 서브넷(DMZ)를 만들 수 있다. 이러한 NSG는 해당 서브넷 내의 모든 컴퓨터로 트래픽 흐름을 제한한다. 각 서브넷에는 0개 또는 1개의 NSG를 연결할 수 있다.

** Network Interface : NIC에 NSG를 할당하면 NIC를 통해 이동하는 모든 트래픽을 NSG 규칙에 따라 제어할 수 있다. 서브넷에 있는 각 NIC에는 NSG를 0개 또는 1개 연결할 수 있다.

 

▶ NSG를 먼저 서브넷에 연결한 다음, 다른 NSG를 VM의 NIC에 연결하여 VM에 대해 이중으로 트래픽 제한을 둘 수 있다.

서브넷과 네트워크 인터페이스에 NSG가 각각 연결된 상태

이 경우에는 Inbound 트래픽에서는 Subnet NSG가 먼저 평가되어 Subnet NSG를 통해 허용되는 모든 트래픽이 VM SNG에서 평가된다. Outbound 트래픽의 경우, 반대로 VM NSG가 먼저 평가된다. 

이런 식으로 세부적인 보안 규칙을 적용할 수 있게 된다. 

 

 

Application Security Groups(ASG)

ASG

ASG를 사용하면 VM을 그룹화하고 해당 그룹에 따라 네트워크 보안 정책을 정의할 수 있다. 

 

예시

예시로 보면, NIC1과 NIC2 는 AsgWeb의 ASG 멤버이고 NIC3는 AsgLogic, NIC4는 AsgDb의 ASG 멤버이다.

여기서 각 NIC는 하나의 NSG에 속하지만 ASG는 다를 수 있다는 것을 알 수 있고 같은 NSG 규칙이 다른 서브넷에 적용될 수 있다는 것을 알 수 있다.

 


실습) 가상 네트워크 구현

실습 절차는 아래와 같다

  1. 가상 네트워크 생성 및 구성
  2. VM을 가상 네트워크에 배포
  3. Azure VM의 Private 및 Public IP 주소 구성
  4. 네트워크 보안 그룹(NSG) 구성
  5. 내부 이름 확인을 위해 Azure DNS 구성
  6. 외부 이름 확인을 위해 Azure DNS 구성

VNET 세부 항목 설정

먼저, Virtual Network를 생성한다.

subnet1 추가

서브넷이 두개 필요하므로 서브넷을 추가한다.


아래 두 명령어를 통해 Json 파일로 VM을 생성한다.

$rgName = 'az104-04-rg1'
New-AzResourceGroupDeployment -ResourceGroupName $rgName -TemplateFile $HOME/AZ104/Module04/az104-04-vms-template.json -TemplateParameterFile $HOME/AZ104/Module04/az104-04-vms-parameters.json -AsJob

NIC0의 구성

 

ipconfig1의 배포 형식을 Dynamic에서 Static으로 변경하고 Public IP도 새롭게 추가하여 설정한다.

nic1에 대해서도 이 과정을 반복하여 적용한다.

 

각 VM의 공인 IP 확인


** Standard SKU의 공용 IP 주소를 사용하려면 할당된 네트워크 인터페이스가 네트워크 보안 그룹에 의해 보호되어야 하기 때문에 이 에러가 발생할 수 있다고 한다. 원격 데스크톱 연결을 허용하려면 인터넷으로부터의 인바운드 RDP 트래픽을 명시적으로 허용하는 Network Security Group을 생성하고 이를 두 VM의 네트워크 인터페이스에 할당해야 한다.

 

NSG를 하나 생성하고(이름은 az104-04-nsg01) 아래와 같은 Inbound 규칙을 추가해준다.

Inbound 규칙
vm0 접속

그리고 나서 다시 vm에 접속하면 잘 들어가진다.


 

Private DNS 등록
Vnet을 link로 연결했더니 그 안에 속한 VM들에 자동적으로 Private DNS가 등록되었다.

VM0에 접속하여 Private DNS zone이 적용되었는지 확인한다.

nslookup az104-04-vm1.contoso.org


DNS Zones - Create
Record set을 추가하여 추가할 VM을 수동으로 등록한다.

powershell 창을 열어 아래 명령어를 통해 Public IP가 나오는 것을 확인한다.

nslookup az104-04-vm0.mycontoso.org [Name server 1]
nslookup az104-04-vm1.mycontoso.org [Name server 1]

'Study > Cloud' 카테고리의 다른 글

AZ104 (Azure Storage)  (0) 2022.08.10
AZ104 (Load Balancing Services)  (0) 2022.08.10
AZ104 (관리자 도구)  (0) 2022.08.08
AZ104 (환경세팅)  (0) 2022.08.08
AZ104 (Administer Governance and Compliance)  (0) 2022.08.06

Azure에서 제공하는 클라우드 서비스(Portal을 통해 접속)를 이용해 2대의 웹 서버 가상머신을 구축하여 웹 서비스를 진행한다.
이 서비스는 1대의 데이터베이스 서버에 연동되어 있다. 
데이터베이스 서버는 웹 서버와 다른 Region에 존재하며 VPN으로 연동되어 있다.
웹 서버 중 1대만 공인 IP를 기반으로 한 SSH 접속이 가능하며 다른 한 대는 SSH 연결이 NSG로 차단되어 있다.

 

https://azure.microsoft.com/ko-kr/

 

클라우드 컴퓨팅 서비스 | Microsoft Azure

Microsoft Azure의 유연한 개방형 클라우드 컴퓨팅 플랫폼을 통해 목적에 따라 투자하고 비용을 절감하며 조직을 더 효율적으로 만드세요.

azure.microsoft.com


<기본 구성 설정>

[그림 1] Virtual Machine(VM) 3개를 추가한다

 

[그림 2] 첫 번째 Virtual Machine

 

이름 : vm1-eastus-swucloudhw

리소스 그룹 : rg-swucloudhw

공인 IP :  40.117.128.66

Region : 미국 동부

가상 네트워크  : vnet-eastus-swucloudhw

서브넷 : snet01-vnet-eastus-swucloudhw

 

 

[그림 3] 두 번째 Virtual Machine

 

이름 : vm2-eastus-swucloudhw

리소스 그룹 : rg-swucloudhw

공인 IP :  52.149.217.157

Region : 미국 동부

가상 네트워크  : vnet-eastus-swucloudhw

서브넷 : snet02-vnet-eastus-swucloudhw

 

 

[그림 4] 세 번째 Virtual Machine (for DB Server)

 

이름 : vm3forDB-eastaust-swucloudhw

리소스 그룹 : rg-swucloudhw

공인 IP :  40.126.237.187

Region : 오스트레일리아 동부

가상 네트워크  : vnet-eastaust-swucloudhw

서브넷 : snet01-vnet-eastaust-swucloudhw

 

 

[그림 5] 세 번째 Virtual Machine (for DB Server)

 

사설 IP :  172.0.3.4

 


[그림 6] 가상 네트워크 게이트웨이 추가

서로 다른 Region (미국 동부와 오스트레일리아 동부)을 VPN으로 연결해주기 위해서 VGW를 추가한다.

 

 

[그림 7] 첫 번째 Virtual Gateway

 

이름 : vgw01-eastus-swucloudhw

리소스 그룹 : rg-swucloudhw

위치 : 미국 동부

공인 IP : 52.152.142.189

가상 네트워크  : vnet-eastus-swucloudhw

 

 

[그림 8] 두 번째 Virtual Gateway

 

이름 : vgw02-eastaust-swucloudhw

리소스 그룹 : rg-swucloudhw

위치 : 오스트레일리아 동부

공인 IP : 13.75.230.233

가상 네트워크 : vnet-eastaust-swucloudhw

 

 

[그림 9] VPN 구축을 위한 VGW끼리의 connect 설정

VPN(Virtual Private Network) 구축을 위해서 서로 다른 Region에 위치한 VGW(Virtual Gateway)를 서로 연결 시켜주었다.

 

[그림 10] 연결 상세 정보

VPN 구축을 위해 연결된 가상 네트워크의 상세 정보이다.

vnet-eastaust-swucloudhw, vnet-eastus-swucloudhw 끼리 잘 연결된 것을 확인할 수 있다.

 


[그림 11] vnet-eastus-swucloudhw 가상 네트워크 구성 상세 확인

미국 동부에 위치한 vnet-eastus-swucloudhw 의 주소 공간은 10.0.0.0/16 이며 이 가상네트워크에 속한 디바이스들을 확인할 수 있다.

 

[그림 12] vnet-eastaust-swucloudhw 가상 네트워크 구성 상세 확인

오스트레일리아 동부에 위치한 vnet-eastaust-swucloudhw 의 주소 공간은 172.0.0.0/16 이며 이 가상네트워크에 속한 디바이스들을 확인할 수 있다.

 


<DB 서버 설정>

[그림 13] vm3-forDB-eastaust-swucloudhw 에 접속

DB 서버를 위한 가상머신에 접속한 후 sudo apt install mysql-server 명령어를 통해 mysql server를 설치한다.

 

 

[그림 14] mysql 설치 완료한 후 mysql 실행

sudo /usr/bin/mysql -u -root -p 비밀번호 명령어를 입력하여 MYSQL을 실행한다.

 

 

[그림 15] MySQL 버전 확인

show variables like "%version%" 명령어를 통하여 MySQL의 버전을 확인했다.

 

 

[그림 16] 데이터베이스 목록 확인 후 데이터베이스, 테이블 생성

show databases 명령어로 현재 데이터베이스 목록을 확인했고, hw_for_cloud라는 이름의 데이터베이스를 생성했다.

그리고 vm1에 연결할 response1 테이블vm2에 연결할 response2 테이블을 생성했다.
각각은 id, firstname, lastname, email, submitdate 컬럼으로 구성되어 있다.

 

 

[그림 17] 생성 테이블 확인

show tables 명령어로 테이블이 문제 없이 생성된 것을 확인했다.

 

 

[그림 18] response1 테이블에 데이터 추가

response1 테이블에 레코드를 추가(insert)한다. 

lastname이 Lee 인 점을 기억한다.

 

 

[그림 19] response2 테이블에 데이터 추가

response2 테이블에 레코드를 추가(insert)한다.

lastname이 Kim 인 점을 기억한다.

 

 

[그림 20] MySQL 의 root 계정 관련 설정

처음 MySQL을 설치하면 root 계정을 통해 들어갈 때 비밀번호 검사를 하지 않는다.

이는 나중에 외부에서 DB로 연결할 때 root 계정을 인식하는데 문제가 있을 수 있으므로 root 계정의 비밀번호를 설정했다. (학생 본인은 root 계정의 비밀번호를 'root'로 설정했음)

 

 

[그림 21] 외부로부터 해당 DB 접속을 허용

모든 데이터베이스의 모든 테이블에 있어서 root에 대한 접근 권한을 모든 호스트로 지정한다.

 

 

[그림 22] 사용자들의 권한 확인


<2 대의 웹 서버 가상머신에서의 설정>

[그림 23] vm1-eastus 가상머신의 php 버전 확인

첫 번째 가상머신의 PHP 버전을 확인한다. (버전 확인이 안된다면 php 설치)

PHP 7.2.24 버전임을 알 수 있다.

 

 

[그림 24] vm2-eastus 가상머신의 php 버전 확인

두 번째 가상머신의 PHP 버전을 확인한다. (버전 확인이 안된다면 php 설치)

첫 번째 가상머신과 똑같이 PHP 7.2.24 버전임을 알 수 있다.

 

 

[그림 25] vm1-eastus의 IP 주소 확인

ifconfig를 통해 IP 주소를 확인한다.

vnet-eastus-swucloudhw(10.0.0.0/16)에 속하는 vm1은 10.0.3.4 라는 IP 주소를 가진다.

 

 

[그림 26] vm2-eastus의 IP 주소 확인

ifconfig를 통해 IP 주소를 확인한다.

vnet-eastus-swucloudhw(10.0.0.0/16)에 속하는 vm2는 10.0.4.4 라는 IP 주소를 가진다.

 

 

[그림 27] vm3-eastaust에서 mysql 연결 상태를 확인

 

[그림 28] vm1-eastus의 기본 화면이 될 php 파일

 

vm1-eastus의 /var/www/html 의 디렉토리에 기본으로 뜨는 페이지가 될 php 파일을 작성한다.

그 내용에는 DB 연결에 필요한 정보도 포함된다.

(username : root, password : root, 연결할 데이터베이스 : hw_for_cloud, 연결할 테이블 : response1)

 

중요한 포인트 : [그림 5] 에서 확인한 vm3forDB의 사설 IP 주소(172.0.3.4)와 연결시켜 준다. (VPN을 구축했기 때문에 사설 IP를 이용하는 것)

 

 

 

[그림 29] vm2-eastus의 기본 화면이 될 php 파일

 

vm2-eastus의 /var/www/html 의 디렉토리에 기본으로 뜨는 페이지가 될 php 파일을 작성한다.

내용은 vm1-eastus에서 작성한 것과 같지만 연결할 테이블이 response2 라는 점이 다르다.

 


<웹 서비스를 외부에서 접속>

 

에러

[그림 30] 웹 브라우저를 통해 vm1-eastus와 vm2-eastus 의 공인 IP 주소로 접속

웹 브라우저를 통해 vm1-eastus의 공인 IP 주소 40.117.128.66  그리고 vm2-eastus의 공인 IP 주소 52.149.217.157로 접속을 시도하였으나 SQLSTATE[HY000] [2002] Connection refused 에러가 떴다.

 

 

[그림 31] 에러 해결을 위해 mysqld.cnf 파일 수정

 

[그림 32] mysqld.conf 파일

bind-address = 127.0.0.1 이라고 되어있는 설정을 주석처리 해준다.

MySQL은 기본적으로 localhost(127.0.0.1)에서 접근 가능하기 때문에 외부에서 접근하기 위해서는 bind-address를 풀어줘야 한다.

 

 

[그림 33] 웹 브라우저를 통해 vm1-eastus 공인 IP 주소로 접속

response1 테이블과 연결되어 있는 첫 번째 가상머신의 공인 IP 40.117.128.66 로 접속하면 우리가 입력했던 레코드가 보인다. (lastname = Lee)

 

 

[그림 34] 웹 브라우저를 통해 vm2-eastus 공인 IP 주소로 접속

response2 테이블과 연결되어 있는 두 번째 가상머신의 공인 IP 52.149.217.157 로 접속하면 우리가 입력했던 레코드가 보인다. (lastname = Kim)

 


<2 대의 웹 서버 로드밸런싱 설정>

[그림 35] AGW 설정

AGW(Application Gateway)는 웹 트래픽 로드밸런서이다. 

HTTP/HTTPS 수신기의 Routing Rule을 통해 front-end와 back-end를 연결시켜준다. 

 

만들었던 2대의 웹 서버 가상머신(vm1-eastus & vm2-eastus)에 대해 로드밸런싱을 시켜줄 것이므로 

AGW의 가상 네트워크를 2대의 웹 서버 가상머신들의 가상 네트워크와 똑같이 설정해준다. (vnet-eastus-swucloudhw)

서브넷은 2대의 웹 서버와 겹치지 않게 snet03-vnet-eastus-swucloudhw 를 만들어 설정한다.

 

이 AGW의 Front end 주소가 52.188.92.240 인 점에 주목한다.

 

 

[그림 36] back-end pool 설정

AGW의 요청을 받아 처리할 백 앤드 풀에 웹 서버 vm 2대를 대상으로 설정하여 로드밸런싱을 받는다.

 

 

[그림 37] AGW의 동작 과정

 

 

[그림 38] 52.188.92.240 접속 시

웹 브라우저를 통해 52.188.92.240에 접속하니 vm1-eastus의 공인 IP 주소로 접속했던 결과와 똑같이 나온다.

 

[그림 39] 새로고침 시

새로고침을 하니 vm2-eastus의 공인 IP 주소로 접속했던 결과와 똑같이 나온다.

AGW가 성공적으로 로드밸런싱을 수행하고 있다는 것이다.

 


<SSH 연결 차단을 위한 설정>

[그림 40] NSG 설정

NSG(Network Security Group) 설정 추가를 한다.

그 중 인바운드 보안 규칙을 추가해 2대의 웹 서버 가상머신 중 한 대의 가상머신(vm1-eastus)에만 SSH 연결 요청을 차단할 것이다.

 

ssh 차단

[그림 41] vm1-east 에 SSH 연결 요청

NSG에서 vm1-eastus에 대해 SSH로 접속을 시도했으나 Connection timed out 이 뜬다.

성공적으로 인바운드 규칙이 적용된 것이다.

 


<네트워크 구조>

[그림 42] vnet-eastus-swucloudhw의 전체적인 네트워크 구조

 

[그림 43] vnet-eastaust-swucloudhw의 전체적인 네트워크 구조

 

뿌 듯

+ Recent posts