1. 클라우드컴퓨팅의 종류
퍼블릭 클라우드 :
- 불특정 다수의 개인이나 기업에 컴퓨팅 자원을 빌려주는 형태
- 물리적으로 떨어진 곳에 서버가 있다는 사실로 인한 보안우려가 있음
- 개인정보보호관련법률에 의해 데이터 보관장소가 엄격히 제한되는 경우 퍼블릭 클라우드 도입이 어려움
- 퍼블릭 클라우드의 특정 기술에 종속 되면 향후에 온프레미스로 옮기거나 다른 퍼블릭 클라우드 업체로 전환 하기 어려움
- 클라우드컴퓨팅에서의 클라우드는 일반적으로 퍼블릭 클라우드를 의미
프라이빗 클라우드 :
- 클라우드 컴퓨팅 개념을 자사 인프라에 도입해 데이터 센터를 고도화 하는것
- 퍼블릭 클라우드의 단점인 물리적 보안에 대한 컨트롤이 가능하고 데이터 저장소를 명확히 확인할 수 있음
- 특정 퍼블릭 클라우드기술에 대한 종속성을 없앨 수 있음
- 온프레미스에 클라우드컴퓨팅기술을 도입하는 것이기 때문에 운영이나 구축비용에 대한 절감 효과를 보기 어려움
- 퍼블릭 클라우드 도입이 어려운 경우에는 프라이빗 클라우드를 구축해서 사용
- 둘 이상의 퍼블릭 클라우드 또는 퍼블릭 클라우드와 프라이빗 클라우드를 함께 이용할 수 도 있음 (하이브리드클라우드)
2. 클라우드컴퓨팅의 주요 특징
- 확장성 : 자원의 확장 및 축소가 사용자가 원하는 시간에 빠르게 이루어짐
- 가용성 : 물리적인 하드웨어의 고장이나 장애에도 사용자에게 할당된 자원은 사용 가능
- 접근성 : 네트워크를 통해 접속이 가능
- 측정가능성 : 사용자가 요청해서 사용한 리소스를 측정해서 과금
- 경제성 : 물리적인 하드웨어를 최대한 효율적으로 사용자에게 배분
- 보안성 : 사용자의 데이터와 컴퓨팅자원을 안전하게 보호
3. 클라우드컴퓨팅의 기술
1) 가상화 기술
- 물리적인 컴퓨팅자원을 논리적인 단위로 추상화 하는 것
- 여러 하드웨어장비를 하나로 묶거나 하나의 커다란 장비를 여러 대의 작은 장비인 것처럼 나눌 수 있음
- 가상화 기술은 클라우드 컴퓨팅을 위해 개발 된 것이 아니라 유휴 컴퓨팅 자원의 재활용을 목적으로 개발
- 클라우드컴퓨팅은 가상화기술을 사용해서 물리적인 컴퓨팅 자원을 최대한 많은 사용자에게 효율적으로 할당
- 서버 가상화 : 가상화 기술이 적용되는 컴퓨팅자원은 CPU, 메모리, 네트워크, 스토리지를 포함, 가상화 된 서버 구조에서는 하이퍼바이저라고 부르는 가상화소프트웨어를 통해 가상머신을 관리
* 유휴 상태는 기술 및 컴퓨팅의 맥락에서 컴퓨터나 프로그램이 실행 중이지만 작업이나 데이터를 적극적으로 처리하지 않는 상태
- 컨테이너 (모듈화 되고 격리된 컴퓨팅 환경)기술 :
가상머신도 넓은 의미로는 운영체제와 애플리케이션으로 구성된 컨테이너,
가상머신과 달리 컨테이너는 애플리케이션만 격리하므로 가상머신보다 가볍고 빠르게 동작할 수 있음,
컨테이너의 개념은 2000년대 리눅스에서 LXC 기술이 도입되면서 시작,
프로그램을 다른 구동 환경에서 돌리더라 도안정적으로 실행시키기위해 고안,
최근 컨테이너 기술기반의 가상화가 각광받으며 가상머신기반의 가상화를 대체
- 도커 (컨테이너 기반의 오픈 소스 가상화 플랫폼) :
애플리케이션개발과 테스트를 거쳐 컨테이너 이미지를 만들어 상용 환경에 배포하기 위한 준비를 담당,
* 도커에서 이미지 : 컨테이너 구동에 필요한 실행 파일과 관련 라이브러리, 설정값 등을 포함하는 패키지
* 도커에서 컨테이너:이미지를 실행한 상태
-쿠버네티스 (컨테이너를 쉽고 빠르게 배포하고 자동으로 관리해주는 오픈 소스 플랫폼)
서비스 디스커버리 & 로드밸런싱 : 네트워크 트래픽을 컨테이너별로 분산
스토리지관리 : 로컬저장소와 클라우드 저장소를 탑재
자동롤아웃 & 롤백 : 신규 컨테이너를 생성하고 기존 컨테이너를 소멸
자동화된 빈패킹 : 컨테이너에 효율적으로 자원을 할당
자동복구 : 오류가 발생한 컨테이너는 자동으로 재시작
보안 : 암호,인증키와 같은 중요한 정보를 저장하고 관리
2) 분산 스토리지 기술
스토리지 가상화 :
- 다수의 사용자가 대량의 데이터를 저장하는 용도로 클라우드 스토리지를 활용
- 단일 스토리지로는 구현 할 수 없기에 당연히 여러 스토리지를 묶어서 활용하는 방식이 고안
- 스토리지 가상화는 가상화 소프트웨어를 통해 스토리지 자원과 애플리케이션이 통신
- 서버와 스토리지 사이의 중간 계층에서 작동
- 서버 입장에서는 단일 스토리지처럼, 스토리지 입장에서는 단일 서버처럼 인식 하도록 도움
- 서버와 스토리지의 변화에 유연하게 대처할 수 있음
3) 클러스터 관리 기술
클러스터 :
- 대량의 데이터를 저장하거나 많은 연산을 처리하기위해 여러 대의 컴퓨팅 자원을 하나로 묶은 시스템
- 클러스터 관리의 주요 역할은 노드관리, 업데이트 및 설치의 자동화, 프로비저닝, 로드밸런싱 등
노드관리 :
- 노드 : 클러스터를 구성하는 개별 시스템
- 노드 관리의 목적은 시스템 가용성을 유지하는것
- 클라우드 컴퓨팅 환경에서 노드는 가상화된 컴퓨팅 자원을 의미
- 물리노드의 상태와 자원 활용도를 지속적으로 모니터링 하면서 어떤 물리노드에 가상노드를 연결할 지 결정
프로비저닝 :
- 클러스터 내의 유휴자원을 파악하고 필요한 순간에 자원을 빠르게 할당해서 제공하기 위한 기술
- 프로비저닝의 전제조건은 자원의 상태를 정확하고 빠르게 모니터링 하는 것
- 프로비저닝은 실시간으로 변하는 사용자요청에 빠르게 대처할 수 있는 방법
로드밸런싱 :
-시스템 부하를 적절히 나눠서 컴퓨팅자원을 효율적으로 사용하는 기술
- 주로 네트워크부하를 분배하거나 각 서버가 일정하게 부하를 나눠서 처리할 수 있음
- 사용자가 자동 확장의 옵션의 범위를 정하면 해당 범위안에서 클라우드 컴퓨팅업체는 트래픽에 따라 자동으로 컴퓨팅
- 자원을 확장 혹은 축소
예 : 10대의 웹서버로 운영중인 쇼핑몰의 트래픽이 10대로는 감당이 안될 경우 자동으로 컴퓨팅자원을 확장,
혹은 5대로 감당할 정도로 트래픽이 적으면 자원을 축소
4. 클라우드 네이티브의 4요소
1) 지속적인통합/배포(CI/CD)
- 소프트웨어 개발은 코딩, 빌드, 테스트, 배포 단계를 거쳐 진행
- 지속적인 통합/배포 : 지속적으로 소프트웨어 품질을 점검하는 프로세스를 의미
- CI : 소프트웨어 개발자를 위한 자동화 프로세스
- CD : 개발된 소프트웨어를 안정적으로 관리하는 운영자 과정을 위한 자동화프로세스
2) 마이크로서비스아키텍처(MSA)
- 모노리틱아키텍쳐 : 전통적인 방식의 소프트웨어는 여러가지 기능을 하나의 애플리케이션으로 구현하는 모노리틱아키텍처를 사용
- 소스 코드 베이스 하나로 애플리케이션을 개발하기 때문에 빌드, 테스트, 배포 과정이단순한 장점이 있음
- 애플리케이션이 복잡해 질수록 새로운 기능을 추가할 때 소요되는 인력과 시간이 비례해서 증가
- 유지보수 측면에서도 애플리케이션을 업데이트하는 과정에서 기능에 버그가 발생하면 다른기능에도 영향을 끼침
- 마이크로 서비스 아키텍처의 등장은 모노리틱 아키텍처의 단점을 극복하기 위해 애플리케이션을 기능별로 잘게 나눠 서비스로 제작
- 서비스 사이에서는 HTTP AP I호출을 통해 필요한 기능을 불러쓰는 방식을 도입
3) 데브옵스
- 개발(Development)와 운영(Operations)의 합성어
- 소프트웨어 개발자와 정보기술전문가간의 소통과 협업을 강조하는 개발환경
- 전통적인 소프트웨어 개발방법에서 개발과 운영은 분리된 개념
- 클라우드 환경에서는 개발과 운영의 경계가 모호해졌으며 개발자가 직접 운영하는 것이 가능해짐
– 소프트웨어개발론에서 개발과 운영을 동시에 하면서 빠르게 개발사이클을 가져가는 애자일방식이 각광받음
4) 컨테이너
- 가상머신보다 효율적이고 빠른 속도로 애플리케이션을 개발하고 배포하는 방식으로 선호
- 쿠버네티스와 같은 오케스트레이션툴과 조합하여 사용하면 클라우드 환경에서 더 큰 장점으로 작용
'[스터디] 정보보안' 카테고리의 다른 글
[스터디] 4. 클라우드 (퍼블릭 클라우드 AWS) (0) | 2025.02.26 |
---|---|
[스터디] 3. 클라우드 (퍼블릭 클라우드) (0) | 2025.02.26 |
[스터디] 1. 클라우드 (0) | 2025.02.23 |
[스터디] MITRE ATT&CK (3) | 2024.12.23 |
[스터디] 악성 HWP, HWPX 문서 분석 (0) | 2024.12.21 |