- <가상 서버>
물리적 서버의 CPU와 메모리, 스토리지 같은 하드웨어 자원을 소프트웨어로 논리적으로 나누어 사용하는 것- 가상 서버에 할당되는 가상 CPU의 성능과 메모리 용량을 상용 용도와 시스템의 규모에 맞게 선택할 수 있음
- 클라우드 서비스로 제공되는 로드 밸런서의 기능을 활용하면 가상 서버를 이중화하거나 부하를 분산할 수 있음
- 순간적으로 접속량이 증가할 때, 통신량에 따라 가상 서버의 갯수를 자동으로 늘이거나 줄일 수(오토스케일) 있음
- <스토리지 서비스>
- 데이터, 콘텐츠 아카이브(보관), 백업(보호), 파일 서버의 사용, 시스템의 재해 대책(Disaster Recovery)등 다양한 용도로 사용됨
- 높은 수준의 보안이 요구되는 경우에는 VPN 망이나 전용선 등 높은 보안 수준의 네트워크 서비스를 이용할 수 있음
- 기업의 기간계 시스템에 적합한 것, 최근 화제가 되는 빅 데이터의 분석에 적합한 것, IoT(Internet on Things)에 적합한 것에 이르기까지 이용 목적에 따라 다양한 데이터베이스를 활용할 수 있음
- 클라우드 서비스를 구성하는 가장 기본적인 요소
- 개별 서버(물리 서버)가 보유한 CPU나 메모리 등을 논리적인 하드웨어 리소스로 간주
- 각각의 가상 서버는 물리 서버와 마찬가지로 개별 OS나 애플리케이션을 동작시킬 수 있음
- 단 가상 서버는 하드웨어를 애뮬레이션하기 때문에 가상화하지 않은 서버에 비해 성능이 떨어지기 마련
- 가상 서버는 셀프 서비스식 포털 화면을 통해 기동 / 중지 / 재기동 / 삭제 등을 몇 분 안에 쉽게 처리할 수 있음
- 가상 CPU의 성능 및 메모리 용량에 따라 가격이 정해져 있음
- 가성 서버에는 시동 디스크로 루트 디스크가 할당됨
- 무료 OS로는 CentOS나 Ubuntu등이 있으며, 유료 OS로는 Microsoft Windows Server등을 선택할 수 있음
- 가상 서버를 생성할 리전 선택
- 가상 서버에 접속하기 위한 엑세스 키 설정
- 가상 서버에 연결을 허용하는 통신 유형 설정ㅇ
- 이용하는 OS와 루트 디스크를 선택
- 사용할 가상 서버의 스펙을 선택
- 이용하는 가상 서버의 상세 설정
- 추가 디스크 선택
- 설정한 내용으로 가상 서버를 만들고 시작
- 대다수의 클라우드 서비스에서 가상 서버 사용 시 '리전'과 '존'을 선택할 수 있음
- 리전(Region) : 지리적으로 떨어진 독립적인 지역
- 존(Zone) : 같은 지역 내의 독립적인(빌딩 등 물리적으로 격리 된) 로케이션
- 리전에는 서로 다른 로케이션의 존이 설치되어 있으므로 복수개의 존을 선택(멀티 존)하여 시스템의 이중화 및 부하의 분산 처리가 가능함
- 로드 밸런서 : 외부의 접속을 통신 데이터량(평균 동시 TCP 세션 수가 일정한 입계값을 초과하는 경우) 등의 조건에 따라 가상 서버에 전달함. 통신의 부하를 분산하여 대량의 접속에도 대응할 수 있는 시스템을 손쉽게 구축 가능함
- 오토 스케일 : 접속이 집중되는 때와 같이 외부의 통신 데이터량에 따른 부하(서버의 CPU 및 메모리 사용량이 일정 임계치를 초과하는 경우)에 따라 자동으로 가상 서버의 대수를 증감시키는 기능
- 정기적인 스냅샷(백업 기능) : 수동 or 이요자가 설정한 시간(매주, 매월)에 가상 서버 디스크의 백업을 자동으로 생성하여 복제할 수 있게 해줌
- 데이터 아카이브(보관)
- 백업(보호)
- 파일 서버
- 재해 대책(Disaster Recovery)
- Amazon Web Services(AWS)가 제공하는 S3(Amazon Simple Storage Service) -> 데이터를 파일 단위로 저장 / 검색 / 삭제하는 저장소이며, '오브젝트 스토리지'라고 부름. 다수의 데이터 센터에 데이터를 분산 저장하여 데이터의 손실을 예방하고 사용한 용량만큼 요금이 부과됨
- Amazon S3 Glacier -> S3보다 저렴하지만 데이터의 읽기에 시간이 오래 걸리기 때문에, 빈번하게 읽을 필요가 없느 장기 보존용 디지털 정보의 저장 및 자기 테이프의 대체품으로 이용됨. 따라서 엄격한 응답 시간이 요구되는 데이터베이스 용도로 이용할 경우, 블록 단위로 엑세스 할 수 있는 블록 스토리지 서비스인 EBS(Amazon Elastic Block Store)가 있음
- EFS(Amazon Elastic File System) -> 기업의 파일 서버로 사용하는 경우, 파일 단위로 스토리지 엑세스가 가능하며, 파일 공유 기능을 갖춘 파일 스토리지 서비스를 이요하는 등의 선택을 할 수 있음.
- Amazon VPC(Virtual Private Cloud) : AWS 위에 가상 네트워크를 만들어, 개인 클라우드처럼 사용할 수 있는 서비스
- VPC안에는 임이의 사설 IP주소 범위를 설정하고, 서브넷에 가상 서버와 같은 리소스를 배치할 수 있음
- Amazon VPC는 프라이빗 IP주소가 할당된 네트워크에 가상 VPN 게이트웨이를 제공함
- 사내 네트워크에 있는 VPN 게이트웨이와 Ipsec 암호화 통신을 할 수 있으므로 거점과 거점을 인터넷 VPN으로 연결할 수 있음
OS나 미들웨어는 클라우드 사업자가 관리하므로 사용자는 빠르게 데이터베이스를 사용할 수 있음
RDBMS(Relational Database Management System : 관계형 데이터베이스 관리 시스템)
- 데이터베이스 엔진
무료 엔진
MySQL, PostgreSQL
유료 엔진
Oracle Database, Microsoft SQL Server- 유료 제퓸의 경우 온프레미스 시스템에서 사용하고 있떤 라이센스를 클라우드 서비스로 반입할 수 있음
- 라이선스를 클라우드 서비스에 반입하는 것을 BYOL(Bring Your Own License)라고 부름
데이터 웨어하우스
- AWS의 'Amazon Redshift는 페타파이트급 데이터를 처리할 수 있는 데이터 웨어하우스 서비스
NoSQL
- AWS의 'Amazon DynamoDB'는 AWS가 독자 개발한 NoSQL 데이터베이스 서비스
- 기업이 현재 운영하고 있는 기존의 온프레미스 시스템을 클라우드 서비스로 이전하고자 할 때 애플리케이션 단위의 이전 작업은 비교적 간단함 -> 하지만 사내 시스템 전체를 이전하려는 경우에는 시스템 구성이 크게 바뀌어야 됨
- 대부분의 기업들은 온프레미스 시스템으로 VMware 기반의 시스템을 체용하고 잇는데, 클라우드 사업자가 제공하는 VMware 지원 서비스를 활용하면 시스템의 아키텍쳐 변경을 최대한 피하면서 클라우드로 이전할 수 있음
- 기존의 온프레미스 시스템과의 호환성과 계승성을 우선시하기 위해 기존 시스템을 변경하지 않고 그대로 들서 클라우드로 옮기고(Lift), 수시로 클라우드에 최적화(Shift)해 나가는 전략을 '리프트 앤 시프트 전략'이라고 함
- BigQuery : 테라바이트 / 페타바이트급 데이터를 빠르게 분석할 수 있는 데이터 웨어하우스 서비스
- Cloud Data flow : 배치 데이터와 스트리밍 데이터를 실시간으로 취득 / 변환 / 분석 / 분려할 수 있는 서비스
- Cloud Datatprep : 분석용 데이터를 준비하기 위한 가공 클리닝 서비스
- 클라우드의 사업자는 인터넷에 연결된 IoT 디바이스가 '수집'한 데이터를 '저장'한 후 '분석'하고 '통제'하기 위한 서비스도 클라우드로 제공하고 있음
- 사용자는 디바이스만 준비하면 되므로 IoT 애플리케이션을 효율적으로 개발할 수 있음
- AWS의 AWS IoT : 데이터를 AWS IoT SiteWise로 수집하고, Amazon Timestream라는 시계열 데이터베이스에 저장하여 AWS IoT Events로 디바이스의 이상 감지 등을 모니터링 할 수 있음
- 미리 준비한 기능(라이브러리)을 이용하여 사용자 스스로 학습시키는 클라우드 서비스
Amazon SageMaker, Azure Machine Learning, Google Cloud Machine LearningEngine, IBM Watson Machine Learning- 클라우드 사업자가 미리 대량의 데이터르 학습을 시켜두고, 그 결과를 사용자에게 제공하는 서비스
AWS, Microsoft Azure, GCP, IBM Cloud등이 학습된 이미지 기계학습 서비스를 제공하고 있음
- 온프레미스 시스템의 경우 사용자의 요구사항에 따라 시스템을 설계한 후, 필요한 제품과 서비스를 조달하여 구축한다는 개념이 중심이 됨
- 그러나 클라우드 서비스를 이용하는 시스템은 클라우드 서비스가 제공하는 표준화되 서비스(기능)를 조합하는 개념이 중심이 됨
- 클라우드는 온프레미스 시스템에 비해 안정적인 운영기에 접어든 시점에 장애가 발생하기 쉽다고 알려져 있음
- 따라서 클라우드를 이용한 시스템 구축은 장애 발생을 전제해야 함. 또한 장애가 발생하더라도 문제없이 운영할 수 있도록 설계하는 Design for Failure라는 사고방식이 필요함
- 클라우드 서비스로 구축한 시스템을 운영하고 관리할 때는 접속량이 늘어나거나 줄어들었을 경우의 서버 기동 및 정지, 정기적인 백업 등의 작업을 운영 자동화 도구 등으로 자동화해서 최대한 손이 가지 않는 구조로 만들어야 함