컴퓨팅이란 무엇인가요?
클라우드 컴퓨팅에서 "컴퓨팅"이라는 용어는 소프트웨어 컴퓨팅과 관련된 개념 및 객체를 설명합니다. 모든 프로그램의 컴퓨팅 성공에 필요한 처리 성능, 메모리, 네트워킹, 스토리지 및 기타 리소스를 지칭하는 데 사용되는 일반적인 용어입니다.
예를 들어 기계 학습 알고리즘 또는 3D 그래픽 렌더링 기능을 실행하는 애플리케이션을 제대로 실행하려면 기가바이트 단위의 RAM과 여러 개의 CPU가 필요합니다. 이 경우 필요한 CPU, RAM 및 그래픽 처리 장치를 컴퓨팅 리소스라고 하며 애플리케이션은 컴퓨팅 집약적 애플리케이션입니다.
현대 컴퓨팅의 맥락에서 용어를 이해하기 위해 몇 가지 컴퓨팅 FAQ를 살펴보겠습니다.
컴퓨팅 리소스란 무엇인가요?
컴퓨팅 리소스는 컴퓨팅 활동을 위해 요청, 할당 및 소비할 수 있는 측정 가능한 컴퓨팅 파워입니다. 다음은 컴퓨팅 리소스의 몇 가지 예입니다.
CPU
중앙 처리 장치(CPU)는 모든 컴퓨터의 두뇌입니다. CPU는 밀리코어라는 단위로 측정됩니다. 애플리케이션 개발자는 애플리케이션을 실행하고 데이터를 처리하는 데 필요한 할당된 CPU 수를 지정할 수 있습니다.
메모리
메모리는 바이트 단위로 측정됩니다. 애플리케이션은 효율적으로 실행하는 데 필요한 메모리 요청을 할 수 있습니다.
애플리케이션이 단일 물리적 디바이스에서 실행 중인 경우 해당 디바이스의 컴퓨팅 리소스에 대한 액세스가 제한됩니다. 그러나 애플리케이션이 클라우드에서 실행되는 경우 여러 물리적 디바이스에서 더 많은 처리 리소스에 동시에 액세스할 수 있습니다. 이에 대해 자세히 살펴보겠습니다.
클라우드 컴퓨팅이란 무엇인가요?
클라우드 컴퓨팅은 인터넷을 통해 컴퓨터 리소스를 제공하는 것과 관련된 모든 것을 총칭하는 일반 용어입니다. 사용자는 필요에 따라 대량의 컴퓨팅 파워에 액세스할 수 있습니다. 분 단위 또는 시간 단위로 구매하여 컴퓨팅 활동에 필요한 만큼 사용할 수 있습니다.
클라우드 컴퓨팅의 역사
과거에는 고정된 물리적 서버에서 웹 애플리케이션이 호스팅되었습니다. 애플리케이션에 필요한 컴퓨팅 파워는 애플리케이션이 실행되는 서버로 제한되었습니다. 웹 사이트 소유자는 단일 서버 내에서 여러 대의 서버 또는 여러 공간을 구입할 수 있지만 사용량에 관계없이 고정 요금을 지불해야 했습니다. 또한 자체 컴퓨터 서버 인프라를 관리하고 유지해야 했습니다.
오늘날 애플리케이션은 다양한 물리적 디바이스의 컴퓨팅 리소스를 유연한 방식으로 사용할 수 있습니다. 클라우드 공급 업체는 서버와 물리적 데이터 센터로 구성된 광대한 컴퓨팅 리소스 풀을 보유하고 있습니다. 기업은 애플리케이션을 호스팅하고 풀에서 이러한 컴퓨팅 리소스에 액세스할 수 있습니다. 공급 업체는 리소스를 완전히 관리하고 최적화하여 사용자에게 유연성, 확장성 및 효율성을 제공합니다. 사용자는 애플리케이션을 유지 관리하기만 하면 됩니다. 컴퓨팅 인프라 관리는 클라우드 공급 업체에서 수행합니다.
회계 소프트웨어: 클라우드 컴퓨팅의 예
회계 소프트웨어의 예를 살펴보겠습니다. 수십 년 전만 해도 기업은 소프트웨어를 구입하여 내부 물리적 하드웨어에 설치해야 했습니다. 소프트웨어 기능은 기본 하드웨어로 제한되었습니다. 시간이 지남에 따라 시스템 메모리가 부족해지거나 업데이트가 필요하며 하드웨어 장애로 인해 중요한 비즈니스 데이터가 손실될 수 있습니다.
오늘날 회계 소프트웨어 개발자는 클라우드에서 소프트웨어를 실행할 수 있습니다. 사용자는 웹 사이트에 액세스하는 것과 동일한 방식으로 소프트웨어에 액세스할 수 있으며 필요에 따라 계층화된 요금제를 구입할 수 있습니다. 소프트웨어 애플리케이션은 클라우드의 컴퓨팅 파워를 사용하며 소프트웨어 자체는 필요에 따라 확장 가능합니다. 고객이 데이터를 잃을 염려도 없습니다.
마이크로서비스란 무엇인가요?
마이크로서비스 아키텍처라고도 하는 마이크로서비스는 서비스의 모음으로 구성된 소프트웨어 애플리케이션에 사용되는 아키텍처 스타일입니다.
엔터프라이즈 애플리케이션은 일반적으로 세 가지 주요 부분으로 구축됩니다.
- 클라이언트 측 사용자 인터페이스(최종 사용자 디바이스에서 실행되는 앱 또는 HTML 페이지)
- 데이터베이스(애플리케이션 데이터 저장)
- 서버측 애플리케이션(작업의 기능적 및 논리적 작업 정의)
이 모놀리스 아키텍처 스타일은 유연하지 않고 수정하기 어렵습니다. 시스템의 한 부분이 약간 변경되면 전체 모놀리스를 다시 배포해야 합니다.
반면에 마이크로서비스 아키텍처는 분산 관리를 통해 기능적 서비스의 모음으로 애플리케이션을 설계합니다. 마이크로서비스는 데이터 검색, 로깅 기능 또는 웹 서비스 기능과 같은 단일 문제 해결을 시도합니다. 이러한 마이크로서비스는 독립적으로 배포되고, 자체 컴퓨팅 리소스를 사용하고, 서로 통신할 수 있습니다.
예를 들어 뉴스 애플리케이션은 스포츠, 범죄, 글로벌 등의 독립적인 마이크로서비스로 구성될 수 있습니다. 각 마이크로서비스는 자체 콘텐츠 검색 및 정렬을 관리합니다. 필요에 따라 마이크로서비스를 확장하거나 축소할 수도 있습니다. 주요 스포츠 행사가 진행되는 동안 스포츠 마이크로서비스는 추가 처리 능력을 사용하지만 이벤트가 완료되면 축소됩니다.
가상 머신이란 무엇인가요?
가상 머신은 클라우드에서 컴퓨팅 파워를 얻는 기본 빌딩 블록입니다. 가상 머신은 실행 중인 애플리케이션 및 운영 체제를 포함하여 물리적 컴퓨터와 동일한 모든 기능을 수행할 수 있는 소프트웨어입니다. 물리적 컴퓨터의 디지털 버전입니다. 가상 머신은 프로그램과 운영 체제를 실행하고, 데이터를 저장하고, 네트워크에 연결하고, 기타 컴퓨팅 기능을 수행할 수 있습니다. 업데이트 및 시스템 모니터링과 같은 유지 관리가 필요할 수도 있습니다.
가상 머신은 여러 기본 물리적 머신에서 실행될 수 있으므로 성공적으로 실행하는 데 필요한 컴퓨팅 파워를 애플리케이션에 제공합니다. 클라우드 컴퓨팅은 사용자에게 온디맨드로 가상 머신을 배포하고 확장할 수 있는 기능을 제공합니다. 또한 물리적 서버를 관리하는 데 필요한 오버헤드 없이 안전하고 격리된 환경에서 보장된 컴퓨팅 리소스를 제공합니다.
Amazon EC2 인스턴스란 무엇인가요?
AWS Compute 서비스에서는 가상 머신을 인스턴스라고 합니다. AWS EC2는 CPU, 메모리, 스토리지 및 네트워킹 리소스의 구성이 다른 다양한 인스턴스 유형을 제공하므로 사용자는 애플리케이션의 요구 사항에 맞게 컴퓨팅 리소스를 조정할 수 있습니다.
다음과 같은 5가지 유형의 인스턴스가 있습니다.
범용 인스턴스
범용 인스턴스는 균형 있는 컴퓨팅, 메모리 및 네트워킹 리소스를 제공하며, 다양한 여러 워크로드에 사용할 수 있습니다. 이 인스턴스는 웹 서버 및 코드 리포지토리와 같이 이러한 리소스를 동등한 비율로 사용하는 애플리케이션에 적합합니다.
컴퓨팅 최적화 인스턴스
컴퓨팅 최적화 인스턴스는 빠른 네트워크 성능, 광범위한 가용성 및 초당 높은 입출력(I/O) 작업이 필요한 고성능 컴퓨팅 애플리케이션을 실행하는 데 사용됩니다. 이러한 유형의 애플리케이션의 예로 과학 및 재무 모델링 및 시뮬레이션, 빅 데이터, 기업 데이터 웨어하우징 및 비즈니스 인텔리전스가 있습니다.
가속 컴퓨팅 인스턴스
가속 컴퓨팅 인스턴스는 하드웨어 액셀러레이터 또는 코프로세서를 사용하여 부동 소수점 수 계산이나 그래픽 처리, 데이터 패턴 일치 등의 기능을 CPU에서 실행되는 소프트웨어보다 훨씬 효율적으로 수행합니다.
메모리 최적화 인스턴스
메모리 최적화 인스턴스는 고속 솔리드 스테이트 드라이브 인프라를 사용하여 데이터에 대한 초고속 액세스와 고성능을 제공합니다. 이러한 인스턴스는 오픈 소스 데이터베이스 및 실시간 빅 데이터 분석과 같이 더 많은 메모리와 더 적은 CPU 성능을 필요로 하는 애플리케이션에 이상적입니다.
스토리지 최적화 인스턴스
스토리지 최적화 인스턴스는 로컬 스토리지에서 매우 큰 데이터 집합에 대해 많은 순차적 읽기 및 쓰기 액세스를 요구하는 워크로드를 위해 설계되었습니다. 이러한 인스턴스는 애플리케이션에 대해 대기 시간이 짧은, 수만 단위의 무작위 초당 I/O 작업 수(IOPS)를 지원하도록 최적화되었습니다.
컨테이너란 무엇인가요?
소프트웨어를 릴리스하기 전에 테스트, 패키징 및 설치해야 합니다. 소프트웨어 배포는 컴퓨터 시스템 또는 디바이스에서 실행할 애플리케이션을 준비하는 프로세스를 나타냅니다.
Docker는 개발자가 소프트웨어를 배포하는 데 사용하는 도구로서, 애플리케이션의 코드를 패키징하고 모든 시스템에서 실행하는 표준 방법을 제공합니다. Docker는 소프트웨어 코드와 컨테이너 내부의 종속 항목을 결합합니다. 컨테이너 또는 Docker 이미지는 Docker 엔진을 통해 모든 플랫폼에서 실행할 수 있습니다. Amazon Elastic Container Service(ECS)는 도커 컨테이너를 지원하는 확장성과 성능이 뛰어난 컨테이너 관리 서비스로서, 이 서비스를 사용하여 Amazon EC2 인스턴스의 관리형 클러스터에서 애플리케이션을 손쉽게 실행할 수 있습니다. 이는 환경에 관계없이 빠르고 안정적이며 일관된 배포를 보장합니다.
병원 예약 애플리케이션: Docker의 예
예를 들어, 병원에서 예약 애플리케이션을 만들려고 합니다. 최종 사용자는 병원 웹 사이트를 통해 또는 Android, iOS, Windows 시스템, MacBook에서 앱을 사용할 수 있습니다. 코드가 각 플랫폼에 별도로 배포된다면 유지 관리가 어려울 것입니다. 대신 Docker를 사용하여 예약 애플리케이션의 단일 범용 컨테이너를 생성할 수 있습니다. 이 컨테이너는 AWS와 같은 컴퓨팅 플랫폼을 포함하여 어디에서나 실행할 수 있습니다.
AWS 클라우드를 사용한 서버리스 컴퓨팅이란 무엇인가요?
서버리스 컴퓨팅은 외부에서 관리되는 기본 서버 인프라를 사용한 애플리케이션 개발을 의미합니다. AWS Lambda와 같은 서버리스 서비스는 자동 크기 조정, 내장된 고가용성 기능, 종량제 요금 모델을 제공합니다.
서버리스 컴퓨팅은 소프트웨어 개발 회사가 혁신하고 변화에 더 빠르게 대응할 수 있도록 하는 서비스, 관행 및 전략을 설명하는 방법입니다. 팀은 운영 오버헤드를 제거하여 애플리케이션을 신속하게 릴리스하고 피드백을 받고 소프트웨어를 개선할 수 있습니다.
예를 들어, 기술 스타트업은 대학 과정을 검색하고 필터링하는 애플리케이션을 생성합니다. 시작을 위해 회사는 서버리스로 전환하고 사용자 경험과 시스템을 개선하는 데 집중할 수 있습니다. 완전관리형 하드웨어 인프라를 사용하여 대신 마케팅에 투자할 수 있습니다.
컴퓨팅 리소스의 탄력적 로드 밸런싱이란 무엇인가요?
로드 밸런싱은 클라우드 컴퓨팅 환경에서 컴퓨팅 리소스와 워크로드를 고르게 분산시키는 프로세스입니다. 이 프로세스는 애플리케이션의 수요가 높은 경우에도 지연 시간을 줄이고 처리 시간을 유지하기 위해 수행됩니다. 로드 밸런서는 클라우드 환경에서 실행되는 여러 애플리케이션 서버에 클라이언트 요청을 지능적으로 분산시킬 수 있습니다.
Elastic Load Balancing을 통해 사용자는 애플리케이션 성능과 신뢰성을 극대화할 수 있습니다. Elastic Load Balancing은 들어오는 애플리케이션 트래픽을 Amazon EC2 인스턴스, 컨테이너, IP 주소, AWS Lambda 함수, 가상 서버와 같은 여러 대상에 자동으로 분산시킵니다. 또한 다양한 애플리케이션 트래픽 로드를 처리하고, 비용을 절감하고, 수요에 맞게 애플리케이션을 효율적으로 확장 또는 축소할 수 있습니다.
전자 상거래: 탄력적 로드 밸런싱의 예
예를 들어, 온라인 전자 상거래 스토어는 오늘 최고의 거래를 정렬하기 위한 애플리케이션을 실행합니다. 컴퓨팅 집약적인 애플리케이션으로서 클라우드 컴퓨팅 및 로드 밸런싱을 사용하여 수요를 관리합니다. 이는 주말, 크리스마스, 수요가 급증하는 기타 성수기에 추가 처리 리소스를 자동으로 사용합니다. 다른 날에는 수요가 줄면 컴퓨팅을 축소합니다. 로드 밸런싱이 없으면 스토어는 수요가 적은 날에도 최대 사용 요금을 지불해야 하므로 이윤이 줄어듭니다.
컴퓨팅 서비스란 무엇인가요?
컴퓨팅 서비스를 IaaS(Infrastructure-as-a-Service)라고도 합니다. AWS Compute와 같은 컴퓨팅 플랫폼은 사용자가 워크로드를 가상 머신으로 마이그레이션할 수 있도록 하는 가상 서버 인스턴스와 스토리지 및 API를 제공합니다. 사용자는 컴퓨팅 파워를 할당했으며 원하는 대로 컴퓨터 리소스를 시작, 중지, 액세스 및 구성할 수 있습니다.
다양한 AWS Compute 서비스 중에서 선택하는 방법
최고의 AWS 인프라를 선택하는 것은 애플리케이션 요구사항, 수명 주기, 코드 크기, 수요, 컴퓨팅 요구 사항에 따라 다릅니다. 다음 세 가지 예를 살펴보세요.
- AWS 환경 내에서 다양한 성능 이점을 제공하는 엄선된 온디맨드 인스턴스를 배포하려는 경우 Amazon Elastic Compute Cloud(EC2)를 사용합니다.
- EC2 인스턴스 클러스터에서 컨테이너로 패키징된 도커 사용 애플리케이션을 실행하려는 경우 Amazon Elastic Container Service(Amazon ECS)를 사용할 수 있습니다.
- 서버리스 환경에서 이벤트 기반 트리거에 대한 응답으로 수 밀리초의 컴퓨팅 리소스만 사용하여 자체 코드를 실행하려는 경우 AWS Lambda를 사용할 수 있습니다.
AWS Compute 서비스의 이점은 무엇인가요?
AWS Compute 서비스는 가장 광범위하고 심층적인 컴퓨팅 기능을 제공합니다. 다음은 AWS Compute 사용의 주요 이점입니다.
워크로드에 적합한 컴퓨팅
Amazon EC2(Amazon Elastic Compute Cloud)는 다양한 프로세서, 스토리지 및 네트워킹을 선택하여 애플리케이션 인프라를 관리할 수 있는 세분화된 제어 기능을 제공합니다. Amazon Elastic Container Service(Amazon ECS)는 컨테이너를 실행할 수 있는 선택권과 유연성을 제공합니다.
내장된 보안 기능
AWS는 다음의 대형 클라우드 공급자보다 훨씬 더 많은 보안, 규정 준수 및 거버넌스 서비스와 주요 기능을 제공합니다. AWS Nitro System을 사용하면 보안 기능이 칩 수준에서 기본적으로 포함되어 인스턴스 하드웨어를 지속적으로 모니터링, 보호 및 확인합니다.
비용 최적화
AWS Compute를 사용하면 장기 계약이나 복잡한 라이선스 없이 필요한 인스턴스 또는 리소스에 대해 사용한 기간에 해당하는 비용만 지불하면 됩니다.
유연성
AWS는 애플리케이션을 빠르게 구축, 배포 및 출시할 수 있는 다양한 방법을 제공합니다. 예를 들어 Amazon Lightsail은 애플리케이션이나 웹 사이트를 구축하는 데 필요한 모든 것을 제공하는 사용하기 쉬운 서비스입니다.
비즈니스 성장에 가장 적합한 AWS Compute 서비스를 결정하려면 주저하지 말고 전문가 팀에 연락하거나 지금 무료 AWS 계정에 가입하세요.