728x90

내일 시험 객관식 10문제, 실기 문제 1문제(heroku app만들고 github 예제, node.js 만들기)

 


Chapter 2. 클라우드 서비스와 그 이용법

 

융복합 프로젝트 -> IaaS(구축+개발)

 

 

  1. 클라우드가 제공하는 다양한 서비스

Bare Metal(물리적 서버), 가상 서버, 로드 밸런서

  • 2장에서는 주로 IaaS/PaaS로 제공되는 클라우드 서비스에 대하여 설명합니다. 클라우드 서비스로는 가상 서버, 스토리지, 네트워크, 데이터베이스 같은 다양 한 기능을 이용할 수 있습니다. 사업자별로 다소 차이가 있지만, 이러한 서비스 들은 대부분의 클라우드 사업자들이 제공하고 있습니다. 이 장에서는 클라우드 서비스들의 기본적인 기능에 관하여 설명합니다.

  • 가장 기본적인 클라우드 서비스로는 가상 서버가 있습니다. 가상 서버는 물리적 서버의 CPU와 메모리, 스토리지 같은 하드웨어 자원을 소프트웨어로 논리적으 로 나누어 사용하는 것입니다. 생성된 가상 서버는 실제 서버와 마찬가지로, OS 및 애플리케이션을 동작시킬 수 있습니다. 가상 서버에 할당되는 가상 CPU의 성능과 메모리 용량을 사용 용도와 시스템의 규모에 맞게 선택할 수 있습니다.

  • 가상 서버는 클라우드 서비스가 제공하는 로드 밸런스 기능을 사용하여 이중화 및 부하 분산이 가능합니다. 또한, 가상 서버에 접속이 집중될 때 통신량에 따라 자동으로 가상 서버의 대수를 늘리거나 줄일 수 있습니다(오토 스케일).

  • 스토리지 서비스는 가상 서버와 함께 자주 이용하는 서비스입니다. 데이터, 콘 텐츠 아카이브(보관), 백업(보호), 파일 서버의 사용, 시스템의 재해 대책 (Disaster Recovery)등 다양한 용도로 사용됩니다.

  • 클라우드 서비스에 접속할 때에는 인터넷을 이용할 수 있습니다. 또한, 높은 수 준의 보안이 요구되는 경우에는 VPN 망이나 전용선 등 높은 보안 수준의 네트 워크 서비스를 이용할수 있습니다.

  • 데이터베이스 서비스는 기업의 기간 시스템에 적합한 것부터 최근의 빅 데이 터 분석 및 IoT(Internet of Things)에 적합한 것까지 다양한 제품들이 제공되고 있으므로, 이용 목적에 따라 선택하여 활용할 수 있습니다.

  • 이상이 기본적인 서비스와 기능인데, 이 서비스들을 선택하여 조합하면 소규 모 시스템부터 대규모 시스템까지 구성할 수 있습니다. 다음 절부터는 기본 클 라우드 서비스 및 기능과 일부 시스템의 구축 사례를 소개하겠습니다.

 

 

    2. 가상 서버

  • 클라우드 서비스에 있어서 가장 기본적인 서비스가 ‘가상 서버’입니다. 대표적 인 서비스로 AWS(Amazon Web Services)가 제공하는 EC2(Elastic Compute Cloud)가 있습니다.

  • 가상 서버는 하나의 물리적 서버를 논리적으로 나누어, CPU나 메모리 등의 자 원을 할당한 것입니다. 각각의 가상 서버는 물리적 서버와 마찬가지로, 개별 OS나 애플리케이션을 동작시킬 수 있습니다. 그러나 하드웨어를 에뮬레이션 하기 때문에, 가상화하지 않은 서버에 비해 성능이 떨어집니다. 고성능이 요구 되는 경우, 클라우드 사업자에 따라서는 실제 서버(베어 메탈 서버)를 클라우 드 서비스로 제공하는 경우도 있습니다.

 

  • 가상 서버의 이용

  • 포털화면에서셀프서비스로가상서버를설정하면약몇분사이에사용할 수 있고, 중지, 재기동, 삭제 등도 손쉽게 포털 화면을 통해 제어할 수 있습니 다. 또한, 이용 상황에 따라 가상 서버의 자원을 유연하게 변경할 수 있습니다. 가상 서버의 서비스 플랜은 ‘가상 CPU가 2CPU, 메모리 용량이 4GB’ 처럼 가 상 CPU 의 성능 및 메모리 용량에 따라 가격이 정해져 있습니다.

 

  • 가상 서버의 이용 요금은 시간제 과금이 일반적입니다. 일본의 경우, 가상 서버 시작시에 1시간당 20엔, 정지 시에는 10엔과 같은 가격 체계가 적용됩니다. 시 간 과금과는 별도로 ‘2CPU에 메모리 용량이 4GB인 경우, 매월 요금 5,000엔’처 럼 월 정액제로 서비스를 제공하는 경우도 있습니다. 그 외에도, 가상 서버에 업 로드/다운로드하는 데이터 전송량에 따라 과금하는 사업자와 데이터 전송량을 무료로 제공하는 사업자가 있습니다.

  • 가상 서버에는, 시동 디스크로 루트 디스크가 할당됩니다. 필요에 따라 추가로 연결할 디스크를 선택합니다.

  • OS를 포함한 가상 서버의 소프트웨어 이미지 템플릿으로 사용할 수 있고, 그것 을 사용할 수 있습니다. 무료 OS로는 CentOS나 Ubuntu 등이 있으며, 유료 OS 로는 Microsoft Windows Server 등을 선택할 수 있습니다.

-Linux, Windows, MacOS

기본 20GB, 30~40GB까지 무료로 지원

 

 

**AWS-가상서버 만들기(리눅스-CLI)

  1. Amazon Machine Image(AMI) ->image : server가 가지고 있어야 할 정보들을 하나의 단일 파일로 만들어 놓은 것

1년간 프리티어 무료(월 720시간)

 

데미안 -우분투

레드햇 - CentOS

 

보안쉘(SSH)- port number :22

inbound 다른 곳에서 내 서버에 접속가능한지의 유무

 

code .\cloud-service.pem

ssh -i .\cloud-service ec2-user@54.209.11.22

node --version

python --version

yum install

free -h

top

exit

인스턴스 종료하면 다시 복구하기 힘듦

하루뒤에 요금이 charge됨

 

 

    3. 가상 서버에서 사용할 수 있는 옵션 기능

 

  • 클라우드 사업자는 가상 서버 운영에 도움을 주는 다양한 옵션 서비스를 제공하 고 있습니다. 이 절에서는 대표적인 기능을 설명합니다.

  • 로드 밸런서, 오토 스케일, 정기적인 스냅 샷

  • 대다수의클라우드서비스에서가상서버사용시‘리전’과‘존’을선택할수있 습니다. 리전(Region)이란, 예를 들어 서울 리전(서울), 동일본 리전(도쿄), 미국 리전 등의 지리적으로 떨어진 독립적인 지역을 뜻합니다. 존이란 같은 지역 내 의 독립적인 (빌딩 등 물리적으로 격리 된) 로케이션을 뜻합니다.

  • 예를 들어, A 지역에 메인 사이트, B 지역에 백업 사이트를 마련하여, 재해 대책 (Disaster Recovery)과 비즈니스 연속성 계획(Business Continuity Plan)을 실현 할 수 있습니다. 리전에는 서로 다른 로케이션의 존이 설치되어 있으므로, 복수 개의 존을 선택(멀티 존)하여 시스템의 이중화 및 부하의 분산처리가 가능합니 다.

 

 

  • 시스템의 이중화 및 부하 분산에는 로드 밸런서의 기능을 사용합니다. 로드 밸 런서는 외부의 접속을 통신 데이터양(예를 들어, 평균 동시 TCP 세션 수가 일정 한 임계 값을 초과하는 경우) 등의 조건에 따라 가상 서버에 전달합니다. 이렇 게 하면 통신의 부하를 분산하여 대량의 접속에도 대응할 수 있는 시스템을 손 쉽게 구축할 수 있습니다.

  • 오토스케일이란접속이집중되는때와같이외부의통신데이터양에따른부 하(예를 들어, 서버의 CPU 및 메모리 사용량이 일정 임계치를 초과하는 경우) 에 따라 자동으로 가상 서버의 대수를 증감시키는 기능입니다. 이에 따라, 접속 량이 돌발적으로 대량으로 증가할 때 서버의 대수를 늘려서 대응합니다. 그리 고 접속량이 줄어들면, 서버의 대수를 줄임으로써 불필요한 비용을 절약할 수 있습니다.

  • 정기적인 스냅샷(백업 기능)은 수동 또는 이용자가 설정한 시간(매주, 매월)에, 가상 서버 디스크의 백업을 자동으로 생성하여 복제할 수 있게 해 줍니다.

 

 

메인 서버가 downtime되면, stand-by상태의 가상 서버가 자동으로 메인 서버 역할을 담당

auto scaling, scale out(수직확장), scale up(수평확장), scale down(원상복귀)

 

로드 밸런서(부하 분산)

 

    4. 클라우드 스토리지 서비스

  • 클라우드 스토리지는 데이터 아카이브(보관) 및 백업(보호), 파일 서버, 재해 대 책(Disaster Recovery) 등의 용도로 이용되는 대표적인 서비스입니다. 최근에는 빅 데이터 분석 기반의 구축에도 많이 이용되는 추세입니다.

 

  • 다양한 스토리지 서비스

  • 스토리지 서비스의 예로서, AWS가 제공하는 S3(Amazon Simple Storage Service)가 있습니다. S3는 데이터를 파일 단위로 저장, 검색, 삭제하는 스토리 지이며, ‘객체 스토리지’ 라고 부릅니다. 많은 클라우드 사업자가 S3와 비슷한 규모의 스토리지 서비스를 제공하고 있으며, 여러 개의 데이터 센터에 데이터를 분산 저장함으로써 데이터 손실을 막아줍니다.

  • 1년 동안 99.999999999%의 뛰어난 견고성과 내구성이 보장되며, 데이터의 영 구적인 저장에 적합합니다. 무제한의 데이터를 저장할 수 있는 용량이 제공되며, 저장과 검색이 자유롭습니다. 또한 사용량 만큼의 요금이 부과됩니다. 클라우드 사업자 중에서는 데이터 전송량과 요청 수에 따라 요금을 청구하는 경우도 있 습니다.

 

  • 또한, AWS에서는 S3에 비해 비용을 크게 줄인 Amazon Glacier라고 하는 클 라우드 스토리지도 제공하고 있습니다. Amazon Glacier는 데이터의 읽기에 시간이 오래 걸리기 때문에, 빈번하게 읽을 필요가 없는 장기 보존용 디지털 정보의 저장 및 자기 테이프의 대체품으로 이용됩니다.

  • S3등의오브젝트스토리지서비스는데이터의읽기및쓰기속도가빠른편 이 아닙니다. 따라서 엄격한 응답 시간이 요구되는 데이터베이스 용도로 이용 할 경우, 블록 단위로 액세스 할 수 있는 블록 스토리지 서비스를 선택하는 경 우도 있습니다. 대표적인 서비스로는, EBS(Amazon Elastic Block Store)가 있 습니다.

  • 또한, 기업의 파일 서버로 사용하는 경우, 파일 단위로 스토리지 액세스가 가 능하며, 파일 공유 기능을 갖춘 파일 스토리지 서비스를 이용하는 등의 선택 을 할 수 있습니다. 대표적인 서비스로는 EFS(Amazon Elastic File System)가 있습니다.

 

    5. 클라우드 네트워크 서비스

 

  • 클라우드 위에 네트워크를 구축

  • 네트워크 기능을 가진 클라우드 서비스의 예로는 Amazon VPC(Virtual PrivateCloud)가 있습니다. Amazon VPC는 가상 프라이빗 클라우드라는 이름 그대로 AWS 위에 가상 네트워크를 만들어, 개인 클라우드처럼 사용할 수 있 는 서비스입니다. VPC 안에는 임의의 사설 IP 주소 범위를 설정하고, 서브넷에 가상 서버와 같은 리소스를 배치할 수 있습니다. 하지만 클라우드 서비스는 인터넷으로 접속해야 하는데, 회사 내부용 서비스를 인터넷을 통해 이용한다 는 점에서 보안상의 문제가 있습니다. Amazon VPC에서는 사설 IP 주소가 할 당된 네트워크에 가상 VPN 게이트웨이를 마련하여, 사내 네트워크 쪽 VPN 게 이트웨이와 Ipsec을 통한 암호화 통신을 합니다. 따라서 거점 간 인터넷 VPN 을 구축할 수 있습니다. 이를 통해 클라우드 서비스를 안전하게 이용할 수 있 습니다.

  • 인터넷 VPN 외에도 NTT 커뮤니케이션즈 등의 통신 사업자가 제공하는 VPN 망(IP-VPN)과 접속할 수 있는 서비스도 제공합니다. 인터넷을 거치지 않고, 통 신 사업자의 VPN 망을 통해 직접 연결하므로 더욱 안전하고 안정적인 네트워 크 환경을 이용할 수 있습니다.

  • 보안 기능으로는 필터링을 통해 불필요한 통신을 차단하는 기능을 제공합니다. Amazon VPC의 경우, 송수신 정책을 설정하는 ‘보안 그룹’이라는 기능을 설정 하면 가상 서버에 대한 접속 제어(통신 필터)가 가능해집니다. 같은 보안 그룹 에 있는 가상 서버에는 같은 접속 제어가 적용되므로 그룹 단위로 정리하고 관 리할 수 있습니다.

  • 그 외에도 AWS의 Amazon Route 53으로 대표되는 DNS 서비스가 있습니다. 이 서비스는 자체 도메인 네임으로 Web이나 메일을 이용할 때 필요한 공개용 DNS 서버(기본 보조)를 운영하고 관리합니다. 존 정보와 레코드 정보를 설정 할 수 있으므로 로드 밸런서 같은 서비스와 연계시켜 가용성이 높은 시스템을 구축할 수 있습니다.

 

EC2(가상서버), S3(스토리지서비스), VPC(가상네트워크), Route53(DNS)domain naming service = 전화번호책 역할

 

 

게이트웨이, 로드밸런서 => 전체적인 네트워크(VPN)

 

    6. 클라우드 네트워크 서비스(RDB+NoSQL) = MIddle Ware(부가적인 서비스)

  • 각 클라우드 사업자는 사용자의 이용 목적에 부합하는 다양한 데이터베이스 서비스를 제공하고 있습니다. OS나 미들웨어는 클라우드 사업자가 관리하므로 사용자는 단시간에 데이터베이스를 사용할 수 있습니다. 이 절에서는 AWS가 제공하는 데이터베이스 서비스를 참고하여 클라우드 데이터베이스 서비스를 정리해 봅니다.

 

  • RDBMS (RDB(EC2, RDS))

  • AWS의 ‘Amazon RDS’는 일반적인 RDBMS(Relational Database Management System : 관계형 데이터베이스 관리 시스템)입니다. 데이터베이스 엔진으로는 MySQL, PostgreSQL 같은 무료 엔진과 Oracle Database, Microsoft SQL Server 같은 유료 엔진을 선택할 수 있습니다. Oracle Database와 Microsoft SQL Server 같은 유료 제품의 경우, 온 프레미스 시스템에서 사용하고 있던 라이센 스를 클라우드 서비스로 반입할 수 있습니다. 이처럼, 라이선스를 클라우드 서 비스에 반입하는 것을 BYOL(Bring Your Own License)이라고 부릅니다.

  • AWS가 독자 개발한 RDBMS인 ‘Amazon RDS for Aurora’(Aurora)도 제공하고 있습니다. Aurora는 MySQL과 호환성을 가지면서 MySQL보다 성능 및 가용성 등을 높이고 클라우드 서비스에 최적화시킨 데이터베이스 엔진입니다.

 

MySQL->Oracle이 인수함, MariaDB

 

 

  • AWS가 독자 개발한 RDBMS인 ‘Amazon RDS for Aurora’(Aurora)도 제공하고 있습니다. Aurora는 MySQL과 호환성을 가지면서 MySQL보다 성능 및 가용성 등을 높이고 클라우드 서비스에 최적화시킨 데이터베이스 엔진입니다.

 

  • 데이터 웨어하우스

  • AWS의 ‘Amazon Redshift’는 페타바이트(1000테라 바이트)급 데이터를 처리할 수 있는 데이터 웨어하우스 서비스입니다. 대용량 데이터 처리를 할 때에도 일 반 데이터 웨어하우스 제품보다 저렴하고 간편하게 사용할 수 있습니다.

 

  • NoSQL

  • AWS의 ‘Amazon DynamoDB’는 AWS가 독자 개발한 NoSQL 데이터베이스 서비 스입니다. 빠르고 확장성이 우수하며, 낮은 레이턴시가 필요한 애플리케이션의 데이터베이스로 적합합니다.

 

    7. 기간계 시스템을 위한 클라우드 서비스

  • 각 클라우드 사업자는 가상 서버와 같은 IaaS 서비스 외에도 다양한 서비스 를 제공하고 있습니다. 이 절에서는 기간계 시스템을 클라우드로 이전하기 위한 서비스를 소개합니다.

 

  • ‘리프트 앤 시프트’를 지원하는 서비스

  • 기업이 현재 운영하고 있는 기존의 온프레미스 시스템을 클라우드 서비스로 이전하고자 할 때, 애플리케이션 단위의 이전 작업은 비교적 간단합니다. 하 지만, 사내 시스템 전체를 이전하려는 경우에는 시스템 구성이 크게 바뀌어 야 한다는 점이 문제가 됩니다.

  • 대부분의 기업들은 온프레미스 시스템으로 VMware 기반의 시스템을 채용하 고 있는데, 클라우드 사업자가 제공하는 VMware 지원 서비스를 활용하면 시 스템의 아키텍처 변경을 최대한 피하면서 클라우드로 이전할 수 있습니다. 예를 들어 AWS에서는 VMware Cloud on AWS를, IBM에서는 VMware on IBM Cloud를 제공하는 등 많은 클라우드 사업자가 VMware와 호환되는 서비 스를 제공하고 있습니다.

 

  • 이처럼 기존의 온프레미스 시스템과의 호환성과 계승성을 우선시하기 위해 기 존 시스템을 변경하지 않고 그대로 들어서 클라우드로 옮기고(Lift), 수시로 클라 우드에 최적화(Shift) 해 나가는 전략을 ‘리프트 앤 시프트 전략’이라고 합니다. 기존의 복잡한 온프레미스 시스템 환경을 클라우드로 리프트 앤 시프트하는 전 략을 채택해 이전하는 기업 사용자의 사례가 늘고 있습니다.

 

  • 클라우드 ERP

  • 기간계 시스템을 위한 또 다른 서비스가 있습니다. 특히 전사적 자원 관리(ERP) 패키지의 기능을 클라우드 환경에서 이용하는 클라우드 ERP가 보급되고 있습니 다. 자사에 구축하는 사내 ERP에 비해 과도한 커스터마이징을 할 수 없으므로 개발과 운영의 효율성을 높일 수 있고, 비용도 절감할 수 있다는 장점이 높게 평 가받고 있습니다.

 

    8. 클라우드의 데이터 분석 서비스와 IoT 서비스

  • 각 클라우드 사업자는 애플리케이션 개발에 이용할 수 있는 PaaS 서비스를 지 속해서 확충하고 있습니다. 사용자는 PaaS 서비스를 활용하면 인프라를 관리 할 필요가 없어지므로 데이터의 활용에 더욱 집중할 수 있습니다. 클라우드의 대표적인 PaaS 서비스로는 빅 데이터의 활용에 도움이 되는 데이터 분석 서비 스와 IoT 서비스가 있습니다. 참고로 빅 데이터는 6-10절에서, IoT는 6-11절에 서 자세히 설명합니다.

 

  • 클라우드의 데이터 분석 서비스

  • 빅 데이터를 활용하려면 대량의 데이터를 ‘수집’하고 ‘저장’한 후에 새로운 지 식을 창출하기 위해 ‘분석’하는 일련의 단계를 거쳐야 합니다. 클라우드 사업자 는 각 단계를 지원하는 서비스를 제공하고 있습니다.

  • 예를 들어, Google Cloud Platform은 테라바이트급/페타바이트급 데이터를 빠 르게 분석할 수 있는 데이터 웨어하우스 서비스 BigQuery, 배치 데이터와 스트 리밍 데이터를 실시간으로 취득/변환/분석/분류할 수 있는 Cloud Data flow, 분석용 데이터를 준비하기 위한 가공 클리닝 서비스 Cloud Dataprep 등의 다 양한 서비스를 제공하므로 사용자는 사용 목적에 맞는 서비스를 골라서 사용 할 수 있습니다.

 

  • 클라우드의 IoT 서비스

  • 클라우드 사업자는 인터넷에 연결된 IoT 디바이스가 ‘수집’한 데이터를 ‘저장’ 한 후 ‘분석’하고 ‘통제’하기 위한 서비스도 클라우드로 제공하고 있습니다. 사 용자는 디바이스만 준비하면 되므로 IoT 애플리케이션을 효율적으로 개발할 수 있습니다.

  • 예를 들어, AWS의 AWS IoT에서는 데이터를 AWS IoT SiteWise로 수집하고, Amazon Timestream라는 시계열 데이터베이스에 저장하여 AWS IoT Events 로 디바이스의 이상 감지 등을 모니터링 할 수 있습니다. 이처럼 다양한 서비 스를 결합하여 목적에 맞는 IoT 환경을 구축하고 운용할 수 있습니다.

Hadoop = Big Data분야, 데이터 분산처리(HDFS) + Map Reduce

 

 

현재 배워두면 좋은 기술 : 쿠버네틱스+ 가상화 +카프카 +스파크

 

 

    9. 클라우드 AI/기계학습 서비스

  • 지난몇년사이에다양한산업분야에AI(인공지능)가도입되었습니다.그중 에서 기계학습이라는 기술로 인해 지금까지 사람이 분석하고 처리했던 문장이 나 음성/이미지/언어 등을 컴퓨터가 인식하여 분석/처리할 수 있게 되었습니다. AI/기계학습은 방대한 데이터와 빠른 연산이 필요하므로 클라우드 서비스의 활용이 당연시되고 있습니다.

 

  • ‘사용자 스스로 기계를 학습시키는 서비스’ 와 ‘학습된 서비스’

  • 클라우드 사업자는 크게 두 종류의 기계학습 서비스를 제공하고 있습니다. 하 나는 ‘미리 준비한 기능(라이브러리)을 이용하여 사용자 스스로 기계를 학습시 키는 것’이며 나머지 하나는 ‘클라우드 사업자가 미리 대량의 데이터로 학습을 시켜두고, 그 결과를 사용자에게 제공하는 것’ 입니다.

 

 

  • 전자의 클라우드 서비스로는 Amazon SageMaker, Azure Machine Learning, Google Cloud Machine LearningEngine, IBM Watson Machine Learning 등이 있습니다. 이런 서비스는 사용자가 독자적인 모델을 만들 수 있으므로 응용할 수 있는 분야가 넓지만, 데이터 분석이 가능한 인재를 확보해야 하는 등 난이 도가 높습니다.

  • 하지만, 후자의 클라우드 서비스는 사용자가 독자적인 모델을 만드는 대신에 학습된 모델을 사용하므로, 사용자가 비즈니스에 활용하는데 필요한 시간이 짧습니다. 클라우드 사업자가 음성 인식/화상 인식/자연어 처리/자동번역/동영 상 인식과 분석 등을 API로 제공하기 때문에 사용자는 자사의 시스템 또는 서 비스와 함께 사용할 수 있습니다. 따라서 학습된 모델의 제공 서비스가 가상 서버나 데이터베이스에 버금가는 규모로 보급되리라는 기대감이 커지고 있습 니다.

  • 이미 AWS나 Microsoft Azure, GCP, IBM Cloud 등이 학습된 기계학습 서비스 를 제공하고 있습니다. 예를 들어 Azure는 Speech to Text(음성 인식), Computer Vision(이미지 인식) 등 수십 가지의 서비스를 아우르는 ‘Cognitive Services’를 제공하고 있습니다. 일본의 클라우드 사업자로는 후지쯔가 FUJITSU Cloud Service for OSS’에서 ‘Zinrai 플랫폼 서비스’를 제공하고 있습니 다.

FaaS(Functional As A Service)

End-point

 

    10. 클라우드를 이용한 시스템 구축

  • 클라우드 서비스를 이용하면 시스템 구축에 대한 사고방식이 크게 바뀝니다. 클라우드 서비스에서는 시스템을 구성하는 하드웨어를 추상화하므로 기존에 필요했던 인적 작업의 부담이 크게 줄어듭니다.

 

  • 시스템 구성이 클라우드 서비스에 의존한다

  • 온프레미스 시스템의 경우에는 사용자의 요구사항에 따라 시스템을 설계한 후, 필요한 제품과 서비스를 조달하여 구축한다는 개념이 중심이 됩니다. 그러나 클라우드 서비스를 이용하는 시스템은 클라우드 서비스가 제공하는 표준화된 서비스(기능)를 조합하는 개념이 중심이 됩니다. 예를 들어, AWS는 클라우드 서비스를 이용한 시스템 구성의 모범 사례가 담긴 클라우드 디자인 패턴이라 는 자료를 웹에 공개하고 있습니다. 세세한 커스터마이징보다 표준화된 시스 템 구성을 채택하고, API를 통해 다른 서비스와 연계하자는 사고방식이 필요합 니다.

  • 또한 기존의 시스템을 클라우드로 바꾼다면, 시스템과 아키텍처가 바뀌므로 처리량과 응답속도가 떨어지는 등의 영향 분석이 필요하고 보안 위험에도 대비해야 합니다.

 

  • 장애를 전제한 설계

  • 클라우드(클라우드 서비스에 의존)는 온프레미스(직접제어) 시스템에 비해 안정적인 운영기에 접어든 시점에 장애 가 발생하기 쉽다고 알려져 있습니다. 따라서 클라우드를 이용한 시스템 구축 은 장애 발생을 전제해야 합니다. 또한 장애가 발생하더라도 문제없이 운영할 수 있도록 설계하는 Design for Failure라는 사고방식이 필요합니다. 시스템에 단일 장애지점(Single Point of Failure, SPOF)을 만들지 않고, 존으로 구분한 다 중화 시스템을 구축하는 등 전체 시스템의 가용성을 높이는 설계도 필요할 것 입니다.

  • 클라우드 서비스로 구축한 시스템을 운영하고 관리할 때는 접속량이 늘어나거 나 줄어들었을 경우의 서버 기동 및 정지, 정기적인 백업 등의 작업을 운영 자 동화 도구 등으로 자동화해서 최대한 손이 가지 않는 구조로 만들어야 합니다.

⭐️⭐️⭐️로드 밸런서, 오토 스케일 기능

이중화, 가용성

모니터링

snapshot(주기 선정)

Hybrid = private+public+community

 

 


Chapter 3. 클라우드를 실현하는 기술들

 

  1. 클라우드를 실현하는 기술들

  • 이전 장에서 살펴본 클라우드 서비스들은 다양한 기술로 구현되어 있습니다. 구 체적으로는 가상화 기술, 컨테이너 기술, 분산 처리 기술, 데이터베이스 기술, 저 장 기술 등이 있습니다. 이러한 기술의 개요를 알아 두면, 클라우드 시스템의 구 성을 더욱 깊게 이해하게 되고, 클라우드의 도입과 운영에 도움이 됩니다.

  • 클라우드컴퓨팅환경을구축하고운용하는데빠뜨릴수없는요소가가상화 기술입니다. 가상화란 서버 같은 하드웨어 리소스(예: CPU, 메모리, 스토리지)를 논리적으로 다룰 수 있게 만드는 메커니즘을 뜻합니다.

  • 가상화기술을사용하면,하나의물리서버리소스를여러개로나누어여러개 의 서버 환경을 구축할 수도 있고, 여러 대의 물리적 서버 리소스를 하나의 서버 환경으로 통합할 수도 있습니다.

  • 클라우드 서비스에서는 시스템 구성을 빠르고 유연하게 변경하거나 리소스가 부족해지면 자동으로 리소스를 추가하는 등의 작업이 가능합니다. 그러한 작업 이 가능한 것은 물리적인 하드웨어 리소스를 가상화 기술로 논리적으로 다루고 있기 때문입니다.

 

서버 가상화, 컨테이너 가상화

 

  • 컨테이너 또한 가상화 기술 중 하나입니다. 하나의 OS 환경에서, 애플리케이션 을 실행하기 위한 영역(이 사용자 공간을 컨테이너라고 부름)을 여러 개로 나누 어 사용할 수 있습니다. 컨테이너는 시작과 정지가 빠르고 다른 클라우드 서비 스로 옮기기가 쉽다는 장점이 있습니다.

클라우드 간의 상호 이식성

  • 분산처리는 대량의 데이터를 여러 서버에 분산하여 동시에 병렬로 빠르고 효율 적으로 처리하는 기술입니다. 빅 데이터 분석과 같이, 양이 많으면서 다양한 데 이터를 처리할 때에는 클라우드가 적합합니다. 분산 처리 기술도 이해해 두기를 권합니다.

  • 또한, 대량 데이터의 집계, 상품 거래, 빅 데이터 분석, I oT 기반 등 사용 목적별 과 데이터 특성별로 RDB(Relational Database: 관계형 데이터베이스)와 NoSQL 로 대표되는 다양한 데이터베이스 기술들이 클라우드 서비스로 제공되고 있습니다.

openstack

  • 이 외에도 클라우드는 데이터와 프로그램을 저장하는 기록장치인 스토리지 기 술, 오픈소스 클라우드 기반 소프트웨어, 운영 관리, 보안 등 다양한 기술의 조합 으로 구성됩니다. 제 3장에서는 클라우드에 필수적인 이러한 기술들을 소개합니다

OCI기술 -docker 대체 가능한 것들(cri-o, containerD)

 

    2. 서버 가상화 기술

• 주된 가상화 기술에는 ‘서버 가상화’, ‘네트워크 가상화’, ‘스토리지 가상화’. 3종류가 있습니다. 이 절에서는 서버 가상화에 관하여 설명합니다.

 

• 서버 가상화의 장점

• 서버가상화기술은하나의물리적서버리소스에여러개의서버환경을할당 하고, 각각의 환경에 OS와 애플리케이션을 실행할 수 있게 만들어 줍니다. 물리 서버의 경우, 모든 리소스를 사용하는 상황이 흔하지 않으므로 리소스가 남는 경우가 많습니다. 지금까지 개별적으로 운영했던 많은 양의 물리 서버들을 서버 가상화를 통해 집약시킬 수 있어 서버 리소스를 최대한 활용할 수 있습니다. 또 한, 물리 서버의 수가 줄어들기에 공간 절약과 비용 절감에 도움이 됩니다. 이전 버전의 OS에서 동작하는 업무용 애플리케이션, 다양한 버전의 OS 및 미들웨어 환경이 필요한 개발·테스트 환경을 이용해야 할 경우에도 적합합니다.

• 가상 서버에는 CPU, 메모리, 스토리지, 네트워크 등이 에뮬레이트 되므로 물리 서버처럼 사용할 수 있습니다. 각각의 가상 서버는 독립된 상태이므로, 같은 물 리 서버에 있는 가상 서버 중 하나가 바이러스와 같은 위협에 노출되더라도 다 른 가상 서버에게 영향을 미치지 않습니다.

 

가상화 - 다른쪽 리소스가 풍부할 때

host O/S(PC)

Guest O/S(PC)

VirtualBox

 

• 3종류의 서버 가상화 기술

• 서버 가상화 기술은 주로 ‘하이퍼바이저 형’, ‘호스트 OS 형’과 마지막에 설명하는 ‘컨테이너 형’의 3종류로 분류됩니다. 이 절에서는 하이퍼바이저 형에 대해 설명합니다.

• 하이퍼바이저 형은 하나의 물리 서버 하드웨어 위에 하이퍼바이저 라는 가상화 소프트웨어를 동작시키고, 그 위에 Linux와 Windows 같은 여러 개의 게스트 OS 를 가동시키는 형태입니다. 당연히 여러 개로 나누어진 각 서버의 처리 능력은 물리 서버보다 떨어집니다.

• VM웨어의 VMware vSphere, 마이크로소프트의 Hyper-V, 시트릭스의 Xen, Linux 표준 기능인 KVM 등이 대표적입니다.

 

host OS 형 -> virtualBox, VMWare, player

 

    3. 컨테이너 기술

• 클라우드 사업자가 제공하는 클라우드 서비스는 하이퍼바이저 형 가상 서버에 서 제공되는 것이 일반적입니다. 그러나 최근에는 ‘컨테이너 기술’이 많은 주목 을 받고 있습니다. 이 기술에 최적화된 클라우드 서비스도 등장하여 개발 환경 에서 사용되기 시작했습니다.

 

• 컨테이너 기술의 개요

• 컨테이너 기술이란 하나의 OS 환경에서 애플리케이션을 실행하기 위한 영역(사 용자 공간)을 여러 개로 나누어 사용하는 것입니다. 각각의 사용자 공간을 ‘컨테 이너’라고 부릅니다. 그리고 각각의 컨테이너는 다른 컨테이너에 영향을 미치지 않고 애플리케이션을 실행시킬 수 있습니다. 컨테이너는 호스트 OS 입장에서 볼 때, 하나의 프로세스(실행 중인 프로그램)입니다.

• 서버 가상화가 하드웨어 환경을 통째로 가상화한다면, 컨테이너는 애플리케이 션 실행 환경을 가상화한다고 생각하면 될 것입니다. 다양한 OS를 지원하는 템 플릿을 사용하여 컨테이너를 만들 수 있고, 이를 활용하여 하나의 호스트 OS 위 에 멀티 OS 환경을구현할 수 있습니다.

 

  • 가상서버를시작하는데수십초에서몇분정도가걸리는반면,컨테이너는가 상화 오버헤드가 적기 때문에 빠르게 시작하고 정지할 수 있으며 성능의 저하가 거의 없습니다. 게스트 OS를 마련할 필요가 없기 때문에, 디스크 사용량도 줄일 수 있습니다.

  • 또한, 개별 컨테이너가 요구하는 하드웨어 리소스(CPU, 메모리, 스토리지, 네트 워크 등)가 적기 때문에, 1대의 물리 서버에 매우 많은 수의 컨테이너를 탑재할 수 있다는 장점도 있습니다. 또한, 애플리케이션 실행 환경이 컨테이너 단위로 포장되어 있으므로 로컬 컴퓨터의 개발 환경을 클라우드로 옮기거나, A사의 클 라우드에서 B사의 클라우드로 옮기는 등 복제와 이식이 간편합니다.

  • 대표적인 컨테이너형 가상화 소프트웨어로는 Docker사가 개발하고 있는 오픈 소스 애플리케이션 ‘Docker’가 있습니다. 컨테이너는 많은 장점이 기대되는 기 술이지만, 지금 이 책을 쓰는 시점에서는 아직 개척 단계의 기술입니다. 따라서 기업 사용자의 시스템 기반으로 사용되려면 좀 더 시간이 걸릴 것으로 예상합니다.

container 가상화 -> docker

 

4. 분산 처리 기술

  • 클라우드가 등장하기 이전, 테라바이트, 페타바이트 급 대용량 데이터를 처리하 려면 고속 CPU와 대용량 메모리가 탑재된 서버가 필요했습니다. 하지만 지금은 분산 처리 기술과 클라우드 서비스를 이용하여, 데이터를 여러 개의 서버에 나 누어 병렬로 처리할 수 있습니다. 또한, 처리의 부하 상황에 따라 서버와 같은 리소스를 늘리거나 줄일 수 있습니다. 이를 통해 가격 부담을 줄이면서 대량의 데이터를 고속으로 처리하는 것이 가능하게 되었습니다.

  • 대량의 데이터를 분산 처리하는 장치로, 여러 개의 서버를 결합하여 하나의 컴 퓨터로 보이게 만듭니다. 이를 ‘클러스터링’이라고 부릅니다. 클러스터링으로 구 성된 시스템은 대량의 데이터 처리하는 중에 몇 개의 서버에서 장애가 발생하더 라도 다른 서버에 자동으로 작업을 할당하고 작업을 계속할 수 있습니다.

 

  • 분산 처리를 구현하는 소프트웨어

  • 분산 처리를 구현하는 대표적인 소프트웨어로는, 오픈 소스로 공개된 ‘ApacheHadoop’과 ‘Apache Spark’가 있습니다.

 

  • Apache Hadoop은 1대의 마스터 서버와 그 아래에 있는 여러 대의 슬레이브 서 버로 구성됩니다. 마스터 서버가 데이터 처리 전체를 제어하고, 슬레이브 서버 가 계산을 처리합니다.

  • 처리 능력은 슬레이브 서버의 대수에 비례하여 증가합니다. Apache Spark는 메 모리 안에서 대량 데이터를 병렬 분산 처리합니다. Apache Hadoop이 반복 처 리를 할 때 디스크에 데이터를 읽고 쓰는 것과 비교했을 때, 메모리 안에서만 읽 고 쓰므로 속도가 매우 빠릅니다.

  • 그러나 클러스터링으로 구성된 메모리에 모두 올릴 수 없는 테라바이트 이상의 데이터 처리에는 적합하지 않습니다. Apache Spark가 응답 속도가 빠르다면, Apache Hadoop은 처리할 수 있는 양이 많다고 할 수 있습니다. Apache Hadoop은 대용량 데이터의 일괄 처리(어느 정도 정리된 데이터를 모아 일괄 처 리하는 것)에 적합하지만, Apache Spark는 기계 학습과 같은 데이터를 반복하는 고급 데이터 분석을 빠르게 수행하는 데 적합합니다.

tensorflow, pytorch,

  • 각각의 특징에 맞게 상호 보완하면서 사용할 수 있습니다.

Hadoop(MapReduce, HDFS), map:데이터 쪼개기, reduce:다시 합치기

 

 

    5. 데이터베이스 기술

  • 각 클라우드 사업자들은 대량의 데이터 분석 처리 및 트랜잭션 처리(상거래와 같은 일련의 처리) 등 사용자의 이용 목적에 맞는 다양한 데이터베이스 서비스 를 제공하고 있습니다.

  • 주요 데이터베이스에는 RDB(Relational Database: 관계형 데이터베이스)와 ‘NoSQL’ 등이 있습니다. 오늘날의 빅 데이터 분석 및 IoT 과제에 NoSQL의 이용 도 증가하고 있습니다.

 

  • RDB

  • RDB는여러개의데이터를행과열이있는표형식으로표현하여,복잡한 데이터의 관계를 처리할 수 있도록 만든 데이터베이스입니다. RDB는 RDBMS(Relational Database Management System: 관계형 데이터베이스 관리 시스템)라는 전용 소프트웨어로 관리합니다.

 

  • NoSQL - Hadoop, 카산드라

  • NoSQL(Not only SQL)은 ‘RDB와 같은 관계형 데이터베이스가 아닌 데이터베이스’를 가리키는 용어입니다. 따라서 제품별로 자료구조(어떤 형태로 데이터를 저장하는가)가 다양하지만, 대량의 데이터를 분산시켜 고속으로 처리하는 분산 데이터베이스라는 공통적인 특징이 있습니다.

  • 분산시켜 처리한다는 특징이 있기에 클라우드 서비스 구현에 적합하며, 주로 빅 데이터 분석 등에 사용됩니다.

  • NoSQL은 자료구조의 차이에 따라 키-밸류형, 컬럼 지향형(cassandra), 문서 지향형(mongoDB), 그래프형의 4가지로 분류됩니다.

 

쇼핑몰 - 검색 -> 관계형데이터베이스가 더 적합

Hadoop(조회하는데는 좋지 않다.)

카산드라 - insert/ update(x)

 

 

  • 키 밸류형제품의 모든 데이터는 인덱싱된 값으로 구성되어 있습니다. 구성이 간단하고 확장성이 높으며, 데이터의 읽기 속도가 빠르다는 점이 특징입니다.

  • 컬럼 지향형 제품은 컬럼(열) 단위로 데이터를 보관하고, 대량의 컬럼 단위 데이 터의 집계/갱신 속도가 빠릅니다. 또한, 데이터의 쓰기 속도가 빠르다는 특징이 있습니다.

  • 문서지향형 제품은 복잡한 데이터를 문서에 저장하고 문서 단위로 데이터를 저 장하여, 검색하고 관리할 수 있습니다. 따라서, 복잡한 데이터를 처리하는 응용 프로그램의 개발에적합합니다.

  • 그래프형 제품은 데이터 간의 관계를 그래프로 형성하고, 통합 검색을 빠르게 할 수 있습니다.

AnsiSQL, Oracle, MS

RDB-하드웨어 고가, NoSQL

 

    6. 스토리지 기술

  • 스토리지는 데이터와 프로그램을 저장하는 기록 장치입니다. 클라우드 서비스 에서는 블록 스토리지, 파일 스토리지, 오브젝트 스토리지 총 3가지의 액세스 방식을 제공합니다.

 

  • 블록 스토리지

  • 블록 스토리지는 일정한 크기의 블록으로 나뉜 스토리지의 논리 볼륨을 블록 단 위로 액세스할 수 있는 스토리지입니다. 스토리지의 액세스에는 파이버 채널(FC) 과 iSCSI 같은 전용 프로토콜을 사용합니다.

  • 서버와 스토리지가 데이터를 교환할 때의 오버헤드가 적어서, 빠른 데이터 전송 이 가능합니다. 낮은 레이턴시가 요구되는 데이터베이스 용도로 사용되고 있습 니다.

 

  • 파일 스토리지

  • 파일 스토리지는 파일 단위로 저장 액세스가 가능하며, 파일 공유 기능을 갖춘 스토리지입니다. 데이터 처리는 파일 단위로 이루어지며, Windows OS에서는 SMB(Server Message Block)와 CIFS(Common Internet File System), UNIX 및 Linux OS에서는 NFS(Network File System) 같은 파일 공유 프로토콜이 사용됩 니다.

  • NAS(Network Attached Storage)도 파일 스토리지에 해당합니다. 주로 파일 서 버로 이용되고 있으며, 액세스 제어 및 속성 정보의 관리가 쉽다는 장점이 있습 니다.

 

  • 오브젝트 스토리지

  • 오브젝트 스토리지는 데이터를 객체 단위로 처리합니다. 데이터 및 관련 메타 데이터로 구성된 오브젝트에는 고유한 ID(URI)가 부여됩니다. 오브젝트 스토리 지는 OS나 파일 시스템에 의존하지 않으면서도 데이터를 저장하고 오브젝트에 액세스 할 수 있는 특징이 있습니다.

  • 오브젝트 스토리지의 액세스에는 HTTP 프로토콜 기반의 REST(REpresentational State Transfer) 형식의 API를 사용합니다. 오브젝트 스토리지는 쉽게 용량을 늘 릴 수 있으며, 데이터의 크기와 저장할 수 있는 데이터의 수에 제한이 없습니다. 갱신 빈도가 적은 데이터나 대량의 데이터를 저장하고 장기 보존하는 용도로 이 용되고 있습니다.

 

    7. IaaS를 위한 오픈 소스 클라우드 기반

  • 진정한 자체 클라우드를 구축하려 할 때의 유력한 대안은 ‘OpenStack’으로 대표 되는 오픈 소스 클라우드 기반 소프트웨어입니다. OpenStack은 프라이빗 클라 우드를 구축하기 위한 기반 소프트웨어로서 VMware에 이어 두 번째로 많이 사 용되고 있습니다. AWS, Microsoft Azure, Google Cloud Platform 등을 제외한 대부분의 주요 퍼블릭 클라우드 서비스의 IaaS 기반으로도 사용되고 있습니다.

 

  • OpenStack 개요

  • OpenStack은 미국 항공 우주국(NASA)의 독자적인 클라우드 기반인 ‘Nebula’가 그 바탕입니다. 클라우드 사업자인 Rackspace와 공동 개발한 프로젝트였지만, 현재는 완전한 오픈 소스로 공개되어 있습니다. 2012년 9월에는 OpenStack 관 리 단체로 구성된 비영리 단체 ‘OpenStack Foundation’이 발족하였습니다.

 

  • OpenStack 프로젝트의 개발 체제는 오픈 소스 커뮤니티가 주도하고 있습니다. ‘대규모 시스템에도 대응할 수 있는 확장성을 갖추고, 특정 업체에 점거되지 않 는 업계 표준 사양의 클라우드 인프라 기반을 개발하여 클라우드 기술 혁신을 촉진하는 것‘ 등을 지침으로 삼고 있습니다. 의사 결정 프로세스와 개발 프로세 스는 모두 공개되어 있습니다.

  • OpenStack은 Apache 라이센스 2.0가 적용되어 있으며, 개발된 소스 코드를 완 전한 오픈 소스로 공개하고 있습니다. 표준 개발언어는 Python, 표준 외부 API 는 OpenStack의 독자적인 API로 REST API(HTTP 기반) 및 Amazon EC2/S3 호환, 표준 OS로는 Ubuntu Linux가 채택되어 있습니다.

  • OpenStack은 단독으로 동작하는 수많은 소프트웨어들로 구성되어 있습니다. 대 표적인 소프트웨어로는 하이퍼바이저 제어 및 베어 메탈 프로비저닝을 수행하 는 Nova, 가상 네트워크를 제어하는 Neutron 등이 있습니다.

  • OpenStack 프로젝트는 첫 릴리스인 코드명 ‘Austin’(2010년 10월)부터 ‘Ocata’(2017년 2월)까지 거의 6개월마다 총 15번의 메이저 릴리스가 있었으며, 기능 면에서 진화를 거듭하고 있습니다.

Linux(ubuntu), python, django, REST api

 

    8. PaaS를 위한 오픈 소스 클라우드 기반

  • IaaS 형 클라우드 서비스는 오픈소스로 공개된 기반 소프트웨어가 발전함에 따라, 클라우드 사업자들이 제공하는 서비스의 기능적인 격차가 줄어들고 있습니 다. PaaS형 클라우드 서비스에서도 오픈 소스로 공개된 PaaS 기반 소프트웨어 가 떠오르고 있습니다.

  • 오픈 소스 PaaS 기반 소프트웨어는 IaaS와는 독립적으로 동작하며, AWS와 VMware, OpenStack 같은 다양한 클라우드 서비스에서 실행시킬 수 있습니다.

  • 오픈 소스 PaaS 기반 소프트웨어는 오픈 소스 웹 애플리케이션의 실행 환경을 지원합니다. Ruby, Java, Python, PHP 등의 다양한 개발 언어와 Ruby on Rails, Sinatra, Spring Framework, Node.js와 같은 오픈 소스 표준에 따르는 개발 프레 임워크 그리고 MySQL, PostgreSQL, MongoDB 등의 여러 데이터베이스를 사용 할 수 있는 점이 특징입니다. Docker의 이미지와 같은, 컨테이너의 실행 환경 지 원도 진행되고 있습니다.

 

  • 대표적인 오픈 소스 PaaS 기반 소프트웨어 • 대표적인 오픈 소스 PaaS 기반 소프트웨어로는 Cloud Foundry와 Openshift를 들 수 있습니다. 이 절에서는 Cloud Foundry에 관해 설명합니다.

  • Cloud Foundry는 VM웨어가 2011년 4월에 발표한 오픈 소스 PaaS 기반 소프트 웨어입니다. Ruby로 구현되어 있으며, 다양한 개발 언어와 개발 프레임워크, 데 이터베이스를 지원합니다. 2014년 12월부터 오픈 소스 프로젝트로 추진하기 위 해 EMC, HP, IBM Pivotal, SAP, VM웨어, NTT 등이 중심이 되어 ‘Cloud Foundry Foundation’을 설립하고 Cloud Foundry의 보급을 추진하고 있습니다.

  • Cloud Foundry에서는 이 제품으로 PaaS를 구현한 클라우드 서비스 간의 이동 성을 확보하고 고객이 서비스에 묶이지 않음(같은 종류의 서비스로 교체할 수 있는 서비스)을 보증하는 인증 프로그램 ‘Cloud Foundry PaaS Certification’을 제공하기 위한 노력을 진행하고 있습니다.

 

    9. 네트워크 가상화 기술

  • 클라우드를 구현하려면 네트워크에도 물리적 구성에 얽매이지 않는 유연성이 요구됩니다. 네트워크 가상화를 구현하는 VLAN, VPN, NFV 기술을 소개합니다.

 

  • VLAN(Local Area Network)

  • VLAN(Virtual Lan)은 하나의 물리적인 네트워크를 여러 개의 논리적인 네트워크 로 분할하는 기술입니다.

  • 물리적인 배선을 변경하지 않고, 네트워크 장비에 설정을 추가해서 네트워크를 나눌 수 있습니다.

  • 논리적으로 분할된 네트워크들은 라우터를 거치지 않으면 통신할 수 없습니다. 이를 통해 조직 단위로 네트워크를 나누면 조직 안에 한정된 데이터를 전송할 수 있습니다.

  • 클라우드 서비스와 데이터 센터 사이에 VLAN을 이용하면 프라이빗한 환경을 구축할 수 있습니다.

 

  • VPN

  • VPN(Virtual Private Network)은 인터넷과 같은 불특정 다수가 이용하는 네트워 크에 가상으로 전용선과 같은 사설망을 연결하는 기술입니다.

  • 클라우드 서비스와 기업 사용자가 보유한 온프레미스 시스템이 인터넷을 통해 VPN에 연결할 때에는 IPsec라는 프로토콜이 사용됩니다.

  • IPsec을 이용하여 통신하면 통신 거점 인증, 통신 데이터의 암호화가 이루어지 므로 거점 간의 안전한 통신을 구현됩니다.

 

  • NFV

  • NFV(Network Functions Virtualization)은 네트워크 기능을 소프트웨어로 구현 하여 가상 서버 위에 구축하는 기술입니다.

  • 라우터 게이트웨이, 방화벽, 로드 밸런서와 같은 네트워크 장비의 기능을 가 상 서버에서 애플리케이션 소프트웨어로 구현합니다.

  • 기존 네트워크에서 대부분의 네트워크 기능들은 전용 하드웨어와 통합된 네트 워크 어플라이언스로 서 제공됐습니다.

  • NFV는 전용 하드웨어 없이 네트워크 기능을 제공하므로 하드웨어 장비를 대체 할 수 있으며, 네트워크 장비의 수요 및 구성 변경 등에도 유연하게 대응할 수 있습니다.

 

    10. SDN

  • 서버가상화와클라우드의급속한발달에따라시스템의통합관리및운영자 동화가 진행되고 있는 한편, 네트워크는 기존과 같은 방식으로 하드웨어별로 운 영/관리되고 있는 것이 현실입니다.

  • 그러나서버가상화및클라우드는네트워크트래픽의급속한증감및경로변 경을 초래하므로 이에 대응하기 위한 네트워크 증설과 변경, 운영의 자동화가 큰 과제가 되고 있습니다.

  • 이러한 과제를 해결하고 네트워크의 유연한 변경을 실현할 것으로 기대되는 것 이 바로 네트워크를 가상화하고 네트워크 구성과 기능 설정 등을 소프트웨어로 프로그래밍 할 수 있게 만들어 주는 ‘SDN (Software Defined Networking)’입니 다.

 

  • SDN의 개요

  • SDN의 개념은 기존 네트워크 장비마다 가지고 있던 통신의 전송 기능(데이터 플레인)과 제어 기능(컨트롤 플레인)을 분리하여, 제어 기능을 컨트롤러에 논리 적으로 집중시켜서 데이터의 흐름을 소프트웨어로 정의하자는 것입니다.

  • 서버 가상화와 마찬가지로 물리적 네트워크가 추상화되므로, 하나의 물리적 네 트워크 위에 컨트롤러 별로 여러 개의 가상 네트워크를 구축할 수도 있습니다.

  • SDN의 등장으로 인해 스위치나 라우터 같은 네트워크 장비는 OS, 미들웨어, 애플리케이션이 통합된 수직 통합형 아키텍처에서 각 기능 레이어를 분리하고, 개 방적인 인터페이스로 연결하는 아키텍처로 변화하고 있습니다.

  • SDN의 보급이 진행되면 네트워크 장비는 컨트롤러가 집중적으로 제어하게 되 며, 기업 사용자는 네트워크 가동 상황 및 운영에 맞추어 소프트웨어로 유연하 게 데이터 전송 경로를 변경할 수 있게 될 것으로 기대되고 있습니다.

  • 또한, 가상 서버에서 실행 중인 OS나 소프트웨어를 정지시키지 않고, 다른 데이 터 센터에 있는 물리적 컴퓨터로 이동시키는 라이브마이그레이션을 적용해 네 트워크 구성을 유연하게 변경할 수 있게 되는 등 데이터 센터간 리소스의 유효 활용이 가능해집니다.

 

    11. 엣지 컴퓨팅

  • 엣지 컴퓨팅은 서버를 클라우드 쪽에 배치하는 대신, 서버를 스마트폰 등의 말단 디바이스에 가까운 영역(엣지 쪽)에 분산 배치하고, 그 서버에서 말단 디 바이스가 보낸 데이터를 처리하는 컴퓨팅 모델입니다. 클라우드 컴퓨팅은 서 버를 한곳에 모아 집중 처리를 하지만, 엣지 컴퓨팅은 말단에서 분산 처리를 한다는 차이가 있습니다.

  • 클라우드 컴퓨팅이 보급되는 가운데, IoT 애플리케이션처럼 모든 데이터를 클 라우드 쪽에 모아서 처리하는 모델이 어울리지 않는 사례가 발견되기 시작했 습니다. 예를 들어, 말단 장치에서 수집한 데이터를 네트워크의 마지막에 위치 한 클라우드로 전송할 때 네트워크에서 지연이나 오류가 발생할 수 있습니다.

  • 즉, 주요 요구사항인 처리의 실시간성이나 신뢰성 등을 만족하지 못하는 상황 이 발생할 수 있습니다. 실시간 데이터 처리와 높은 신뢰성이 요구되는 상황 에서 엣지 컴퓨팅은 클라우드 서비스의 장애 또는 네트워크 지연 등을 피할 수 있는 방법입니다.

 

  • 엣지 컴퓨팅에 주목하는 배경

  • 엣지 컴퓨팅에 주목하는 배경으로는 수집한 디지털 데이터의 폭발적인 증가 와 낮은 지연 통신이 요구되는 실시간 애플리케이션의 이용 확대를 들 수 있 습니다. 예를 들어, 공장 생산 라인의 기계 제어는 밀리 초 단위의 응답이 요구 되지만, 이러한 경우에는 클라우드가 아닌 공장에 있는 서버에서 처리해야 합 니다. 또한 커넥티드 카와 자율주행 자동차는 차량이 생성하는 영상 데이터와 주행 데이터, 지도 데이터 등을 실시간으로 처리해야 합니다. 이러한 처리에는 낮은 지연율로 데이터를 처리하는 엣지 컴퓨팅의 활용이 필수적입니다.

  • 현장에서 사용할 수 있는 디바이스의 고도화/소형화/저전력화/비용 절감도 엣 지 컴퓨팅의 보급을 뒷받침하고 있습니다. 데이터 수집용 센서에 더해 데이터 처리를 위한 CPU와 GPU를 탑재하여 빠른 기계학습, 이미지 처리, 데이터 저장을 실현한 엣지 컴퓨팅용 디바이스도 등장하고 있습니다.

 

 

    12. 하이퍼 컨버지드 인프라스트럭쳐

  • 기업사용자가가상화기반및클라우드기반을보다간편하게도입하기위한 대안으로, 하이퍼 컨버지드 인프라에 대한 관심이 높아지고 있습니다. 하이퍼 컨버지드 인프라란 클라우드 서비스의 기본 기능을 패키지로 제공하는 제품 을 뜻합니다.

 

  • 컨버지드 인프라란?

  • 컨버지드(converged)라는 단어에는 ‘하나로 모은다’라는 뜻이 있습니다. 컨버 지드 인프라란, 서버와 네트워크, 스토리지, 소프트웨어(하이퍼바이저 및 운영 관리 도구) 등을 하나의 패키지에 통합한 제품을 뜻하며, 수직 통합 시스템이 라고 부르기도 합니다. 컨버지드 인프라는 제조사가 사전에 서버 및 스토리지 등의 호환성을 검증하므로, 최적화된 권장 구성 상태로 출하됩니다. 컨버지드 인프라는 정형화된 구축 방법이 문서화되어 있으므로 단기간에 도입할 수 있 으며, 안정적으로 가동할 수 있습니다. 또한, 하나의 패키지 제품으로 문의 창 구 및 지원 창구가 일원화되는 등의 장점이 있습니다.

 

  • 하이퍼 컨버지드 인프라란?

  • 하이퍼 컨버지드 인프라란 소프트웨어 기반의 서버와 네트워크, 스토리지 등 의 구성 요소가 통합된 제품입니다. 서버와 네트워크, 스토리지를 모듈 단위로 구성하고, 소프트웨어로 전체 시스템 구성 설정 및 구성 방법을 변경할 수 있 는 등 운영 효율성이 우수합니다.

  • 공유스토리지대신,여러개의서버를통합하여각서버에내장된스토리지 로 가상 공유 스토리지를 구축할 수 있습니다. 서버와 스토리지 같은 리소스 들의 확장성이 높으며, 백업 소프트웨어 및 WAN 최적화 제품과 같은 컴포넌 트들을 추가할 수 있습니다.

  • 하이퍼 컨버지드 인프라 또한, 컨버지드 인프라처럼 하나의 업체 또는 벤더로 부터 지원을 받게 되므로 전체를 하나의 시스템으로 관리할 수 있습니다. 또 한, 아키텍처가 단순하므로, 사내에 구축된 프라이빗 클라우드에 사용자 관리 포털을 가진 가상화 기반 및 클라우드 기반을 간단한 설정으로 구축할 수 있 습니다.

 

    13. GPU

  • 기계학습 또는 딥러닝(심층학습)을 적용하는 분야가 늘어남에 따라 반도체 메 이커인 NVIDIA 등이 개발하는 GPU(Graphics Processing Unit)에 이목이 쏠리 고 있습니다. GPU는 원래 빠른 이미지 처리를 위해 개발된 것이지만, GPU를 기계학습/딥러닝 등의 범용 계산에 응용하는 GPGPU(Generalpurpose computing on GPU)가 널리 퍼졌기 때문입니다.

 

  • CPU와 GPU의 차이

  • PC에 탑재된 CPU는 연산을 담당하는 코어를 여러 개에서 수십 개만 가지고 있지만, 분기 예측 등의 기능을 갖춘 명령 처리를 실행하는 회로가 여러 개 있 어서 지속적인 조건 분기가 많은 복잡한 명령을 순차적으로 실행하는 능력이 뛰어납니다. 이러한 특징 덕분에 CPU는 OS와 같은 복잡한 프로그램의 처리에 적합합니다.

  • 한편, GPU는 수십에서 수천 개나 되는 코어로 같은 작업을 여러 개의 코어에 할당하여 병렬 처리를 할 수 있기 때문에 많은 양의 간단한 계산을 하는 능력 이 뛰어납니다. 이러한 특징에 따라 GPU는 많은 양의 간단한 계산이 요구되 는 딥러닝에 적합합니다.

 

  • GPU의 활용 분야

  • GPU는 자율주행 자동차/제조 분야에서의 공장 자동화/게놈 분석을 비롯한 바 이오 헬스 케어 분야 등 기계학습/딥러닝을 이용하는 폭넓은 분야에서 슈퍼 컴퓨팅 기반으로 보급되고 있습니다.

  • 일본에서는 지금까지 산업기술총합연구소(産業技術総合研究所) 등의 정부 기 관이 연구소 안에 설치하는 AI 전용 슈퍼 컴퓨팅 기반으로 이용해 왔습니다. 최근에는 민간 기업에서도 클라우드 서비스로 제공되는 GPU 서버를 활용하 는 사례가 등장하고 있습니다. 일본의 스타트업 기업이며 딥러닝 프레임워크 ‘Chainer’ 등을 오픈 소스로 공개한 Preferred Networks(PFN)는 2017년 9월부 터 GPU 서버를 1024기 갖춘 일본 최대 규모의 GPU 클라우드 기반을 이용하기 시작했고, 2019년 7월 기준으로 2560개를 이용하고 있습니다.

 

https://setosa.io/ev/image-kernels/

 

Image Kernels explained visually

An image kernel is a small matrix used to apply effects like the ones you might find in Photoshop or Gimp, such as blurring, sharpening, outlining or embossing. They're also used in machine learning for 'feature extraction', a technique for determining the

setosa.io

    14. 데이터 센터

  • 클라우드 서비스를 지탱하는 서버와 네트워크 장비 등은 안전한 운용에 적합 한 건물인 데이터 센터에 설치되어 있습니다. 이 절에서는 일반적인 데이터 센터의 내부가 어떻게 구성되어 있는지를 살펴보겠습니다.

  • 우선, 데이터 센터의 위치로는 지진이나 해일 등의 재해 위험이 적고, 지반이 딱딱한 장소가 선정됩니다. 또한, 대다수의 데이터 센터는 대규모 지진에 대비 한 내진, 면진 설계된 건물입니다.

  • 데이터 센터의 건물 내부에는 곳곳에 감시 카메라가 설치되어 있으며, 유인 경비를 포함한 다양한 인증 시스템을 조합하여 출입 관리를 엄격하게 하고 있 습니다.

  • 데이터 센터는 클라우드 서비스 기반은 물론 사용자 기업의 중요한 시스템과 데이터를 다루기 때문에 전문 운용 관리자가 24시간 365일 체제로 운용하고 있습니다.

  • 서버와 네트워크 장비 등을 안정적으로 가동하기 위하여, 서버룸은 적절한 냉 난방 관리 및 습도 관리가 이루어지며 전력과 통신이 다중화되어 있습니다. 전력 공급을 위해 UPS(무정전 전원 장치)와 자가발전 장치 등을 갖추고 있으 며, 재해 등의 사태에도 지속해서 운영할 수 있도록 조처되어 있습니다.

  • 이처럼데이터센터는대량의서버와네트워크장비등의운영과공조시스템 관리를 위해 엄청난 전력을 소비합니다. 그러나 전기 요금은 계속 올라가는 추세이며 자연환경에 대한 배려가 요구되고 있어 데이터 센터의 공조 시스템 과 전원 등의 설비에 대한 에너지 절약 대책이 실행되고 있습니다. 예를 들어, 바깥 공기로 서버를 냉각하는 외기 공조를 채용하는 등의 노력을 통해 공조 시스템이 사용하는 전력량을 줄여 환경 부하를 줄이고 있습니다.

  • 데이터 센터의 전력 효율성을 나타내는 지표로는 PUE(Power Usage Effectiveness)가 있습니다. PUE의 수식은 ‘데이터 센터 전체의 소비 전력 ÷ IT 기기별 소비전력’이며, 1.0에 가까울수록 전력 효율이 높은 데이터 센터라고 할 수 있습니다. 현재 표준 데이터 센터의 PUE는 1.8에서 2.0 정도입니다.

 

 

 

    15. ⭐️⭐️서버리스 아키텍처

  • 클라우드 서비스가 보급되면서 빠르고 유연한 컴퓨팅 환경을 셀프서비스형 종량과금제로 이용할 수 있게 되었습니다.

  • 이러한 환경 속에서 클라우드 사업자가 제공하는 서비스 중에 마이크로 서비 스 아키텍처라는 아키텍처 모델이 보급되고 있습니다. 마이크로 서비스 아키텍처는 하나의 애플리케이션을 작은 서비스의 집합체로 구축하는 방법을 말 하며, 개별 서비스들이 API(Application Programming Interface)와 같은 간단 한 방법으로 연계해서 동작하게 됩니다. 클라우드 사업자가 제공하는 서버와 스토리지, 데이터베이스, 네트워크 등의 서비스는 단독으로 작동하지만, 여러 개의 독립적인 컴퍼넌트로 구성됩니다. 그리고 각 컴포넌트가 서로 느슨하게 결합한 상태로 동작하여 전체 기능을 구현합니다. 기능을 컴포넌트 단위로 나 누어 개발하므로, 클라우드 사업자는 새로운 서비스를 신속하게 개발할 수 있으며 필요에 따라서는 새로운 컴포넌트를 추가하거나 기존의 컴포넌트를 교 체할 수 있게 됩니다.

lazy coupling -> 느슨한 결합

**Cloud Native Application

-MSA

-CI/CD

-Container

-DevOps

 

  • 서버리스 아키텍처

  • 기업 사용자이나 개발자는 마이크로서비스로 구성된 클라우드 서비스의 각 컴포넌트를 조합하고 API로 연계하므로 독자적인 애플리케이션 개발/서비스 개발/시스템 구축 등이 가능해집니다. 이때의 클라우드 서비스가 풀 매니지먼트(환경 구축 및 보안 패치, 백업 검색 등을 모두 클라우드 사업자가 수행)인 경우, 사용자는 서버의 존재를 전혀 의식하지 않은 상태에서 애플리케이션을 동작시킬 수 있습니다. 이것을 서버리스 아키텍처라고 부릅니다. 또한 서버리스 아키텍처를 채용한 클라우드 서비스를 FaaS(Function as a Service)라고 부릅니다.

  • 향후에는 클라우드 서비스가 제공하는 다른 컴퍼넌트와 연계하거나 개별 기 능을 조합해서 서비스를 개발하는 방법론과 정보 시스템의 설계/구축 방법론 이 보급될 것으로 예상됩니다.

AWS -> serverless(lambda)

개발팀 : 개발언어 선택 -> 서비스 기능구현 -> 테스트 -> 배포 -> 운영

운영팀 : DevOps(개발팀 + 운영팀)

 

 

**정리해보기

  • API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.

  • Library : 재사용이 필요한 기능으로 반복적인 코드 작성을 없애기 위해 언제든지 필요한 곳에서 호출하여 사용할 수 있도록 Class나 Function으로 만들어진 것이다. 사용 여부는 코드 작성자 선택 사항이며 새로운 라이브러리 제작 시에도 엄격한 규칙이 존재하지 않는다. 제작 의도에 맞게 작성.

  • Platform : 프로그램이 실행되는 환경이며 플랫폼은 플랫폼위에 다른 플랫폼이 존재할 수 있다. 가령, Windows에서 Java로 개발하고 있으며 앱스토어에서 어플을 내려받는 과정에서 이미 3개의 플랫폼을 사용하고 있는 것이다. 플랫폼은 같은 영역에도 다양한 목적과 가치로 많이 만들어지고 있으며 모든 플랫폼에서 실행되도록 개발하기는 어렵다. 프로그램의 목적에 맞도록 플랫폼을 선택하는 것이 중요하다.

  • Framework : 원하는 기능 구현에만 집중하여 빠르게 개발 할 수 있도록 기본적으로 필요한 기능을 갖추고 있는 것으로 위에서 설명한 라이브러리가 포함되어 있다.프레임워크만으로는 실행되지 않으며 기능 추가를 해야 되고 프레임워크에 의존하여 개발해야 되며 프레임워크가 정의한 규칙을 준수해야 한다.

  • Architecture : 기획한 내용을 프로그램화했을 경우 필요한 주요 특징을 기술적으로 설계하고 명시하는 것이다. 결과물에 필요한 모든 구성 요소를 명시하지만, 구체적인 구현 방법은 포함되어 있지 않다. 가령, 아래에서 설명할 플랫폼은 주요 특징이지만 프레임워크와 라이브러리는 주요 특징이 아니므로 명시되지 않을 가능성이 크다.

 

https://codenamu.org/2014/10/10/popular-opensource-license

 

[춘식이의 코드이야기] 대표 오픈소스 라이선스, 한 눈에 보기!

코드나무는 공공정보 개방은 정부의 투명성을 높이고 새로운 부가가치를 만들어 낼 뿐만 아니라 무엇보다도 시민들의 참여를 통해서 새로운 혁신, 새로운 공공가치의 창조를 이끌어낼수 있다

codenamu.org

 

라이센스 종류 및 차이점

  • Apache License

     

    안드로이드(v2.0) | 하둡(v2.0)

  • - 아파치 라이선스(Apache License)는 자신들의 소프트웨어에 적용하기 위하여 아파치 소프트웨어 재단 자체적으로 만든 라이선스이다. 소스코드에 대한 공개 의무 등의 의무사항은 없지만 아파치 라이선스의 소스코드를 수정하여 배포하는 경우 아파치 라이선스, 버전 2.0을 꼭 포함시켜야 하며 아파치 재단에서 만든 소프트웨어임을 밝혀야 한다.
  • MIT License

    - MIT 라이선스(MIT License)는 미국 매사추세츠 공과대학교(MIT)에서 해당 대학의 소프트웨어 공학도들을 돕기 위해 개발한 라이선스다. 라이선스와 저작권 관련 명시만 지켜주면 되는 라이선스로 가장 느슨한 조건을 가진 라이선스 중 하나기 때문에 인기가 많다.

     

    Bootstrap | Angular.js | Backbone.js | jQuery

 

 

**우분투 설치, 가상환경 설치

https://releases.ubuntu.com

 

Ubuntu Releases

These older Ubuntu releases are now in Extended Maintenance (ESM): We are happy to provide hosting for the following projects via the cdimage server. While th

releases.ubuntu.com

16version

 

ubuntu-16.04.6-desktop-i386.iso

iso(image)

https://www.virtualbox.org

 

Oracle VM VirtualBox

Welcome to VirtualBox.org! News Flash New January 19th, 2021VirtualBox 6.1.18 released! Oracle today released a 6.1 maintenance release which improves stability and fixes regressions. See the Changelog for details. Important November 16th, 2020We're hiring

www.virtualbox.org

usb기능이 포함된 확장버전도 설치하기

 

*리눅스의 역사

https://dev-mystory.tistory.com/96

https://trends.google.co.kr/trends/explore?geo=KR&q=%EC%9A%B0%EB%B6%84%ED%88%AC,CentOS

 

Ubuntu > CentOS(사용유저)

 

728x90

+ Recent posts