list
- 클라우드 컴퓨팅( Cloud Computing )
- adasdad
- asdsadas
- asdassd
클라우드 컴퓨팅( Cloud Computing )
컴퓨팅 환경의 변화
- 개인PC를 사용하여 직접 연산 및 처리를 수행하였으나,
- 인터넷의 확산으로 데이터 연산과 처리의 일부가 인터넷 서비스로 대체됨
- 이제는 컴퓨팅 자원을 구매하지 않아도 원격 클라우드 서버에서 컴퓨팅 자원 및 소프트웨어를 전부 임대하여 사용
- 데이터의 위치 및 소유, 컴퓨팅의 주체 및 관리, 서비스의 제공 등 기존의 컴퓨팅 환경과 구분됨.
클라우드 컴퓨팅
- 인터넷을 통해 컴퓨팅 리소스(예: 서버, 스토리지, 데이터베이스 등)를 제공하고 관리하는 기술
- 컴퓨팅 자원(H/W, S/W 등)을 인터넷을 통해 필요한 만큼 임대하여 사용하고, 사용한 만큼 요금을 지불하는 서비스
클라우드 컴퓨팅 서비스 정의
클라우드 컴퓨팅 서비스는 인터넷 기반의 자원, 소프트웨어 및 정보 인프라를제공하는 것으로 인터넷을 통한 요청형 제공방식(On-demand)의 서비스임
- 클라우드 컴퓨팅 서비스 제공자는 다량의 컴퓨터 자원을 분배, 가상화하여
각 이용자에게 제공하고, 서비스 이용자는 클라우드 서비스를 통해 자신의
컴퓨터에 직접적인 프로그램 설치 없이도 원하는 자원을 필요할 때 필요한
만큼, 즉각적으로 인터넷을 통해 서비스 받을 수 있음
- 클라우드 컴퓨팅 서비스는 최근 스마트폰과 같은 모바일 기기의 확산으로
다양한 서비스가 개발되고, 실시간 서비스가 이루지는 환경에서 트래픽
증가와 서비스의 지속성을 유지하기 위해 많은 곳에서 검토되고 도입되고
있음
클라우드 컴퓨팅 서비스 정의
• 최소한의 관리 노력이나 서비스 제공사업자와의 상호작용으로 신속하게 제공받고 반환(release)
할 수 있는 구성가능한(configurable) 컴퓨터 자원이 공유된 풀에 간편한 주문식 네트워크 접근
을 가능하게 하는 모델 (The NIST Definition of Cloud Computing, 2011) • 클라우드 등장으로 컴퓨팅 환경의 개념이 직접 소유에서 온라인상 임대로 전환
: 소유권의 시대는 막을 내리고 접속의 시대가 올 것이다.”(제레미 리프칸, 저서『소유의 종말』中)
q 개념과 특징
(1) 주문식(On-demand) 셀프 서비스
(2) 광범위한 네트워크 접근성
(3) 자원 풀링(pooling)성과 위치 무관성
(4) 신속한 탄력성(Elastic ity)
(5) 서비스 이용량의 측정
클라우드 컴퓨팅 서비스 특징
• 클라우드 서비스로 제공되는 스토리지 서비스, 소프트웨어 임대 서비스의 경우 웹 하드, SBC(Server
Based Computing) 등 기존의 응용인터넷 서비스와 유사해 보일 수 있으나, 가상화 서비스를 기반으로 서비스를 제공하고 있어, 기존의 구축 형태의 Fixed 된 서비스들과 구별이 됨
클라우드 컴퓨팅의 동작 단계
① 사용자가 필요한 IT 자원을 클라우드 서비스 제공자에게 요청
② 클라우드 서비스 제공자는 클라우드 데이터 센터에서 사용자가 요청한 IT 자원을 준비하고 사용자에게 제공
③ 사용자는 웹 브라우저 등 다양한 단말에서 네트워크를 통해 IT 자원을 사용
④ 사용한 만큼의 비용을 서비스 제공자에게 지불
X As A Service
- X를 서비스 형태로 제공받고 사용료를 지불하는 형태
클라우드 시스템의 분류
- Computing Resource As A Service
- IT Resource As A Service
서비스 유형에 따라
- IaaS,PaaS, SaaS
서비스 운용 형태에 따라
- Private Cloud, Public Cloud, HybridCloud
- IaaS는 인프라 부분을 탄력적으로 제공 받아운영체제나 응용프로그램 등을 사용자가 직접설치하여 사용하는 방식
- PaaS는 인프라 및 플랫폼 부분을 제공 받아, 사용자가 응용프로그램을 직접 개발할 수 있는방식
- SaaS는 인프라 및 플랫폼뿐만 아니라 응용프로그램까지 모든 서비스를 제공자가 구축하고
사용자는 웹 브라우저 등을 통해 접속하여 해 당 서비스를 사용하는 방식
- 서버리스 컴퓨팅은 서버가 존재하지만 사용자 의 운영이나 개입 없이 클라우드 플랫폼에서자동으로 관리되는 서비스로, 어플리케이션 함 수 실행 서비스 및 백엔드 서비스를 포괄하는개념
참고
AWS
- Amazon Web Services (AWS)
- 아마존이 제공하는 클라우드 컴퓨팅 서비스
1. Amazon EC2 (Elastic Compute Cloud)
- 가상 서버를 제공
2. Amazon S3 (Simple Storage Service)
- 파일과 데이터를 저장하고 관리하는 확장 가능한 스토리지 서비스
- 웹 사이트 호스팅, 데이터 백업, 애플리케이션 데이터 저장
3. Amazon RDS (Relational Database Service):
- 관계형 데이터베이스 서비스
온프레미스(On-Premises)
- 기업이나 조직이 IT 인프라와 소프트웨어 시스템을 자체적으로 소유하고 운영.
- 클라우드 같은 원격 환경에서 운영하는 방식이 아닌, 자체적으로 보유한 전산실 서버에 직접 설치해 운영
- 장점 : 비지니스 정보를 보안성 높게 관리할 수 있다
- 단점 : 시스템 구축에 많은 시간과 비용이 소요됨.
Remote development in WSL
- https://code.visualstudio.com/docs/remote/wsl-tutorial
- https://github.com/Microsoft/vscode-docs/blob/main/docs/remote/wsl-tutorial.md
DevOps
- Development + Operations
- 기존의 개발 업무와 관리 업무로 나누어진 두 역할사이의 커뮤니케이션, 협업, 통합을 강조하는 개념
참고
소프트웨어 개발 프로세스 - 폭포수 모델(Waterfall Model)
- 순차적인 단계를 통해 소프트웨어를 개발 [한 단계가 완료된 후에 다음 단계로]
- 요구사항 정의부터 배포까지의 단계를 선형적으로 진행
- 한 번 진행된 단계에서의 변경이 어렵고 유연성이 부족
- 유연한 개발 : Agile 및 DevOps
1. 요구사항 정의 (Requirements)
- 프로젝트의 목표와 필요한 기능을 정의하고 문서화.
- 사용자와 고객의 요구사항을 수집하고 명확하게 정의함.
2. 시스템 설계 (System Design):
- 요구사항을 기반으로 시스템 아키텍처와 설계를 계획하고 문서화.
- 소프트웨어의 구조, 모듈, 데이터베이스 디자인 등을 결정함.
3. 구현 (Implementation)
- 시스템 설계를 바탕으로 코드를 작성하고 프로그램을 개발.
- 개발된 코드는 모듈별로 테스트.
4. 테스트 및 검증 (Testing and Verification)
- 개발된 코드와 모듈을 테스트하여 요구사항과 일치하는지 확인.
- 버그를 발견하고 수정.
5. 통합 (Integration)
- 모든 모듈과 컴포넌트를 통합하고, 시스템 전체적으로 테스트.
- 시스템의 상호작용과 호환성을 검증.
6. 운영 및 유지보수 (Operation and Maintenance)
- 개발된 소프트웨어를 실제 운영 환경에 배포.
- 소프트웨어의 유지보수와 업데이트 계획.
[참고사이트]
UML(Unified Modeling Language)
- 소프트웨어 개발 과정에서 시스템의 구조와 동작을 시각적으로 모델링하고 표현하기 위한 표준화된 그래픽 언어
[다이어그램 툴]
[어도비 XD]
- 디자인 프로토타이핑 소프트웨어 . UX/UI 디자인.
- https://helpx.adobe.com/kr/xd/get-started.html
[중소기업 기술보호울타리] - 보안
- https://www.ultari.go.kr/portal/ptm/main.do
[python 시큐어 코딩] - 보안을 위한 프로그래밍 가이드라인
- https://www.kisa.or.kr/2060204/form?postSeq=13&lang_type=KO
DaaS
- 사용자가 독립적으로 이용할 수 있는 완전한 가상 데스크탑 환경을 제공
- 소프트웨어 설치, 업그레이드 및 업데이트 관리, 장치 보안 작업 간소화.
클라우드 시스템 구현
가상화(Virtualization)
- 가상화는 네트워크상의 컴퓨터를 묶거나 분할하여 필요한 규모로 재조합하는 것으로 클라우드의 대표적인핵심 서비스인 동시에 구현기술이자, 컴퓨터 자원의 물리적인 특징을 소프트웨어적으로 추상화하여 사용자에게 논리적 자원으로 제공하며 이를 활용해 다양한 기술적이고 관리적인 이점을 제공할 수 있는 기술
2가지 방식
- 하드웨어 파티셔닝(Partitioning), 하이퍼바이저(Hypervisor)
• 하이퍼바이저 방식은 여러 개의 컴퓨터를 통합한 뒤에 필요에 따라서 나누는 방식
• 클라우드 컴퓨팅에서는 서버 가상화에 하이퍼바이저 방식이 주로 활용
- 타입 1은 운영체제가 프로그램을 제어하듯이 하이퍼바이저가 해당 하드웨어에서 직접 실행되며게스트 운영체제는 하드웨어 위에서 2번째 수준으로 실행
- 타입 2 하이퍼바이저는 일반 프로그램과 같이 호스트 운영 체제에서 실행되며 VM 내부에서동작되는 게스트 운영 체제는 하드웨어에서 3번째 수준으로 실행
분산처리
분산처리는 하나의 처리장치(프로세서)가 제어하거나 처리하는 기능을 여러 개의 처리 장치에 분산시켜 처리하여 성능 향상을 하거나, 전산 서버나 데이터베이스를 네트워크로 연결하여 하나의 시스템 같이 처리하는 방식
• 분산 처리 시스템의 설계 목적은 자원 공유, 연산 속도 향상, 신뢰도 향상, 컴퓨터 통신 등이 있음
• 분산처리를 위해 기존에는 개별 기업이나 개발자가 필요에 따라 분산처리 방안을 개발해야 했으나, 최근에는 분산처리 기술의 개발에서는 필요에 따라 공통적으로 필요한 기능을 하나의 패키지 형태로 묶어서 하둡(Hadoop), 스파크(Spark), 스톰(Storm) 등의 프레임워크
분산처리는 클라우드 구성에서 매우 중요한 요소이기는 하나 분산처리만으로는 클라우드를 구성하
기 어렵기 때문에 분산처리를 위한 하둡 같은 분산처리 공통 프레임워크는 클라우드를 구성하는 요
소 중 하나인 분산처리를 구현하기 위한 수단으로만 보는 것이 적절
• 분산처리 분야에서 많이 사용되고 있는 구글과 하둡의 맵리듀스(MapReduce)
참고
브라이틱스 studio
- Cloud 기반 End-to-End AI 데이터 플랫폼
- https://www.brightics.ai/download
"플랫폼"과 "프레임워크"의 차이 [ 플랫폼은 중개를 해준다 직접 구현하지 않아도 된다. ]
- 플랫폼은 개발을 위한 기반 인프라와 서비스를 제공
- 개발자가 특정 작업을 보다 효율적으로 수행하기 위한 구조와 도구를 제공.
플랫폼 (Platform)
- 소프트웨어나 애플리케이션을 개발하고 실행하기 위한 기반을 제공하는 환경
- AWS : 서버 프로비저닝 , 데이터베이스 설정, 스토리지 관리, 스케일링 조정
- Android: 운영체제, SDK(소프트웨어 개발 키트), 앱 스토어, 보안 기능 등을 제공.
프레임워크 (Framework)
- 구조나 라이브러리의 집합
- 개발자가 구조화되고 표준화된 방식으로 개발을 수행할 수 있도록 함.
- 추상화된 컴포넌트, 라이브러리, 디자인 패턴, 데이터베이스 연결, 사용자 인터페이스 요소 등
엣지 컴퓨팅
정의
- 분산 컴퓨팅 구조 패러다임
- 클라우드 컴퓨팅 및 네트워크 트래픽을 보다 근접한 곳으로 이동시킴.
특징1
- 초저지연(ultra-low latency)과 대용량 대역폭 제공, 실시간 네트워크 정보 접근
- 근접성, 상황인지, 민첩성, 빠른 응답시간, 속도 등
특징2
- (데이터) 처리 시간이 대폭 감소. [ 빅데이터에 유용함 ]
- 클라우드 데이터 부하(負荷) 감소 [ 기존: 단말기에서 모든 데이터를 곧바로 중앙 클라우드로... ]
- 프라이버시(privacy) 정책을 강화 [ 엣지DC -> 클라우드 과정에서 보안 추가 ]
- 클라우드 서비스 이용불가시 임시 대처가 가능함.
클라우드 컴퓨팅 vs. 엣지 컴퓨팅(포그 컴퓨팅, 클라우드렛(cloudlet))
엣지(edge) : 어떤 사물의 맨 끝 부분인 ‘첨단(혹은 가장자리)’
- 클라우드 컴퓨팅 : 중앙 데이터센터와 직접 소통(communicate)
- 엣지 컴퓨팅 : 기기 가까이 위치한 ‘엣지 데이터센터’와 주로 소통하며 작업물 ( 데이터 + 필터링 )을 중앙 클라우드에..
3중 구조 패러다임
- ‘클라우드-엣지-디바이스’라는 (물리적 차원의) 3중 구조
에지 컴퓨팅 서비스 고려사항
① 이동성(Mobility)
- 사람이나 차량과 같은 이동하는 객체를 위한 에지 컴퓨팅 서비스를 제공하는 경우
② 자원 관리 및 협업(Resource management & Collaboration)
- 공간적, 비용적 제약에 의해 제한적인 컴퓨팅 및 저장소 자원 특성
- 이웃한 에지 또는 중앙 클라우드와 연계하여 자원 부족을 해결하는 기술이 필요
- 사용자의 이동에 따른 핸드오버 및 마이그레이션
③ 보안(Privacy & Security)
- 다양한 센서 데이터 및 사용자 데이터에 대한 보안 이슈
④ 이식성
- 에지 컴퓨팅 서비스의 이식성이 보장되어야함 [ 협업에 따른 서비스 제공자 간의 이종 환경 ]
에지 컴퓨팅 서비스 시나리오 예시
① 비디오 분석
- 비디오 스트림을 분석하여 모니터링 시스템에서 활용하는 시나리오
- 자체 분석기능을 가진 비디오 카메라에 비해 카메라의 단가를 줄여줌
- 원격 서버에서 분석하는 방법에 비해 네트워크 상의 대용량 비디오 스트림 전송을 막아줌
- 비용감소, 트래픽 감소
② 자율주행차(Connected Car)
- 자율주행차 클라우드를 고도로 분산된 모바일 기지국 환경으로 확장시킬 수 있음
- 차량에 근접한 위치에 존재하는 데이터와 응용들이 데이터의 왕복 전달 시간을 줄여주며, 코어망이나
외부 인터넷에 있는 응용들에게 추상화된 계층을 제공
③ 스마트 팩토리
- 공장 운용과 관련된 실시간 데이터의 처리는 에지에서 담당
- 중앙 데이터센터에는 분석이 필요한 고도의 데이터를 에지 컴퓨팅에서 전처리를 통해 줄인 후에 송신
- 네트워크 및 스토리지 자원 비용 절감 , 전송 단계에서의 데이터 보안 위협과 데이터 오염 위험 감소
참고
다양한 데이터셋 제공사이트
기상청 [파이썬(Python)을 활용한 분석실습]
- https://bd.kma.go.kr/kma2020/dta/edu/KBP57200_Python.do
AI 허브
캐글
- https://www.kaggle.com/datasets
미국 open data website
개방형 클라우드 플랫폼
- https://www.digitalmarket.kr/web/index.do
- https://paas-ta.kr/intro/project
참고
nia 한국지능정보사회진흥원
- https://www.nia.or.kr/site/nia_kor/main.do
NHN Cloud
디지털서비스 이용지원시스템
- https://www.digitalmarket.kr/web/index.do
공개SW 포털 - 오픈소스 소프트웨어
https://www.oss.kr/solution_guide
OSPO
- 기업이 오픈소스의 활용을 효과적으로 관리하여
(1) 라이선스 위반 리스크는 감소시키면서 (2) 최고의 가치를 창출하기 위한 프로그램
'Devops' 카테고리의 다른 글
[Devops] - 6. 클라우드 네이티브 ( Cloud Native ) (0) | 2023.08.11 |
---|---|
[Devops] - 5. 데이터 시각화와 Grafana 활용 (0) | 2023.08.11 |
[Devops] - 4. 도커(Docker) & 컨테이너(Container) (0) | 2023.08.10 |
[Devops] - 2. 네트워크(Network) (0) | 2023.08.08 |
[Devops] - 1. OS , Linux (0) | 2023.08.07 |