Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

정보보안 3주차 정리 - 클라우드 기술 본문

3-1/정보보안

정보보안 3주차 정리 - 클라우드 기술

김브래 2024. 3. 20. 01:07

가상화 기술


가상화

- 하드웨어 리소스(CPU, 메모리, 스토리지)를 논리적으로 다루는 기술

 

- 서버 가상화, 네트워크 가상화, 스토리지 가상화

서버 가상화 장점

- 물리 서버 하나의 라소스를 여러 개의 서버 환경으로 할당 → 각각 OS 및 app 실행

- 물리 서버 수를 줄여 공간 절약 및 비용 절감

- 가상 서버 중 하나가 장애(바이러스 등)가 발생하더라도 다른 가상 서버에 영향 X

 

서버 가상화 기술


컨테이너 기술

애플리케이션의 실행 영역(유저영역 = 컨테이너)을 여러 개로 나누어 사용

- 각 컨테이너는 독립적으로 애플리케이션 실행 가능
- 호스트 OS 입장에서는 하나의 프로세스(실행 중인 프로그램)

 

컨테이너는 애플리케이션의 실행 환경을 가상화
- 서버 가상화는 하드웨어 환경을 통째로 가상화

 

가상 서버보다 가상화 오버헤드가 적어 빠르게 기동/정지 가능

 

하드웨어 리소스 사용이 적어 1대의 물리 서버에 많은 컨테이너 동작 가능

 

컨테이너 단위로 패키징 되어 클라우드 간 복제 및 이식성 우수

 

대표 컨테이너 타입 가상화 소프트웨어 = Docker

 

컨테이너 타입 가상화 소프트웨어 운영 관리 도구 = Kubernetes(K8S)


스토리지 기술

블록 스토리지

- 일정한 크기의 블록으로 나뉜 스토리지의 논리 볼륨을 블록 단위로 액세스
- 서버, 스토리지 간 데이터 교환의 오버헤드가 적어 빠른 데이터 전송 가능
- 낮은 레이터시가 요구되는 데이터베이스로 사용

 

파일 스토리지
- 파일 그대로 읽고 쓸 수 있으며, 공유할 수 있는 스토리지
- SMB, NFS, NAS


오브젝트 스토리지
- 데이터를 오브젝트(객체) 단위로 처리
- 오브젝트는 데이터 및 메타 데이터로 구성되며, 고유한 ID(URI)가 부여됨
- 대규모 비정형 데이터에 낮은 빈도로 접근하는 환경에서 사용
- HTTP 프로토콜 기반의 REST 형식의 API 사용

* REST API : 명시된 자원(URI)에 대해 CRUD를 적용(POST(생성)/GET(조회)/PUT(수정)/DELETE(삭제)


네트워크 가상화 기술

VLAN(Virtual LAN)
- 하나의 물리적인 네트워크를 여러 개의 논리적인 네트워크로 분할하는 기술
- 물리적 배선을 변경하지 않고, 설정을 통해 네트워크를 나눔
- 논리적으로 분할된 네트워크들은 라우터를 거치지 않으면 통신 안됨
- 클라우드 서비스와 데이터 센터 사이에 VLAN 구축을 통해 프라이빗 환경 구축


VPN(Virtual Private Network)
- 가상으로 전용선과 같은 사설망을 연결하는 기술
- 암호화와 인증을 추가한 IPsec 프로토콜 사용


NFV(Network Functions Virtualization)
- 네트워크 기능을 소프트웨어 구현하여 가상 서버 위에 구축하는 기술
- 네트워크 장비(라우터, 게이트웨이, 방화벽, 로드 밸런서 등)의 기능을 소프트웨어로 구현
- 네트워크 장비의 수요 및 구성 변경 등에도 유연하게 대응


SDN(Software Defined Networking)

서버 가상화, 클라우드 발전에 따라 시스템 통합관리, 운영 자동화 진행,
- But, 네트워크는 기존과 같은 방식으로 하드웨어 별 운영/관리되고 있는 실정

 

서버 가상화 및 클라우드는 네트워크 트래픽의 급속한 증감 및 경로 변경 초래

 

이에, 네트워크 가상화를 통해 네트워크 구성과 기능 설정을 소프트웨어로 구현

 

SDN
- 통신의 전송기능(데이터 플레인)과 제어 기능(컨트롤 플레인)을 분리
- 제어 기능을 컨트롤러에 할당하고 데이터의 흐름을 소프트웨어로 정의함
- 네트워크 가동 상황/운영에 맞추어 소프트웨어로 유연하게 데이터 전송 경로를 변경


데이터베이스 기술

RDB(Relational Database)
- 여러 개의 데이터를 행과 열이 있는 표 형식으로 표현
- 복잡한 데이터의 관계를 처리할 수 있도록 만든 데이터베이스
- Oracle Database, MySQL, Microsoft SQL Server, PostgreSQL


NoSQL(Not only SQL)
- RDB와 같은 관계형 데이터베이스가 아닌 데이터베이스
- 대량의 데이터를 분산시켜 고속으로 처리하는 분산 데이터베이스 → IoT, 빅데이터 활용
- 매우 단순한 쿼리만 지원
- 어떤 쿼리 결과가 필요한지 정의한 후 그 결과에 맞는 테이블 디자인


분산 처리 기술

데이터를 여러 개의 서버에 나누어 병렬로 처리

 

클러스터링 : 대량의 데이터를 분산처리하기 위해 여러 개의 서버를 결합하여 하나의 컴퓨터로 보이게 만듦
- 일부 서버가 장애가 발생해도 나머지 서버에서 자동으로 작업을 할당해 작업 수행

 

Apache Hadoop
- 1대의 마스터 서버가 여러 개의 슬레이브 서버를 관리
- 마스터 서버 : 제어, 슬레이브 서버 : 연산
- 처리 능력은 슬레이브 서버의 대수에 비례(데이터 처리 양)

 

Apache Spark
- 메모리 안에서 대용량 데이터의 병렬 분산 처리 실행
- 메모리 안에서 실행하므로 속도가 매우 빠름
- 대용량 데이터 처리는 적합하지 않음
- 기계학습과 같은 데이터를 반복하는 고급 데이터 분석 수행에 적합


엣지 컴퓨팅

서버를 말단 디바이스에 가까운 영역에 분산 배치하여 데이터를 처리

 

클리우드 컴퓨팅은 서버를 한곳에 모아 집중처리
But, 엣지 컴퓨팅은 말단에서 분산 처리

 

디지털 데이터의 폭발적 증가와 낮은 지연(실시간)이 요구되는 애플리케이션 증가

 

실시간 데이터 처리와 높은 신뢰성 보장

 

디바이스 고도화/소형화/저전력화/비용 절감에 따른 엣지 컴퓨팅 보급 가속화

 

CPU/GPU 탑재된 엣지 컴퓨팅 디바이스 등장

 

데이터를 클라우드에서 처리할 경우 문제점
- 통신 데이터 증가에 따른 네트워크 대역폭을 많이 소모
- 회선 이용료 등의 비용 증가
- 클라우드 서버와 거리가 멀 경우 응답 시간이 지연
- 네트워크 장애로 데이터 처리 불가한 경우 있음
- (보안 정책이나 국가 및 지역의 사정에 따라) 클라우드로 데이터 전송 불가할 수 있음


하이퍼 컨버지드 인프라스트럭처

컨버지드 인프라
- 서버, 네트워크, 스토리지, 소프트웨어(하이퍼바이저 및 운영 관리 도구) 등을 하나의 패키지에 통합한 제품
- 제조사가 사전에 호환성 검증 및 최적화된 구성으로 출하
- 정형화된 구축 방법이 문서화 되어 있어 단기간에 안정적인 운용 가능
- 하나의 패키지이므로 문의 창구가 일원화


하이퍼 컨버지드 인프라
- 클라우드 서비스의 기본 기능을 패키지로 제공하는 제품
- 소프트웨어(가상화) 기반의 서버, 네트워크, 스토리지 등의 구성요소가 통합
- 인프라는 서버, 네트워크, 스토리지를 모듈 단위로 구성
- 소프트웨어로 전체 시스템의 구성 설정 및 구성 방법 변경
- 하나의 벤더로 부터 지원 받아 전체를 하나의 시스템으로 관리


GPU(Graphics Processing Unit)

- 단순하고 방대한 연산 처리가 필요한 컴퓨터 그래픽과 딥러닝에서 많이 사용

 

GPGPU(General Purpose computing on GPU)
- 기계학습, 딥러닝(심층학습) 등장에 따라, 기존 GPU를 보완해 CPU의 기능을 추가해 연산속도 향상


데이터 센터

- 지진, 해일 등 자연 재해 위험 적은 곳
- 지반이 딱딱한 장소
- 대규모 지진에 대비한 내진 설계
- 출입 관리 엄격
- 냉난방 시설, 전력 및 통신 다중화
- 전기 요금 증가 및 에너지 절약을 위해 자연 환경 적극 활용


서버리스 아키텍처

서버리스 : 클라우드 사업자가 서버의 운영과 관리를 모두 담당해 사용자는 서버의 존재를 의식하지 않아도 된다는 의미

마이크로 서비스 아키텍처(MSA)
- 하나의 애플리케이션을 작은 서비스의 집합체로 구축하며, API로 연계
- 클라우드 사업자는 서버, 스토리지, DB, 네트워크 등 독립적인 컴포넌트를 제공하지만

서로 느슨한 결합을 통해 전체 기능을 구현


서버리스 아키텍처
- MSA로 구성된 각 컴포넌트를 조합하고, 클라우드 사업자가 모두 관리하는 경우 사용자는 

서버의 존재를 의식하지 않은 상태에서 애플리케이션을 동작할 수 있음

FaaS(Function as a Service)

- 이벤트에 따라 동작하는 함수로 구성
- 작성한 코드를 서버리스 서버에 업로드하면, 서버는 업로드한 코드를 함수 단위로 쪼갬
- 요청이 들어오면 서버가 대기상태로 두었던 함수를 실행
- 작업을 마치면 다시 대기 상태로 만듦
- 비용은 함수 호출 횟수, 걸리는 시간에 따라 청구

 

BaaS(Backend as a Service)

- 백엔드 개발에 필요한 여러 기능을 API로 제공하는 서비스
- SNS 연동, DB와 같이 백엔드에 필요한 기능을 API로 기능을 구현할 수 있게 해 줌
- 클라우드 사업자가 백엔드 개발 환경을 제공한다는 의미
- 복잡한 백엔드 기능을 개발자가 직접 개발하지 않고, 클라우드 사업자의 서비스를 이용해 쉽고 안정적으로 구현
- AWS Lambda, MS Azure Function, Google Cloud Function


마이크로 서비스 아키텍처(MSA)

기존(Monolithic)의 한계
- 전체 시스템 구조 파악 문제
- 빌드 시간 및 테스트, 배포 시간의 급증
- 서비스의 특정 부분만 Scale-out하기 어려움
- 부분 장애가 전체 서비스의 장애로 이어짐

 

MSA의 장점
- 배포: 서비스 별 개별 배포 가능
- 확장성: 특정 서비스에 대해 Scale-out 가능
- 장애 해결: 부분 장애에 대해 격리해서 확장 되지 않음

 

MSA의 단점
- 서비스 간 API 호출 시 통신 비용이나 레이턴시 이슈
- 서비스가 분리되어 있어 테스트 등 복잡도 증가
- 데이터가 분산되어 있어 조회 및 관리 어려움