Cloud Solution Architect/Azure

Azure - VM, 부하분산, 스토리지, 파일 스토리지 - Azure 디스크

YunHyeong 2023. 4. 18. 09:13

1.  Azure Compute Service

* 애플리케이션을 새로 구축할 때나 기존 애플리케이션을 배포할 때, Azure는 앱을 실행하는데 필요한 인프라를 제공한다. 클라우드의 용량을 컴퓨팅하고 필요시 확장할 수 있다. 애플리케이션을 컨테이너화하고, Windows 및 Linux Vm(가상 머신)을 배포하고, VM을 Azure로 마이그레이션하기 위한 유연하게 옵션을 활용한다.

* centos 7

* ubuntu 18.20.

*windows 2019

 

1.1. 리소스 그룹 만들기

- 리소스 그룹을 만들고 모든 리소스를 때려 박는다?

- 검색창에 리소스 그룹을 검색하고 리소스 그룹 만들기 버튼을 누른다

 

- 리소스 그룹 이름과 리소스 세부 정보를 입력해준다

- Korea Central : 서울에 위치한 DC

- Korea South :  Korea South는 부산(김해)

- 이번 실습에는 태그를 따로 지정할 필요가 없기 때문에 스킵한다

 

- 마지막으로 만들기 버튼을 눌러준다.

 

1.2. 가상머신 만들기

 

1.2.1 web01

- 검색 창에 가상 머신을 검색하고 선택해서 들어간다

 

- 왼쪽 위에 + 버튼을 누르고 맨위의 가상머신을 누른다.

- korea central에는 가용영역이 3곳이 있다.(Zone1, 2, 3)

- x64 :  intel, amd cpu

- 이미지 : CentOS-based 7.9 2세대 활용 ( 모든 이미지 보기 클릭하면 찾을 수 있음)

- b1로 메모리 크기를 설정한다(무료이기 때문에..)

- 현재는 기본이되는 보안그룹(방화벽)을 이용하기 때문에 기본적인 포트를 선택해서 열어줄 수 있다. ( HTTP, HTTPS, SSH)

 

- 누군가가 디스크 내부에 접근하여 데이터를 보려고할 때 보안을 위해 암호화 필요 (실습에서는 접근 위험성이 없기 때문에 설정안함)

- 프리미엄 SSD가 가장 성능이 좋음

- VM으로 삭제 : VM을 지우면 디스크를 지울거냐 안지울거냐를 결정

- Key management : Azure에서 제공하는 키와 내가 만들어서 사용할 수 있는 키가 있음

- 기존 디스크 연결 : 내 디스크를 Azure에 연결할 수 있는 기능이 있음( ex : 하이퍼바이저로 만드는 디스크), vhd

 

- Azure에서는 네트워크를 Azure Vnet이라고 함

- AWS와 다르게 ip를 표시하는 이름이 존재한다.

- NIC 네트워크 보안 그룹 : 보안그룹을 제공해주는 걸 사용(고급 : 내가 셋팅)

 

- Azure AD : 중앙에서 계정 관리를 위해 사용 (퇴사하면 회사 계정에 접근 못하도록하는 경우)

- 자동 종료 기능 : 매번 VM을 지울 필요 없이 특정시간에 VM을 종료시킴

- 게스트OS 업데이트 : 자동으로 패치기능을 함

 

- Alerts : 권장 임계값이 초과하면 메일로 알려주는 기능(설정은 안함)

- 진단 :부팅시 이상이 발생할 경우 알려주는 기능(부팅이 느려질 수 있기 때문에 설정을 안하는 경우가 있음(많음))

 

- 사용자 지정 데이터(cloud init) : VM 시작시 설정하는 데이터 

 

 

- 만들기 버튼을 누른 후 "프라이빗 키 다운로드 및 리소스 만들기" 클릭

 

 

- VM 생성 확인

 

sudo sestatus # selinux 상태 확인
sudo systemctl status firewalld # 방화벽 확인

- mobaXterm으로 web01 접근 후 초기 상태 확인

 

 

* 리전 별로 리소스 그룹 생성 제한이 있음

 

1.2.2. web02 만들기

 

- 가용 영역을 web01과 다르게 Zone2로 해준다

- 이미지는 ubuntu Server 20.04 LTS 버전을 활용

 

- web01 생성시 만든 키를 사용한다.

 

* 나머지 부분은 web01과 동일하게 만들어준다

* AWS와 다른점은 가용영역과 서브넷이 다르게 구성됨

* 사용자 데이터는 Appache 서버 구성으로 설정

 

1.2.3. window 서버

- 가용영역을 Zone3로 했을 시 생성이 안됨. 일단 web01과 같은 Zone1로 생성

- 가벼운 버전인 smalldisk Windows Server 2019 Datacenter x64 Gen2로 이미지 선택

 

- SSH 포트는 열어주지 않음

 

- 사용자 데이터는 비워준다

 

- 연결에서 RDP를 클릭한다

 

- RDP 파일 다운로드 후 실행하고 아이디와 패스워드를 입력해준다.

 

- iis(마이크로소프트 윈도우를 사용하는 서버들을 위한 인터넷 기반 서비스들의 모임) 설치를 위해 Server Manager가 뜰때까지 기다린다

- window 서버에 접근 후 "Add Roles and Features"를 클릭한다

 

- Server Roles 부분에서 Web Server(IIS) 체크

- 자원 부분의 문제( cpu 하나에, RAM 3.5GB는 애매함) : 일부 강의실의 다른 PC에서는 IIS 설치에 실패함

- 왼쪽 탭에서 크기 항목을 눌러서 B2s로 자원을 확장

 

- ctl + shfit + esc로 확장된 자원 확인

 

- 확장자 표시 후 index.html 생성하고 파일 편집

- 윈도우의 public IP로 접근하면 해당 페이지를 볼 수 있다.

 

- 현재 사용하고 있는 PC에서 가상으로 만든 window 서버에 키를 전달하여 다른 서버로 접속시도

- window 서버에서 다른서버 접속 가능 -> 다른 서버의 public ip 분해 가능( Window 서버를 로드밸런서로 사용)

 

ssh -i user04-key.pem azureuser@10.0.0.4 # web01 접속
ssh -i user04-key.pem azureuser@10.0.0.5 # web02 접속

 

 

- web01과 web02의 public IP 분해 -> 앞으로 window를 통하여 내부로만 접속한다

 

-  public IP 분해 후 web01과 web02에서 Ping Test 진행(ping 연결이 안됨)

 

2. 부하분산장치(AWS: CloudFront(CDN)) - Stream 서비스

2.1 부하분산 장치 만들기

 

* SKU(Stock Keeping Unit) : Azure Load Balancer에는 기본, 표준 및 게이트웨이의 3가지 SKU가 있다. 각 SKU는 특정 시나리오에 맞게 조정되며 규모, 기능 및 가격에 차이가 있다.

* 참고 : https://learn.microsoft.com/ko-kr/azure/load-balancer/skus

 

 

- 부하분산 검색 후 "부하 분산 장치 만들기" 클릭

 

- 외부에 로드 밸런서를 위치시키기 때문에 왼쪽 형태로 구성하여 외부에서 들어오는 통신을 받아 내부로 전달

 

- 리소스 그룹 : user04- 이름 : user04-lb- 형식 : 공개- 계층 : 지역

 

- 프런트엔드 ip 구성 추가 : Load balancer의 public ip 구성 -> 외부와의 통신을 위해서

 

.

- 백엔드 풀 : 서버들을 그룹으로 묶어줘야함(web01, web02, web03), NIC : 랜카드

 

- 상태 프로브 : 엔드포인트(네트워크에 연결하고 네트워크를 통해 통신하는 모든 디바이스) 상태를 확인하기 위한 규칙

 

- 표준 선택( 기본보다 위에 있음)

- 백엔드 포트와 프론트엔드 포트를 80 포트(TCP)로 설저하여 80포트를 통해 외부에서 내부에 접근하게 만든다

 

* 아웃바운드 규칙은 추가안함

 

 

- 만들기 버튼을 클릭하여 부하분산 장치 생성

 

- 해당 주소로 접근하여 로드밸런서 동작 확인

 

- 윈도우 서버(web03)에서 public IP 분리

- web03을 통해서 web01과 web02로 들어갈 수 없음

- 원격 연결이 끊김

 

 

- aws clb (Round Robin: 순차적 연결) : 부하가 적게가는 서버도 있고 많게 가는 서버가 생김(시분할 시스템)

- azure lb (Least Connection : 최소 연결 방식) : lb는 가장 접속인 적은 서버를 찾아가서 그 서버에 접속하는 방식, L4 스위치의 경우는 Least Connection 방식을 많이 사용

 

- 인바운드 NAT 규칙 = 포트포워딩

 

- 인바운드 NAT 규칙 추가 ( = 포트포워딩)

- web01(2201), web02(2202), web03(3389)

- 백엔드 포트는 22번 포트로 들어감

- 포트번호는 약 6500개 정도 가능함

 

- 추가한 인바운드 NAT 규칙에서 정의한 대로 포트 번호를 2201로 설정하여 접근

 

- web02 인바운드 규칙 추가

 

- web03 인바운드 규칙 추가 

3. Azure 파일 스토리지 서비스

- 검색 창에서 디스크 검색

 

- 공유 디스크 : 둘이상의 가상 머신이 하나의 디스크에 연결되는 것

- 디스크는 가용 영역을 따짐

 

- web01 가상 머신에 들어가기

 

- 생성한 디스크 web01에 연결

 

lsblk
sudo mkfs -t ext4 /dev/sdc
sudo mount /dev/sdc /mnt
df -h

- 마운트 하기

 

- azure.tar 파일을 web03서버에 /c/inetpub/wwwroot 경로로 복사 붙여넣기하기

 

- azure.tar 파일을 압축을 풀고 web01(10.0.0.5)에 접근하면 부트스트랩 화면이 나온다

- root 경로의 azure.tar 파일을 마운트 폴더로 옮긴다

- 추가볼륨을 web02에 보내고 싶음 -> 가용영역이 달라서 안됨; 스냅샷으로 해결

 

- web01에 할당한 디스크를 스냅샷으로 만든다

 

- 기존 디스크 연결을 눌러서 스냅샷으로 만든 디스크 연결

 

- 해당 디스크를 마운트하여 /mnt 디렉토리를 확인하면 azure.tar 파일을 확인할 수 있다.