제공되는 서비스 범위에 따라 아래와 같은 모델로 나뉜다.
- 인프라 영역 = Networking(네트워크망) ~ Virtualization(가상화)
- 플랫폼 영역 = O/S ~ Runtime
- S/W 영역 = Data ~ Applications
* 자료출처 : https://dev.to/cloudtech/iaas-vs-paas-vs-saas-41d2
* 좌측부터: On-premise(온-프라미스) | Iaas(이아스) | Paas(파스) | Saas(사스)
* Middleware: 웹 서버, DBMS, DNS(service-domain 연결) 등
* Runtime: .NET, java, pythone, Node.js 등
* 웹 개발에서는 주로 IaaS(Virtual Machine), PaaS 활용(∵인프라 관리 필요 없이 개발소스만 업로드해서 개발가능)
* SaaS: 로그인만 하면 바로 사용가능한 서비스를 제공하는 형태. 예를 들어 Office365 등.
Asure에서 WIndows VM 사례(IaaS Cloud Model)
App Services (IaaS)
https://learn.microsoft.com/en-us/previous-versions/azure/security/blueprints/pcidss-paaswa-overview
Asure Web 운영에 필요한 Service
- DNS: service-domain 연결. private/public.
- Traffic Manager 기능 포함.
- CDN(Content Delivery Network): 예를 들면 youtube서비스.
- Load Balancer: L4(TCP/IP Level) 부하분산기. <IaaS>
- Application Gateway: L4=TCP/IP, L7=HTTP. WAF(Web Application Firewall) 제공.
- Azure Functions: 이벤트 기반 간단한 동작을 하도록 조각 코드 제공.
- Storage: Queue, Table, Blob, File
부하분산이란..?
Scale Up: 서버 용량을 올리기. 예를 들어 DBMS.
Scale Out: 서버 수를 늘리기. 예를 들어 웹 서버 → 여러 대 서버간 부하분산(Load Balancing) 필요 → L3, L4 Switch
Serverless
- 서버(인프라) 걱정 없이 개발/운영(서비스)에만 집중할 수 있도록 한다는 개념.
- 서버리스 컴퓨팅, 서버리스 아키텍처
- 비용 절감. 유연한 확장성. 종량제(사용할때만 과금)
- FaaS(Functions as a Services): 일반 클라우드 서비스는 부하에 따라 확장되는 방식. 이와 달리 호출될 때마다 인스턴스 기동 및 동작하므로 트래픽 변화에 따라 유연한 동작.
Azure Functions
- 데이터 처리, 시스템 통합, IoT 작업, 간단한 API/마이크로 서비스 빌드 시에 유용한 솔루션.
- 트리거(Trigger) - 입/출력 데이터 바인딩 지원.
▲ https://twitter.com/duward/status/1055616772873879553/photo/1 (Cloud Engineer @duward)
3. Azure Data Platform
▲ https://epictrave.tistory.com/27
- 평가판 체험계정으로 무료 DB생성 따라하기: https://learn.microsoft.com/ko-kr/azure/azure-sql/database/free-sql-db-free-account-how-to-deploy?view=azuresql-db (2023.6.21기준)
- noSQL DBMS: MongoDB, Cassandra(카산드라), Redis, Etcd 등.
- 샘플 데이터 생성 쿼리 다운로드: https://www.sqlservertutorial.net/sql-server-sample-database/
데이터베이스
└ 비관계형 데이터베이스(noSQL)
- noSQL 강점: 유연성과 확장성. 대용량 데이터에 대한 빠른 처리속도.
- noSQL 한계: 복잡한 데이터 트랜잭션이나 높은 수준의 일관성이 필요한 애플리케이션에는 부적합. 관계형 데이터베이스 처럼 표준화 및 잘 정의된 스키마가 없기 때문에 데이터 관리가 더 복잡해질 수 있습니다.
▼noSQL 데이터베이스 4가지 유형 (○참조: https://wikidocs.net/190247)
Document Database | 일반적으로 데이터를 JSON 또는 BSON 형식의 문서로 저장. 스키마가 없다. | 콘텐츠 관리 시스템, 전자 상거래 및 복잡한 데이터 구조가 필요한 기타 응용 프로그램에서 일반적으로 사용 |
Key-Value Database | 데이터는 키-값 쌍으로 저장. 확장성이 뛰어나고 많은 양의 데이터를 빠르게 처리할 수 있다. | 캐싱, 세션 저장소 및 실시간 입찰 시스템에서 사용 |
Column Family Database | Column을 나타내는 Column Key/Data/Timestamp Tuple을 Row를 나타내는 Row Key에 Mapping하여 Data Table을 표현하는 DB. https://ssup2.github.io/theory_analysis/NoSQL_Column-oriented_Column_Family_DB/ (RDBMS와 구조 비교) |
빅 데이터 애플리케이션, 분석 및 콘텐츠 관리 시스템에서 사용 |
Graph Database | 그래프를 구성하는 노드(Node, 엔터티 또는 개체)와 에지(Edge, 엔터티 간의 관계) 형태로 데이터를 저장. | 소셜 네트워크, 추천 엔진 및 엔터티 간의 복잡한 관계에 의존하는 기타 애플리케이션에서 사용 |
애저 데이터 분석 서비스(Azure Data Analysis Service)..?
: Azure 데이터 분석 플랫폼을 활용한 분석 처리 서비스
Azure의 데이터 분석 플랫폼
▼최신 Data warehouse용 Azure 서비스(2023.06)
https://learn.microsoft.com/en-us/azure/?product=analytics
Azure Data Factory |
- 여러 데이터 원본을 정제(노이즈 필터링)해서 필요한 데이터 생성. 데이터를 통합. - 데이터소스→파이프라인(노이즈 필터)→필요데이터 생성 |
|
Azure Data Lake Analytics Azure Data Lake Storage |
Azure Data Lake Analytics: - 빅데이터 분산 분석 서비스 Azure Data Lake Storage: - 데이터 웨어하우스의 레파지토리 - 파일 엑세스 효율을 위해 디렉터리로 구성 - POSIX,RBAC(Role-Based Access Control,역할 기반)접근 권한 지원 - Hadoop 분산 파일 시스템 호환 |
|
Azure Databrics |
- 빅데이터 처리 및 스트리밍 기능을 제공하는 Apache Spark 기반 플랫폼 - 공동작업 간소화 - 파일 엑세스 효율을 위해 디렉터리로 구성 - POSIX,RBAC 접근 권한 지원 - Hadoop 분산 파일 시스템 호환 - Power BI(Business Insight) 연동 |
Apache Spark - 빅데이터 처리를 위한 오픈소스 분산 처리 플랫폼(엔진) - in memory방식으로 초고속 수행. - 주요 기능은 초고속 병렬처리, 데이터 가공/추출, 데이터 분석 전처리 |
HDInsight |
HD:Hadoop의 약자, 하둡 빅데이터 분산 처리 소스를 Azure 클라우드로 포팅. | Hadoop |
Azure Synapse Analytics |
- 빅데이터 쿼리 서비스 - 구성 서비스: Synapse SQL, Synapse Pipelines, Synapse Link, Synapse Studio, Synapse Spark |
구글의 Big query와 유사한 서비스. |
Power BI | 데이터를 Visualize - Dashboard, Report |
▼빅데이터 플랫폼 구성 기능
수집 | →저장 | →처리 | →관리 |
다양한 형태/채널의 데이터 수집/취합 | 가공,추출,분석 전처리 (Apache Spark) |
보안,데이터품질,백업,플랫폼시스템 관리 |
Azure Data Factory 프로세스
▲Azure Data Factory 개념이해: https://learn.microsoft.com/ko-kr/training/modules/data-integration-azure-data-factory/4-explain-process
Power BI
- https://powerbi.microsoft.com/
- 최종 데이터를 대시보드, 레포트 등 시각화하는 도구.
- Power BI Desktop로 작성: *.bpix(데이터포함), *.bpit(템플릿)
IoT(Internet of Things)
- IoT Platform = Device(아두이노,라즈베리파이 등) + Service(Azure IoT Hub) + S/W(결과물로 New Data생성/뷰)
▲ 출처: IoT 플랫폼에 대한 조사: 통신, 보안 및 개인 정보 보호 관점
IoTClient 프로그래밍: Device ↔ Client
Azure Portal에서 IoT Hub 생성 → Device 등록하고 Client에서 데이터 Send/Receive 해보기.
1. Microsoft.Azure.Devices.Client SDK 설치하여 활용
// https://github.com/KoreaEva/IoT/blob/master/Labs/IoT_Hub/3.Device_Programming.md
// Visual Studio > New Project : C#, Console
using Microsoft.Azure.Devices.Client;
// IoT Hub의 Device 연결 준비물: DeviceID, DeviceConnectionString
private const string DeviceConnectionString = "HostName=byhouiothub01.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=XXXXXXXXX";
private const string DeviceID = "device01"; // 등록한 DeviceID
private DeviceClient SensorDevice = new DeviceClient.CreateFromConnectionString(DeviceConnectionString, DeviceID);
// Send to device.
static async Task SendEvent()
{
string json = Newtonsoft.Json.JsonConvert.SerializeObject(데이터모델Obj);
Console.WriteLine(json);
Message eventMessage = new Message(Encoding.UTF8.GetBytes(json));
await SensorDevice.SendEventAsync(eventMessage);
}
// Receive from device.
static async Task ReceiveCommands()
{
Message receivedMessage;
string messageData;
receivedMessage = await SensorDevice.ReceiveAsync(TimeSpan.FromSeconds(1));
if (receivedMessage != null)
{
messageData = Encoding.ASCII.GetString(receivedMessage.GetBytes());
Console.WriteLine("\t{0}> Received message: {1}", DateTime.Now.ToLocalTime(), messageData);
await SensorDevice.CompleteAsync(receivedMessage);
}
}
2. DeviceConnectionString 가져오기: Azure Portal > IoT Hub 상세 > Security settings
└ Shared access policies : Manage shared access policies
▲ https://www.element61.be/en/competence/microsoft-azure-stream-analytics
Azure Cognitive Service
:Azure의 인공지능 서비스, Cognitive(인지,뇌과학,AI) 를 활용한 AI 서비스 개발 연습
(개발언어를 이용하여 Pre-Built AI, Conversational A, Custom AI 등 Azure 플랫폼 이해)
1. REST API 기반으로 제공
2. 여러 OS 및 개발언어 지원(.NET, Java, JavaScript, Python)
3. 이 REST API 기반이므로 웹통신 가능한 언어는 모두 지원
- Pre-Built AI: 많이 사용되는 서비스를 미리 만들어 둠(마치 아파트의 빌트인과 유사)
- Conversational AI(대화형AI): 챗봇, 자연어 처리
- Custom A > Azure Machine Learning: Jupiter Notebook 서비스, 디자인, Auto M/L
Computer Vision:
# OCR(Optical Character Recognition), 이미지 분석(구별Classification,추출Object Detection), 공간분석 등
# 활용예
- OCR 활용: 자동차 번호판 인식
- 추출Object Detection 활용: 자율주행, 교통혼잡도 분석 등.
# 이미지 분석 서비스 조건:
- 지원 포맷/파일크기/이미지사이즈: JPEG, PNG, GIF, BMP / 4MB미만 / 50x50px이상
- Read API에서 이미지크기는 50x50 ~ 10000x10000px
Face(안면인식): 카메라의 웃으면 자동으로 찍히는 기능(Smile: 73%)
Content Moderator: 공격을 받을 수 있거나 위험한 또는 바람직하지 않은 콘텐츠를 걸러냄(예를 들어 19금,폭력성 등)
Emotion: 8가지 지표로 사람의 감정분석. 인권문제로 축소중인 서비스.
설명: https://learn.microsoft.com/ko-kr/azure/cognitive-services/
용어
- OLTP(OnLine Transaction Processing, 온라인 트랜잭션 처리): 온라인 뱅킹, 쇼핑, 주문 입력 또는 텍스트 메시지 전송 등 동시에 발생하는 다수의 트랜잭션을 실행하는 데이터 처리 유형
- OLAP(OnLine Analytical Processing): 데이터 분석하여 목적에 따라 의미있는 정보 생성.
├ OLTP vs OLAP: https://www.oracle.com/kr/database/what-is-oltp/
└ 데이터 워크로드는 OLTP, OLAP로 나눌 수 있다. - ETL(추출(Extract), 변환(Transform), 로드(Load)): 여러 소스의 데이터를 추출, 변환하여 데이터 웨어하우스나 기타 통합 데이터 저장소에 로딩하는 프로세스.
- Stream Analytics Job: IoT Hub 로부터 발생하는 스트림 데이터 처리 서비스.
- 프리딕티브 메인터넌스(Predictive Maintenance, 예지 정비): 머신러닝+IoT서비스를 활용한 예측 서비스. 비행기, 선박, 스타벅스 머신의 데이터를 기반으로 분석하여 고장을 미리 예측.
- confidence: AI 서비스의 정확도 값(0~1)
- Data Mining: 축적된 데이터에서 유용한 정보를 추출하는 과정. 챗봇. Azure QnA Maker 서비스
- xxxxxx
References
# Azure REST API : https://learn.microsoft.com/ko-kr/rest/api/?view=Azure
# Azure Certification Map(2024.03): https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2PjDI
'Cloud' 카테고리의 다른 글
[용어] Cloud (updated: 2024.03) (0) | 2023.07.10 |
---|