클라우드

김기만·2023년 12월 26일
0

CS

목록 보기
3/3

1. 가상 머신(Virutal Machine)

	1.1 전통적 배포 방식
		1.1.1 물리적인 컴퓨터 한 대에 하나의 OS를 깔고 여러가지 프로그램을 설치하는 방식
    	1.1.2 계정을 나눠 여러명의 사용자가 사용할 수 있지만 독립적이지 않아
        어떤 프로그램을 설치 했을 때 각 앱에 영향을 끼칠 수 있음. 
    
	1.2 가상화 배포 방식
    	1.2.1 가상 머신을 기반으로 배포하는 것
        1.2.2 계정을 나누는 것이 아닌 한대의 컴퓨터를 가지고 여러개의 OS를 구동하는 것
        1.2.3 CPU, RAM을 물리적으로 갈아끼는 것이 아닌 설정으로 나눔
        1.2.4 *사진1을 보면 *하이퍼바이저 위에 여러개의 가상 머신을 구축하고 
        가상머신 위에 OS그리고 그 위에 앱이 올라가는 형태로 각 앱이 독립적으로 수행 가능
        1.2.5 *사진2와 같이 독립적으로 가상머신이 구축되어 각 가상머신간은 간섭이 없으며, 
        한 가상머신의 프로그램은 다른 가상머신에서는 불 수 없는 형태('샌드박스되었다'라고 함)가 된다.
        

*하이퍼 바이저: 하나의 시스템 상에서 가상 컴퓨터를 여러 개 구동할 수 있도록 해 주는 중간 계층(이를 통하여 CPU, RAM을 각 가상머신에 할당해 줄수 있다.)

*사진1

*사진2

2. 클라우드

	2.1 오프프레미스(Off-Promise / 클라우드)
 		2.1.1 다른 회사의 공급자가 호스팅하고 인터넷을 통해 사용자에게 제공되는 인프라, 플랫폼 또는 소프트웨어(ex> AWS)
        2.1.2 자체 인프라나 하드웨어 설치 없이도 애플리케이션과 리소스에 쉽고 싸게 이용 가능
		2.1.3 서버를 직접 구매할 시 고려할 사항(전력, 위치, 셋팅, 확장성 등)들을 고민하지 않고 서비스 운영에만 집중 가능.(사진3 참고)

*사진3

	2.2 온프레미스(On-Promise)
    	2.2.1 기업이나 개인이 자체 시설을 직접 보유하고 유지관리 하는 프라이빗 데이터 센터(IDC: Internet Data Center)를 의미함.
      

3. Iaas, Paas, Saas

	3.1 Iaas(Infrastructure-as-a-Service)
    	3.1.1 클라우드에서 인프라만 제공해주는 것
        3.1.2 Node.js, DB 등을 개발자가 직접 설치해야하는 대신 특정 서비스에 종속되지 않음.
        3.1.3 유연하며 플랫폼에 종속되지 않음.
        3.1.4 이식성이 높음 (플랫폼에 서비스가 종속되지 않기 때문)
        3.1.5 운영비 효율이 낮음(서비스를 직접 설치해야하기 때문)
        3.1.6 예로 AWS EC2, NCP 등이 있음.
        
	3.2 Paas(Platform-as-a-Service)
    	3.2.1 클라우드가 플랫폼을 제공해주는 것
        3.2.2 Node.js, DB 등이 설치되어 있으며, 설정을 통해 해당 서비스를 이용할 수 있음.
        3.2.3 모니터링, CI/CD가 제공됨.
        3.1.3 유연하지 않으며 플랫폼에 종속됨.
        3.1.4 이식성이 낮음 (플랫폼에 서비스가 종속되기 때문)
        3.1.5 운영비 효율이 높음(서비스를 클라우드가 제공해주기 때문)
        3.2.7 예로 heroku가 있음.
        
	3.3 Saas(Software-as-a-Service)             
      	3.3.1 완전한 서비스를 클라우드에서 제공해주는 것
        3.3.2 예로 Google Docs.가 있음

4. 컨테이너, 도커

	4.1 컨테이너
    	4.1.1 애플리케이션이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 
        빠르고 안정적으로 실행되도록 코드와 모든 종속성을 패키징하는 소프트웨어의 단위
        4.1.2 컨테이너는 OS를 공유함으로 빠르고 경량화되어있으며 격리성이 좋다. 
        하지만 OS에 문제가 생기면 다른 앱에도 영향을 끼침.                


왼쪽 - 컨테이너, 오른쪽 - 가상머신

	4.2 도커
    	4.2.1 컨테이너에 필요한 기능을 거의 모두 제공하는 플랫폼
        4.2.2 Iaas와 Paas의 장점을 모두 가지고 있다.
        4.2.3 도커는 아래와 같은 과정을 거쳐 컨테이너를 만듬

도커파일(DockerFile): 패키지, 환경변수설정 등을 기록한 파일. 이를 빌드 해 도커 이미지를 만듬.
도커이미지(DockerImage): 컨테이너 실행에 필요한 파일과 설정값, 데이터 등을 포함된 상태값이며 불변함. 하나의 이미지에서 여러개의 컨테이너를 생성할 수 있으며 컨테이너의 상태와 무관하게 이미지는 그대로 존재함. 예를 들어 1대의 서버에 환경설정해야 한다면 미리 만들어 높은 이미지를 다운 받아서 이를 통해 컨테이너를 만들면 끝임.
도커컨테이너(DockerContainer): 컨테이너가 실행시키면 도커이미지에 설정된 프로그램, 데이터 등이 실제 컴퓨팅자원과 연결됨.

profile
나도 누군가의 12시다. by.하스스톤 야생

0개의 댓글