클라우드 컴퓨팅이란?
컴퓨터의 각종 연산 및 처리를 개인 PC가 아닌 인터넷 공간(클라우드)에서 처리하는 방식이다.
ex) N드라이브, 구글 드라이브, 드롭박스 등
👍 클라우드 컴퓨팅의 장점
1. 신속한 인프라 도입과 서비스 구축 가능
2. 글로벌 서비스 제공의 편리성
3. 트래픽 폭주 대응 가능
4. 빅데이터, 인공지능 서비스 사용 용이
온프레미스(On-premise) : 기업 시스템이 채택해온 전통적인 IT 서비스 방식. 자체적으로 데이터 센터를 보유하고, 시스템 구축부터 운영까지 모두 수행하는 형태를 말한다. 초기 시스템 투자에 드는 비용 부담이 크고, 시스템 사용량과 관계없이 운영에 일정 비용을 부담해야 한다는 단점이 있다.
클라우드 서비스 운용 형태
- 공용 클라우드 : 클라우드 서비스 공급자가 인터넷을 통해 서버 및 저장소와 같은 컴퓨팅 리소스를 제공하고 운영한다. 또한 모든 하드웨어, 소프트웨어 및 기타 지원 인프라를 클라우드 공급자가 소유하고 관리한다. ex) AWS, MS Azure
- 시설 클라우드 : 단일 비즈니스 또는 로직에서 독점적으로 사용되는 클라우드 컴퓨팅 리소스를 의미한다. 서비스와 인프라가 개인 네트워크 환경에서 유지 및 관리되는 특징이 있다.
- 하이브리드 클라우드 : 공용 클라우드와 사설 클라우드 사이 데이터와 응용 프로그램을 공유할 수 있는 기술이며, 두 클라우드가 결합된 형태이기 때문에 더 높은 유연성과 개발 옵션을 제공한다는 특징이 있다.
클라우드 컴퓨팅 서비스 유형
클라우드 서비스의 유형은 공급자가 어떤 자원을 제공하느냐에 따라서 나뉘게 된다.
IT 인프라 장비(서버와 스토리지, 네트워크 장비) / 플랫폼 / 소프트웨어를 웹에서 사용
- SaaS (Software as a Service/서비스로서의 소프트웨어) - 클라우드 환경에서 운영되는 애플리케이션 서비스. 소프트웨어를 구입해 설치하지 않고도 웹에서 소프트웨어를 빌려 사용하는 형태이다. 서비스의 유지 관리/인프라에 대해 고민할 필요가 없다.
- IaaS (Infrastructure as a Service/서비스로서의 인프라스트럭처) - IT 인프라 장비(서버와 스토리지, 네트워크 장비), 네트워킹 기능을 제공하는 서비스. 가장 높은 수준의 유연성과 관리 제어를 제공한다.
- PaaS (Platform as a Service/서비스로서의 플랫폼) - 소프트웨어 서비스를 개발할 때 필요한 플랫폼을 빌려주는 서비스. PaaS 운영 업체는 개발자에게 소프트웨어를 개발할 때 필요한 API를 제공해 편하게 개발할 수 있도록 지원하고, 개발자는 기본 인프라를 관리할 필요가 없어 효율적이다
- FaaS (Fuction as a Service/서비스로서의 기능) - 함수를 제공하여 인프라를 관리하지 않고도 코드를 실행할 수 있게 하는 서비스. 서버 인프라를 관리할 필요가 없고 컴퓨팅 작동 시간만큼 비용을 지불하면 된다.
- CaaS (Container as a service/컨테이너로서의 기능) - 가상 컨테이너를 제공하여 애플리케이션을 개발하고 배포하는 데 필요한 리소스를 제공한다. 애플리케이션 실행을 단순화하고 효율적으로 관리할 수 있게 하는 서비스이다.

클라우드 네트워크 기초 1

<용어 정리>
- Router - IP주소를 기반으로 서로 다른 지역의 컴퓨터를 연결하는 기기. 네트워크 간의 데이터 전송을 위한 최적 경로를 설정해주는 인터넷 접속 장비이다.
- Switch - MAC주소 기반으로 여러 컴퓨터를 연결하는 기기. 다양한 장치를 동시에 연결하는데 사용되는 장비이다.
- 방화벽 - 네트워크를 보호하기 위해 불법적인 외부 트래픽 유입을 막고, 인증된 트래픽만을 허가하는 프로그램이다. 시스템 사용자의 외부 접속을 제한하거나 외부인의 사용을 제한하는 등 컴퓨터 시스템과 전체 인터넷을 구분한다.
- IP 주소 - 인터넷 서버로 접속할 수 있는 컴퓨터의 고유한 주소. 현재 IPv4를 사용중이며, 최대 12자리로 4그룹으로 나눠진 번호로 이루어져 있고 각 자리의 숫자는 0~255까지 사용할 수 있다.
- 도메인 - IP 주소의 단점을 보완하기 위해 나온 문자열 인터넷 주소
- CIDR - 클래스 없는 도메인 간 라우팅 기법
클라우드 네트워크 기초 2

<용어 정리>
- 포트 - 프로그램의 식별 번호. 잘 알려진 포트/등록된 포트/동적 포트 등이 있다.
- 프로토콜 - 네트워크를 사용할 때 지켜야 할 통신 규약
- TCP/IP - TCP(Transmission Control Protocol)와 IP(Internet Protocol)를 합쳐서 부르는 말. 다른 것보다 신뢰성이 높고, 정보를 전달할 때 중간에 정보가 유실되거나 흐름 장애 발생시 재전송한다.
- OSI Layer 7 - ISO(국제 표준화 기구)에서 제안한 모델. 시스템에 상관없이 시스템이 연결될 수 있도록 만들어주는 통신 모델이다. 컴퓨터와 컴퓨터 사이에 데이터 전송이 이루어지려면 해당 7단계를 거쳐서 전송된다.
- HTTP - 인터넷상에서 클라이언트-서버 모델을 따르는 가장 일반적인 프로토콜. 클라이언트와 서버가 항상 연결된 상태가 아닌 무상태이므로 서버의 최대 연결 수보다 훨씬 많은 요청과 응답을 처리할 수 있다는 장점이 있다.
📎 HTTP 서비스 흐름도
① 사용자가 브라우저 주소창에 도메인 주소 입력
② DNS 서버로 주소 값과 매핑되어 있는 IP 주소 탐색
③ DNS 서버가 클라이언트에게 IP 주소 제공
④ 전송 계층으로 데이터 전달
⑤ 데이터를 패킷(네트워크 계층이 통신할 때 사용)으로 분해한다.
⑥ 분해한 데이터에 일련번호 부여
⑦ 전송 계층의 데이터를 네트워크 계층으로 전달
⑧ 물리적 서버 간 데이터 통신하여 상대 탐색
⑨ 데이터를 일련번호에 맞게 조립
⑩ 데이터를 응용 계층으로 전송
⑪ 전달받은 데이터를 서버로 전송
클라우드 핵심 기술
- 가상 서버 - 하나의 물리적 서버를 논리적으로 나누어 CPU, 메모리 등의 자원을 할당한 것.
- 가상화 기술 - 물리적인 하드웨어 장치를 논리적인 객체로 추상화하는 기술이며, 클라우드 컴퓨팅 구현을 위한 핵심 기술

호스트 가상화 - 하드웨어 위에 기본이 되는 호스트 운영체제를 설치하고, 호스트 운영체제에 가상화를 전담하는 소프트웨어인 하이퍼바이저를 설치한 형태이다. 손쉽게 가상 환경을 구축할 수 있지만 CPU, 메모리 사용이 증가하는 오버헤드가 발생한다.
하이퍼바이저 가상화 - 하드웨어에 하이퍼바이저를 배치해 하드웨어와 가상 환경을 제어한다. 컴퓨팅 자원을 효율적으로 사용할 수 있지만 하지만 환경별로 다른 운영체제가 작동하기 때문에 가상 환경을 사용하기 위한 오버헤드가 발생한다.
컨테이너 가상화 - 운영체제에 논리적인 영역(컨테이너)을 만들고, 애플리케이션을 작동하는 데 필요한 것들을 컨테이너 안에 넣어 개별 서버처럼 사용할 수 있게 하는 기술이다. 가장 각광받고 있는 기술로 도커(Docker)가 있다.
분산 처리 기술
클러스터링 - 여러 개의 서버를 결합하여 하나의 컴퓨터처럼 보이게 만드는 기술
ex) Apache Hadoop(맵 리듀스) , Spark 등
서버리스 - 클라우드 제공자가 가상 머신 자원의 할당을 관리해 미리 설정된 서버리스 코드를 실행시키는 기술. 컴퓨팅 자원과 관계없이 언제 어디서나 네트워크에 접근 가능하고, 시간과 비용을 효과적으로 관리할 수 있는 장점이 있다.
로드 밸런싱 - 컴퓨터 자원 분산 기술의 일종이며, 컴퓨터 자원들의 작업을 나누어 서버 부하를 막는다.
📎 알아두자
스케일 업 - 서버 자체의 성능을 업그레이드해 처리 능력을 향상시키는 방법.
스케일 아웃 - 물리적으로 서버를 늘려서 시스템을 확장시키는 방법. 로드 밸런싱 기술이 필수적이며, 데이터 변화가 적은 서비스에 적합.
오토 스케일 - 일정 사용량이 초과하거나 감소될 때 자동으로 가상 서버 대수를 증감시키는 기능.
이 글은 당신이 지금 알아야 할 AWS(이영호, 한동수) 를 기반으로 하여 작성되었습니다.