Azure VM 성능모니터링 

보기 좋게, 각종 성능 수치에 대해서, 챠트형태로 볼 수 있음.

 

 

 

 

  1. 개요의 메트릭에서는 아래 4 항목만 보임 

메모리는 어디에? => 정답은 아래 4번으로 이동 

 

 

  1. 모니터링 - 메트릭 

여기도 메모리가 없다! 

   

    

   

   

               

 

 

  1. 모니터링 - 인사이트(미리 보기) 

미리보기 상태이지만, 여기에 메모리가 있음. 

그것외에도  상태 /성능 /  3가지가 있음 

상태는 그냥 "리소스상태" 

 

 

 

맵은 아래와 같은 그림을 확인 가능 

프로세스, 포트, 클라이언트 아이피  한눈에   있음. 

 

 

 

  1. 모니터링 - 인사이트 - 성능탭 

메모리 사용량  아니라 디스크 볼륨별로 IOPS 까지 조회가능 

추가로 다른 workbook 보려면 Log Analytics 리소스가 필요하다고   있음. 

 

 

 

 

 

Log Analytics 템플릿 

 

 

 

 

TCP 트래픽 

기본은 24시간만 들고 있음. 

 

 

 

 

 

Security and Audit 누르면 

Malicious Traffic,Overall Traffic, Top VMs (Network Traffic), Top Destinations (Remote IPs)  확인가능 

 

 

 

 

위에서 오른쪽 상단 차트아이콘 클릭  아래와 같이 이동함. 쿼리 가능 




계획된 유지관리작업 외에 VM서버가 관리자가 모르게 리붓 될 수 있는 경우의 수가 있네요. 

Azure의 일종의 자동복구 메커니즘이죠

문제가 길어지는 경우 데이터 유실문제, VM 부팅실패 등 서비스중단에 이를 수 있으니

사전에 자동으로 북구해주는 기술입니다.

 

  1. 물리 호스트서버가 특정시간동안 응답하지않은 경우 

  2. 가상 디스크 연결이 120초 이상 영향을 받을 때?  (연결이 되지 않을때인지 워딩이 좀 애매함) 

  3. 스토리지 IO제한을 지속적으로 초과할 때, VM 일시적으로 종료 될 수 있음 

 

https://docs.microsoft.com/ko-kr/azure/virtual-machines/troubleshooting/understand-vm-reboot 

 

 

호스트 서버 오류 

VM Azure 데이터 센터 내에서 실행되는 실제 서버에서 호스트됩니다. 물리적 서버는 다른 Azure 구성 요소 외에도 호스트 에이전트를 호출하는 에이전트를 실행합니다. 실제 서버에서 이러한 Azure 소프트웨어 구성 요소가 응답하지 않는 경우 모니터링 시스템은 호스트 서버를 재부팅하도록 트리거하여복구를 시도합니다. VM 일반적으로 5 내에 다시 사용할  있게 되고 이전과 동일한 호스트에서 실시간으로 계속됩니다. 

서버 오류는 일반적으로 하드 디스크 또는 반도체 드라이브의 오류와 같은 하드웨어 오류로 인해 발생합니다. Azure 이러한 상황을 지속적으로 모니터링하고 기본 버그를 식별하며 완화가 구현되고 테스트된 후에 공개합니다. 

일부 호스트 서버 오류가 해당 서버에만 발생하기 때문에 VM 다른 호스트 서버에 수동으로 다시 배포하여 반복되는 VM 재부팅 상황을 개선할  있습니다. VM 세부 정보 페이지에서다시 배포옵션을사용하거나 Azure Portal에서 VM 중지하고 다시 시작하여  작업을 트리거할  있습니다. 

 

 

 

Storage 관련 강제 종료 

Azure VM Azure Storage 인프라에서 호스팅되는 운영 체제  데이터 스토리지에 대한 가상 디스크를 사용합니다. VM  연결된 가상 디스크 간의 사용 가능성 또는 연결이 120 이상 영향을 받을 때마다 Azure 플랫폼은 데이터 손상을 방지하기 위해 VM 강제 종료합니다. 저장소 연결이 복원된 후에VM 전원은 자동으로 다시 켜집니다. 

강제 종료 기간은 5 정도로 짧지만 훨씬 길어질  있습니다. 다음은 저장소 관련 강제 종료와 연결된특정 사례  하나입니다. 

 

 

IO 제한 초과 

초당 I/O 작업(IOPS) 볼륨이 디스크의 I/O 제한을 초과하기 때문에 I/O 요청이 지속적으로 제한되는경우 VM 일시적으로 종료될  있습니다. (표준 디스크 저장소는 500IOPS 제한됩니다.)  문제를완화하려면 워크로드에 따라 디스크 스트라이프를 사용하거나 게스트 VM 내에서 저장소 공간을 구성합니다. 자세한 내용은Storage 성능이 최적화되도록 Azure VM 구성 참조하세요. 




'기술(Azure 만...) > [MS]Azure기본' 카테고리의 다른 글

Azure 거버넌스 : 정책  (0) 2019.07.19
Azure 모니터링 기능 심화탐구  (0) 2019.05.30
Azure 스토리지 핸들링 기본  (0) 2019.05.15
ACR Azure Container Registry  (0) 2019.05.09
Azure Storage 일반  (0) 2019.05.04

Dns기반 트래픽 분산 장치 

LB방법 

-단순 우선순위 라우팅 

-가중라우팅 

-성능라우팅(latency time 작은데로 = 응답속도가 가장 빠른 데로 (가까운데로)) 

-지리적라우팅(성능이랑 비슷하지 않을까?  + 법적규제 때문에 해당 나라 리전만 이용해야 할때) 

-다중값라우팅 

-서브넷라우팅 

 

 

 

 

  1. 가중라우팅 

 

 

  1. 성능라우팅 

인터넷대기시간 테이블 이용 

 

 

  1. 지리적라우팅 

중국, 미국, 독일 지역규정준수 서비스에 해당 

 

 

  1. 다중값라우팅 

  2. 서브넷라우팅 

특정 ISP 사용자 차단 특정 IP대역(회사 나가는 IP) 

  1. 우선라우팅 

 

 

 

실습  

트래픽매니저 생성 

az network traffic-manager profile create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --name TM-MusicStream-Priority \ 

    --routing-method Priority \ 

    --unique-dns-name TM-MusicStream-Priority-$RANDOM 

 

 

tm-musicstream-priority-12447.trafficmanager.net 

 

 

테스트웹앱 배포 

SKU S1 부터 TM사용가능 

  1. 동아시아에 APP 배포 

EASTAPP="MusicStore-EastAsia-$RANDOM" 

 

az appservice plan create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --name MusicStore-EastAsia-Plan \ 

    --location eastasia \ 

    --sku S1 

 

az webapp create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --name $EASTAPP \ 

    --plan MusicStore-EastAsia-Plan \ 

    --runtime "node|10.6" \ 

    --deployment-source-url https://github.com/MicrosoftDocs/mslearn-distribute-load-with-traffic-manager 

 

  1. 미국서부에 APP배포 

WESTAPP="MusicStore-WestUS-$RANDOM" 

 

az appservice plan create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --name MusicStore-WestUS-Plan \ 

    --location westus2 \ 

    --sku S1 

 

az webapp create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --name $WESTAPP \ 

    --plan MusicStore-WestUS-Plan \ 

    --runtime "node|10.6" \ 

    --deployment-source-url https://github.com/MicrosoftDocs/mslearn-distribute-load-with-traffic-manager 

 

 

 

TM 엔드포인트 추가 

WestId=$(az webapp show \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --name $WESTAPP \ 

    --query id \ 

    --out tsv) 

 

az network traffic-manager endpoint create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --profile-name TM-MusicStream-Priority \ 

    --name "Primary-WestUS" \ 

    --type azureEndpoints \ 

    --priority 1 \ 

    --target-resource-id $WestId 

 

EastId=$(az webapp show \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --name $EASTAPP \ 

    --query id \ 

    --out tsv) 

 

az network traffic-manager endpoint create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --profile-name TM-MusicStream-Priority \ 

    --name "Failover-EastAsia" \ 

    --type azureEndpoints \ 

    --priority 2 \ 

    --target-resource-id $EastId 

 

 

 

앤드포인트 확인 

az network traffic-manager endpoint list \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --profile-name TM-MusicStream-Priority \ 

    --output table 

 

 

 

Shell 에서 바로 nslookup 확인가능 

서부먼저 

공인아이피 확인 

 

 

트래픽매니저 프로필 가져와서 한번에 확인 

현재 트래픽매니저 프로필은 위의 미국서부와 일치해야됨 

 

Echo http 호출하면 URL 나옴 

 

서부가 열리는  확인 

 

 

서부프로필 diable 처리 

az network traffic-manager endpoint update \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1  \ 

    --name "Primary-WestUS" \ 

    --profile-name TM-MusicStream-Priority \ 

    --type azureEndpoints \ 

    --endpoint-status Disabled 

 

웹페이지 새로고침하면 East Asia 변경됨 

 

 

 

 

추가 실습 

 

성능라우팅 실습 

 

추가 APP 2  생성(미국중부 북유럽) 

CENTRALAPP="MusicStore-CentralUS-$RANDOM" 

 

az appservice plan create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1  \ 

    --name MusicStore-CentralUS-Plan \ 

    --location centralus \ 

    --sku S1 

 

az webapp create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --name $CENTRALAPP \ 

    --plan MusicStore-CentralUS-Plan \ 

    --runtime "node|10.6" \ 

    --deployment-source-url https://github.com/MicrosoftDocs/mslearn-distribute-load-with-traffic-manager 

 

EUROPEAPP="MusicStore-Europe-$RANDOM" 

 

az appservice plan create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1  \ 

    --name MusicStore-Europe-Plan \ 

    --location northeurope \ 

    --sku S1 

 

az webapp create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --name $EUROPEAPP \ 

    --plan MusicStore-Europe-Plan \ 

    --runtime "node|10.6" \ 

    --deployment-source-url https://github.com/MicrosoftDocs/mslearn-distribute-load-with-traffic-manager 

 

 

 

성능라우팅 TM 프로필 생성 

az network traffic-manager profile create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --name TM-MusicStream-Performance \ 

    --routing-method Performance \ 

    --unique-dns-name TM-MusicStream-Performance-$RANDOM \ 

    --output table 

 

 

엔드포인트 4 생성 

 

--미국중부 엔드포인트 

CentralId=$(az webapp show \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --name $CENTRALAPP \ 

    --query id \ 

    --out tsv) 

 

 

az network traffic-manager endpoint create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1  \ 

    --profile-name TM-MusicStream-Performance \ 

    --name "Central-US" \ 

    --type azureEndpoints \ 

    --target-resource-id $CentralId 

 

 

--유럽 엔드포인트 

 

EuropeId=$(az webapp show \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --name $EUROPEAPP \ 

    --query id \ 

    --out tsv) 

 

 

az network traffic-manager endpoint create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1  \ 

    --profile-name TM-MusicStream-Performance \ 

    --name "Europe" \ 

    --type azureEndpoints \ 

    --target-resource-id $EuropeId 

 

 

 

기존에 만들었던 west, east 성능형 엔드포인트 타입으로도 생성 

az network traffic-manager endpoint create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1  \ 

    --profile-name TM-MusicStream-Performance \ 

    --name "West-US" \ 

    --type azureEndpoints \ 

    --target-resource-id $WestId 

 

az network traffic-manager endpoint create \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1  \ 

    --profile-name TM-MusicStream-Performance \ 

    --name "East-Asia" \ 

    --type azureEndpoints \ 

    --target-resource-id $EastId 

 

 

echo http://$(az network traffic-manager profile show \ 

    --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

    --name TM-MusicStream-Performance \ 

    --query dnsConfig.fqdn \ 

    --output tsv) 

 

 

한국에서는 동아시아가 인터넷대기시간이 제일 짧음 

->  PC에서 East Asia 열림 

 

핸드폰에서 네덜란드로 VPN연결  

 

가장 가까운 (응답대기시간이 가장 짧은) 북유럽 webapp으로 연결됨 

 

 

 

 

TM 프로필 도메인 주소를 확인 

nslookup $(az network traffic-manager profile show \ 

        --resource-group b0b6dd09-f9c8-483a-984a-4881149a5dd1 \ 

        --name TM-MusicStream-Performance \ 

        --query dnsConfig.fqdn \ 

        --output tsv) 

 

 

 




Office 365 다중지역 거주자 Office 365 다중 지역 테넌트 구성 

출처: <https://docs.microsoft.com/ko-kr/office365/enterprise/multi-geo-tenant-configuration 

 

 

 

그림출처 : https://practical365.com/blog/multi-geo-office-365/ 

 

 

 

 

다국적기업의 필수 요구조건 

여러 지리적 위치 + 단일 SMTP네임스페이스 + 단일 GAL + 관리용이성, 공유, 공동작업 

(제약사항 일부는 있을듯) 

 

요구 라이선스 

  • Microsoft 365 F1, E1, E3 또는 E5 

  • Office 365 F1, E1, E3 또는 E5 

  • Exchange 온라인 계획 1 또는 계획 2 

  • OneDrive for Business Plan 1 또는 Plan 2  SharePoint 온라인 계획 1 또는 계획 2 

 

라이선스 옵션 

  • 위성 지역의 사용자는 $ 2 / 사용자 / 월 

  • 리소스 사서함 (회의실 / 장비) 및 레거시 사서함에 대한 라이선스가 필요하지 않습니다. 

 

 

Office 365 Multi-Geo를 설명하는 데 사용되는 주요 용어입니다. 

  • 중앙 위치 - 테넌트가 원래 프로비저닝된 지리적 위치 

  • 지역 관리자 - 하나 이상의 지정된 위성 위치를 관리할 수 있는 관리자 

  • 지역 코드 - 주어직 지리적 위치에 대한 세 자리 코드 

  • 지리적 위치 – Exchange 우편함 및 OneDrive 및 SharePoint 사이트를 포함하여 데이터를 호스팅하기 위해 Multi-Geo 테넌트에서 사용할 수있는 지리적 위치 

  • 선호 하는 데이터 위치 (PDL) - 사용자가 Exchange 사서함과 OneDrive를 프로비저닝하는 위치를 나타내는 관리자가 설정한 사용자 속성 또한 PDL은 사용자가 만든 SharePoint 사이트가 프로비저닝되는 위치를 결정합니다. 

  • 위성 위치 - 지리적 인식 Office 365 작업(SharePoint, OneDrive 및 Exchange)이 Multi-Geo 테넌트에서 활성화된 지리적 위치입니다. 

  • 테넌트 – Office 365에서 일반적으로 하나 이상의 도메인에 연결되어 있는 조직을 나타내는 표현입니다(예: contoso.com). 

 

 

 

현재 Multi-Geo 기능은 Office 365 구독을 2,500개 이상 보유한 고객에게 제공됩니다.?? 

 

적용순서 

Office 365 요금제에서 다중 지역 기능_이 필요합니다. 

계정 팀과 협력하여 테넌트에 이 요금제를 추가하십시오 

 

테넌트가 Office 365의 Multi-Geo 기능 요금제로 프로비저닝되면  

OneDrive 및 SharePoint 관리 센터에서 지리적 위치 탭을 사용할 수 있게 됩니다. (아래) 

 

 

 

 

 

AAD Connect 이용 동기화 이후 

클라우드 전용 사용자를 위한 기본 설정 데이터 위치 지정 작업 PDL 기본데이터위치  지정작업 필수 

Set-MsolUser -userprincipalName Robyn.Buckley@Contoso.com -PreferredDatalocation EUR 

 

검색이 멀티에 되도록 구성이 필요 

비즈니스용 OneDrive Multi-Geo 검색 구 

 

 

 

확인필요 

여러 리전의 사용자들의 공유파일은 어디에 저장되는지? 

팀내 구성원이 여러 리전일 경우, 팀의 파일은 어디에 위치하는지? 

 




'Office365' 카테고리의 다른 글

Office365 MFA 설정 화면 2022.04  (0) 2022.05.23
SharePoint 특정확장자 차단  (0) 2021.03.29
Office 365 그룹종류  (0) 2019.06.11

DTU 

DTU 컴퓨팅/스토리지/IO  하나로 묶은 단위 기본, 표준, 프리미엄 3계층 단순한 리소스옵션에 적합 

vCore 

HW세대와 HW특성까지 고려해야 된다면 코어수, 메모리, 스토리지크기 세부 선택이 필요시 범용, 중요비즈니스 2계층 

Elastic pool 

eDTU 사용 

사용량이 급증하는 여러 개의 데이터베이스를 실행중인 경우 적합 평균사용률은 낮지만 갑자기 급증하는 서비스  풀에 충분한 리소스를 할당해놓고, 급증 서비스에 대응 가능 

 

그럼, DTU, vCore 플랜은 

급증  장애가 생길  있음, 그때 그때 사람이 대응해야 되는 거네…. 

Auto scale 개념이 없는거네 

 

 

, DTU 3가지 요소(컴퓨팅, 스토리지 , IO) 시리얼하게 매핑되어 증가됨 

세부적으로 선택하기는 어려움 

 

vCore 방식은 컴퓨팅만 높게 필요하거나,  메모리만 높게 필요하거나,  스토리지 크기만 많이 필요하거나  각각 취사선택이 가능한 모델 

 

 

 

DTU 기반 가격 책정 모델 

vCore 기반 가격 책정 모델 

 

 

 

 

 

DTU, vCore 플랜에는 편법 AutoScale 적용 가능 아래 방법으로

 

출처: <https://blobeater.blog/2018/10/11/auto-scaling-azure-sql-db/ 

 

Auto-Scaling Azure SQL DB

When I was presenting my Azure SQL Database session at DataRelay (used to be SQLRelay) I was asked (over coffee) about auto scaling capabilities. Quite simply there is nothing out of the box to ach…

blobeater.blog

 

 

Azure Logic Apps을 통한 오토스케일링

재발을 트리거 포인트로 설정하면이 워크 플로우를 시작하는 4 주마다 금요일 오후 11시 30 분 아래에 표시됩니다. (이것은 단지 예일 뿐이다) 

기본 워크 플로는 아래와 같습니다. 

트리거 포인트 (첫 번째 단계)가 전달되면 데이터베이스를 S0에서 S3으로 확장하는 코드 한 줄인 첫 번째 저장 프로 시저를 실행합니다. 

1 

2 

 

CREATE PROCEDURE dbo.ScaleUp 

AS 

ALTER DATABASE [FastDB] MODIFY (SERVICE_OBJECTIVE = 'S3'); 

약 30 초 후에 아래 코드를 사용하여 성능 수준을 확인합니다. S3로 이동합니다. 

1 

2 

 

--checking details 

SELECT Edition = DATABASEPROPERTYEX('FastDB', 'Edition'), 

       ServiceObjective = DATABASEPROPERTYEX('FastDB', 'ServiceObjective') 

 

나는 x 시간 동안이 성능 단계를 원한다. 그래서 x를 지연으로 정의한다. 필자의 예제에서 나는 단지 2 분을했지만 시간이 걸릴 수있다. 

그런 다음 지연이 만료되면 로직 애플리케이션은 현재 비용을 절감하고 상위 레벨에 대한 필요성을 없애기 위해 내 스케일 다운 요청을 발행합니다. 

FYI - 축소 코드 : 

 

CREATE PROCEDURE dbo.ScaleDown 

AS 

ALTER DATABASE [FastDB] MODIFY (SERVICE_OBJECTIVE = 'S0'); 

 

--checking details 

SELECT Edition = DATABASEPROPERTYEX('FastDB', 'Edition'), 

       ServiceObjective = DATABASEPROPERTYEX('FastDB', 'ServiceObjective') 

 

 

 

 

 

 




'기술(Azure 만...) > [MS]Azure PaaS' 카테고리의 다른 글

웹앱 스케일링  (0) 2019.09.02
webapp 소스 가져오기, sync 다양한 방법  (0) 2019.08.13
WebJob 일반 and Azure Function일부  (0) 2019.05.07
CosmosDB 실습  (0) 2019.03.29
PaaS WebApp Application Insights  (0) 2019.03.29

크게 3가지 방법

  • Azure CLI
  • AzCopy
  • .NET Storage Client라이브러리

 

 

Azure CLI

기본명령은 동기식

중간에 실패하면 다시 시작해야됨

계층구조 선택 불가

기존 파일 overwrite 안되게 옵션이 있음

-> --if-modified-since는 지정된 날짜 이후로 수정된 경우에만 Blob을 덮어쓰기

 

AzCopy

비동기식

작업 실패 실패지점에서 작업을 다시 시작 가능

대역폭 성능 지정 가능

패턴일치 기능을 통해 계층적 컨테이너 blob파일 선택 가능

기존 수정시간 체크는 못함. Overwrite해버림.

 

 

.NET Storage Client라이브러리

, 일회성은 아님.

관련 애플리케이션을 작성할 있는 라이브러리(개체 메서드 모음)

Blob 메타데이터에 대한 모든 권한 제공

, 수정시간 모두 조회 가능

.net 프레임워크 멀티태스킹 기능도 활용하여 개발가능

비동기식

 

 

실습 Azure CLI

스토리지 어카운트 생성

az storage account create \

  --location ukwest \

  --name myAccount \

  --resource-group myGroup \

  --sku Standard_RAGRS \

  --kind BlobStorage \

  --access-tier Hot

 

컨테이너생성

az storage container create \

  --name myContainer \

  --account-name myAccount \

  --account-key <storage account key>

 

스토리지 계정키 조회

az storage account keys list --account-name myAccount --resource-group myGroup --output table

 

업로드

az storage blob upload \

  --container-name myContainer \

  --name myBlob\

  --file blobdata.dat

 

--if-modified-since는 지정된 날짜 이후로 수정된 경우에만 Blob을 덮어쓰기

 

upload-batch 명령  패턴도 되네

az storage blob upload-batch \

  --destination myContainer \

  --source myFolder \

  --pattern *.bmp

 

 

업로드 끝났는지 리스트 확인

az storage blob list \

  --container-name myContainer \

  --output table

 

 

Azure 저장계정간 이동 *요건 비동기식이라네

az storage blob copy start \

  --destination-container destContainer \

  --destination-blob myBlob \

  --source-account-name mySourceAccount \

  --source-account-key mySourceAccountKey \

  --source-container myContainer \

  --source-blob myBlob

 

계정간 이동 (단체로 패턴지정 이동)

az storage blob copy start-batch \

  --destination-container destContainer \

  --source-account-name mySourceAccount \

  --source-account-key mySourceAccountKey \

  --source-container myContainer \

  --pattern *.dat

 

Blob파일 삭제

az storage blob delete \

  --container sourceContainer \

  --name sourceBlob

여기서도 역시 수정일자 매개변수 지정가능

 

6개월간 수정되지 않은 blob 파일 삭제

date=`date -d "6 months ago" '+%Y-%m-%dT%H:%MZ'`

az storage blob delete-batch \

  --source sourceContainer \

  --if-unmodified-since $date

 

 

CLI실습

 

6개월 이상 blob -> 보관스토리지로 이동

 

azcopy실습

azcopy copy myfile.txt https://myaccount.blob.core.windows.net/mycontainer/

 

azcopy copy myfile.txt https://myaccount.blob.core.windows.net/mycontainer/  ?<sas token>

 

SAS공유액세스토큰

시간제한있음, 특정작업만 허용

 

--recursive=true

폴더계층구조 탐색해라 옵션

azcopy copy myfolder https://myaccount.blob.core.windows.net/mycontainer/? token> --recursive=true

 

 

Job리스트 조회 세부확인

AzCopy jobs list

AzCopy jobs show <id>

 

 

다운로드

azcopy copy https://myaccount.blob.core.windows.net/mycontainer/myblob? token> myblobdata

 

다운로드도   --recursive=true 지정가능

 

스토리지 계정간 복사

azcopy copy https://sourceaccount.blob.core.windows.net/sourcecontainer/*? sas token> https://destaccount.blob.core.windows.net/destcontainer/*? sas token>

 

 

혹은 azcopy sync 명령

 

Blob 확인

./azcopy list https://sourceaccount.blob.core.windows.net/sourcecontainer? token>

 

 

제거,삭제

./azcopy remove https://myaccount.blob.core.windows.net/mycontainer? token> --include "*.txt" --recursive=true

 

 

AZCOPY_CONCURRENCY_VALUE 환경 변수를 설정

기본값 300

데이터 전송에 활용되는 동시 스레드 설정

 

 

개발예제 소스

https://docs.microsoft.com/ko-kr/learn/modules/copy-blobs-from-command-line-and-code/7-move-blobs-using-net-storage-client

 

 




사내 어플리케이션을 Azure Container Registry 도커이미지 형태로 저장한다. 

이미지를 불러와 웹앱을 만들고, 

수정, 배포하는 체계를 갖춘다. 

 

도커의 필요성 : 지속적인 관리 배포, 자동화 

 

Azure 컨테이너 레지스트리 : 개인 도커 레지스트리를 만들  있는 Azure 서비스 

= 도커허브 

 

도커허브보다 장점 

  1. 보안 사용자접근제어 

  2. 이미지 서명으로 보호가능 

  3. 저장  암호화됨 

  4. 엔터프라이즈급 솔루션 지원 

  5. 프리미엄 SKU 500GB 저장공간 지원 

 

--생성 

az acr create --name myregistry --resource-group mygroup --sku standard --admin-enabled true 

 

--빌드 

az acr build --file Dockerfile --registry myregistry --image myimage . 

 

 

 

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

실습 

포털에서 ACR 만들기 

 

 

예제소스 가져오기 

git clone https://github.com/MicrosoftDocs/mslearn-deploy-run-container-app-service.git 

경로이동 

cd mslearn-deploy-run-container-app-service 

 

이미지를 빌드하고 ACR 보낸다. 

마지막 점은 로컬경로를 의미 

az acr build --registry 20190509 --image webimage . 

 

 

 안찍으면 지정해줘야됨,아래와 같이 오류   

 

정상진행  (아래) 

 

기다리기…. 샘플소스 2 조금 걸림 

완료되면 포털 ACR 가서, 리포지토리를 확인 

도커이미지  개가 만들어진  확인 

 

 

이제… 웹앱으로 배포하기 

  1. 웹앱만들기 

게시:도커이미지로 선택 

도커 선택 페이지에서 소스는 ACR  

 

Azure Learn 컨시어지 구독인데 아래와 같이 오류가 . 

해당 모듈 Enable 되어 있음.확인 

 

웹후크를 통한 지속적인 배포 

웹후크는 ACR 하위 서비스 

, 웹앱은 ACR 웹후크를 구독하여, 업데이트에 대한 알림을 받는다. 

알림을 받고, 자동으로 최신 이미지를 가져온다 

 

ACR 하위 작업 기능을 이용하여, 변경될 때마다 자동으로 빌드도 가능 

(빌드를 트리거하도록 "작업" 구성 가능) 

az acr task create --registry <container_registry_name> --name buildwebapp --image webimage --context https://github.com/MicrosoftDocs/mslearn-deploy-run-container-app-service.git --branch master 

 

해당  경로의 APP 모니터링 하고 있는 작업 생성 

변경이 감지될 때마다, 가져와 ACR 도커이미지로 저장 

 

 

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

실습 

 

웹앱에서 컨테이너 설정으로 이동 

지속적인 배포기능 켜기  

도커이미지의 변경을 웹앱에게 알리는 웹후크 생성 

 

 

 




배치작업 WebJob 

Ex) 일일 재고수준 파악  외부 서비스에 보고 

 

Azure function 말고, 웹작업으로 하고 싶은 경우 

그리고 기존 웹서비스에는 영향없이 백그라운드로 돌리고 싶은 경우 

Ex) 고해상도이미지들 -> 썸네일 추출 

특정 DB 프로시져 호출하는 job 가능 

 

모두 지원 

Windows 배치 파일 

PowerShell 스크립트 

Bash 셸 스크립트 

 

업로드 가능 

 

Visual Studio를 사용하여 웹 작업을 컴파일된 콘솔 애플리케이션으로도 가능 

파이썬, node.js 기반 

 

 

크게  종류 

  1. 연속 

  2. 트리거  

Auzre Function Webjob 차이점 

거의 같으나, 

Fuction 

WebJob 

기존 웹소스와 별개로 관리 

기존 웹소스와 하나의 패키지로 관리가능 

 

JobHost 개체의 동작에 대해 더 정교하게 제어할 수 있다 

 

 

VS에서 실습 

콘솔애플리케이션을 만들어, webjob템플릿 사용가능, 기존 웹앱 솔루션에 추가 

각 프로그램, config 설명

 Program.cs 

애플리케이션의 진입점인 Main() Main에서 JobHost개체를 시작하고 구성 

JobHost는 웹 작업이 배포된 후 Azure와 통신하는 개체  

new HostBuilder() 

Functions.cs 

 작업이 실행하는 실제 작업 내용 코딩 

 

settings.json 

cron식으로 일정 기록 

{ "schedule": "0 0 12 * * ?" } 

 

App.config 

DB연결, Azure Storage정보  연결문자열 기록 

 

functions.json 

 

바인딩을 사용하려면 사용 

Direction in / out  

 

 

CRON  

설명 

0 0 12 * * ? 

매일  12시에 실행 

0 15 10 * * ? 

매일 오전 10 15분에 실행 

0 15 10 ? * MON-FRI 

매주 평일 오전 10 15분에 실행 

0 15 10 ? * 6L 

매월 마지막  금요일 10 15분에 실행 

 

APP템플릿 통해서 만들면, 아래와 같은 네임스페이스가 그냥 들어오겠지? 

  • Microsoft.Azure.WebJobs 

  • Microsoft.Azure.WebJobs.Extensions 

 프로그램에서 활용하려면 위와 같은 네임스페이스 추가 

 

예시) 

Azure Storage SDK를 사용하여 설정된 간격으로 스토리지 계정에 큐 메시지를 만듭니다.  

스토리지 계정에서 로그 확인 가능 

단순하게, 특정 메시지(시간기록) Azure Queue 기록 

 

var queue = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageAccount"].ConnectionString) 

    .CreateCloudQueueClient() 

    .GetQueueReference("stockchecks"); 

 

queue.CreateIfNotExists(); 

 

while (true) 

{ 

    var timestamp = DateTimeOffset.UtcNow.ToString("s"); 

 

    var message = new CloudQueueMessage($"Stock check at {timestamp} completed"); 

    queue.AddMessage(message); 

 

    Thread.Sleep(TimeSpan.FromSeconds(30)); 

} 

 

 

Main함수에 아래와 같이 사용 

(기존 무한루프 형식 안써도 ) 

static void Main(string[] args) 

{ 

    var builder = new HostBuilder(); 

    builder.ConfigureWebJobs(b => 

            { 

                b.AddAzureStorageCoreServices(); 

            }); 

    var host = builder.Build(); 

    using (host) 

    { 

        host.Run(); 

    } 

} 

 

 

<바인딩> 

아래   각종 트리거를 바인딩하는 형태 예시 

 트리거 발동  비즈니스 로직 수행하도록 개발 

바인딩을 사용하려면 웹 프로젝트에 functions.json 기록 Direction in/out  있음  

Azure 큐에 메시지가 들어올때 

public static void ProcessQueueMessage([QueueTrigger("queue")] string message, ILogger logger) 

{ 

    logger.LogInformation(message); 

} 

Azure Storage 신규 blob파일이 추가될때 

[FunctionName("BlobTriggerCSharp")] 

public static void Run([BlobTrigger("watchescontainer/{name}")] Stream watchInstructions, string name, ILogger log) 

{ 

    log.LogInformation($"A new blob was added.\n Name:{name} \n Size: {watchInstructions.Length}"); 

} 

 

Azure CosmosDB 신규 데이터가 들어올  특정 database, 컬력션명 지정 

[FunctionName("CosmosTrigger")] 

public static void Run([CosmosDBTrigger( 

    databaseName: "ToDoItems", 

    collectionName: "Items", 

    ConnectionStringSetting = "CosmosDBConnection", 

    LeaseCollectionName = "leases", 

    CreateLeaseCollectionIfNotExists = true)]IReadOnlyList<Document> documents, 

    TraceWriter log) 

{ 

    if (documents != null && documents.Count > 0) 

    { 

        log.Info($"Documents modified: {documents.Count}"); 

        log.Info($"First document Id: {documents[0].Id}"); 

    } 

} 

 

 

추가 예시 

기존 ProcessQueueMessage 메서드를 아래와 같이 바꿔서 사용가능 

 

public static void ConfirmStockCheck([QueueTrigger("stockchecks")] string message, [Blob("confirmations/{id}")] out string output) 

{ 

    var timestamp = message.Split()[3]; 

    output = $"{timestamp} stock check successfully processed"; 

} 

 

stockchecks 큐의 메시지를 처리하고 해당 메시지를 사용하여 confirmations 컨테이너에 BLOB을 만듭니다. 웹 작업 SDK는 stockchecks 큐의 모든 메시지에 대해 이 함수를 한 번 호출하며, message 매개 변수는 메시지 내용을 포함합니다. output의 값은 confirmations 컨테이너의 새 BLOB에 자동으로 기록됩니다. 새 BLOB의 이름은 함수를 트리거한 큐에서 수신된 메시지의 메시지 ID입니다. 

 

 




'기술(Azure 만...) > [MS]Azure PaaS' 카테고리의 다른 글

웹앱 스케일링  (0) 2019.09.02
webapp 소스 가져오기, sync 다양한 방법  (0) 2019.08.13
Azure SQL databse , 스케일링  (0) 2019.05.15
CosmosDB 실습  (0) 2019.03.29
PaaS WebApp Application Insights  (0) 2019.03.29

Azure 에서 데이터를 저장하는 여러가지 방법 

 

 

Blob, Files, , 테이블 === 하나의 스토리지계정으로 그룹화가능 

논리적인 컨테이너 개념 

 

Azue SQL, cosomosdb 등은 별도의 독립된 리소스로 관리됨 

 

구조적데이터 

Azure SQL databse 

반구조적데이터 

Azure CosmosDB, Azure Tables, Azure Queue 

비구조적 데이터 

Blob Storage 

 

 

 

 

스토리지에 매핑되는 개념들 

구독 

자기구독 

위치 

데이터센터 위치, 저장되는 위치 

성능 

표준, 프리미엄(SSD) 

복제 

LRS, GRS,  

액세스 계층 

,  

보안전송여부 

HTTP, HTTPS 

가상네트워크 

가상네트워크 지정 가능 

계정종류 

범용V2, 범용V1, Blob 스토리지 

 

 

, 중요한 데이터여부에 따라 스토리지계정을 분리해야됨. 

복제옵션 등을 다르게 설정해줘야되기 때문 

 

성능요구사항에 따라도 스토리지 계정 분리 

표준, 프리미엄 

 

그리고 비용의 최소화를 위해서 나눠야 . 

이것도 복제옵션, 액세스계층 

 

 

계정종류 

V1 옛날거네..., 왠만하면 V2 최신으로...선택 

StorageV2(범용 v2) 

 모든 스토리지 형식  모든 최신 기능을 지원하는 현재 제품입니다. 

스토리지(범용 v1):  

모든 스토리지 형식을 지원하는 레거시 종류이지만 모든 기능을 지원하지 않을  있습니다 

Blob 스토리지 

블록 Blob  추가 Blob만을 허용하는 레거시 종류 

 




Azure에서는 NSG를 기준으로 해서 트래픽분석이 가능하다.

flow 로그는 한국남부도 수집이 되지만, Traffic Analytics 는 남부는 지원되지 않는다.

 

그럼, flow 로그만으로도, 제공되는 파워BI 템플릿을 통해 아래와 같은 그림 정도는 확인가능하다.

템플릿 다운로드 및 설명 경로 : https://docs.microsoft.com/ko-kr/azure/network-watcher/network-watcher-visualize-nsg-flow-logs-power-bi

먼저 원되는 지역

지원되는 다음 지역 중 하나에서 NSG용 트래픽 분석을 사용할 수 있습니다.

  • 캐나다 중부

  • 미국 중서부

  • 미국 동부

  • 미국 동부 2

  • 미국 중북부

  • 미국 중남부

  • 미국 중부

  • 미국 서부

  • 미국 서부 2

  • 프랑스 중부

  • 서유럽

  • 유럽 북부

  • 브라질 남부

  • 영국 서부

  • 영국 남부

  • 오스트레일리아 동부

  • 오스트레일리아 남동부

  • 동아시아

  • 동남아시아

  • 한국 중부
  • 중앙 인도

  • 인도 남부

  • 일본 동부

  • 일본 서부

  • US Gov 버지니아

Log Analytics 작업 영역이 다음 지역에 있어야 합니다.

  • 캐나다 중부

  • 미국 중서부

  • 미국 서부 2

  • 미국 동부

  • 프랑스 중부

  • 서유럽

  • 영국 남부

  • 오스트레일리아 남동부

  • 동남아시아

  • 한국 중부

  • 중앙 인도

  • 일본 동부

  • US Gov 버지니아

 

한국남부 리전은 Flow logs 까지만 설정 가능함 -> 파워BI 분석 

( 이상함, 모든 데이터가 없는  같음) 

 

밑에 Traffic Analytics status 한국남부리전 지원하지 않음 

저장하려고 하면, 해당 리전 not support라고 나옴. 

 

Traffic Analytics를 통해서는 아래와 같은 것들을 볼수있다.

트래픽 핫스폿 찾기 

지리별로 트래픽 분포 시각화 

가상 네트워크별로 트래픽 분포 시각화

인터넷에서 트래픽을 수신하는 포트  가상 머신 보기 

NSG/NSG 규칙 적중의 추세 시각화 




'기술(Azure 만...) > [MS]Azure기본' 카테고리의 다른 글

ACR Azure Container Registry  (0) 2019.05.09
Azure Storage 일반  (0) 2019.05.04
SSVM 기본이미지, 기본VM은 어떻게  (0) 2019.04.30
SSVM (Azure Scaleset VM)  (0) 2019.04.30
Azure 보안 설계 기본  (0) 2019.04.05

+ Recent posts