* 본 내용은 Azure Fundamentals 및 Azure Security Engineer Associate 인증 취득을 위해 공부한 내용입니다. 이후 공부한 내용도 점차 추가할 예정입니다.
<클라우드 및 Azure 개념>
[클라우드 컴퓨팅]
- 인터넷을 통해 컴퓨팅 서비스 제공
- 사용한 만큼만 비용을 지불(온디맨드)
- 사용자가 물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하지 않음
- 클라우드 공급자로부터 필요에 따라 서버, 스토리지, 데이터베이스와 같은 기술 서비스에 액세스
[클라우드 컴퓨팅의 이점]
- 초기 선투자 비용 없음(고정비용을 가변비용으로 대체)
- 운영 비용 절감(온디맨드)
- 탄력적인 운영 및 확장(필요 용량 예측 불필요)
- 속도 및 민첩성
- 비지니스에만 집중 가능(불필요한 인프라 관리 업무 제거)
- 글로벌 확장
[비용]
- CapEx(투자비용) : 구매 비용, 선 결제 비용
- OpEx(운영비용) : 사용한 만큼 지불, 클라우드 종량제
- Azure 에서는 CapEx와 OpEx 두 가지 모두 제공한다.
[클라우드 배포 유형]
- Public Cloud : 누구에게나 공용 인터넷을 통해 서비스 제공, Azure · AWS 등과 같은 서비스 제공자 있음, 클라우드 서비스 공급자가 데이터센터 등의 시스템 유지관리 담당, 관리비용 낮음
- Private Cloud : 개별 기업이 독점적으로 사용, 클라우드 인프라가 온프레미스 데이터센터에 있음, 개별 기업이 시스템 유지관리 담당, 관리비용 높음
- Hybrid Cloud : 퍼블릭 클라우드와 프라이빗 클라우드를 네트워크로 연결하여 같이 사용
- Public 클라우드의 특징으로는 측정 가격 책정(온디멘드), 셀프 서비스 관리가 있다. 저장공간의 제한이 없으며 연결은 보안적으로 안전한다. 전용 하드웨어는 없고 기본 하드웨어가 공유된다.
- Public cloud는 여러 기업이 각각 클라우드 리소스의 일부를 사용하는 공유 엔터티이다.
- 온프레미스 클라우드에서 Public 클라우드로 이주할 때 주요 변경 사항 중 하나는 CapEx(하드웨어 구매 등)에서 OpEx(운영 비용)으로 전환하는 것이다. 따라서 operational(운영)을 가장 먼저 식별해야 한다.
[클라우드 컴퓨팅 모델]
- 온프레미스 : 모든 것을 사용자가 직접 관리
- IaaS : 서버 등의 물리적인 부분은 공급자가 관리, 사용자는 운영체제, 스토리지, 애플리케이션 관리, ex) Azure Virtual Machine
- PaaS : 물리적인 부분, OS 등 공급자가 모든 플랫폼 관리, 사용자는 데이터와 애플리케이션만 관리, 애플리케이션 개발에 집중 가능, 많은 Azure 서비스가 PaaS에 속함, ex) Azure App Service, Azure Logic App, Database(Azure SQL, Cosmos DB 등)
- SaaS : 모든 부분을 공급자가 관리, 사용자는 데이터를 만드는 등의 서비스를 사용하기만 하면 됨, ex) MS Office365, Google Gmail 등
- IaaS는 인프라를 관리하고 사용자는 자체 소프트웨어를 구매, 설치, 구성 및 관리
- 자체 앱을 실행하려는 경우 IaaS 해당
- PaaS는 물리적인 부분과 os까지 서비스 제공자가 맡기 때문에 사용자는 OS에 대한 제어 기능을 가질 수 없다.
- PaaS 에서는 자동 크기 조정이 있다. 이는 플랫폼을 자동으로 확장하는 기능을 제공한다. 이는 부하 분산 vm 추가하는 것을 의미한다.
- PaaS는 앱 개발하거나 구축할 수 있는 프레임워크 제공한다.
- SaaS는 사용자가 SaaS solution을 구성하여야 하며 소프트웨어만 사용한다. 다른 모든 것은 클라우드 서비스 제공자가 관리한다. 즉, 고가용성 여부, 확장성 정책, SaaS 설치 등은 전부 서비스 제공자의 역할이다.
- SaaS에 해당하는 서비스 : Azure logic app 등
- PaaS에 해당하는 서비스 : Azure App Service, Azure SQL databases 등
- IaaS에 해당하는 서비스 : VM, Disk storage, networking 등
- SaaS : SaaS 애플리케이션이 클라우드 서버에 올라온 상태에서 호스팅 서비스 형태로 제공, 구축된 서비스를 임대한다는 개념
- PaaS : 자체 애플리케이션 구축하는 데 필요한 것(인프라, OS 등)에 비용을 지불하는 서비스 형태로 제공
- IaaS : 클라우드 제공 업체로부터 필요한 서버와 저장소를 임대, 클라우드 인프라로 자체 애플리케이션을 직접 구축하고 개발해야 함
[Azure 글로벌 인프라]
- 데이터센터(Data Center) : 서버, 네트워크, 스토리지 등 IT 인프라가 설치된 대규모 시설
- Region : 고속 네트워크를 통해 연결된 하나 이상의 데이터센터 집합
- 가용성 영역(Availability Zone) : 리전 내 물리적으로 분리된 데이터센터, 가용성 영역은 하나 이상의 데이터센터로 구성, 하나의 데이터센터에 문제 발생 시 다른 가용성 영역의 데이터센터에서 서비스 지속가능
- 지리(Geogrephy) : 하나 이상의 리전이 포함된 지리적 영역, 일반적으로 국가 단위로 분할
[Azure 리소스 구조]
- 관리그룹 > 구독 > 리소스 그룹 > 리소스 형태의 구조
- 리소스 : VM, 스토리지 계정, 앱 서비스, DB 등 사용자가 만든 서비스의 개별 인스턴스
- 리소스 그룹 : 개별 리소스가 모여 있는 그룹, 간편하게 관리하기 위한 목적, 모든 리소스는 반드시 하나의 리소스 그룹에 속해야 함, 하나의 리소스는 하나의 리소스 그룹에만 속할 수 있음, 특정 리소스 그룹에서 다른 그룹으로 리소스 이동 가능, 리소스 그룹이 다른 그룹에 속할 수 없음, 리소스 그룹 삭제하면 그 안의 리소스도 삭제됨
- 구독 : 리소스의 논리적 컨테이너, 리소스 그룹과 리소르를 그룹화하는 단위, Azure 계정에 연결된 Azure 서비스 단위, 하나의 계정은 여러 개의 구독 가질 수 있음, 개별 구독별로 비용 청구 분리 가능, 정책 분리 가능
- 관리그룹 : 여러 구독에 대한 관리를 하는 그룹, 필수가 아님
- 구독은 통합 불가하며, 구독은 한명의 계정관리자 가능, 여러 관리자 포함 가능
- 태그를 사용하여 비용 리포트 분할 가능
- 리소스 그룹의 태그는 리소스에 상속되지 않음
[Azure 서비스 연결 도구]
- Azure Portal : 웹 브라우저를 통한 접속, 디바이스 관계없이 가능
- Azure PowerShell : PowerShell 프로그램을 통한 접속, 파워쉘 스크립트 언어 사용, 윈도우, MacOS, Linux에서 파워쉘 프로그램 설치하면 모두 사용 가능
- Azure CLI : CLI를 통한 접속, 윈도우, MacOS, Linux에서 Azure CLI 설치하면 모두 사용 가능
- Azure CloudShell : 웹 브라우저를 통한 접속, 포털에서 클라우드쉘 실행, Bash 또는 PowerShell 언어 선택 가능, 디바이스 관계 없이 가능
- Azure SDKs : 프로그래밍 코드를 통한 접속, 애플리케이션 개발시 사용, 다양한 언어 지원
- Azure Mobile App : 모바일 앱을 설치하여 접속
[Azure CLI]
- CLI 명령어를 통해 리소스 관리
- CLI 도구
1) 윈도우 cmd, MAC, Linux의 Terminal에 Azure CLI 모듈 설치
2) Azure 포털의 CloudShell Bash 사용
- 명령어 구조 : az 리소스 동사
- 리소스 그룹 생성 :
az group create --name CLI-RG --location "korea central"
- VM 생성 :
az vm create \
--resource-group CLI-RG \
--name CLI-VM \
--image UbuntuLTS \
--admin-username [VM아이디] \
--admin-password [VM비밀번호]
- VM 리스트 보기 :
az vm list -> 이러면 너무 보기 힘드므로
az vm list --output table
- 리소스 그룹 삭제 :
az group delete --name CLI-RG
※ CLI에서 줄바꿀려면 역슬래시(\) 사용
* Cloud Shell 명령어
- az 리소스 동사
- 리소스 그룹 생성 : az group create --name [리소스그룹명] --location "korea central"
- vNET 생성 : az network create --name [vNET명] --resource-group [리소스그룹명] --subnet-name [서브넷이름]
- VM 생성 : az vm create \
--resource-group CLI-RG \
--name CLI-VM \
--image UbuntuLTS \
--admin-username [VM아이디] \
--admin-password [VM비밀번호]
[Azure PowerShell]
- 도구 : PowerShell에서 모듈 설치 또는 CloudShell 사용
- 명령어 구조 : 동사-리소스
[시스템 아키텍쳐]
- 확장성(Scalability)
1) 수직적 확장 : 자원을 추가하는 방식, ex) VM Size를 변경하는 것
2) 수평적 확장 : 노드를 추가하는 방식(탄력성), ex) VM 개수를 늘리는 것, 애플리케이션의 확장 방법으로 주로 사용
- 고 가용성(High Availability) : 지속적으로 정상 운영이 가능한 상태, 이중화
- 재해복구(Disaster Recovery) : 정전, 자연재해 등으로 한 지역의 시스템이 중단되는 경우 다른 지역으로 장애 조치하여 데이터 손실이나 서비스 중단을 방지, ex) 백업
[Azure VM 개요]
- Image : OS와 기본적인 애플리케이션을 미리 구성해놓은 파일 또는 디스크, 이미지를 사용하면 서버를 빠르게 시작 및 구성할 수 있음, 유형으로는 Custom Image와 Marketplace Image가 있음
- Size : CPU 성능, 메모리, 스토리지별 다양한 유형의 사이즈 선택 가능
- Disks : 스토리지 옵션, 성능에 따라 Ultra, SSD, HDD 제공, 디스크 스토리지 중복 옵션 제공(LRS, ZRS)
- 구매 옵션
1) 종량제 : 사용한 만큼 초당 과금
2) 예약 인스턴스(Azure Reserved Virtual Machine Instance (RI)) : 1년 또는 3년 약정을 통해 비용 절감
3) 스폿 가상머신 : Azure에서 현재 사용하지 않는 자원을 할인받아 이용, Azure에서 필요에 따라 언제든지 종료할 수 있음, 배치 작업이나 개발 등 언제든지 종료 가능한 워크로드에 적합
4) 전용 호스트 : Azure 전용 물리적 서버 서비스, 다른 사용자와 물리적인 서버를 공유하지 않음
[Azure VM 생성]
- 리소스 그룹 생성
- Azure 가상머신 생성
1) 리소스 그룹 선택, 가상머신 이름, 지역, 가용성 옵션 등 선택
2) 네트워킹에서 인바운드 포트 선택, ex) HTTP, SSH 등
3) 배포 완료되면 리소스 그룹에서 확인 가능
- 가상머신 내 웹서버 생성
1) Azure CloudShell 사용
2) ssh VM아이디@공용IP주소 입력
3) 웹서버 생성하기 위하여 sudo su로 권한 상승
4) apt install apache2 입력
5) 공용 IP 주소를 브라우저로 들어가서 웹서버 생성 확인
6) cd /var/www/html 입력하여 cat index.html 입력
7) echo "Hello Azure" > index.html 입력하여 웹서버 내용 변경
[가용성 옵션]
- 가용성 : 시스템이 장애없이 정상적으로 운영되는 능력
- 가용성 영역 : Azure Region 내에서의 물리적인 별도 영역
- 가용성 집합 : VM의 논리적인 집합
1) 장애 도메인 : 전원 및 네트워크 스위치를 공유하는 서버 랙
2) 업데이트 도메인 : 동시에 유지관리를 진행하거나 재부팅될 수 있는 그룹
[VMSS]
- 가상 머신 확장 집합(Virtual Machine Scale Sets)
- VM 인스턴스를 자동(서버 로드 증감에 따라)으로 확장 또는 축소하는 기능
- 일정 기반 또는 메트릭 기반으로 자동 Size 조정 가능
[ARM]
- Azure Resource Manager
- Azure 리소스를 관리하고 구성하는 인터페이스
- ARM Template : 리소스 배포를 위해 리소스에 대한 구성값이 정의된 템플릿, 재사용 가능하여 수동작업 줄일 수 있음, JSON 포맷형식
[Azure AD]
- Azure Active Directory 에서 확인 가능
- Azure 계정을 생성하면 기본 디렉터리라는 Azure AD 생성됨
- 클라우드 기반 ID 및 엑세스 관리 서비스
- 리소스 또는 앱에 대한 인증 기능(Azure와 MS365를 위한 인증서비스 제공)
- 그룹 및 사용자 계정 생성, 관리, 엑세스 권한 부여 기능(클라우드 리소스 엑세스 권한은 Azure Active Directory의 계정이 있는 모든 사용자에게 부여할 수 있다.)
- MFA 엑세스 기능
- 하나의 Azure AD 인스턴스를 테넌트(tenant)라고 함
- 테넌트에는 사용자계정, 그룹, 앱, 디바이스 등이 포함됨(테넌트에는 여러 구독이있을 수 있지만 Azure 구독은 하나의 Azure AD 테넌트에만 연결 가능)
- 온프레미스 AD와 동기화하여 하이브리드 AD 환경 구성 가능
- 기능
1) User, Group, Role
2) 조건부 엑세스(Conditional Access) : 특정 조건에 따라 엑세스 다르게 하는 기능(회사 외부 네트워크에서 엑세스하는 경우에는 MFA 사용)
3) Azure AD Identity Protection : 애플리케이션을 ID 위험으로부터 자동 보호하는 기능, 조직의 사용자에게 로그인 시 MFA 등록하도록 요구하는 기능 적용 가능
※ 인증(Authentication) : 사용자의 신원을 검증하는 행위(비밀번호 등)
※ 인가(Authorization) : 사용자에게 특정 리소스 엑세스할 수 있는 권한을 부여하는 프로세스(엑세스 수준 확인)
- Azure AD Identity Protection : 다음과 같은 위험 식별
1) Anonymous IP address use(익명 IP 주소 사용)
2) Atypical travel (비정형 여행)
3) Malware linked IP address(멀웨어)
4) Unfamiliar sign-in properties(익숙하지 않은 로그인)
5) Leaked credentials(유출된 자격 증명)
6) Password spray(패스워트 스프레이)
- Azure AD Privileged Identity Management : 시간 기반 및 승인 기반 역할 활성화를 제공하여 관심 있는 리소스에 대한 과도하거나 불필요하거나 오용된 액세스 권한의 위험을 완화
- 윈도우 10 디바이스만 지원(조인)
- 다이나믹 멤버 규칙 지원
[RBAC]
- 역할 기반 접근 제어(Role-Based Access Control)
- 구독에서 엑세스 제어(IAM) 탭에서 역할 할당 가능
- 역할 : Owner(소유자), Contributor(기여자, 모든 권한 가지지만 권한 부여는 불가), Reader(독자)
- An Azure role 이 해당 서비스 기능
<Azure 네트워크 및 보안>
[네트워크 기본]
- CIDR(사이더, Classless Inter-Domain Routing)
1) IP 주소 범위를 정의하는 방식
2) ex 192.168.32.1/24에서 192.168.32.1은 기준 IP, /24는 서브넷 마스크
3) https://www.subnet-calculator.com/cidr.php
- Public IP
1) 인터넷에서 사용하는 공인 IP
- Private IP
1) 개인이나 기업의 내부망에서 사용하는 IP
2) 사용대역 : 10.10.0.0/8, 172.16.0.0/12, 192.168.0.0/16
[Azure Virtual Network]
- vNET을 만들 때는 CIDR 방식으로 IP 주소 범위 정의
- vNET은 Private 네트워크이므로 Private IP 대역을 사용
- 기본적으로 같은 서브넷 IP 끼리만 통신 가능
- 다른 서브넷과는 라우팅 설정해줘야 통신 가능
- Azure에서 vNET 생성할 때 기본적으로 인터넷(0.0.0.0/0)과 생성된 vNET 공간 주소끼리 라우팅 지정되어 있음
- 네트워크 인터페이스에서 유효 경로 : 라우팅 테이블, 이 테이블이 있기 때문에 여기 기재된 주소들은 통신 가능
[NIC]
- Network Interface(네트워크 인터페이스)
- VM과 가상 네트워크 간의 상호 연결하는 리소스
- VM에는 하나 이상의 NIC가 있어야 함
- VM에 연결된 NIC는 변경되지 않는 MAC 주소 할당됨
- 공용 IP 주소(선택), 개인 IP 주소(필수) 할당됨
[NSG]
- Network Security Group(네트워크 보안 그룹)
- 가상 방화벽 서비스
- 인바운드와 아웃바운드 트래픽을 제어(IP 주소, 포트, 프로토콜에 따라 필터링)
- vNET의 서브넷, NIC 또는 둘 모두에 대한 네트워크 트래픽 통제
- NSG를 서브넷에 연결하는 경우, ACL 규칙이 해당 서브넷의 모든 VM에 적용
- NSG를 NIC에 연결하는 경우, 개별 NIC에 대해 제한
- 트래픽 제어 실습
1) 네트워크 보안 그룹 생성
2) 네트워크 인터페이스 탭 또는 서브넷 탭에서 가상머신의 NIC 또는 서브넷 연결
3) 인바운드 보안규칙 및 아웃바운드 보안규칙 추가
[Azure Bastion]
- 공용 IP를 노출하지 않고 가상 네트워크의 VM에 안전하고 원활하게 RDP 및 SSH 제공(RDP/SSH 포트가 외부에 노출되지 않음)
- PaaS 서비스에 해당
- TLS를 통해 Azure Portal에서 직접 VM에 암호화 통신
- VM 생성 시 공용 IP 만들지 않고, '베스천' 탭에서 배포 가능
[ASG]
- 애플리케이션 보안 그룹
- 해당 그룹에 따라 네트워크 보안 정책을 정의
- 명시적 IP 주소를 수동으로 유지 관리하지 않고 대규모 보안 정책을 재사용(VM의 갯수가 많이 변경될 경우에 유용)
- NSG -> ASG -> VM1, VM2 등
[Azure DDoS Protection]
- DDoS 공격으로부터 보호하는 서비스
- 기본과 표준(비쌈)으로 나뉨
- DDoS 보호 계획에서 생성 가능
- OSI Layer 3, 4에 적용(네트워크 계층)
- Azure WAF를 통해 Layer 7(응용 계층) 적용 가능
- 웹사이트 공격으로부터 보호, 모든 공격 시도에 대한 상세 내용 포함된 보고서 작성 기능 있음
- 경계 계층에 해당(perimeter layer)
- 기본과 표준(비쌈)으로 나뉨
- DDoS 보호 계획에서 생성 가능
[Azure Firewall]
- vNET 리소스를 보호하는 방화벽 서비스
- 네트워크의 인바운드, 아웃바운드 트래픽을 제어
- FW는 여러 구독, 여러 VM에 방화벽 적용하여 중앙에서 관리 가능
- 이와 유사한 기능인 NSG는 개별 VM 또는 서브넷 레벨에서 적용하는 방화벽
- 함정 주의!!!) NSG는 개별에 적용되므로 다수의 가상머신 제한할 수 없음, 이건 FW가 함
[Firewall Manager]
- 현재 방화벽, DDoS 등에 의해 보호되고 있는 범위 확인 가능
[Peering]
- vNET 간의 직접 연결
- 1:1 연결 방식
- 네트워크 주소가 겹치지 않아야 연결 가능
- 피어링 연결 방법
1) 가상 네트워크 들어가서 피어링 탭에서 추가
2) 해당 가상머신에서 피어링된 가상머신 연결 가능
[VPN]
- 프라이빗 네트워크 가상 사설망
- 암호화된 터널을 사용하여 보안 연결
- 기존에 설치된 인터넷 망을 활용
- 라우팅 방법으로는 정책기반과 경로기반이 있음
- ExpressRoute : 전용선을 사용하는 보안 연결(VPN보다 안정적)
[Private Endpoint]
- PaaS Azure 서비스는 Public Endpoint로 통신
- 인터넷을 통하기에 보안 취약함
- Private Endpoint는 Private IP를 사용하는 네트워크 인터페이스
[Load Balancer]
- 네트워크 트래픽을 분산해주는 서비스
- 목적 : 트래픽 분산, 장애 조치
- Public LB : 외부에서 로드밸런싱 역할해주는 것
- Private LB : 내부에서 로드밸런싱 역할해주는 것
- 백엔드 풀(Backend Pool) : 리소스 모음(개별 vm 등)
- 상태 프로브(Health Probe) : 백엔드 풀의 리소스 상태 모니터링
- 부하 분산 규칙(Load Balancer Rules) : 트래픽 분산 규칙 설정
- Front End IP : 로드밸런서에 접속하는 IP 주소
- 로드밸런싱 실습
1) Azure의 부하 분산에서 LB 만들기
2) 백엔드 풀에 리소스 연결
3) 인바운드 규칙 등 설정하고 생성
[Azure DNS]
- Domain Name System 서비스
- 도메인 이름을 IP 주소로 변환해주는 기능
- Azure DNS의 주요 레코드 유형
1) A(Address Mapping Records) : 도메인이름을 IPv4주소로 라우팅
2) CNAME(Canonical NAME) : 도메인이름을 도메인이름으로 라우팅
3) MX(Mail eXchanger) : 메일서버 연동 시 도메인 소유자 확인
4) TXT(Text record) : 텍스트 문자열을 도메인이름과 연결하여 도메인 소유자 확인
5) SOA(Start Of Authority) : 도메인의 정보와 권한 기록
6) NS(Name Server) : 도메인의 네임서버 정보 기록
- Azure 실습
1) App Service 도메인에서 도메인 구매
2) 해당 도메인 들어가서 속성 살펴보며 레코드 추가 가능
[Key Vault]
- 기능 : 비밀 관리(토큰, 암호, 인증서, API 키 등 엑세스 관리), 키 관리, 인증서 관리
- Encryption solution
<Azure 서비스>
[Azure Container]
- 컨테이너는 애플리케이션을 구동하는 환경을 격리한 공간을 의미, 빠른 실행 가능
- 즉, 운영체제를 제외하고 애플리케이션 실행에 필요한 모든 파일만을 패키징한 형태
- 컨테이너 사이트 : docker, kubernetes
- Azure Container Instance(ACI) : 개별 컨테이너를 생성하는 서비스, 간단한 앱 및 작업 자동화에 사용
- Azure Kubernetes Service(AKS) : 컨테이너 오케스트레이션 서비스, Kubernetes 클러스터를 배포
- Azure Service Fabric : 컨테이너 오케스트레이션 서비스
※ 오케스트레이션 : 많은 수의 컨테이너를 자동 배포, 업그레이드, 확장 및 관리하는 것
[Azure App Service]
- 웹 앱 배포 서비스
- 컨테이너 또는 프로그래밍 코드를 실행하여 웹 앱을 배포
- 배포를 위해서는 App Service Plan(요금제)을 먼저 생성해야 함
[Azure App Service Plan]
- 실행할 웹 앱에 대한 컴퓨팅 리소스 세트를 정의하는 것
- 지역, 인스턴스 수, 인스턴스 크기 등을 정의
- 무료(Free tier)의 경우 하루 최대 연속적으로 60분 CPU 실행 가능
- 스케일 업(Scale Up) : 인스턴스 CPU, 메모리 사양을 변경하는 것
- 스케일 아웃(Scale Out) : 메트릭이나 일정에 따라 인스턴스 수를 수동 또는 자동 조정하는 것
[Azure Serverless]
- 서버를 사용자가 관리할 필요가 없다는 의미
- 실제로 서버는 존재하며 인프라, OS, 애플리케이션 운영은 Azure 등 클라우드 서비스 제공자에서 담당
- 사용자는 코드 입력하거나 필요한 기능을 사용하기만 하면 됨
- 비용은 코드 실행 횟수와 실행 시간으로 청구
- Azure Functions(함수 앱) : 서버리스 서비스, 사용자는 코드 입력하여 사용, 이벤트 발생을 트리거하는 용도로 주로 사용
- Azure LogicApps(논리 앱) : 서버리스 서비스, 비주얼 디자이너 사용, 워크플로우 생성 용도로 주로 사용
[Container(Blob) Storage]
- 클라우드 개체(Object) 스토리지 솔루션
- 비정형 데이터 개체 저장소(모든 유형의 데이터 저장)
- 비정형 데이터 : 동영상파일, 오디오파일, 문서, 사진 등 구조가 없는 데이터
- 대용량, 대량의 데이터 저장 가능
- VM과 DB의 OS 및 데이터 디스크 저장
- HTTP(S) 프로토콜 이용하여 글로벌 사용자가 접속 가능
- 서버 사이드, 클라이언트 사이드 암호화 지원
- 구조 : 스토리지 계정 -> 컨테이너 -> Blob(파일/개체)
- Access Tier
1) 핫 계층(Hot Tier) : 활발하게 사용 중이거나 자주 사용될 것으로 예상되는 데이터, 최소 보관 기간 없음
2) 쿨 계층(Cool Tier) : 단기 데이터 백업 및 재해 복구, 즉시 엑세스할 수 있어야 하는 경우, 최소 30일 동안 저장해야 함, 최소보관기간 이전에 삭제하면 조기 삭제 요금 청구됨
3) 보관 계층(Archive Tier) : 장기 백업, 보조 백업, 장기간 저장 필요하거나 거의 엑세스하지 않는 데이터, 보관 계층의 데이터는 오프라인으로 간주되어 읽거나 수정 불가, 데이터 최소 180일동안 저장, 조기 삭제 요금있음, 엑세스(읽기, 수정) 위해서는 온라인 계층(핫, 쿨)으로 재수화(rehydrated) 필요
- 복제(Replication)
1) LRS(로컬 중복 스토리지) : 단일 지역 내 3개 복사본
2) ZRS(영역 중복 스토리지) : 단일 지역 내 별도의 가용성 영역에 있는 3개 복사본
3) GRS(지역 중복 스토리지) : 주 지역에 3개, 보조지역에 3개, 총 6개 복사본
4) GZRS(지역 영역 중복 스토리지) : 주 지역 개별 가용성 영역에 3개, 보조지역 3개, 총 6개 복사본
- Azure Storage Security
1) Access Key : 스토리지 계정에 엑세스하기 위한 인증 키, 애플리케이션에서 엑세스할 경우 사용
2) SAS(Shared Access Signature) 공유 엑세스 서명 : 스토리지 리소스에 대해 제한된 엑세스 권한을 제공하는 URI, 외부 파트너에게 기간이나 리소스 제한하여 임시 엑세스 제공할 경우 사용
3) 방화벽 및 가상네트워크 : 방화벽 및 특정 네트워크에만 엑세스 허용 가능, 초기에는 모든 네트워크 엑세스 허용되어 있음
[Managed Disk Storage]
- Azure VM을 위한 가상 디스크 스토리지
- 4가지 디스크 옵션 제공
1) Ultra Disk Storage
2) 프리미엄 SSD
3) 표준 SSD
4) 표준 HDD
- 3가지 디스크 역할
1) OS 디스크
2) Temporary disk(임시 로그파일 저장 등
3) Data disk
- VM내에서 디스크 탭에서 새 디스크 추가 가능(VM내 Computer Management에서 디스크 확인 가능)
[File Storage]
- 네트워크 파일 공유 서비스
- SMB(윈도우 파일 공유 프로토콜), NFS(리눅스 파일 공유 프로토콜) 지원
- Windows와 Linux 에서 사용 가능
- 온프레미스, 클라우드 모두에서 파일 공유 접속 가능
- 실습
1) 스토리지 서비스에서 스토리지 계정 생성
2) 스토리지 계정에서 파일 공유 탭 선택하여 파일 공유 생성
3) 생성한 파일 공유 들어가서 연결 선택
[Azure File Sync]
- 온프레미스 서버의 파일 공유와 Azure 클라우드 파일 공유를 동기화하는 서비스
- 파일을 로컬서버와 클라우드에 중복 저장 가능
- 서버의 스토리지 용량 확장 가능
[Azure Import/Export]
- 데이터를 Azure로 가져오거나 내보내는 서비스
- 대용량의 데이터 마이그레이션, 백업, 데이터 복구 등에 사용
- 구성요소
1) Import/Export 서비스 : Azure 포탈에서 가져오기/내보내기 작업을 만들고 추적
2) WAImportExport 도구 : 데이터 복사, 암호화 등을 위한 명령어 도구
3) 디스크 드라이브 : 데이터 저장할 SSD, HDD 드라이브
- Azure Data Box : Azure에서 제공하는 데이터 전송 디바이스를 이용하여 데이터를 이동하는 서비스
[AZCopy]
- 스토리지 계정에서 또는 스토리지 계정으로 Blob 또는 파일을 복사할 수 있는 명령어
- Linux, Windows, Mac 사용 가능
- 명령어 형식 : azcopy copy [소스경로] [목적지경로]
- 복사시 AzureAD 또는 SAS 사용하여 인증하여 권한 부여
1) Blob 복사는 AD와 SAS 모두 사용 가능
2) File 복사는 SAS만 사용 가능
※ Bash에서 ll 입력하면 파일 리스트나옴
[Azure SQL Database]
- Azure SQL Database : 클라우드 SQL 호환 데이터베이스, Azure에서 데이터베이스 소프트웨어 구성, 패치적용, 업그레이드 자동 관리
- Azure Database for MySQL
- Azure Databaes for Postgre SQL
- Azure SQL Managed Instance : Azure에서 데이터베이스 소프트웨어 구성, 패치적용, 업그레이드 자동 관리, 사용자가 SQL 인스턴스(CPU, Storage, vNET)에 대해 상세 구성 가능, 온프레미스 환경과 VPN을 통해 연결하여 사용하는 경우 적합
- Azure VM의 SQL : VM에서 SQL Server 실행(IaaS), 사용자가 SQL Server 엔진 완전히 제어 가능
[Azure Cosmos DB]
- NoSQL 데이터베이스
- 서버리스 데이터베이스
- 빠른 엑세스와 탄력적인 자동 확장성 제공
- 빠른 속도의 처리량 필요한 경우 NoSQL DB 사용
- read, insert, delete, query 등 Request Unit(RU) 단위로 사용한 만큼 비용 청구
※ NoSQL : 비관계형 데이터베이스, 자유로운 데이터 구조, 처리속도 빠름, 데이터 중복 발생 가능
- 여러 지역에서 동시에 데이터 추가 가능
- JSON 문서 저장 가능
[Zero Trust model]
- 명시적으로 확인 : 사용 가능한 모든 데이터 요소에 따라 항상 인증하고 권한 부여
- 최소 권한 엑세스 사용 : 사용자의 엑세스 제한
- 위반 가정 : 미치는 범위 최소화
[Defense in depth model]
- 정보에 무단 엑세스 공격 진행 속도를 늦추기 위한 전략
- 각 레이어가 보호 제공하므로 한 레이어에서 침해 사고 발생하더라도 추가 노출을 방지
[Microsoft Defender for Cloud]
- 모든 Azure, 온 프레미스 및 다중 클라우드(Amazon AWS 및 Google GCP) 리소스에 대한 CSPM(클라우드 보안 상태 관리 ) 및 CWPP( 클라우드 워크로드 보호 플랫폼)
- 기능 : 지속적인 평가(보안점수, 취약성평가, 규정준수, 파일 무결성 모니터링), 보안(보안 권장사항), 방어(Microsoft Defender, 보안경고)
- 주요 서비스 : 보안점수, 권장사항, 경고
[Azure Arc]
- Azure 서비스를 데이터선터, 멀티 클라우드 환경에서 실행하도록 Azure 플랫폼을 확장하는 매개체
- 중앙 집중식 통합 관리 플랫폼을 제공하여 거버넌스 및 관리 최소화
- 관리할 수 있는 리소스 : 서버, Kubernetes 클러스터, Azure 데이터 서비스, SQL Server, VM
[Azure Blueprints]
- 조직의 표준, 패턴 및 요구사항을 구현하고 준수하는 반복 가능한 Azure 리소스 집합을 정의
- 단일 패키지로 배포하는 서비스 : Role, Policy, ARM Template, Resource Group
- 중앙에서 Blueprint를 배포하고 업데이트 및 버전 추적 가능
- ARM Template는 배포 이후 템플릿과 연결 관계가 손실 되지만 Blueprint 는 배포 이후에도 연결 관계가 유지되어 변경 적용 및 추적 가능
- 주기적인 가상머신 배포 및 삭제 프로세스에 필요한 관리 노력을 줄이는데 도움(DevTest lab도 해당)
[Azure Monitor]
- 클라우드와 온프레미스 인프라, 애플리케이션, 네트워크 모니터링 서비스
- 로그와 메트릭 데이터를 수집, 분석, 시각화
- 데이터 시각화 : 대시보드, 통합문서, Power BI 도구
※ 메트릭(Metric) : 시간상 특정 지점에서 시스템의 일부 측면을 설명해주는 값(CPU 사용량, 메모리 사용량 등)
- 경고를 개별 유저나 ARM Role에게는 보낼 수 있으나 보안그룹 또는 서비스로 보낼 수 없음
[Azure Advisor]
- 모범 사례를 따르고 있는지 분석하고 권장사항을 제공하는 서비스
- 비용, 보안, 안정성(Reliability), 최적의 작동, 성능에 대한 권장사항 제공
- 권장사항 제공x : Azure AD 환경의 보안을 개선하는 방법, Azure 가상 머신에서 네트워크 설정을 구성하는 방법
- 백업에 의해 보호되지 않는 VM 목록 생성
- 비용 권장사항에서 사용하지 않는 VM 식별 가능
[Azure Service Health]
- Azure 리소스의 인스턴트 및 계획된 유지관리에 대한 서비스 상태에 대해 정보 제공해주는 서비스
- Azure 서비스 실패했을 때 알림 보내는 규칙 생성 가능
- 단, 미리 방지는 불가능하므로 실패 방지 만들 수 없음
- Microsoft의 유지보수 수행 계획 통지 받을 수 있음
[비용-2]
- Azure 서비스로 데이터 수신은 무료(인바운드 트래픽)
- Azure 서비스에서 데이터 송신은 유료(아웃바운드 트래픽)
- 동일한 가용성 영역 내의 Azure 서비스간 데이터 전송 무료
- 다른 가용성 영역 간 , 다른 지역(Region)간 데이터 전송 유료
- 동일한 Azure 서비스도 지역마다 요금이 다름
- Azure Cost Management(비용관리) : 비용분석, 예산, 권장사항 기능 제공
- 스토리지 계정 사용에 대해서 1)데이터 총 용량 2) 읽기, 쓰기에 대한 비용 청구됨
- 비용 절감에 있어서는 공용 IP 주소 제거가 유효함(사용자 계정, 네트워크 인터페이스, 그룹은 무료)
- VM 의 비용은 Size(cpu 및 메모리 성능), Disk 구성에 따라 다르다.
- Azure 에서는 VM 비용과 Storage 비용이 별개이다. 따라서 VM 중지시켜도 Storage 비용 나간다.
- Azure 계정은 인바운드 데이터 업로드 총량 제한 없음
- 무료계정은 아웃바운드 및 저장 용량에 제한 있음
- 무료계정은 최대 10개의 웹 앱 생성 가능
- Azure 스토리지 계정은 지역별로 500TB~2PB 데이터 용량, 파일 수는 무제한
[SLA]
- 서비스 수준 계약(Service Level Agreement)
- 서비스 작동 시간 및 연결에 대한 약정
- 가동률(Uptime) :
1) (월 총 시간 - 월 총 가동 중단시간) / 월 총 시간*100
2) 여러 리전에 동일한 서비스 배포하면 가동률 올라감
- 서비스 수준을 달성하지 못할 경우 사용자가 청구함으로써 크레딧 받을 수 있음
- 프리뷰 서비스는 SLA 대상이 아님
- 퍼센테지 곱하면 결과 퍼센테지
- 무료 AD는 SLA 보장 안함
- 99.99% 가용성 보장 위해서는 최소 VM 2대, 최소 가용성 영역 2개 필요
[지원 플랜]
- Basic / Developer / Standard / Professional Direct / Enterprise
- Azure Free Account에 포함된 건 Basic 서포트 플랜
- Premier 서포트 플랜은 Enterprise 고객을 위한 것
- MDSN 포럼은 모든 계정에게 제공
- 기술 지원이 아닌 그냥 새 서포트 요청은 모든 플랜이 가능
- Basic은 기술 지원 요청 불가
- Developer는 업무 시간 중에 메일로만 기술 지원 요청 가능
- Standard 및 Professional Direct는 24시간 내내 전화, 메일을 통해 기술 지원 요청 가능
[기타]
- 단일 azure 데이터센터가 장기간 오프라인 상태가 되는 경우에도 일부 서버를 사용할 수 있도록 하려면 장애 허용성(fault tolerance)를 포함하여야 한다.
- Azure CDN은 전 세계에 전략적으로 배치된 물리적 노드에 콘텐츠를 캐싱 하여 사용자에게 고 대역폭 콘텐츠를 빠르게 제공
-IoT Hub는 수백만 개의 센서에서 데이터를 제공, 클라우드에서 호스팅 되는 관리형 서비스로, IoT 애플리케이션과 관리하는 장치 간의 양방향 통신을 위한 중앙 메시지 허브 역할
- Azure 데이터 레이크는 구조화되거나 반구조화되거나 구조화되지 않은 대량의 데이터를 저장, 처리, 보호하기 위한 중앙 집중식 저장소
- Azure Logic Apps는 기업 또는 조직 전체에서 앱, 데이터, 시스템 및 서비스를 통합해야 할 때 작업, 비즈니스 프로세스 및 워크 플로를 예약, 자동화 및 오케스트레이션 하는 데 도움이 되는 클라우드 서비스
- P2S(Point-to-Site) VPN 게이트웨이 연결을 사용하면 개별 클라이언트 컴퓨터에서 가상 네트워크에 대한 보안 연결을 만들 수 있다.
- AIP(Azure Information Protection)는 콘텐츠에 레이블을 적용하여 문서와 전자 메일을 검색, 분류 및 보호할 수 있는 클라우드 기반 솔루션, 워터마크 추가 등
- Azure Service Fabric : 마이크로 서비스 배포 관련
- Microsoft Managed Desktop : 가상 데스크톱 서비스
- Azure Security Center : 인프라 보안 관리 시스템(보안 측정 및 보안 권장 사항 제시, 보고서 다운 가능)
- Azure Activity Log : 90일 동안의 VM 활동 로그 기록
- Azure Databricks : 머신러닝을 위한 빅데이터 분석 서비스
- Azure Application Insights : 웹 앱에서 비정상 발견과 진단
- SIEM 솔루션은 Azure Sentinel 서비스가 사용 가능
- Azure Sentinel : AI를 통한 보안 분석 및 위협 탐지 대응 서비스(자동 분석)
- Azure Policy : 리소스가 따라야 하는 규칙 설정,
- 가상 네트워크 생성 후 이것이 허용되지 않는 정책 할당할 경우, 기존에 생성된 VNET에는 새 정책이 적용되지 않음
- Lifecycle Policy : Microsoft는 서비스 서포트 끝나기 전 최소 12개월 이전에 통지 제공
- Azure Hybrid Benefit 사용 : 온프레미스 SQL 라이센스를 VM에서 사용 가능
※ 호스팅(Hosting) : 서버 컴퓨터의 전체 또는 일정 공간을 이용할 수 있도록 임대해주는 서비스
※ 장애 허용성(Fault tolerance) : 시스템을 구성하는 부품의 일부에서 결함 또는 고장이 발생하여도 정상적으로 기능을 수행할 수 있도록 대응하는 능력
※ 탄력성(Elasticity) : 필요할 때 추가 리소스를 제공하고 비용 절감을 위해 필요하지 않을 때 리소스를 줄이는 기능