클라우드 컴퓨팅 서비스, Cloud Computing Services

라용·2022년 9월 24일
0

위코드 - 스터디로그

목록 보기
56/100
post-custom-banner

위코드에서 공부하며 정리한 내용입니다. 사진 출처, westudy

운영 서버와 아키텍쳐

운영 서버란?

개발이나 테스트 목적이 아닌 실제 사용자들을 대상으로 서비스하는 서버를 말합니다. (로컬 환경에서 실행되는 애플리케이션은 로컬에서만 동작) 운영 서버는 트래픽 대응, 빠른 응답 속도와 가용성을 보장해 안정적으로 운영해야 합니다. 그러기 위해 로컬 환경과는 다르게 서버 환경을 구축합니다.

운영 서버 아티텍쳐

단일 서버


단일 서버는 가장 기본적인 서버의 형태로 데이터베이스와 애플리케이션을 같은 서버에서 실행하므로 별도의 네트워크 설정이 필요 없습니다. 대신 같은 자원을 공유하고 있어 애플리케이션과 데이터베이스 둘 중 하나라도 장애가 발생하면 전체가 다운될 수 있고, 서버 자원을 효율적으로 사용하기 어렵습니다. 그리고 데이터베이스는 보안상 IP 주소나 포트 등 접속 지점을 최소화 해야 하는데, 애플리케이션과 같은 서버에 위치해 있으면 여러 불특정한 IP 주소나 포트의 요청을 받으므로 보안성이 떨어집니다. 그리고 서버의 수를 여러개로 늘리는 Scale-out 이 어렵습니다.

애플리케이션과 데이터베이스 서버 분리


애플리케이션과 데이터베이스를 분리해 각각의 서버로 구성할 수도 있습니다. 두 서버가 다른 자원을 사용하므로 일부 단점은 보완되지만, 두개의 서버를 관리하는 것은 복잡하고, 애플리케이션 서버와 데이터베이스 서버 사이의 지연 시간과 네트워크 보안을 고려해야 합니다. 클라이언트가 하나의 애플리케이션 서버를 바라보고 있으므로 Scale-out 은 여전히 어렵습니다.

서버 단위 로드 밸런서


애플리케이션 서버에 요청을 보내는 클라이언트의 수가 많다면 하나의 애플리케이션 서버로 모든 요청을 감당하기 힘듭니다. 이때 Scale-out 방식을 통해 서버를 여러대 늘릴 수 있는데, 로드밸런서는 이렇게 늘린 서버에 요청들을 적절히 나누어주는 네트워크 장치 혹은 프로세스 입니다. 이렇게 하면 특정 서버에 장애 발생시 정상 서버로 요청을 넘겨 서버 다운을 최소화할 수 있습니다. 다만 로드 밸런서 자체에 장애가 생기면 전체 서비스 장애가 생길 수 있습니다.

서버 내 앱 단위 로드 밸런서


서버에 앱 단위 로드밸런서를 추가하고 똑같은 애플리케이션들에게 외부에서 온 요청을 선택해서 보냅니다. 하나의 서버에서 여러 개의 요청을 동시에 처리할 수 있습니다.

온프레미스(On-premise)

온프레미스란?

운영 서버를 물리적인 서버에 직접 설치해 운영하는 방식입니다. 클라우드 컴퓨팅 기술이 나오기 전까지 일반적으로 사용하던 인프라 구축 방식입니다.

온프레미스 특징

프로젝트에 필요한 자원을 예측하여 인프라 기술자가 물리적 구성을 설계하는데, 이런 예측과 실제 프로젝트가 다를 수 있습니다. 따라서 불필요한 비용이 발생할 수 있고, 구축 후에 문제가 발생하는지 지속적인 모니터링이 필요합니다. 이런 이유로 많은 기업이 클라우드 컴퓨팅 서비스를 사용하지만 보안에 민감한 조직은 외부망과의 단절을 위해 온프레미스 환경을 사용하기도 합니다.

클라우드 컴퓨팅(Cloud Computing)

Compute 란?

리눅스, 우분투, 윈도우, 맥OS 같은 운영 체제를 실행하는 데 필요한 CPU, Memory(RAM), Storage와 일부 가상화된 네트워크 기능으로 구성된 물리적인 서버를 말합니다. CPU(Central Processing Unit)는 컴퓨터의 두뇌이며 프로그램 명령을 수행합니다. RAM(Random Access Memory)은 초고속 임시 저장 장치로 CPU 와 저장장치 사이에서 처리 속도를 향샹시켜주기 위해 데이터를 임시로 저장합니다. Storage 는 운영체제 파일이나 모든 소스코드 및 데이터가 저장되는 장소입니다. Network 는 보통 인터넷을 통해 다른 서버와 연결할 수 있게 만드는 네트워크 인터페이스 카드(NIC)를 의미합니다.

클라우드 컴퓨팅이란?

클라우드 컴퓨팅 서비스는 서로 다른 위치에 존재하는 컴퓨팅 자원을 제공합니다. 서비스 업체는 서버 팜이라 불리는 곳에 엄청난 수의 물리적 서버를 갖추고 있는데, 이 컴퓨팅 자원을 가상화 기술로 통합해 인터넷에서 제공합니다. 사용자는 이러한 IT 리소스를 인터넷을 통해 온디멘드로 제공받고 사용한 만큼만 비용을 지불합니다.

클라우드 컴퓨팅 특징

원하는 시간동안 원하는 만큼의 컴퓨팅 자원을 이용할 수 있습니다. 인터넷을 통해 온디맨드로 IT 리소스를 제공하므로 사용자는 사용한 만큼의 비용만 지불합니다. 프로젝트 초기 구성 시 사용되는 비용을 줄일 수 있습니다.

클라우드 컴퓨팅의 주요 기능 3가지

서비스형 인프라스트럭처 IaaS - Infrastructure as a Service

크라우드 컴퓨팅의 가장 기본적인 계층입니다. 비즈니스 운영에 필요한 스토리지, 네트워킹 및 컴퓨팅 자원을 제공합니다. 다른 모델들과 비교해 사용자가 관리할 수 있는 영역이 가장 많습니다. (OS, Middleware, Runtime 등) 대신 인프라 운영 지식이나 경험이 없다면 활용이 어려울 수 있습니다.
예) AWS Elastic Compute Cloud (EC2), Microsoft Azure Virtual Machines, Google Compute Engine..

서비스형 플랫폼 PaaS - Platform as a Service

애플리케이션 및 서비스를 구추할 수 있는 플랫폼을 제공합니다. OS, MiddleWare, Runtime 등 미리 구축된 개발 환경을 제공하므로 IaaS 보다 자유도는 낮습니다. 대신 서비스, 개발, 비즈니스에 집중할 수 있고 인프라 운영 인력이 필요하지 않아서 유지 및 보수 비용을 절약할 수 있습니다.
예) AWS Elastic Beanstalk, Heroku, Redhat OpenShift

서비스형 소프트웨어 SaaS - Software as a Service

가장 완성된 형태의 서비스입니다. 서비스 제공 업체가 대부분의 기능을 구축하고 제공하므로 사용자가 직접 관리해야 하는 부분이 제일 적습니다. 기본 클라우드 인프라와 소프트웨어를 함께 제공하고, 소프트웨어 업데이트, 버그 픽스 등의 서비스를 업체가 관리합니다. 사용자는 별도 라이센스 구매를 하지 않고 이미 구축된 소프트웨어를 무료 혹은 비용을 내고 사용합니다. 이미 만들어진 서비스를 사용하므로 필요하지 않은 기능에 대해서도 비용을 지불해야 할 수 있습니다.
예) Google Drive, iCloud, Slack, Zoom, Dropbox

profile
Today I Learned
post-custom-banner

0개의 댓글