✅ 가상화(Virtualization)
: 물리적인 자원과 사용자가 사용하는 논리적인 자원을 분리하는 것.
💡 가상화의 핵심 키워드
✅ 추상화(Abstraction)
✅ 다중화(Multiple Instance)
✅ 고립(Isolation)
✅ 통합(Consolidation)
📍 가상화가 제공하는 장점
통합(Consolidation)
- 다양한 응용들과 시스템 소프트웨어들을 하나의 시스템에서 통합 운영할 수 있어 서버의 이용률을 높이고 관리 부하를 줄일 수 있다.
고립(Isolation)
- 각 사용자의 수행 환경을 다른 환경들로부터 고립 시킬 수 있다.
집계(Aggregation)
- 여러 물리 자원들을 단일한 가상 자원으로 집계할 수 있다.
이동(Mobility)
- 어플리케이션, OS는 가상화 층이 제공한 가상 자원을 이용하기 때문에 동일한 가상 자원을 이용한다면 실제 물리적인 자원의 종류와 무관하게 이주가 가능하다.
- 결함 감내(fault tolerance), 가용성, 부하 균등, 확장성, 신속한 중단/재개(rapid suspend/resume) 등의 특성으로 활용.
모의실험(Emulation)
- 새로운 시스템이나 아직 개발되지 않은 하드웨어를 모의실험 하는 기능을 제공한다.
💡 클라우드 컴퓨팅의 특성과 가상화 기능 간 관계
- Dynamic VM creation (가상머신 동적 관리)
- VM migration (가상머신 이주)
- VM cloning (가상머신 복제)
- Server consolidation (서버 통합)
- Virtual network support (가상의 네트워크 지원)
- VMM layer monitoring (가상머신모니터)
💡 가상화가 클라우드 컴퓨팅에 적합한 이유
- 가상 머신 동적 관리 (VM Dynamic Management)
- 하드웨어 독립성 (HW Independence)
- 서버 통합 (Server Consolidation)
- 경제성 (Economics)
✅ 가상화 분류
1. 가상화 소프트웨어 구현 층에 따른 분류
(a) Hardware 기반 가상화
- 물리적 자원들을 Hypervisor 가 이미 각 VM에 할당량을 분배함.
- 각각의 VM에 Guest OS 가 존재함.
- 장점 : 메모리 사용량이 적고, 가상화에 따른 부하가 적음
- 단점 : 지원하는 장치가 OS 기반 가상화에 비해 적고, 호환성 이슈가 있음
(b) OS 기반 가상화
- Guest OS 가 Host OS 에 종속됨. → 연동 제약 조건이 (a)보다 더 많음.
- 장점 : Host OS 가 이미 지원하는 장치를 모두 활용할 수 있음
- 단점 : 가상화 층의 도입에 따른 성능 저하 발생 가능성이 있음. → OS 간 연계 과정에서 성능 저하.
(c) Middleware 기반 가상화
2. 가상화 소프트웨어 구현 방법에 따른 분류
가상화 소프트웨어에서 물리 자원을 가상 자원으로 추상화할 때 두 가지 요구 조건이 발생한다.
두 요구 조건은 Trade-Off 관계에 있다.
설계 시 어디에 비중을 둘지에 따라서 가상화 소프트웨어의 특성이 달라진다.
요구 조건 1 ) 동일한 방식으로 접근하고자 함.
guest OS 는 물리 자원에 접근할 때와 동일한 방식으로 가상 자원에 접근할 수 있어야 함.
요구 조건 2 ) 가상화 소프트웨어에 대한 통제 필요성
가상화 소프트웨어는 guest OS 의 동작을 제어할 수 있어야 하고, 필요할 경우에 guest OS 의 자원 접근을 통제할 수 있어야 한다.
3. 가상화 목표에 따른 분류
- 서버 가상화
시스템 상 존재하는 HW 를 여러 개의 가상 자원들로 추상화하고 각 가상 자원에 서로 다른 OS 들을 동시에 수행. - 스토리지 가상화
여러 개의 물리 스토리지 공간을 단일 가상 스토리지 공간으로 집계. - 네트워크 가상화
가상화 층을 이용해 네트워크를 독립된 가상 사설 네트워크 파티션으로 나눔. - 임베디드 가상화
내장형 장치 가상화로 표준화된 인터페이스로 접근하여 이동성, 상호 호환성 향상.
✅ 가상화 핵심 기술
1. CPU 가상화
: 물리적 CPU 들을 논리적 CPU 들로 추상화. 추상화된 논리 CPU 를 공평성/효율성에 맞게 각 VM 에게 할당하는 행위이다.
- 직접 수행(Direct execution) : VM 을 실제 머신 상에서 직접 수행할 수 있으며, 동시에 CPU 에 대한 제어는 전적으로 VMM 이 담당함.
- VMM 의 수행 특권과 VM 상에서 수행되는 Guest OS 및 응용의 수행 특권 구분이 기반 되어야 실현 가능함.
- 스케쥴링
- BVT(Borrowed Virtual Time) 스케쥴링 : 공정 공유(fair share) 원칙에 따라 CPU 를 각 VM 에 할당하며, 동시에 가상 시간 워프(Virtual Time Warp)를 도입하여 오랫동안 대기한 VM이 이벤트를 받으면 빠르게 CPU 를 할당.
- 로터리(Lottery) 스케쥴링 : 공정성 보장을 위해 난수 기반의 가중 랜덤 선택 방식을 사용하는 스케쥴링 알고리즘.
→ 프로세스마다 티켓을 할당하고, 매 스케쥴링 사이클마다 난수를 이용하여 하나의 티켓을 선택하여 해당 프로세스가 CPU 를 점유.
2. 메모리 가상화
: 물리 메모리를 Guest OS 가 이용하기 쉬운 형태의 가상 메모리로 추상화시켜 지원함과 동시에 각 VM 이 낭비 없이 효과적으로 동작할 수 있도록 각 VM 의 요구에 맞게 메모리를 동적으로 할당함.
- 주소 변화 단계의 증가
- 기존 시스템 메모리 구분 : 물리 메모리 & 가상 메모리
- 가상화 시스템 메모리 구분 : 물리 메모리 & 가상 메모리 & 머신 메모리
- 머신 메모리 : 실질적으로 VMM 이 여러 VM 에게 할당하는 메모리.
- 가상화 시스템 메모리 기본 주소 변환 단계
→ 각 VM 의 메모리 공간을 보호하고 기존 OS 와 호환성이 유지되지만, 두 번의 주소 변환이 필요하여 성능 저하의 원인이 되기도 함.
단계 1) 프로세스의 가상 주소 요청
단계 2) Guest OS 의 페이지 테이블(Guest Page Table)을 이용해 물리 주소로 변환
단계 3) VMM 의 페이지 테이블(VMM Page Table)을 이용해 머신 주소로 변환
- 그림자 페이지 테이블(Shadow Page Table) 활용
- VMM 에서 관리하고 VM 페이지 테이블 내용을 동일하게 담음
- VMM 이 모든 물리 메모리에 대한 제어를 할 수 있도록 함
- 위 기본 주소 변환 단계의 단계 2와 단계 3을 통합하여 처리함
- 벌룬 프로세스(Balloon Process) - 메모리 동적 회수 및 할당 기술
- Guest OS 상에서 동작함
- VMM 이 VM 의 메모리 사용량을 동적으로 조정하기 위해 사용하는 메모리 압축 기법
- 벌룬 드라이버가 메모리를 점유/반환하여 활용 메모리를 확보
- 내용 기반 페이지 공유 기법 - 메모리 동적 회수 및 할당 기술
- 내용 기반 페이지 공유(Contents-based Page Sharing) 기법
- 동일한 페이지를 찾기 위해 ‘해시 기법’ 활용
3. 입출력 가상화
종류
- OS 기반 I/O 가상화 : I/O 링(Ring) 구조 가상화
- 하드웨어 수준 I/O 가상화 : SR-IOV(Single Root IO Virtualization)
✅ 가상화 관련 고려 사항
📍 가상 머신 이주
: 고장 복구, 성능 향상, 소프트웨어 갱신 . 등 다양한 목적으로 활용 되어 클라우드 시스템 활용의 장점을 유도하는 주요 기술.
💡 고려 사항
다운 타임 (Down Time) : 이주 시 발생하는 서비스 중단 기간
이주 비용 (Migration Cost)
이주 대상 : CPU, 메모리, I/O except 데이터 (데이터는 크기가 너무 크므로 일반적으로 이주 대상으로 고려 X)
💡 이주 기법
중단 복사 (Stop-and-copy) : 다운 타임이 길어질 수 있는 단점이 있음.
라이브 이주 (Live migration)
- 선 복사 기법 (Pre-copy) - 동작하며 동시에 모든 메모리를 이주할 Host 로 복사
- 후 복사 기법 (Post-copy) - 이주할 Host 에서 VM 을 우선 수행시키고, 수행 도중에 필요한 메모리를 필요 시 이주 </aside>
📍 컨테이너 기반 가상화
💡 컨테이너(Container)
: 어플리케이션과 그 실행에 필요한 모든 라이브러리, 의존성, 설정 파일 등을 포함하는 가상화된 패키지
→ Host OS 에서 직접 실행 되며 가볍고 빠른 배포가 가능함.
💡 컨테이너 특징
✅ 경량성
✅ 빠른 실행
✅ 일관성
✅ 격리
🪄 컨테이너 vs. VM
컨테이너 | VM | |
부팅 속도 | 매우 빠름 (초 단위) | 느림 (분 단위) |
성능 | OS 커널 공유로 높은 성능 | 하이퍼바이저 오버헤드 존재 |
리소스 효율성 | 가벼움 | 무거움 (OS 포함) |
보안성 | 낮음(OS 공유) | 높음 (완전한 격리) |
운영 환경 | 클라우드 네이티브, DevOps | 다양한 OS 가 필요한 환경 |
💡 도커(Docker)
: 컨테이너 가상화 기술. 복잡한 응용을 컨테이너로 통합할 수 있고, 개발, 테스트, 서비스 환경을 하나로 구축할 수 있게 함.
→ 실제 독립된 공간은 리눅스 커널의 cgroups & namespace 기법을 이용해 구현함.
✅ 클라우드 서비스 및 네트워크
웹 기술
- 웹 고객(Web Client)과 웹 서버(Web Server)가 존재하는 요청-응답 구조
- 기본 구성 → URL, HTTP, Markup Language
서비스 기술
- 서비스 지원을 위한 대표적 기술 → SOAP(Simple Object Access Protocol), REST(Representational State Transfer)
📍 클라우드 관련 인터넷 기술 이슈
- 연결성 (Connectivity)
- 지연 및 대역폭 (Latency and Bandwidth)
- 클라우드 공급자 선택
- 서비스-구동 네트워크 (Service-driven network)
📍 가상 네트워크 외벽 기술
근거
- 악의적 사용자의 목표에서 벗어나 자신을 보호할 수 있는 환경 구축이 필요
가상 네트워크 외벽 (Virtual Network Perimeter)
- 공용망과 개인이 사용하는 네트워크 간 경계를 의미
VPN
- 인터넷과 같은 고용 네트워크에서 보호되는 네트워크를 구성하는 기술
- 기밀성, 인증, 일관성 등을 요구
- 활용 프로토콜 : Secure Shell, IPSec, TLS
✅ 데이터 센터
- ISO/IEC 30134-1
- 데이터 스토리지, 처리(서버), 전송(네트워크) 서비스를 함께 제공하는 정보 기술과 네트워크 통신 장비와 중앙화 된 수용, 상호 연결과 운영에 특화된 구조 또는 구조의 그룹
- 요구되는 서비스 가용성을 제공하는 데 필요한 수준의 탄력성과 보안 및 전력 분배와 환경 제어(냉방)를 제공하기 위한 모든 시설과 인프라 구조를 가짐
- PUE
- 전력 사용 효율 (Power Usage Effectiveness) 강조
- 데이터 센터의 에너지 효율 표현식 → “데이터 센터의 전체 소비 전력” 을 “IT 장비에 의해 소비된 전력” 으로 나눈 값.
클라우드 데이터 센터(Cloud Data Center, CDC)
: 다수의 동종 서버를 클라우드 OS 를 이용하여 하나의 컴퓨팅 시스템으로 묶어 다양한 사용자에게 클라우드 서비스를 제공한다.
💡 주요 특징적 기술
- 컴퓨터 노드 : Manycore 구성
- 저장 공간 : DAS, NAS, SAN 등 다양한 구조
- 네트워크 장비 : LAN, 라우터, 방화벽, VPN
- 기타 설비
- 가상화
- 자동화
- 표준 및 모듈화
- 보안 및 고가용성 확보를 위한 기술 도입
✅ 클라우드 보안 기술
📍 보안 요구사항 (CIAA)
Confidentiality (기밀성) - 권한이 있는 사람 또는 조직만 해당 자원에 접근 가능하게 함.
Integrity (무결성) - 정보가 변경되지 않음을 보장함.
Availability (가용성) - 자원 사용이 가능한지 보장함.
Authenticity (진정성) - 제공된 데이터가 믿을 만한 사람 또는 조직에서 왔는지를 보장함.
📍 보안 관련 용어
- 위협(Threat)
- 개인 정보 침해나 시스템 불능화 등과 같은 잠재적인 보안 위협
- 위협은 공격으로 현실화 됨
- 공격(Attacks)
- 실제 시스템 또는 소프트웨어에 대한 보안 공격
- 공격의 종류
- 악의적인 내부자 공격(Malicious insider attack)
- 공유 위치 공격(Co-location attack)
- 메타데이터 스푸핑 공격(Metadata spoofing attack)
- 중간자 공격(Man-in-the-Middle attack)
- 범람 공격(Flooding attack)
- 취약성(Vulnerabilities)
- 공격에 활용되는 시스템 또는 소프트웨어의 결함
- 취약성 예시
- 구성 실수
- 보안 정책 오류
- 사용자 실수
- 하드웨어/펌웨어 결함
- 소프트웨어 버그
- 위험(Risks)
- 공격에 의해 손실을 입을 확률
- 취약성 표면의 크기, 위협 수준, 시스템/SW의 보안 수준에 의해 영향을 받음.
- 보안 대응 기법(Countermeasures)
- 위험을 줄이고 위협을 예방할 수 있는 보안 기법들을 말함.
- 보안 정책이 이 기법들의 구현 방향을 결정함.
- 자산(Assests)
- 위협 요인들이 침입하려는 데이터 또는 컴퓨팅 자원
- 보안 정책의 보호 대상
📍 위협원(Threat agent)
- 악의적인 내부자(Malicious insider) : 클라우드 내부에 있는 공격자
- 악의적인 임차인(Malicious tenant) : 다른 임차인의 자원에 불법으로 접근하려 하는 임차인
- 외부 공격자(Anonymous attacker) : 클라우드 고객이 아닌 외부에 있으면서, 클라우드 시스템에 위협을 가하려는 공격자 </aside>
클라우드 보안 요구 사항
- 무결성은 대부분의 클라우드 서비스에서 필수적으로 요구함
- 전반적으로 SaaS 는 좀 더 많은 보안 요구사항을 필요로 함
- 프라이빗 클라우드는 다른 전개 모델에 비해 좀 더 많은 요구사항을 필요로 함
🌟🌟🌟 보안 대응 전략
💡 암호화(Cryptography) for Ensuring Confidentiality
: 트래픽 도청, 악의적 중간자, 불충분한 인증, 중첩된 신뢰경계 등의 공격을 방어
- 대칭 키 암호화 : 암호화/복호화에 같은 키를 사용함.
- 비대칭 키 암호화 : 각 단계에서 다른 키를 사용함.
💡 해싱(Hashing) for Ensuring Integrity
: 많은 양의 데이터를 그보다 적은 크기의 데이터로 매핑시키는 데이터 관리 기법
- SHA-2 해시 알고리즘
- 사용 예
- 고객이 문서를 다운로드 받을 때 문서와 함께 해시 값을 함께 다운로드 함
- 다운로드 받은 문서에서 해시 값 계산
- 다운로드 받은 해시 값과 비교하여 두 값이 동일한 경우 무결성 보장
💡 디지털 서명(Digital Signature) for Ensuring Authenticity
: 전송자가 자신에 문서에 대해 생성한 해시를 자신의 개인키로 암호화한 암호화된 해시 값
- 디지털 서명 방법
- 디지털 서명을 문서에 붙여 수신자에게 송신
- 수신자가 받은 문서로부터 해시 값 계산
- 전송자가 공개 키를 활용해 디지털 서명을 복호화 함
- 계산된 해시 값과 복호화 한 결과 값이 같으면 일관성 및 진정성 보장
💡 중복(Redundancy), 모니터링(Monitoring), 자원 풀(Resource Pool) for Ensuring Availability
- 중복 : 핵심 시스템 구성 요소를 이중화하여 장애 대비
- 모니터링 : 시스템 상태를 실시간으로 감시하고 이상 징후를 감지하여 신속히 대응
- 자원 풀 : 자원 공유 및 동적 할당으로 효율적 자원 활용과 장애 대응에 활용
✅ 클라우드 관리 기술
📍 클라우드 관리 기술
💡 관리(Administration) 기술
- 배치 (Deployment)
- 구성 (Configuration)
- 모니터링 (Monitoring)
- 생명 주기 관리 (Lifecycle management)
- 감사 (Auditing)
- 중개 (Broking)
💡 비즈니스 지원(Business support) 기술
- 미터링 (Metering)
- 과금 (Billing)
- 인증 (Authentication) & 사용자 관리 (User management)
📍 클라우드 모니터링 기술
💡 자원 사용 모니터링
모니터링 에이전트 구현 방식
- 수동적 방식 : 에이전트가 자원 사용 요청 흐름 경로에 위치하여 요청과 할당을 모니터링
- 능동적 방식 : 모니터링 에이전트가 다른 자원 할당 에이전트들에게 자원 사용 상태를 보고 받음
- 주기적 모니터링 : 주기적으로 모니터링 에이전트가 다른 자원 할당 에이전트에게 자원 사용 상태를 문의
💡 서비스 품질 모니터링
- SLA 모니터 : SLA 상에 명시된 서비스 수준을 만족하는지 여부를 감시하는 모니터
- 응답시간, 처리율, 대기시간 등 다양한 QoS 기준이 모니터링 대상
📍 클라우드 자원 관리 기술
💡 부하 균등(Load Balancing) 기술
- Amazon EC2 ELB
- 분배 (Distribution)
- 분배 정책 → 비대칭적 분배, 워크로드 우선순위 고려 분배, 컨텐츠 인지 분배
💡 장애극복 (Failover)
: 특정 서비스에 문제가 발생하였을 때에도 지속적으로 그 서비스를 지원하여 신뢰성과 가용성을 높이는 기술
- 접근 방법
- Active-active 방법 : 중복된 자원에서 요청을 동시에 처리하고 이 중에 하나만 응답
- Active-passive 방법 : Active-active 처럼 중복된 자원을 활용하지만, 고객의 요청을 하나의 서버에서 처리하고 다른 서버는 대기 상태로 데이터 동기화만을 수행.
💡 식별자 및 접근 관리 기술 (IAM)
: 적절한 인증 및 권한 부여를 위한 기술
- IAM(Identity and Access Management)
- IAM 구성 요소 - 인증, 권한 부여, 사용자 관리, 집중된 저장소
'⚡️ 전공수업 > 클라우드시스템' 카테고리의 다른 글
AWS 네트워킹 서비스 (0) | 2025.04.30 |
---|---|
AWS 컴퓨팅 서비스 (0) | 2025.04.30 |
클라우드 컴퓨팅 서비스 (0) | 2025.04.30 |
클라우드 컴퓨팅 2 (0) | 2025.04.30 |
클라우드 컴퓨팅 1 (1) | 2025.04.30 |