Platform As A Service

(Platform : 다 있음. 시장. 없는게 없음)

- Azure App Service Plans

웹 사이트 구축

성능 ,가격, 기능이 다름

한 앱 서비스에 대한 한개 이상의 앱이 구성될 수 있음

- App Service Plan Pricing

** Standard를 추천 (Auto-scaling 가능. 과부하 시 5개까지 늘어남)

- Scale Up과 Scale Out 가능

- Plan Scaling 변경이 가능

- Create an App Service

이름은 반드시 고유해야 함

- Deployment Slots 생성

서비스 중단 없이 업그레이드 하는 기능

(Standard는 ~5개)

- Secure App Service

인증 기능 추가 (identity provider 추가)

그 서비스를 Azure AD에 넣는 것임(그 사이트에 접속하면 인증 요청을 받아라. )

- Custom Domain

dns zones > create > record set 추가 > txt record type > app service > custom domain > add custom domain > validate 

 

 


실습) Web Apps 구현

이 실습에서의 절차는 아래와 같다.

  1. Azure 웹 앱 만들기
  2. Deployment Slots 만들기
  3. 웹 앱 배포 설정 구성
  4. Deployment Slots에 코드 배포
  5. Deployment Slots Swap
  6. Azure 웹 앱의 자동 스케일링 구성 및 테스트

 


Task 1 : Azure 웹 앱 만들기

위와 같은 설정의 웹 앱을 하나 만든다.

웹앱 이름은 yrleewa.

생성한 웹 사이트는 PHP 런타임 스택을 사용하여 Windows 서버에서 실행된다. 


Task 2 : Deployment Slots 만들기

현재 생성한 기본 페이지 확인

이 웹 페이지의 URL 주소는 https://yrleewa.azurewebsites.net 이다.

Deployment Slot을 하나 만든다.

이 deployment slot의 URL 주소는 https://yrleewa-staging.azurewebsites.net 이다.


Task 3 : 웹 앱 배포 설정 구성

Local Git에 연결시키기 위해 Delpoyment Center에서 설정하는 과정이 필요하다.
credentials 탭의 맨 아래 부분 User Scope를 작성하고 Save


Task 4 : Deployment Slots에 코드 배포

 

Azure Cloud Shell(PowerShell)에서 진행한다.

git clone https://github.com/Azure-Samples/php-docs-hello-world
Set-Location -Path $HOME/php-docs-hello-world/

Git으로부터 예시 웹 사이트 코드를 가져온다.

git remote add [deployment_user_name] [git_clone_url]
git push [deployment_user_name] master

[deployment_user_name]에는 Task 3에서 가장 마지막에 입력했던 User Scope 정보를 넣어주면 된다.

 

이렇게 하게 되면 다운로드 받은 정보를 나의 web app으로 가져올 수 있다.
따라란. 바뀌었다.


Task 5 : Deployment Slots Swap

 

만들었던 Deployment Slot와 Swap을 진행한다.

현재 yrleewa는 git에서 가져온 hello world!를 표시하는 페이지이며, yrleewa-staging 은 바꾸지 않은 기본 페이지이다.

Swap 진행!

Swap을 했기 때문에 yrleewa-staging의 내용이 뜨게 된다.

(클라이언트는 같은 URL을 사용하는 것이지만 사실 내부적으로 이 페이지는 yrleewa-staging 의 내용을 보여주는 것이다.)


Task 6 : Azure 웹 앱의 자동 스케일링 구성 및 테스트

scale out에서 scale rule을 수정한다.
이러한 설정으로 변경해준다.

위 설정은 대기 시간 없이 가능한 한 빨리 자동 스케일링을 트리거하는 것이므로 오로지 테스트를 하기 위한 설정이다. 

1분동안 CPU 사용률이 10% 이상이 되면 최대 2개의 web application을 Scale Out 한다.

 

과부하오게 설정. 계속해서 request 보냄
Process Explorer

프로세스 탐색기를 사용하면 인스턴스 수와 해당 리소스 활용률을 쉽게 모니터링할 수 있다.

인스턴스가 2개가 되었으므로 테스트 성공


** 모든 리소스 삭제하기

Get-AzResourceGroup -Name 'az104-09a*'
Get-AzResourceGroup -Name 'az104-09a*' | Remove-AzResourceGroup -Force -AsJob

 

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

AZ104 (NAT)  (0) 2022.08.12
AZ104 (Container, Kubernetes)  (0) 2022.08.12
AZ104 (Virtual Machine Management)  (0) 2022.08.12
AZ104 (Azure Storage)  (0) 2022.08.10
AZ104 (Load Balancing Services)  (0) 2022.08.10

※ 클라우드 서비스

Virtual Machine은 IaaS의 일부이다. 

IaaS 는 인터넷을 통해 프로비저닝 및 관리되는 컴퓨팅 인프라로, 수요에 따라 신속하게 스케일 업 및 스케일 다운하여 사용한 것에 대해서만 비용을 지불할 수 있다.

 

Virtual Machine

① 기본 개념

  • VNet
    Azure에서는 가상 네트워크(VNet)를 사용하여 외부로부터 가상 머신을 보호할 수 있다. 동일한 VNet의 VM 및 서비스는 서로 액세스할 수 있다.

  • VM 위치 설정
    Azure는 전 세계에 서버와 디스크로 가득 찬 데이터 센터를 보유하고 있다. 이러한 데이터 센터는 중복성과 가용성을 제공하기 위해 지리적 지역으로 그룹화 한다. (East US, North Europe, Southeast Asia..)

  • 가격 책정
    모든 VM에 대해 두 가지 구독 비용(컴퓨팅과 스토리지)이 별도로 청구된다.

    - 컴퓨팅 비용 : 예를 들면, VM을 사용한 시간에 따라 비용 청구. Linux보다 Windows가 더 비쌈
    - 스토리지 비용 : VM이 사용하는 스토리지에 대해 별도 요금이 부과됨. VM 상태와 상관없이 디스크가 사용한 스토리지에 대해 비용이 부과됨

  • Sizing
    작업량에 따라 적절한 VM 크기를 결정해야 한다. 사용 중간에 크기를 변경할 수도 있다.

목적에 따른 VM 크기 유형

  • 가상머신 스토리지
    다른 컴퓨터와 마찬가지로, VM도 운영체제, 애플리케이션 및 데이터를 저장하는 공간으로 디스크를 사용한다.
    모든 VM에는 적어도 두 개의 디스크(운영체제 디스크와 임시 디스크)가 있다.
    또, 하나 이상의 데이터 디스크가 있을 수도 있다. 모든 디스크는 VHD(가상 하드 디스크)로 저장된다.

    - 운영체제 디스크
    기본으로 등록되는 디스크로, 기본적으로 C: 드라이브로 레이블이 지정된다.
    - 임시 디스크
    단기 스토리지, 페이지나 스왑 파일 등의 데이터 저장 전용 공간. Windows에서는 기본적으로 D: 드라이브, Linux에서는 /dev/sdb 이다.
    - 데이터 디스크
    애플리케이션 데이터 또는 유지해야 하는 기타 데이터 저장
    - 관리 디스크 
    VHD. 가상화된 디스크로, Azure의 I/O 저장소 개체인 페이지 Blob에 저장된다.
    사용 가능한 디스크 유형으로는 Ultra SSD, Premium SSD, Standard SSD, Standard HDD가 있다.

  • Connection
    1. Windows 기반 VM : RDP(원격 데스크톱 프로토콜) 클라이언트를 통해 연결
    2. Linux 기반 VM : SSH(Secure SHell) 클라이언트를 통해 연결. 예를들면 PuTTY
    3. Bastion 연결 : 완전한 PaaS 서비스. SSL을 통해 Azure Portal에서 직접 VM에 연결하여 안전하고 원활한 RDP/SSH 연결이 가능하다. Bastion을 통해 연결할 때는 VM의 Public IP가 필요가 없다! 
     

② 가상머신 유지보수(재해 복구 및 백업 기술)

VM을 사용할 때, 예상하거나 예상하지 못한 오류에 대비해야 한다. (하드웨어 중지, 자연재해, 업데이트 및 업그레이드 등)

  • Availability Set
    관련 VM 그룹을 배포하는 데 사용되는 중복성과 가용성을 제공하기 위한 논리적 집합으로, 같은 Availability Set에 배치된 VM은 동일한 기능을 수행하고 동일한 소프트웨어가 설치되어 있다. 

    AS(가용성 집합)에 포함된 VM은 Update Domain 혹은 Fault Domain에 할당된다. 각 AS는 최대 3개의 FD와  20개의 UD로 구성할 수 있다. 
    - UD(Update Domain) : 동시에 다시 부팅할 수 있는 VM 그룹. 한번에 하나의 UD만 재부팅됨
    - FD(Fault Domain) : 공통 전원과 네트워크 스위치를 공유하는 VM 그룹

가상 머신을 Availability Set에 배치하더라도 운영 체제 또는 애플리케이션별 오류로부터 애플리케이션을 보호할 수는 없다. 따라서 Availability Zone을 살펴보자.

 

  • Availability Zone
    Availability Zone은 각 데이터 센터를 물리적으로 별도로 위치시킨 영역이다. 모든 AZ 사용 Region에 최소 3개의 AZ가 존재한다.

    따라서 데이터 센터 오류 발생 시 애플리케이션과 데이터를 보호할 수 있다. 

  • Scaling (Vertical, Horizontal)
    1. Vertical Scaling = "Scale Up & Scale Down"
    작업량에 따라 VM의 크기를 늘리거나 줄이는 것 ex) 주말에는 VM 크기를 줄이기
    2. Horizontal Scaling = "Scale Out & Scale In"
    작업량에 따라 VM의 숫자를 늘리거나 줄이는 것 ex) 특정 서비스가 몰리면 VM을 늘려 부하 감소 

  • VM Scale Sets
    scale set을 사용하면 부하 분산된 VM의 그룹을 손쉽게 만들고 관리할 수 있다.
    ex) 리소스 수요 변화에 따라 자동으로 애플리케이션 크기 조정(자동 크기 조정 옵션 사용), 대규모 작업(최대 1000개의 VM 인스턴스 지원) 등 ..

    사용하는 이유? 
    → 중복성과 향상된 성능을 제공하기 위해 애플리케이션은 일반적으로 여러 인스턴스 간에 분산된다. 고객은 인스턴스 중 하나에 요청을 배포하는 Load Balancer를 통해 애플리케이션에 액세스할 수 있다. 유지 관리를 수행하거나 애플리케이션 인스턴스를 업데이트해야 하는 경우, 고객은 사용 가능한 다른 애플리케이션 인스턴스에 배포되어야 한다. 또한, 추가적으로 고객 요구에 맞추려면 애플리케이션을 실행하는 애플리케이션 인스턴스의 수를 늘려야 할 수도 있다. 이럴 때 Scale Set을 통해 VM을 한꺼번에 관리할 수 있다.

  • VM Extension
    Azure VM에서 배포 후 구성 및 자동화 태스크를 제공하는 간단한 애플리케이션
    ex) 가상 머신에 소프트웨어를 설치해야 하거나, 바이러스 백신을 통해 가상 머신을 보호해야 하거나, 가상 머신 내부에 구성 스크립트가 필요한 경우

실습) Virtual Machine Management 

실습 절차는 아래와 같다.


  1. Azure 포털 및 Azure 리소스 관리자 템플릿을 사용하여 영역 복원 Azure VM 배포
  2. VM extenstion을 사용하여 Azure VM 구성
  3. Azure VM을 위해 컴퓨팅 및 스토리지 확장
  4. Azure Portal을 사용하여 Azure VM Scale Set 구축
  5. VM Extension을 사용하여 Azure VM Scale Set 구성

Task 1 : Azure VM 배포

vm0을 배포하고 그 template를 사용하여, 이름과 zone만 바꾸어 vm1을 손쉽게 배포할 수 있다.

vm0과 vm1을 배포하는데, 생성할 때 Availability Zone을 선택해서 각각 Zone1, Zone2에 포함되도록 구성한다.


Task 2 : VM extenstion을 사용하여 Azure VM 구성
이전 작업에서 배포한 두 개의 VM에 Windows Web Server(IIS)을 설치한다.

 

방법 1) 아래와 같이 명령어를 입력하는 방법 (VM0)

Set-AzVMCustomScriptExtension -ResourceGroupName az104-08-rg01 -VMName az104-08-vm0 -Location EastUS -ExtensionName "IIS" -FileURI 'https://raw.githubusercontent.com/godeploy/AZ104/master/Module08/az104-08-install_IIS.ps1' -Run 'az104-08-install_IIS.ps1'

** Set-AzVMCustomScriptExtension 명령어는 Azure VM(가상 머신)에서 스크립트를 다운로드하고 실행하도록 한다.

 

방법 2) 아래와 같이 Template에 리소스를 추가해주는 방법 (VM1)

vm1에서 Export template 탭을 찾아 Deploy를 선택한다.
Edit template를 통해 VM1의 설정을 바꿔준다.

** 이렇게 하면 VM 내부로 들어가서 설정을 바꾸지 않아도 Azure Portal에서 곧바로 VM 설정을 바꿀 수 있다.

 20번째 줄 "resources": [  바로 아래 부분에 아래 코드를 추가해준다. (customScriptExtension이라는 확장 프로그램을 추가하는 것이다.)

    {
        "type": "Microsoft.Compute/virtualMachines/extensions",
        "name": "az104-08-vm1/customScriptExtension",
        "apiVersion": "2018-06-01",
        "location": "[resourceGroup().location]",
        "dependsOn": [
            "az104-08-vm1"
        ],
        "properties": {
            "publisher": "Microsoft.Compute",
            "type": "CustomScriptExtension",
            "typeHandlerVersion": "1.7",
            "autoUpgradeMinorVersion": true,
            "settings": {
                "commandToExecute": "powershell.exe Install-WindowsFeature -name Web-Server -IncludeManagementTools && powershell.exe remove-item 'C:\\inetpub\\wwwroot\\iisstart.htm' && powershell.exe Add-Content -Path 'C:\\inetpub\\wwwroot\\iisstart.htm' -Value $('Hello World from ' + $env:computername)"
          }
        }
    },  

 

결과

추가하고 나면, 리소스가 2개로 변경되었음을 알 수 있다.

이제 VM1의 Run command 기능을 이용해 VM0(10.80.0.4)의 웹 사이트에 접근해본다.

VM0과 VM1이 잘 통신되는 것을 확인할 수 있다.


Task 3 : Azure VM을 위해 컴퓨팅 및 스토리지 확장

방법 1) Azure Portal GUI 사용하기(VM0)

(vm0) Size를 제일 작은걸로 변경하고, Disk0, Disk1 추가

vm0의 Run command 기능을 이용하여 새로 생성한 두 개의 Disk로 구성된 Z 드라이브를 생성한다.

New-StoragePool -FriendlyName storagepool1 -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks (Get-PhysicalDisk -CanPool $true)
New-VirtualDisk -StoragePoolFriendlyName storagepool1 -FriendlyName virtualdisk1 -Size 2046GB -ResiliencySettingName Simple -ProvisioningType Fixed
Initialize-Disk -VirtualDisk (Get-VirtualDisk -FriendlyName virtualdisk1)
New-Partition -DiskNumber 4 -UseMaximumSize -DriveLetter Z

 

방법 2) template로 변경하기 (VM1)

(vm1) 30번째 줄 수정하여 vmSize 변경, 49번째 줄에 dataDisk를 추가하여 디스크 2개를 생성

vm1의 Run command 기능을 이용하여 새로 생성한 두 개의 Disk로 구성된 Z 드라이브를 생성한다.


Task 4 : Azure Portal을 사용하여 Azure VM Scale Set 구축

 

Scale Set을 새로 생성한다.

주의사항: Region을 선택할 때, Availability Zone을 사용할 수 있는 지역을 선택한다. / PIP를 enable로 하여 부여받는다./ storage account를 생성한다.

 

Task 4의 결과 구성도


 Task 5 : VM Extension을 사용하여 Azure VM Scale Set 구성

 

아래 명령어를 로컬 컴퓨터의 Powershell에서 입력하여 Extension을 위한 파일을 다운 받는다.

Start-BitsTransfer -Source "https://raw.githubusercontent.com/godeploy/AZ104/master/Module08/az104-08-install_IIS.ps1" -Destination $home/downloads/az104-08-install_IIS.ps1

 

파일 업로드

Task 4에서 만들었던 Storage Account에 들어가 'scripts' 컨테이너를 만들어 다운로드 받은 파일을 업로드 한다.

 

Task 4에서 만들었던 Scale Sets에서 해당 Extensions 찾아서 적용

이렇게 되면 해당 scale set에 속하는 VM 들에 웹서버가 설치된다. (다운로드 받은 파일이 Windows Web Server(IIS) 설치 후, 자신의 이름이 뜨도록 하는 스크립트임.)

 

scale set에 해당하는 VM 두개를 Upgrade 해준다.


** 모든 리소스 삭제하기

Get-AzResourceGroup -Name 'az104-08*'
Get-AzResourceGroup -Name 'az104-08*' | Remove-AzResourceGroup -Force -AsJob

 

 

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

AZ104 (Container, Kubernetes)  (0) 2022.08.12
AZ104 (App Services)  (0) 2022.08.12
AZ104 (Azure Storage)  (0) 2022.08.10
AZ104 (Load Balancing Services)  (0) 2022.08.10
AZ104 (NSG, ASG)  (0) 2022.08.09

Azure Storage 

파일, 메시지, 테이블 및 기타 유형의 정보를 저장하는 데 사용할 수 있는 서비스

Azure Storage 데이터 서비스

  • Azure Blob : 텍스트 및 이진 데이터에 대한 확장성이 뛰어난 개체 저장소
  • Azure Files : 클라우드 또는 온-프레미스 배포에 대한 관리되는 파일 공유 서비스
  • Azure Queue : 애플리케이션 구성 요소 간에 안정적인 메시징을 위한 메시징 저장소
  • Azure Table : 클라우드에 구조화된 NoSQL 데이터를 저장하는 서비스
  • Azure Disk : 연결된 가상 하드 디스크에서 데이터를 영구적으로 저장 및 액세스할 수 있음

 

Determine Replication Strategies

Azure Storage의 일시적인 오류, 네트워크 또는 정전, 대규모 자연 재해 등 계획되지 않은 이벤트로부터 데이터를 보호하기 위해 항상 여러 복사본을 가지고 있어야 한다. Replication은 Storage 계정의 오류 발생 시에도 가용성 및 내구성을 충족하도록 한다.

왼쪽부터 차례로 LRS, ZRS, GRS, RA-GRS

  • LRS
    기본 지역의 단일 물리적 위치 내에서 데이터를 동기적으로 세 번 복사한다. (Three replicas, One Region)
    가장 저렴한 복제 옵션. 재해 발생 시 모든 복제본이 손실되거나 복구할 수 없을 수도 있다.
    하지만, 데이터 손실에 유의할 필요가 없는 경우 사용하기 적합하다.

  • ZRS
    단일 지역의 3개 스토리지 클러스터에 데이터를 복제한다. (Three replicas, Three zones, One Region)
    각 스토리지 클러스터는 다른 클러스터와 물리적으로 분리되어 있다.

  • GRS/RA-GRS (기본 복제 옵션)
    LRS를 사용하여 기본 지역의 단일 물리적 위치 내에서 데이터를 동기적으로 세 번 복사한다. 그런 다음 보조 지역의 단일 물리적 위치에 데이터를 비동기적으로 복사한다. 보조 지역 내에서 데이터는 항상 LRS를 사용하여 동기적으로 세 번 복제된다. (Six replicas, Two Regions)

왼쪽부터 차례로 GZRS, RA-GZRS

  • GZRS/RA-GZRS
    ZRS의 고가용성과 GRS의 보호하는 기능을 결합한 것이다.
    ZRS를 사용하여 기본 지역에 있는 3개의 Azure 가용성 영역에서 데이터를 동기적으로 복사한다. 그런 다음 보조 지역의 단일 물리적 위치에 데이터를 비동기적으로 복사한다. 보조 지역 내에서 데이터는 항상 LRS를 사용하여 동기적으로 세 번 복제된다. (Six replicas, 3+1 zones, Two Regions)

 

Storage Endpoint 보호

- 방화벽 및 가상 네트워크

가상 네트워크 또는 공용 IP의 특정 서브넷에서 스토리지 계정에 대한 액세스를 제한한다.
(서브넷 및 가상 네트워크는 스토리지 계정과 동일한 Azure 영역에 있어야 한다.)

 


Blob Storage

Storage Account 계정 내에서 Container에 필요한 만큼 Blob을 그룹화 할 수 있다.

Blob Storage는 문서, 미디어 파일, 애플리케이션 설치 관리자와 같은 텍스트 또는 이진 데이터와 같은 데이터 등 모든 유형을 저장할 수 있다. 

  • 브라우저에 이미지나 문서 직접 제공
  • 설치와 같은 분산 액세스를 위한 파일 저장
  • 비디오 및 오디오 스트리밍
  • 데이터 백업용
  • 온-프레미스 또는 호스팅 서비스 분석을 위한 데이터 저장

Blob Access 계층

데이터 사용량의 특정 패턴에 맞게 최적화되어 있다.

필요에 맞는 것을 선택해야 효율적인 비용으로 사용할 수 있다.

  • Hot : 데이터에 자주 액세스하는 경우 가장 적합
  • Cool : 자주 액세스하지 않으며 30일 이상 저장해야 하는 대량의 데이터 저장 시 
  • Archive : 검색 시간은 오래 걸리지만 180일 이상 데이터 저장 시

실습) Azure Storage 구현

구성도

액세스 빈도가 낮은 파일을 저렴한 스토리지 계층에 배치하여 스토리지 비용을 최소화하고자 한다. 또한 Azure 스토리지가 제공하는 네트워크 액세스, 인증, 권한 부여 및 복제를 비롯한 다양한 보호 메커니즘을 살펴본다.

 

  1. Lab 환경 프로비저닝
  2. Azure Storage account 생성 및 구성
  3. Blob 스토리지 관리
  4. Azure 스토리지에 대한 인증 및 권한 부여 관리
  5. Azure 파일 공유 생성 및 구성
  6. Azure 스토리지 네트워크 액세스 관리

Task 1 : Lab 환경 구성

Azure Cloud Shell 에서 아래 명령어를 통해 환경을 구성한다.

IEX (iwr 'https://raw.githubusercontent.com/godeploy/AZ104/master/Module07/getdeployment.ps1')

Task 2 : Azure Storage account 생성 및 구성

storage account 생성

※ 참고 : Storage Account 이름은 전역에서 고유하다

Replication을 RA-GRS로 설정하니 Primary 뿐만 아니라 Secondary endpoint도 있다.
Replication을 GRS로 변경했더니 Primary endpoint만 보인다.
LRS로 변경하여 기본 설정을 마친다.
Access Tier를 Hot에서 Cool로 변경한다.

자주 사용하지 않는 데이터의 경우 Access Tier를 Cool로 설정을 해놔야 효과적으로 관리할 수 있기 때문이다. 


Task 3 : Blob 스토리지 관리

Storage를 하나 만들고, Container를 생성하여 txt 파일을 업로드 한다.
Blob 스토리지 관리 종류

 

BLOB를 다운로드하고 액세스 계층을 변경하고(현재 핫으로 설정됨), 리스를 획득하면 리스 상태가 잠금(현재 잠금 해제됨)으로 변경되며 BLOB가 수정 또는 삭제되지 않도록 보호하고 사용자 지정 메타데이터를 할당할 수 있습니다(임의 키 및 값 쌍 지정). 또한 Azure 포털 인터페이스 내에서 파일을 먼저 다운로드하지 않고 직접 편집할 수 있습니다. 스냅샷을 생성할 수도 있고 SAS 토큰을 생성할 수도 있습니다


Task 4 : Azure 스토리지에 대한 인증 및 권한 부여 관리

Container Access 형식이 Private로 되어 있기 때문에 보이지 않는 것이다.

해당 데이터에 대한 SAS 토큰을 생성하고, SAS URL로 접속해본다.
컨테이너에 대한 인증 권한이 없다
컨테이너의 IAM에 가서 Storage Blob Data Owner 권한을 부여한다.


Task 5 : Azure File Shares 구현

Storage의 File shares를 생성. Connect 방법 Copy
vm의 Run command 탭을 이용해 붙여넣기한다

이제 파일이 공유되었다. 아래 명령어를 통해 vm에서 폴더를 만들고, 파일 또한 만든다.

New-Item -Type Directory -Path 'Z:\az104-07-folder'
New-Item -Type File -Path 'Z:\az104-07-folder\az-104-07-file.txt'

다시 공유 폴더를 확인해보니 성공적으로 업로드 된 것을 알 수 있다.


+) 모든 리소스 삭제하기 (Azure Cloud PowerShell)

Get-AzResourceGroup -Name 'az104-07*'
Get-AzResourceGroup -Name 'az104-07*' | Remove-AzResourceGroup -Force -AsJob

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

AZ104 (App Services)  (0) 2022.08.12
AZ104 (Virtual Machine Management)  (0) 2022.08.12
AZ104 (Load Balancing Services)  (0) 2022.08.10
AZ104 (NSG, ASG)  (0) 2022.08.09
AZ104 (관리자 도구)  (0) 2022.08.08

로드밸런싱 서비스 종류


1. Application Gateway (≒Reverse Proxy Server)
: Web Server만 서비스하는 로드밸런서

2. Front Door (≒CDN)
: Contents를 여러 Server에 복사시킴(예를 들어, IOS 업데이트 등. 전세계가 한 곳에 집중되지 않도록 여러 곳에 Contents를 복사시켜놓고 사람들이 가까운 곳에 접속할 수 있도록 함)

: CDN을 사용하면 그냥 Storage Account를 통해 다운받는 것보다 서비스가 훨~씬 빠르다!


3. Load Balancer

Load Balancer

Azure Load Balancer는 OSI(Open Systems Interconnect) 모델의 계층 4에서 작동한다.

로드 밸런서의 Frontend에 들어오는 인바운드 트래픽을 VM(가상 머신) 등의 백 엔드 리소스 또는 서비스 그룹에 분산한다.

Public Load Balancer
공용 로드 밸런서는 가상 네트워크 내부의 VM(가상 시스템)에 아웃바운드 연결을 제공할 수 있다. 이러한 연결은 private IP 주소를 public IP 주소로 변환하여 수행된다. 공용 로드 밸런서는 VM에 대한 인터넷 트래픽 로드 밸런싱을 위해 사용된다.


Internal Load Balancer

프런트 엔드에서만 전용 IP가 필요한 경우 내부(또는 전용) 로드 밸런서가 사용된다. 내부 로드 밸런서는 가상 네트워크 내에서 트래픽을 로드 밸런싱하는 데 사용된다. 로드 밸런서 프런트 엔드는 하이브리드 시나리오에서 온프레미스 네트워크에서 액세스할 수 있다.

 

- Backend Pool 
트래픽을 분산하기 위해 백엔드 주소 풀에는 로드 밸런서에 연결된 가상 NIC 또는 인스턴스 IP 주소가 있다.


- Load Balancer Rules

백 엔드 풀 내의 모든 인스턴스에 들어오는 트래픽이 배포되는 방법을 정의하는 데 사용된다.
Frontend IP 및 port 집합을 Backend pool 및 port 집합에 매핑한다.

 

- Healthprove
Backend pool의 인스턴스 상태를 확인하는데 사용된다.

 

4. Traffic Manager (≒GSLB)
: DNS 서버가 해당 지역과 가까운 곳과 연결시켜줌
(지역에 따라 홈페이지의 IP주소가 다름)

 


실습) Traffic Management 구현

이번 Lab에서는 트래픽을 허브를 통해 흐르게 하여 스포크간 연결(Hub & Spoke)을 구현하고 Azure 로드 밸런서(계층 4) 및 Azure 애플리케이션 게이트웨이(계층 7)를 사용하여 가상 머신 간에 트래픽을 분산하도록 한다.

 

절차는 아래와 같다.

  1. 랩 환경 구성
  2. 허브 및 스포크 네트워크 토폴로지 구성
  3. 가상 네트워크 피어링의 전환성 테스트
  4. 허브 및 스포크 토폴로지에서 라우팅 구성
  5. Azure 로드 밸런서 구현
  6. Azure 애플리케이션 게이트웨이 구현

Task1 : Lab 환경 구성

 

Azure PowerShell에서 아래 명령어를 입력하여 환경을 구성한다.

IEX (iwr 'https://raw.githubusercontent.com/godeploy/AZ104/master/Module06/getdeployment.ps1')

Task2 : 허브 및 스포크 네트워크 토폴로지 구성

기본적인 네트워크 구성

이제 vnet01이 Hub역할을 하게 된다.


Task 3 : 가상 네트워크 피어링의 전환성 테스트

Connection 확인

vm0에서 vm2까지의 연결에 문제가 없는지 Check 해본다.

** vm0에서 vm3까지도 Reachable이다. 

 

vm2 - vm3 connection 확인

vm2에서 vm3은 Unreachable이다. (예상함)


Task 4 : 허브 및 스포크 토폴로지에서 라우팅 구성

네트워크 인터페이스0 에 들어가서 IP Forwarding을 Disable에서 Enable로 바꿔준다

 

이 설정은 두 가상 네트워크 간에 트래픽을 라우팅하는 라우터 역할을 하는 az104-06-vm0을 위해 필요하다.

이제 라우팅 역할을 하도록 az104-06-vm0 가상 시스템의 운영 체제를 구성해야 한다.

 

vm0에서 Openrations - Run command - RunPowerShellScript 순서로 들어와 아래 명령어를 차례대로 입력한다.

Install-WindowsFeature RemoteAccess -IncludeManagementTools
Install-WindowsFeature -Name Routing -IncludeManagementTools -IncludeAllSubFeature
Install-WindowsFeature -Name "RSAT-RemoteAccess-Powershell"
Install-RemoteAccess -VpnType RoutingOnly
Get-NetAdapter | Set-NetIPInterface -Forwarding Enabled

라우팅 테이블 생성(이름은 az104-06-rt23)
vnet2에서 vnet3으로의 라우팅

vnet3에서 vnet2로의 라우팅도 위 과정과 똑같이 해준다. (라우팅 테이블 생성 후, route create & subnet associate)

 

vm2와 vm3이 이제는 연결이 된다!


Task 5 : Azure 로드 밸런서 구현

 

아래 표를 참고하여 로드밸런서를 구현한다.

Load Balancer 추가, Backend pool 추가
 Healthprobe 와 Load balancing rules 추가
로드 밸런싱 결과 

그 결과, vm0과 vm1로 트래픽이 분산된 것을 확인할 수 있다.


Task 6 : Azure 애플리케이션 게이트웨이 구현

 

az104-06-vnet01 에서 Subnet 추가
Application Gateway 추가, Frontend 정보 추가
Backendpool과 routing rule Listner추가
backend target의 routing rule, HTTP setting 추가

 

Application Gateway 정보 확인
애플리케이션 게이트웨이 구현 결과

그 결과, vm2와 vm3로 트래픽이 분산된 것을 확인할 수 있다.

 


+) 모든 리소스 삭제하기 (Azure Cloud PowerShell)

Get-AzResourceGroup -Name 'az104-06*'
Get-AzResourceGroup -Name 'az104-06*' | Remove-AzResourceGroup -Force -AsJob

 

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

AZ104 (Virtual Machine Management)  (0) 2022.08.12
AZ104 (Azure Storage)  (0) 2022.08.10
AZ104 (NSG, ASG)  (0) 2022.08.09
AZ104 (관리자 도구)  (0) 2022.08.08
AZ104 (환경세팅)  (0) 2022.08.08

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

AAD와 Subscription은 다른 것임

구독자가 AAD 관리. User와 Group 생성(이 사용자들은 Portal에 접속할 수 있음. 하지만 Subscription, Resource Group, Resource 에 대한 권한이 있어야 함)

** 그 중에, Global Administrator 권한은 AAD에서 User 만들고 Group 만들고 할 수 있고, Portal에는 접속해도 할 수 있는 게 없음 --> 따라서 Access Control 에서 Portal에서 할 수 있는 역할을 또! 부여해야 함 

실습)

1) 구독 계정으로 AAD에서 poweruser 생성하면서 global administrator 역할 부여
2) Subscription의 Access Control에서 OWNER 역할을 부여 
3) poweruser로 portal에 접속하여 AAD에 가서 4개의 계정을 생성 
users - bauser1 , bauser2,  iauser1, iauser2
groups - bausers , iausers
4) BA, IA라는 resource group 생성한 후에 해당 RG에서 해당 Group에 Reader 역할을 부여
5) poweruser로 BA, IA RG에서 App service를 하나씩 만든다(웹사이트)
6) bauser1, iauser1로 portal에 접속하여 자신에게 부여된 Resource에 접속

☆ user account 생성 > role assignment 

= 만든 user에게 관리자 권한을 부여

(ex) 개발부서 관리자)

☆ 관리자 권한을 받은 user account로 접속 > user 생성 > resource group 생성 > 각 RG에 대한 IAM > role assignment > 특정 사용자 or group에게 권한 부여

(이 사용자들은 자기 리소스 그룹만 보이고 거기에 대해서 작업할 수 있음)

------------------------------------------

Azure 관리자 도구 

1. Azure Portal

2. Cloud Shell - Powershell, Bashshell

3. 로컬에서 Power Shell and CLI

-----------------------------------------
https://aka.ms/installazurecliwindows

여기서 Azure CLI msi설치

<Local computer에 Azure Cli 및 Azure Powershell 설치하기>

1. Windows에 Azure CLI 설치

  a. azure cli msi를 다운로드하여 설치하기
  b. powershell을 관리자로 실행하기
     az --version
  c. az login
  d. Web Browser가 실행되면 jesuswithme@hotmail.com으로 로그인한 후 Web Browser 닫기
  e. login 성공함
  f. az account list -o table
     az group list -o table

 

2. Windows Azure Powershell Module 설치하기

 a. Get-Module
 b. Get-Module -ListAvailable
 c. Import-Module -Name PowerShellGet
 d. Get-Command -Module PowerShellGet
 e. Install-Module -Name Az -AllowClobber
 f. Connect-AzAccount  (jesuswithme@hotmail.com 계정으로 로그인)
  Get-AzSubscription
  New-AzResourceGroup -name blessingRG -location eastus
  Get-AzResourceGroup | ft *
  Remove-AzResourceGroup -Name blessingRG

 

<Linux에 Azure CLI 설치 및 사용하기>

 0. sudo -i
 0. yum install python3 -y
 a. curl -sSL https://aka.ms/InstallAzureCli | bash
 b. az login -u ysleepolytech@outlook.com
 c. az account list -o table
 d. az group list -o table
 e. az group --help
 f. az group create -n peaceRG -l eastus


-------------------------------------

ARM 템플릿으로 리소스 쉽게 배포하기
https://azure.microsoft.com/ko-kr/resources/templates/

ex) simple Windows VM 검색 

클릭하여 다운받으면 아주 쉽게 리소스를 추가할 수 있다! 

 

Azure 퀵 스타트 템플릿

Azure Resource Manager를 통해 배포된 Azure 리소스를 커뮤니티에서 제공한<br>템플릿과 함께 사용하여 더 많은 작업을 수행하세요. 배포하고, 학습하고, 분기하고, 다시 적용하세요.

azure.microsoft.com

 

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

AZ104 (Load Balancing Services)  (0) 2022.08.10
AZ104 (NSG, ASG)  (0) 2022.08.09
AZ104 (환경세팅)  (0) 2022.08.08
AZ104 (Administer Governance and Compliance)  (0) 2022.08.06
AZ104 (Azure AD&Accounts)  (0) 2022.08.06
git clone https://github.com/godeploy/AZ104.git

 

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

AZ104 (NSG, ASG)  (0) 2022.08.09
AZ104 (관리자 도구)  (0) 2022.08.08
AZ104 (Administer Governance and Compliance)  (0) 2022.08.06
AZ104 (Azure AD&Accounts)  (0) 2022.08.06
AZ800 (Hybrid File Server)  (0) 2022.08.03

Azure Subscriptions
Azure 구독은 Azure 계정에 연결된 Azure 서비스의 논리적 단위이다. 구독별로 서비스 비용이 청구된다.  
 


Resource Groups
모든 리소스는 특정 Resource Group의 구성원으로 들어간다.

 

Azure AD Roles
azure에 있는 사용자를 위한 룰

Azure RBAC Roles
azure의 각종 리소스를 위한 룰

 

 

Azure Policy

이는 정책을 만들고, 할당하고, 관리하는 데 사용하는 서비스이다.

Resource가 회사 표준 및 서비스 수준 계약을 지속적으로 준수하도록 Resource에 규칙을 적용하는 것이다.

Azure Policy는 Resource를 스캔하여 고객이 구현한 정책을 따르지 않은 Resource를 식별한다.

 

 

실습 01) 구독과 Azure RBAC 관리하기
1: Management Groups 구현
2: 사용자 지정 RBAC 역할 생성
3: RBAC 역할 할당

Management Groups를 하나 생성하고, Add Scription을 통해 구독을 등록시킨다.

 

구성

 RBAC 역할을 생성하여 Azure Active Directory 사용자에게 할당하며 사용자가 RBAC 역할 정의에 지정된 작업을 수행할 수 있는지 확인해본다.

CustomRoleDefinition을 위한 json 파일
az role definition create --role-definition AZ104/Module02/az104-02a-customRoleDefinition.json

** 이 명령어를 통해 RBAC 역할을 생성한다.


새로운 사용자 생성
role assignment

** 생성한 사용자에게 Support Request Contributor (Custom) 역할을 부여하였다.
(역할 : create and manage Support requests)

** 생성한 사용자 계정으로 로그인한다.

사용자가 모든 리소스 그룹을 볼 수 있다.
그러나 리소스는 확인할 수 없다
Help+support의 new support request 창

** 여기서 사용 중인 구독이 Subscription DropDown 목록에 있으면 사용 중인 계정에 구독 관련 support request를 만드는 데 필요한 권한이 있음을 나타낸다. 
(RBAC 적용이 잘 되었다.)

 

실습 02) 'Infra' Resource만 포함하는 Resource Group(예: Cloud Shell 저장소 계정)에 태그 지정

1: Azure 포털을 통해 태그 생성 및 할당
2: Azure 정책을 통해 강제 태그 지정 
3: Azure 정책을 통해 태그 지정 적용

** 이 작업에서는 Azure Portal을 통해 Azure 리소스 그룹에 태그를 만들고 할당한다.

df 명령어를 통해 Cloud Shell 홈 드라이브 마운트를 지정하는 전체 경로를 확인

** Cloud Shell 창에서 다음을 실행하여 Cloud Shell에서 사용하는 Storage Account의 이름을 식별한다.
※ df 명령어를 입력해도 다음과 같이 보이지 않는다면, Connect-AzureAD cmdlet을 실행한 후, reconnect 해본다.

** Azure Portal에서 해당 Storage Account을 검색하여 선택한다.

해당 storage account 선택
태그 생성

Policy에 들어가서 Require a tag and its value on resources를 Assign 한다.

** 그리고 나서 이제 새로운 Storage Account를 생성한다. 이때, 이름만 작성하고 바로 Create를 시도해본다.

아주 간단하게 이름만 설정하고 Storage Account를 만드려는데, 실패했다.

** 생성하려고 시도한 스토리지 계정에 값이 Infra로 설정된 Role이라는 태그가 없기 때문에 배포에 실패하는 것이다.


** 방금 만든 것을 삭제하고 새롭게 Assign Policy를 생성한다.

누락된 경우 Cloud Shell 리소스 그룹에서 역할 태그 및 해당 인프라 값 상속
Parameters에는 Role 태그를 입력
Remediation에서는 remediation task를 생성하여 만들어준 policy를 적용한다.
** 이렇게 되면 기존 리소스에 대해 정책을 평가하여 규정 비준수로 발견된 최대 500개의 리소스에 업데이트가 적용된다

cloudshell 저장소 계정을 호스팅하는 resource 그룹에서 storage account를 생성한다.
** 이번에도 아까와 똑같이 이름만 입력하고 바로 create를 시도했다. 그러자, 바로 생성이 완료되는 것을 확인했다.

태그가 자동으로 붙으며 리소스 생성이 완료되었다.



 

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

AZ104 (관리자 도구)  (0) 2022.08.08
AZ104 (환경세팅)  (0) 2022.08.08
AZ104 (Azure AD&Accounts)  (0) 2022.08.06
AZ800 (Hybrid File Server)  (0) 2022.08.03
AZ800 (Storage Spaces Direct)  (0) 2022.08.03

https://aka.ms/AZ-104LearningPaths

 

Profile

 

docs.microsoft.com

혼자 공부할 수 있는 곳

Azure Active Directory

- Azure AD는 Microsoft의 다중 tenant 클라우드 기반 디렉터리 및 ID 관리 서비스이다.

- 사내 AD 와 Azure AD의 sync가 가능하다 = 모든 클라우드 웹앱 또는 온-프레미스 웹앱에 대해 SSO 를 사용할 수 있다.

Azure AD Join

  • Azure AD Join의 목표
    - 회사 소유 디바이스의 Windows 배포
    - 모든 Windows 디바이스에서 조직의 앱 및 리소스에 액세스
    - 회사 소유 디바이스의 클라우드 기반 관리
    - 사용자가 Azure AD 또는 동기화된 Active Directory 회사 또는 학교 계정을 사용하여 디바이스에 로그인

 

  • ID, 계정, 테넌트 등 주요 Azure Active Directory 구성 요소
    - Identity(ID) : user (Credential = ID + Password)
    - Account : 연결된 데이터가 있는 ID
    - Azure AD account : Azure AD 또는 Office365에서 만든 ID
    - Azure AD tenant(=directory) : 조직(입주자). 구독 신청 시 자동으로 생성됨. 구독 하나 당 하나의 tenant
    - Azure subscription : Azure 클라우드 서비스 비용을 지불하는데 사용

 

구독을 신청한 담당자 = 관리자

회사 직원들이 Azure 를 신청할 수 있도록 계정을 만들어주는 것임. 

ex) 회사의 모든 직원은 하나의 AD에 들어가 있음. 

→ 회사의 총무가 Azure 가입하여 IT부서, 연구 부서, Sales 부서 등 각 부서마다 다른 구독을 신청(각자 다른 Azure tenant가 생김).

→ 관리자 권한을 위임(부여)하기 위해서 각 부서의 담당자들을 Administrator 그룹에 넣어주면 이제 그 담당자들이 Azure tenant를 관리할 수 있는 것임. 

→ 각 부서의 담당자들은 이제 부여받은 관리자 ID로 로그인 하면 됨. 

 

※ 권한 부여 ※

1) Subscription 에 부여 : 대부분 관리자에게 이 권한을 줌 

2) Resource group 에 부여

3) each user 에 부여

 

※ 구독의 장점 ※ 

ⓐ 소비자 입장

1) 초기 투자 비용이 적다

2) 합리적이다 (쓴만큼만 지불)

3) 해지 가능하다

4) 최신 기능을 사용할 수 있다

 

ⓑ 제공자 입장

1) 안정적이고 예측 가능한 소득 확보


User Accounts

- 모든 user들은 account를 갖고 있어야 함 (portal에 들어가서 작업해야 하므로)

- account는 인증과 인가를 위해 사용된다

 

※ 사용자 계정 유형 

  1. Cloud ID
    : Azure AD에만 존재
    ex) 관리자 계정이나 관리자가 직접 관리하는 사용자
  2. 디렉토리 동기화된 ID
    : 온-프레미스 Active Directory에 존재(Windows AD)
  3. Guest
  4. : Azure 외부에 위치
    ex) 다른 클라우드 공급자의 계정과 Xbox LIVE 계정 등의 Microsoft 계정
    이러한 유형의 계정은 외부 공급업체 또는 계약자가 귀하의 Azure 리소스에 액세스해야 하는 경우에 유용.

※ 사용자 생성

  • 사용자 프로필(사진, 작업, 연락처 정보)은 선택 사항
  • 삭제된 사용자는 30일 내에 복원할 수 있다.
  • 로그인 및 감사 로그 정보를 사용할 수 있다.
  • 대량으로 사용자를 생성하고 삭제할 수도 있다. Azure Portal에서 템플릿을 다운받아 csv 파일에 올바른 형식으로 사용자를 넣어주면 된다.

 

Group Accounts

※ 유형 

  1. Security Group. 보안 그룹
    사용자 그룹의 공유 리소스에 대한 멤버 및 컴퓨터 액세스를 관리하는 데 사용
    ex) 특정 보안 정책을 적용할 보안 그룹
  2. Microsoft 365 Group
    구성원들이 협업을 수행할 수 있도록 공유 사서함, 달력, 파일, SharePoint 사이트 등에 대한 액세스 권한을 제공

※ 할당 유형

  1. Assigned : 특정 사용자를 그룹 구성원에 추가하고 고유 권한을 제공
  2. Dynamic User : 동적으로 구성원 자격 규칙을 적용시켜 자동으로 구성원을 추가&제거
  3. Dynamic Device(보안 그룹에서만 가능) : 동적으로 그룹 자격 규칙을 적용시켜 디바이스를 자동으로 추가&제거

실습) Azure AD 구성하기 

1: Azure AD 사용자 생성 및 구성
2: 할당된 동적 멤버 자격으로 Azure AD 그룹 만들기
3: Azure AD(Active Directory) 테넌트 생성
4: Azure AD 게스트 사용자 관리

사용자(az104-01a-aaduser1) 생성 후, Add assignments

생성한 사용자에게 User administrator 권한을 부여하였다.

az104-01a-aaduser1 계정으로 Azure Active Directory 테넌트에 액세스할 수 있지만 Azure 리소스에 액세스할 수 없다.

 ** 동적 그룹을 구현하려면 Azure AD Premium P1 또는 P2 라이센스가 필요하기 때문에 라이센스를 먼저 발급받는다.
라이센스 발급
새로운 그룹 생성

** 여기서 맨 밑에 Dynamic user members 를 Add 하여 규칙을 통해 구성원을 자동으로 관리할 수 있다.

jobTitle이 Cloud Administrator인 사람만 그룹에 가입할 수 있음
그룹을 생성할 때 Assigned 유형으로 특정 그룹들만 선택하여 또 새로운 그룹을 만들 수 있다.

tenant 생성
이렇게 활동 디렉토리를 바꾸어 다른 tenant를 관리할 수도 있다.(총 관리자일 경우)

** Contoso Lab 디렉토리에 들어가 새로운 사용자를 생성한다.

새로운 tenant에 들어가 사용자 생성

** 다시 기본 디렉토리로 돌아가서 방금 만든 사용자를 Guest로서 invite 한다.

invite
다른 tenant의 사용자에게 현재 디렉토리(기본 디렉토리)의 그룹을 관리하도록 지정할 수도 있다.

 

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

AZ104 (환경세팅)  (0) 2022.08.08
AZ104 (Administer Governance and Compliance)  (0) 2022.08.06
AZ800 (Hybrid File Server)  (0) 2022.08.03
AZ800 (Storage Spaces Direct)  (0) 2022.08.03
AZ800 (File Server & Storage Management)  (0) 2022.08.02

Windows 뿐만 아니라 Linux, Cloud도 Powershell 로 관리할 수 있다 

Linux에 powershell 설치하기

# Register the Microsoft RedHat repository
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo


# Install PowerShell
sudo yum install -y powershell


# Start PowerShell
pwsh
>> powershell 시작

Linux에서 Powershell 설치하여 실행

 

** 패키지가 어디있는지 정보 : repository(unix), provider(powershell)

yum install nginx -y : nginx 설치 (안됨)
yum repolist : repository에 nginx 있는지 확인
yum install epel-release -y : 하면 13000 가량의 repository가 추가되어 nginx 설치됨

Linux의 repository에 해당하는게 Powershell의 Provider
(ps) Get-PackageProvider : 설치된 패키지 확인

Package 관리 

Package : Excel과 같은 프로그램

Module : cmdlet의 집합. 명령어를 사용하는 것
windows powershell의 기본 명령어는 얼마 없기 때문에 모듈을 추가해야 한다.

인터넷에 연결하여 모듈과 패키지 설치로 많은 종류의 cmdlet을 추가하여 사용할 수 있다. 

 

이미지 출처 https://www.red-gate.com/simple-talk/sysadmin/powershell/managing-packages-using-windows-powershell/

 

  • PowerShell v5.0 부터는 다음과 같이 모듈을 추가하면 Online에서 공유하고 있는 Module(cmdlet 집합)과 Package를사용할 수 있다
Import-Module -Name PackageManagement
이제 Find-Package / Install-Package 와 같은 명령어 사용이 가능하다

Import-Module -Name PowerShellGet
이제 Find-Module / Install-Module 와 같은 명령어 사용이 가능하다

 

PackageManagement

  • Linux에서는 yum, apt-get으로 Online에 접속하여 Package를 설치하고 있는데, 이것들과 동일한 개념이 바로PackageManagement이다.
  • 통합 Package 관리 유틸리티로서 PackageOnline에서 검색, 설치, 업데이트 제거한다.

PackageManagement 모듈에 속한 cmdlet 확인하기
이런 식으로 패키지 설치가 가능하다

 

PowerShellGet 모듈에 속한 cmdlet 확인하기
특정 이름의 모듈을 찾는 것과 비슷한 이름의 모듈을 찾는 것도 가능하다

실습) Find-Module로 원하는 모듈을 찾고, Install-Module로 모듈을 설치, Get-Command 로 원하는 함수(기능)을 찾고, 실행하기

** find-command -name get-parameter 등 해당 명령어를 포함하는 모듈을 찾아서 install 할 수도 있다.


특정 명령어를 포함하는 모듈을 찾을 수도 있다.

Find-Module | Where-Object {$_.includes.command -like "get-parameter"}

 

원격으로 다른 컴퓨터에 모듈을 설치할 수도 있다.

원격으로 다른 컴퓨터에 모듈 설치

** FilePath 옵션을 이용해 원격 컴퓨터에서 로컬 컴퓨터의 파일을 실행시킨다.

 

 

'Study' 카테고리의 다른 글

WEB/WAS 취약점 진단 참고 - WebtoB  (1) 2023.10.27
커버로스(Kerberos)  (0) 2023.08.29
Windows Powershell  (0) 2022.08.04
Puzzing 기본  (0) 2021.04.07

+ Recent posts