• CPU, 메모리, 스토리지 같은 하드웨어 자원을 소프트웨어로 논리적으로 나누어 사용
• 가상 CPU의 성능과 메모리 용량을 사용 용도와 시스템 규모에 맞게 선택
• 클라우드 서비스를 구성하는 가장 기본 요소 → 시간 단위로 과금
• 하드웨어 리소스를 논리적으로 구성
• 물리 서버 한 대의 리소스를 여러 개의 가상 서버로 나누거나
• 다수의 물리 서버의 리소스를 한 대의 가상 서버로 통합해서 사용
• 가상서버는 하드웨어를 에뮬레이션하기 때문에,
가상화 하지 않은 서버(베어메탈 서버)에 비해 성능이 떨어짐
• 가상 서버를 이중화 하거나 부하 분산
• 오토스케일링
• 접속량 및 통신량에 따라 가상 서버의 개수를 자동으로 늘리거나 줄임
• 리전(Region) : 지리적으로 떨어진 독립된 지역 (예) 서울, 도쿄, 미국 등
• 존(Zone) : 같은 지역 내의 독립적인(빌딩 등 물리적으로 격리된) 지역
• L4 : 전송계층(Transport Layer)에서 동작, IP/Port 기반으로 트래픽 분산
• L7 : 응용계층(Application Layer)에서 동작, 웹 어플리케이션에 따라 트래픽 분산
• 라운드 로빈 : 트래픽을 순서대로 배분
• 가중 라운드 로빈 : 각 서버에 가중치를 부여하여 가중치 높은 서버에 우선 배분
• 최소 연결 : 현재 연결되어 있는 클라이언트 수가 적은 순으로 배분
• 최소 응답시간 : 가장 빠른 응답시간을 가진 서버에 배분
• 최소 부하 : 서버들의 현재 부하 상태를 고려해 가장 적은 부하를 가진 서버에 배분
• 데이터, 콘텐츠 아카이브(보관), 백업(보호), 파일 서버의 사용, 시스템의 재해 대책(DisasterRecovery) 등 다양한 용도로 사용
• 가상화 방식과 다르게 하드웨어의 모든 성능을 사용할 수 있는 서버
• 즉, 하나의 물리적 하드웨어에 하나의 서버가 설치되는 것
• 높은 성능이 필요한 경우 사용
-가용성이 높다 = 언제든 쓸 수 있음
-가용성 낮다 = 특정 상황에서만 사용 가능
• 시시각각 변하는 부하에 즉각 대응 및 효율적 운영
• 서비스 성능 및 가용성 보장
• 초기 구축 시 서버 사양을 적게 시작하여 비용 절감
• 스케일 업/다운 : 서버의 CPU, 메모리 등을 업그레이드, 다운그레이드 방식(예) DB
• 스케일 인/아웃 : 동일 규격 서버의 수량을 증감하여 부하 분산하는 방식
• 수동 혹은 사용자 설정 시간(매주, 매월 등)에 자동으로 백업 수행
• 천재지변, 테러 등으로 서비스 중단 시 데이터를 보존하고 자동 복구하는 대책
• 재해 복구 수준에 따라
• 미러 사이트(즉시), 핫 사이트(24시간 이내 복구), 웜 사이트(일/주), 콜드 사이트(주/달)
• 자연 재해, 테러 등으로 자산이 손상되더라도 피해를 최소화하고, 사업 활동을 재개할 수
있는 수단과 방법을 계획하는 것
• 서버 및 데이터베이스 스냅샷을 백업 사이트에 저장 → 복구 시 활용
• (예) 하이브리드 클라우드(온프레미스 + 클라우드)로 백업 체제 구축
S3(Amazon Simple Storage Service)
-데이터를 파일 단위로 저장/검색/삭제 하는 저장소
-뛰어난 견고성, 내구성 보장으로 데이터의 영구적인 저장에 적합
-사용한 용량 만큼 요금 부과
Amazon S3 Glacier : 빈번하게 읽을 필요가 없는 장기 보존용 데이터
EBS(Amazon Elastic Block Store) : 엄격한 응답이 요구되는 DB 용도
EFS(Amazon Elastic File System) : 기업의 파일 서버로 사용
-가상 네트워크를 만들어, 개인 클라우드처럼 사용할 수 있는 서비스
-임의의 사설 IP 주소 설정(10.0.0.0/16) ▶ 여기서 16은 16비트를 의미
-서브넷에 가상 서버(인스턴스) 배치
-통신 사업자의 VPN 망 직접 연결
-VPN 게이트웨이와 IPsec 암호화 통신
-필터링을 통한 통신 차단(방화벽 기능)
-보안 그룹 정책
| Amazon RDS | Amazon DynamoDB |
|---|---|
| - RDBMS(관계형 데이터베이스 서비스) | - NoSQL 서비스 |
| - MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server, Aurora, MariaDB 등 6종의 데이터베이스 엔진 지원 | - 비관계형, 빠르고 가용성이 높음 |
| - 데이터베이스 용량을 자동 확장 가능 |
| Amazon ElastiCache | Amazon Redshift |
|---|---|
| - 인 메모리 캐시 서비스 | - 데이터웨어하우스 서비스 |
| - 데이터베이스에 전송한 쿼리의 결과를 캐시하는 용도로 사용 하여, 웹 시스템의 고속화를 실현 | - 분석용 데이터 처리에 특화 |
| - 캐시 엔진으로는 Memcached, Redis를 지원 | - 페타바이트급의 데이터를 처리할 수 있음 |
| - 빠른 속도와 빈틈없는 관리 |
• 온프레미스 시스템과의 호환성을 위해 기존 시스템을 변경하지 않고 그대로 들어서
클라우드로 옮기고(Lift), 수시로 클라우드에 최적화(Shift) 하는 전략
• 온프레미스 시스템을 클라우드 서비스로 이전할 때, 애플리케이션 단위는 쉬우나 시스템은 구성이 바뀌어야 하는 문제 발생
• 대부분 기업에서 VMware를 활용함에 따라 클라우드 사업자가 호환 서비스 제공하고 있음
•VMware Cloud on AWS
•VMware on IBM Cloud
| 개념 | 설명 |
|---|---|
| 클라우드 네이티브 시프트 | 클라우드의 기능을 전제로 시스템을 쇄신하고, 클라우드 환경에 맞춘 개발 및 운영 방식을 채택 |
| 기존 IT 시스템과 클라우드 네이티브의 공존 | 기존 온프레미스 시스템을 클라우드로 마이그레이션하고 일부 클라우드 기능을 채택하여 표준화 및 자동화 도모 |
| 리프트 앤 시프트 | 시스템 구성을 거의 바꾸지 않고 온프레미스 시스템을 클라우드로 전환하며, 필요할 때 개선 (VMware가 이 방식을 많이 지원) |
| 애플리케이션 단위의 시프트 | 전체 시스템에 영향을 적게 미치는 애플리케이션만 클라우드로 옮기며, 점진적으로 클라우드로 전환 |
- BigQuery : 대용량 데이터를 빠르게 분석할 수 있는 데이터웨어하우스 서비스
- Cloud Data flow : 배치 데이터와 스트리밍 데이터를 실시간으로 취득/변환/분석/분류
- Cloud Dataprep : 분석용 데이터를 간단하게 가공
- AWS IoT SiteWise : 수집
- Amazon Timestream : 시계열 데이터베이스 저장
- AWS IoT Events : 이상 감지 등 모니터링
- 라이브러리를 이용해 사용자 스스로 기계학습 진행
- 미리 대량의 데이터로 학습한 모델을 제공
→ 클라우드 사업자의 노하우를 모방하여, 안전하고 효과적인 클라우드 환경을 빠르
게 구축
• 로드 밸런서와 오토 스케일 기능으로 시스템을 확장할 수 있도록 만듦
• 하나의 존에서 장애가 발생하더라도 문제가 없도록 멀티 존으로 구성
• 서버 등의 다운을 모니터링하고 자동으로 복구하도록 구성
• 시스템을 자동으로 복사하여, 백업할 수 있도록 함
• API를 통해 다른 서비스와 연계시키는 환경을 유지
• 온프레미스 및 기타 클라우드 서비스로 이전할 가능성도 고려함
• 서버의 이용 증가
• 여러 개의 클라우드 서비스 이용
• 서버 환경 구축의 자동화
• 여러 클라우드의 통합 관리
• 구성 관리 : 서버, 네트워크 등의 구성 및 관리 기능
• 성능 관리 : 시스템 및 서버 환경의 CPU, 메모리 등 모니터링
• 운영 관리 : 정기적인 작업(백업, 리소스 모니터링 등)을 운영, 관리
• 멀티 클라우드 관리 : 클라우드 서비스 별 통합 관리
• 사용자 관리 : 소속 및 직위에 따른 접근 권한 설정
• 하드웨어 리소스(CPU, 메모리, 스토리지)를 논리적으로 다루는 기술
• 서버 가상화, 네트워크 가상화, 스토리지 가상화
• 물리 서버 하나의 라소스를 여러 개의 서버 환경으로 할당 → 각각 OS 및 app 실행
• 물리 서버 수를 줄여 공간 절약 및 비용 절감
• 가상 서버 중 하나가 장애(바이러스 등)가 발생하더라도 다른 가상 서버에 영향 X


| 장점 | 장점 |
|---|---|
| - 가상 서버마다 OS 선택 가능 - 가상 서버들이 완전히 분리 - 하나의 가상 서버가 사이버 공격을 받 아도 다른 가상 서버에게 피해가 미치지 못함 | - 다른 컨테이너에 복사하거나 마이그레이션 하기 쉽다 - 가상화 환경 위에서 별도의 OS를 동작시킬 필요가 없어 하드웨어 리소스 적고 부팅이 빠름 |
| 단점 | 단점 |
|---|---|
| - 가상 서버마다 OS가 필요하므로 CPU, 메모리, 스토리지 등의 하드웨어 리소스 사용량 많음 - 가상 서버의 부팅 시간이 많이 걸림 | - 호스트 OS와 컨테이너는 커널을 공유 (Linux 커널에서 window 컨테이너 동작 불가능) - 하나의 호스트 OS가 여러 개의 컨테이너를 동작시키므로 한 컨테이너가 사이버 공격을 받으면 다른 컨테이너도 위험에 노출 |
• 일정한 크기의 블록으로 나뉜 스토리지의 논리 볼륨을 블록 단위로 액세스
• 서버, 스토리지 간 데이터 교환의 오버헤드가 적어 빠른 데이터 전송 가능
• 낮은 레이터시가 요구되는 데이터베이스로 사용
• 파일 그대로 읽고 쓸 수 있으며, 공유할 수 있는 스토리지
• SMB, NFS, NAS
• 데이터를 오브젝트(객체) 단위로 처리
• 오브젝트는 데이터 및 메타 데이터로 구성되며, 고유한 ID(URI)가 부여됨
• 대규모 비정형 데이터에 낮은 빈도로 접근하는 환경에서 사용
• HTTP 프로토콜 기반의 REST 형식의 API 사용
※ REST API : 명시된 자원(URI)에 대해 CRUD를 적용(POST(생성)/GET(조회)/PUT(수정)/DELETE(삭제))
• 하나의 물리적인 네트워크를 여러 개의 논리적인 네트워크로 분할하는 기술
• 물리적 배선을 변경하지 않고, 설정을 통해 네트워크를 나눔
• 논리적으로 분할된 네트워크들은 라우터를 거치지 않으면 통신 안됨
• 클라우드 서비스와 데이터 센터 사이에 VLAN 구축을 통해 프라이빗 환경 구축
• 가상으로 전용선과 같은 사설망을 연결하는 기술
• 암호화와 인증을 추가한 IPsec 프로토콜 사용
• 네트워크 기능을 소프트웨어 구현하여 가상 서버 위에 구축하는 기술
• 네트워크 장비(라우터, 게이트웨이, 방화벽, 로드 밸런서 등)의 기능을 소프트웨어로 구현
• 네트워크 장비의 수요 및 구성 변경 등에도 유연하게 대응
But, 네트워크는 기존과 같은 방식으로 하드웨어 별 운영/관리되고 있는 실정
• 통신의 전송기능(데이터 플레인)과 제어 기능(컨트롤 플레인)을 분리
• 제어 기능을 컨트롤러에 할당하고 데이터의 흐름을 소프트웨어로 정의함
• 네트워크 가동 상황/운영에 맞추어 소프트웨어로 유연하게 데이터 전송 경로를 변경
• 여러 개의 데이터를 행과 열이 있는 표 형식으로 표현
• 복잡한 데이터의 관계를 처리할 수 있도록 만든 데이터베이스
• Oracle Database, MySQL, Microsoft SQL Server, PostgreSQL
• 일부 서버가 장애가 발생해도 나머지 서버에서 자동으로 작업을 할당해 작업 수행
• 1대의 마스터 서버가 여러 개의 슬레이브 서버를 관리
• 마스터 서버 : 제어, 슬레이브 서버 : 연산
• 처리 능력은 슬레이브 서버의 대수에 비례(데이터 처리 양)
• 메모리 안에서 대용량 데이터의 병렬 분산 처리 실행
• 메모리 안에서 실행하므로 속도가 매우 빠름
• 대용량 데이터 처리는 적합하지 않음
• 기계학습과 같은 데이터를 반복하는 고급 데이터 분석 수행에 적합
• 서버를 말단 디바이스에 가까운 영역에 분산 배치하여 데이터를 처리
• 클라우드 컴퓨팅은 서버를 한곳에 모아 집중처리
But, 엣지 컴퓨팅은 말단에서 분산 처리
• 디지털 데이터의 폭발적 증가와 낮은 지연(실시간)이 요구되는 애플리케이션 증가
• 실시간 데이터 처리와 높은 신뢰성 보장
• 디바이스 고도화/소형화/저전력화/비용 절감에 따른 엣지 컴퓨팅 보급 가속화
• CPU/GPU 탑재된 엣지 컴퓨팅 디바이스 등장
• 데이터를 클라우드에서 처리할 경우 문제점
• 통신 데이터 증가에 따른 네트워크 대역폭을 많이 소모
• 회선 이용료 등의 비용 증가
• 클라우드 서버와 거리가 멀 경우 응답 시간이 지연
• 네트워크 장애로 데이터 처리 불가한 경우 있음
• (보안 정책이나 국가 및 지역의 사정에 따라) 클라우드로 데이터 전송 불가할 수 있음
• 서버, 네트워크, 스토리지, 소프트웨어(하이퍼바이저 및 운영 관리 도구) 등을 하나의
패키지에 통합한 제품
• 제조사가 사전에 호환성 검증 및 최적화된 구성으로 출하
• 정형화된 구축 방법이 문서화 되어 있어 단기간에 안정적인 운용 가능
• 하나의 패키지이므로 문의 창구가 일원화
• 클라우드 서비스의 기본 기능을 패키지로 제공하는 제품
• 소프트웨어(가상화) 기반의 서버, 네트워크, 스토리지 등의 구성요소가 통합
• 인프라는 서버, 네트워크, 스토리지를 모듈 단위로 구성
• 소프트웨어로 전체 시스템의 구성 설정 및 구성 방법 변경
• 하나의 벤더로 부터 지원 받아 전체를 하나의 시스템으로 관리

• 지진, 해일 등 자연 재해 위험 적은 곳
• 지반이 딱딱한 장소
• 대규모 지진에 대비한 내진 설계
• 출입 관리 엄격
• 냉난방 시설, 전력 및 통신 다중화
• 전기 요금 증가 및 에너지 절약을 위해 자연 환경 적극 활용
• https://datacenters.microsoft.com/globe/explore/datacenter/
• 하나의 애플리케이션을 작은 서비스의 집합체로 구축하며, API로 연계
• 클라우드 사업자는 서버, 스토리지, DB, 네트워크 등 독립적인 컴포넌트를
제공하지만 서로 느슨한 결합을 통해 전체 기능을 구현
• MSA로 구성된 각 컴포넌트를 조합하고, 클라우드 사업자가 모두 관리하는 경우
사용자는 서버의 존재를 의식하지 않은 상태에서 애플리케이션을 동작할 수 있음
| 장점 | 단점 |
|---|---|
| • 실제 사용량에 대해서만 비용 청구 | • 서버가 항상 대기하고 있지 않아 IaaS, PaaS 보다 느림 |
| • 인프라에 신경 쓸 필요 없음 | • 애플리케이션의 구조 자체를 바꿔야 해 다른 플랫폼으로 이전이 어려움 (예: AWS → Google Cloud로 이전) |
| • 요청이 들어올 때만 실행 | • 단순 작업은 적합하나 긴 시간을 요하는 작업은 비효율 |
| • 동적으로 자원을 할당해 가용성 높음 | • 함수 호출 시 사용할 수 있는 메모리 및 시간 제한 |
• 이벤트에 따라 동작하는 함수로 구성
• 작성한 코드를 서버리스 서버에 업로드하면, 서버는 업로드한 코드를 함수 단위로 쪼갬
• 요청이 들어오면 서버가 대기상태로 두었던 함수를 실행
• 작업을 마치면 다시 대기 상태로 만듦
• 비용은 함수 호출 횟수, 걸리는 시간에 따라 청구
• AWS Lambda, MS Azure Function, Google Cloud Function
• 백엔드 개발에 필요한 여러 기능을 API로 제공하는 서비스
• SNS 연동, DB와 같이 백엔드에 필요한 기능을 API로 기능을 구현할 수 있게 해 줌
• 클라우드 사업자가 백엔드 개발 환경을 제공한다는 의미
• 복잡한 백엔드 기능을 개발자가 직접 개발하지 않고, 클라우드 사업자의 서비스를
이용해 쉽고 안정적으로 구현
• Google Firebase
• 전체 시스템 구조 파악 문제
• 빌드 시간 및 테스트, 배포 시간의 급증
• 서비스의 특정 부분만 Scale-out하기 어려움
• 부분 장애가 전체 서비스의 장애로 이어짐
• 배포: 서비스 별 개별 배포 가능
• 확장성: 특정 서비스에 대해 Scale-out 가능
• 장애 해결: 부분 장애에 대해 격리해서 확장 되지 않음
• 서비스 간 API 호출 시 통신 비용이나 레이턴시 이슈
• 서비스가 분리되어 있어 테스트 등 복잡도 증가
• 데이터가 분산되어 있어 조회 및 관리 어려움
• 클라우드 인프라 제공
• 자체 데이터 센터에서 가상화한 서버, 네트워크, 스토리지 등을 제공
• CSP와 고객을 연결하는 역할
• 클라우드 도입에 필요한 컨설팅, 아키텍처 구축, 모니터링, 보안 등 제공
• 국내 업체: 삼성 SDS, SK C&C, LG CNS 등
비용절감, 비즈니스 연속성 수행
• CPU, 메모리, IO 등과 같은 실제 서버의 자원을 할당해주고 운영할 수 있게 제공해 주는 것
• OS를 서버에 설치하고 구성 작업을 해서 사용할 수 있도록 제공하는 것
• WAS, DBMS 등의 소프트웨어를 설치하고 세팅하여 실행할 수 있도록 제공하는 것
• 데이터를 저장하고 관리할 수 있는 스토리지를 제공하는 것
• 클라우드에서는 스토리지 종류와 용도에 따라 다양한 방식으로 제공됨
• 접근 권한을 가진 계정을 제공해 주는 것
• 클라우드에서 관리자가 변경될 경우 권한의 인계를 계정 프로비저닝을 통해 진행함
• Elastic Computing(cf. AWS의 EC2)
• 피크 사용에 대한 용량 계획 및 엔지니어링에 대한 걱정 없이 변화하는
요구사항을 충족하도록 컴퓨터 자원을 신속히 확장/축소하는 기능
• 일반적으로, 시스템 모니터링 도구로 제어
• 진행중인 작업을 중단시키지 않고 실제로 필요한 리소스 양에 따라 자동 조절
→ 불필요한 속도 저하, 서비스 중단을 피함
• 회사가 사용하지 않는 용량이나 유휴 리소스에 대한 비용 절감
협업 강조
지속적인 통합(CI)
• 개발자들이 자주(하루 한번이상) 코드를 공유 리포지토리에 병합하는 프로세스, 이를 통해 코드 변경 사항의 충돌을 최소화 하고, 문제를 빠르게 발견, 해결함
지속적인 배포(CD)
• 개발된 소프트웨어를 자동으로 프로덕션 환경으로 배포하는 프로세스, 신규 버전의
애플리케이션을 사용자에게 빠르게 제공할 수 있음
자동화
• 테스트, 배포, 모니터링 등과 같은 반복적인 작업을 자동화하여 시간 절약 및 오류를 줄임
협업과 공유
• 개발자와 운영팀 간의 긴밀한 협업과 서로의 작업에 대해 이해하여 전체 소프트웨어 개발, 배포 프로세스 개선
• 마이크로서비스 아키텍처(MSA)
• 컨테이너 기술
• 데브옵스(DevOps)
• 지속적인 통합과 지속적인 배포(CI/CD)
• 사용자가 아는 것 : ID+PW와 같이 사용자만 알고 있는 것
• 사용자가 갖고 있는 것: 물리적 토큰(전자 열쇠, USB, 스마트폰 등)
• 사용자 자신: 신체 속성(지문, 망막 등)