01. 클라우드 구조
- 클라우드
- 구름에서 유래
- 경계가 모호라고 실체가 정해지지 않은 이미지를 나타냄
- 현재 클라우드, 클라우드 컴퓨팅: 데이터를 저장하거나 애플리케이션을 실행 할 수 있도록 인터넷을 통해 컴퓨팅 리스소를 제공하는 기술이나 서비스를 의미, 기업과 개인이 물리적인 서버나 데이터 센터를 소유하거나 관리하지 않아도 IT 서비스를 사용할 수 있게 해줌
- 클라우드 구성 요소: 인터넷을 구성하는 네트워크 + 기기(컴퓨터, 서버)
- 데이터 센터: 현실에서 클라우드의 구성요소를 모아 놓은 시설이나 설비와 가장 가까운 것
- 대량의 서버를 가동시키려고 서버 랙, 네트워크 회선, 전원 공조 방화 내진 설비 등을 갖춘 시선
- 하우징: 이 시설만 이용하는 방식
- 호스팅: 서버까지 이용하는 방식
- 데이터 센터: 현실에서 클라우드의 구성요소를 모아 놓은 시설이나 설비와 가장 가까운 것
- 클라우드 구성 기술는 서버와 네트워크 가상화, 분산형 데이터메이스, SaaS 같은 기술과 이용 형태에 따라 구성
- SaaS: 사용자가 직접 서버를 소유하지 않고, 인터넷으로 업무 소프트웨어를 이용할 수 있는 획기적인 이용 형태
- 클라우드: 소프트웨어가 아닌 스토리지 및 서버 OS 환경을 사용할 수 있는 플랫폼
02. 서버 가상화
- 클라우드의 핵심 기술
- 하나의 서버에서 여러 개의 CPU와 OS 등을 논리적으로 구성하는 기술
- 가상 머신(Virtual Machine)이라는 것을 이용
- 한 컴퓨터에서 여러 개의 OS를 운용할 때 사용
- 서버에 적용하면 한 대의 서버에서 여러 개의 OS를 실행 할 수 있음
- 각각 독립된 서버, 용도에 맞게 전용 서버를 구성할 수 있음
- 데이터 센터의 호스팅(임대 서버)를 이용하면 사용자는 서버에 할당하는 비용을 절감 및 효율화 가능
- 클라우드 원형
- 컴퓨팅 환경을 최대한 활용하도록 설계된 애플리케이션과 시스템 의미
- 가상화 종류
- 호스트 OS형: 하드웨어에 설치된 OS(호스트 OS)에 가상 머신을 설치하여 여러 OS(게스트 OS)를 실행
- 하이퍼바이저형: 하드웨어에 호스트 OS가 필요 없고, 그 대신 하이퍼바이저를 설치해서 여러 가상 머신을 실행
03. 분산 기술
- 중앙 집중형과 분산형의 차이
- 컴퓨터 네트워크에서는 연결 유형과 관리 유형으로 네트워크를 분류
- 관리 중앙형은 중앙 집중형과 분산형으로 나눌 수 있음
- 중앙 집중형: 전체 네트워크 트래픽을 단일 지점에서 관리, 제어가 쉽고 관리가 간편, 관리 호스트가 다운되면 전체 네트워크가 다운, 네트워크의 확장성과 유연성이 제한
- 분산형: 네트워크 전체를 중앙에서 관리하는 주체가 존재하지 않음, 각 노드(호스트 또는 라우터)는 각각 자율적으로 데이터 통신 및 패킷 교환을 수행, 개별 호스트 또는 회선이 다운되어도 네트워크 전체의 가동은 멈추지 않음, 확장성과 유연성이 높아짐, 통신을 위한 제어가 복잡해직 트래픽도 혼잡
- 인터넷에서 활용되는 분산 기술: DNS(전 세계 도메인 이름과 IP 주소 대응표를 관리하는 분산 데이터베이스), CDN PtP, 클라우드 컴퓨팅
- 대규모 클라우드 서비스: 필요한 서버 리소스를 전 세계 데이터 센터로 분산
04. IaaS/PaaS/SaaS/DaaS
- 클라우드가 제공하는 서비스를 이용 형태에 따라 나눌 수 있음
- IaaS(Infrastructure as a Service)
- 클라우드 서비스에서 가상 서버를 이용할 때 하드웨어(서버)의 기본 구성을 지정하는 이용 형태
- 일반적인 사양부터 머신러닝, 시뮬레이션 등에 사용되는 클러스터 구성까지 선택 가능
- 직접 준비: 운영 관리 + 애플리케이션 + 미들 웨어
- PaaS(Platform as a Service)
- IaaS에서 지정하는 요소에 데이터베이스, 개발 환경 등 미들 웨어라고 하는 시스템 애플리케이션까지 포함하는 형태
- 직접 준비: 운영 관리 + 애플리케이션
- SaaS(Software as a Service)
- IaaS와 PaaS의 구성 요소가 아닌 애플리케이션이나 기능만 이용하는 형태
- 직접 준비: 운영 관리
- ASP(Application Service Provider)
- 웹 서버나 웹 브라우저의 기능을 이용하여 계약자에게 클라우드를 통해 애플리케이션을 사용할 수 있는 환경을 제공하는 것을 의미
- 공통점: 소프트웨어를 자시느이 컴퓨터나 서버에 설치하는 것이 아닌 필요한 기능을 인터넷에서 사용한다는 점
- 차이점: SaaS는 클라우드의 명칭이나 이용 형태를 나타냄, ASP는 SaaS를 제공하느 사업자나 비즈니스를 나타낸다는 것
- DaaS(Desktop as a Service)
- 클라이언트 단말기의 OS를 SaaS처럼 이용하는 형태
- 사용자 환경은 클라우드에 구축되므로 연결하는 단말기가 변경되어도 같은 컴퓨터의 데스크탑에서 작업할 수 있음
- 직접 준비: 운영 관리 + 원격 접속
- 호스팅
- 직접 준비: 운영 관리 + 애플리케이션 + 미들 웨어 + OS
- 하우징
- 직접 준비: 운영 관리 + 애플리케이션 + 미들 웨어 + OS + 하드웨어
05. 클라우드 컴퓨팅 / 온프레미스
- 클라우드(클라우드 컴퓨팅)과 대응되는 용어: 온프레스미
- 온프레미스
- 서버 등을 직접 소유하고 직접 관리하는 시설 내에서 운영하는 것을 의미 (물리적인 소유)
- 처음 도입 할 때 초기 비용 필요, 이후 운영 시 관리나 보수 비용
- 클라우드는 물리적인 리소스를 소유하지 않고 인터넷에서 이용하는 형태, 월 이용료로만 운영 가능
- 시스템 변경이나 보안 대책의 특징
- 온프레미스: 업무 시스템을 변경하거나 확장하려면 물리적으로 하드웨어나 소프트웨어를 교체, 보안 대책은 직접 시행
- 클라우드: 관리 화면 조작으로 즉시 가상 서버를 추가하거나 제거 가능, 네트워크 혼잡에 따라 시간 설정으로 자동화 가능, 기본적인 보안 대책은 이용료에 포함, 다만 인터넷을 이용하기 때문에 고도의 보안은 보장할 수 없음
06. 에지 컴퓨팅
- 업무 핵심이 되는 시스템이나 데이터베이스 등이 클라우드 측 서버에 집중
- 클라이언트-서버 형태로 역할을 분담하므로 복잡한 업무도 효율적으로 처리 가능
- 문제점
- IoT에서는 인터넷에 연결되는 단말기가 특정한 기능에 특화되어 있어 범용적인 처리에 약함
- 그래서 단말기의 다양화나 IoT 보급 등이 진행되면서 서버 부하가 증가
- 인터넷으로 전송되므로 응답 시간(레이턴시) 지연이 문제가 됨
- 레이턴시: 처리를 요구하고 나서 처리 결과가 돌아올 때까지 필요한 응답 시간을 의미
- 실시간성이 중요한 IoT 기기에서는 네트워크 지연이 있으면 기능을 충분히 활용할 수없음
- 에지 컴퓨팅을 이용한 부하 해소
- 에지 컴퓨팅: 단말기 측 또는 단말기에 가까운 위치에 서버를 분한 배치하는 기술
- 전처리 담당을 하는 서버를 인터넷의 엣지 부분에 배치함으로써 서버의 부하나 응답 시간 지연 등을 해소
- 기지국 등에 에지 서버를 배치해서 실시간 처리 및 서버나 인터넷 트래픽의 부하 해소에 대처
07. 컨테이너
- 컨테이너
- 클라우드를 구성하는 기술인 서버 가상화와 유사한 기술
- 하나의 OS상에 여러 애플리케이션의 동작 환경을 가상으로 구축하는 기술
- 클라우드(호스트 OS형, 하이퍼바이저형): 게스트 OS가 포함된 가상 머신 생성
- 컨테이너: 게스트 OS를 제외하고 애플리케이션과 동작 환경을 컨테이너 엔진이 가상화해서 실행
- 가상화된 애플리케이션 및 동작 환경 하나하나: 컨테이너
- 호스트 OS의 기능만 수행하므로 동작이 가볍고 컨테이너를 교환하면서 유연한 환경을 구축할 수 있다는 특징
- 독립적으로 수행하므로 다른 컨테이너에 직접 액세스 할 수 없음
- 컨테이너 사이의 통신은 컨테이너 엔진이 제공하는 가상 네트워크 브리지 이용
- 도커와 쿠버네티스를 활용함 컨테이너
- 컨테이너 엔진의 대표: 도커
- 애플리케이션과 동작 환경이 패키지화된 도커 이미지가 많이 준비되어 있어 손쉽게 애플리케이션의 동작 환경을 구성할 수 있음
- 물리적인 서버가 분리되어 있어도 같은 운영체제라면 네트워크를 이용해서 하나의 시스템으로 관리하는 상호 연결이 가능
- 네트워크를 이용해서 여러 개의 컨테이너(도커)를 관리하는것: 쿠버네티스
- 오픈 소스 소프트웨어
- 컨테이너 관리를 자동화
- 둘을 이용하면 웹 기반 마이크로서비스를 구현하기 쉬움
- 컨테이너 엔진의 대표: 도커
08. 마이크로서비스
- 애플리케이션을 개발하는 기법 중 하나
- 애플리케이션을 하나의 소프트웨어로 구축(일체형 또는 모놀리스)하는 대신 기능 별로 모듈을 개발하고 이들을 연계/조합해서 하나의 애플리케이션을 구축
- 각 요소가 서버처럼 독립되어 있고 통신을 해서 기능이나 데이터를 교환
- 이러한 개발 기법은 서비스 지향 아키텍처(SOA)로서 이전부터 존재
- 이전에는 네트워크나 하드웨어 등 성능이 충분하지 않았고 서버 가상화 기술도 발달되지 않아 보급이 용이하지 않았음
- 컨테이너 개발 기법으로서 마이크로서비스
- 현재는 네트워크 인프라의 정비, 하드웨어 기술의 발전, 서버 가상화 및 컨테이너 기술 등의 보급으로 마이크로서비스를 구현하기 쉬워짐
- HTTPS나 REST API를 이용해서 애플리케이션 및 서비스를 구현할 때 적용, 도커 등 컨테이너 엔진을 쿠버네티스로 관리하는 기법에서도 개념이 적용
- 데브옵스(DevOps): 클라우드 서비스 상의 가상 서버를 컨테이너로 구성함으로써 애플리케이션에 필요한 기능을 가상화로 캡슐화하고 쿠버네티스가 관리를 자동화 하는 개발 기법
- 웹 서비스 등 기능 개선과 릴리스에 신속한 대응이 요구되는 시스템에서 개발과 운영이 밀접하게 연계되어 기능 개발/도입/업데이트 등을 효율적으로 수행하는 방법
- 반대되는 개념: 모놀리스형: 하나의 소프트웨어로 애플리케이션을 구축
09. AWS(Amazon Web Services)
- 아마존이 관리하는 데이터센터들(리전 26개 + 가용 영역 84개)
- 모두 가상화 되어 있으며, 사용자가 지정하지 않는 한 자신의 가상 서버가 어디에 어떻게 구축되어 있는 지 알 수 없음
- 사용자에게는 가상화된 서버 공간에 VPC(Virtual Private Cloud)라는 인트라넷에 해당하는 전용 공간이 할당
- 이 공간은 일반적으로 동일 AZ(가용 영역)에 구축되며 사용자 서버는 VPC 내에 EC2로서 구축, 이와 같은 가상 서버를 인스턴스라고 지칭
- AWS가 제공하는 기능
- 가상 서버(EC2)와 가상 스토리지(S3)를 클라우드로 제공하는 서비스에서 시작
- 현재는 IT 환경의 모든 것을 구축할 수 있도록 계정 인정 매커니즘, 데이터베이스, CDN과 로드밸런서, DNS 서비스, 정용 회선, 온프레미스 연결 서비스, 게이트웨이 기능 등을 제공
- 로드밸런서: 웹 사이트 접속이 집중되거나 부하가 과중될 때 대응하는 프록시 서버, 프록시는 서버 그룹의 전달에서 트래픽이 들어오고 나가는 것을 담당해서 처리하는 역할, 로드밸런서는 외부에서 액세스를 여러 서버로 나누어 부하를 분산
- 사용자에게는 AWS 설정 및 관리 뿐만 아니라 미들웨어 및 애플리케이션 개발에 필요한 기능이 마켓플레이스의 메뉴로서 준비되어 있음
- AI 이미지 인식이나 딥러닝 등과 관련된 요구에도 대응
10. 마이크로소프트 애저(Microsofrt Azure)
- AWS와 마찬가지로 가상화 기술을 활용한 클라우드 플랫폼
- AWS와 동등한 기능이나 서비스를 갖추고 있고 가상 서버를 가상 네트워크로 연결하는 기능도 존재, 하지만 마이크로소프트애저 쪽이 IaaS나 PaaS를 고려한 클라우드로 구성
- 마이크로소프트 애저: 서버 인스턴스(가상 서버의 단위): 하드웨어와 OS의 세트
- 마이크로소프트 애저의 기본 서비스
- 컴퓨팅
- Azure에서 애플리케이션을 실행하고 프로세싱 작업을 처리하는데 사용되는 서비스
- 예시:
- Azure Virtual Machines: 가상 서버를 생성하고 관리
- Azure App Service: 웹 애플리케이션, API, 모바일 앱을 위한 관리형 호스팅 서비스
- Azure Functions: 서버리스 컴퓨팅 서비스, 코드 실행만 관리
- 데이터
- 데이터를 저장/관리/분석하는 데 이용
- 예시:
- Azure Sql Database: 관계형 데이터베이스 관리 서비스(PaaS)
- Azure Cosmos DB: 분산형 NoSQL 데이터베이스
- 애플리케이션
- 개발자들이 애플리케이션을 설계/배포/관리할 수 있게 도움
- 예시:
- Azure App Service: 웹 애플리케이션 및 API 개발/배포
- Azure Logic Apps: 워크플로 자동화를 위한 서비스
- 네트워크
- 리소스를 연결하고 트래픽을 관리하며 보안을 제공
- 예시:
- Azure Virtual Network(Vnet): 클라우드 내에서 가상 네트워크 생성 및 관리
- Azure Content Delivery Network (CDN): 콘텐츠를 전세계적으로 빠르게 배포
- Azure Load Balancer: 크래픽을 여러 서버로 분산 처
- 컴퓨팅
'CS 상식 - 네트워크' 카테고리의 다른 글
[CS 상식 - 네트워크] 스터디 정리 4 (4) | 2025.01.24 |
---|---|
[CS 상식 - 네트워크] 스터디 정리 3 (1) | 2025.01.23 |
[CS 상식 - 네트워크] 스터디 정리 1 (5) | 2025.01.23 |
[CS 상식 - 네트워크] VLAN과 SDN (0) | 2025.01.17 |
[CS 상식 - 네트워크] CSMA/CD와 CSMA/CA (0) | 2025.01.16 |