워크로드란 무엇인가요?
컴퓨팅에서 워크로드란 시스템, 서비스 또는 애플리케이션이 실행하는 작업, 프로세스 또는 작업을 의미합니다. 워크로드는 단순히 애플리케이션에 관한 것이 아니라 기본 인프라에 대한 활동 또는 수요를 나타냅니다.
이 리소스의 나머지 부분에서는 워크로드와 애플리케이션의 차이점, 일반적인 워크로드 유형, 최신 IT 환경에서 워크로드를 관리, 자동화 및 보호하는 방법에 대해 살펴봅니다. 또한 이러한 개념을 구체화하기 위해 실제 사례를 강조할 것입니다. 자세히 알아보려면 계속 읽어보세요.
.
워크로드 대 애플리케이션
언뜻 보기에 워크로드와 애플리케이션은 서로 바꿔 사용할 수 있는 것처럼 보이지만 시스템 설계에서는 서로 다른 용도로 사용됩니다. 애플리케이션은 웹 앱, 모바일 앱, 데스크톱 소프트웨어 등 소프트웨어 자체를 의미합니다. 그러나 워크로드는 애플리케이션이 CPU(중앙 처리 장치), 메모리 또는 디스크 공간과 같은 기본 시스템에서 요구하는 것을 말합니다.
다음과 같이 생각해보십시오. 전자상거래 애플리케이션. 앱의 워크로드는 분당 처리되는 거래(또는 주문) 수, 동시 사용자, 인벤토리 업데이트를 처리하는 백엔드 프로세스에 따라 결정됩니다, 사용자 세션또는 추천 엔진. 앱의 개념은 정적이지만 워크로드는 수요에 따라 변동합니다.
이러한 차이를 이해하는 것은 시스템을 설계할 때 특히 다음과 같은 경우에 매우 중요합니다. 확장성 그리고 성능. 애플리케이션은 특정 수의 기능으로 구축될 수 있지만 사용자 활동이 증가하고 새로운 기능이 출시되며 인프라가 발전함에 따라 워크로드가 변경될 수 있습니다.
워크로드 유형
다음은 몇 가지 일반적인 유형입니다:
1. 트랜잭션 워크로드: 대량의 데이터를 처리하는 시스템을 의미합니다. 거래데이터베이스나 온라인 결제 플랫폼과 같은 워크로드에 적합합니다. 이러한 워크로드는 지연 시간이 짧고 안정성이 높다는 특징이 있습니다.
2. 워크로드 배치: 이러한 워크로드는 다음과 같은 일련의 작업을 실행합니다. 일괄 처리. 데이터 분석 파이프라인, 야간 보고, 추출, 변환, 로드(ETL) 작업은 배치 워크로드의 좋은 예입니다.
3. 대화형 워크로드: 이러한 워크로드에는 웹과 모바일 앱 모두에서 최종 사용자와의 상호 작용과 같은 실시간 활동이 포함됩니다. 사용자 입력에 대한 빠른 응답 시간이 요구됩니다.
4. 컴퓨팅 집약적인 워크로드: 머신 러닝 모델 학습, 비디오 렌더링 또는 시뮬레이션과 같이 상당한 처리 능력이 필요한 애플리케이션을 의미합니다.
5. 데이터 집약적인 워크로드: 대규모 데이터베이스와 같이 방대한 양의 데이터를 처리, 저장, 검색해야 하는 시스템 또는 빅 데이터 플랫폼.
워크로드의 예
- 전자상거래 웹사이트: 이 워크로드에는 제품에 대한 사용자 요청, 재고 세부 정보를 가져오기 위한 데이터베이스 쿼리, 결제 거래 처리 및 배송 업데이트가 포함됩니다.
- 머신 러닝 모델 학습: 다음을 수행하려면 집중적인 CPU 또는 GPU(그래픽 처리 장치) 리소스가 필요합니다. 대규모 데이터 세트에서 모델 학습. 이는 종종 컴퓨팅 집약적인 워크로드로 분류됩니다.
- 스트리밍 서비스: Netflix와 같은 플랫폼은 다음과 같은 대화형 워크로드를 처리합니다. 사용자에게 온디맨드 비디오 스트리밍. 여기에는 대용량 멀티미디어 파일을 저장하는 데이터 집약적인 백엔드가 포함됩니다.
- 실시간 사기 탐지: 금융 애플리케이션의 일반적인 사용 사례는 다음과 같습니다. 실시간 거래 분석을 통한 잠재적 사기 탐지 - 이 스트리밍 워크로드는 피크 시간대에 초당 수천 건의 트랜잭션을 처리합니다.
워크로드 관리
워크로드 관리에는 효율적인 성능을 보장하기 위해 CPU, 메모리, 스토리지 등 사용 가능한 리소스 시스템 내에서 작업을 분산하는 작업이 포함됩니다. 애플리케이션을 효율적이고 효과적으로 실행하려면 적절한 워크로드 관리가 중요합니다.
다음과 같은 도구 OpenPBS 그리고 Slurm 를 사용하면 여러 노드 내에서 작업을 예약하고 리소스를 동적으로 할당하므로 클러스터 환경에서 워크로드를 관리할 수 있습니다. 이러한 도구는 우선순위가 높은 작업에 리소스를 할당하고 덜 중요한 작업은 리소스를 사용할 수 있을 때까지 지연하거나 대기하도록 워크로드를 예약하여 하드웨어 리소스를 최적화합니다.
워크로드 자동화
확장 가능한 워크로드 관리를 위해서는 자동화가 필요합니다. 워크로드 자동화는 애플리케이션 또는 시스템 내에서 작업을 자동으로 예약, 실행 및 관리하는 프로세스를 말합니다. 확장성이 뛰어나 리소스 최적화를 지원하고, 수작업을 최소화하며, 특히 동적인 환경에서 일관된 성능을 제공합니다.
워크로드 자동화의 주요 개념
- 작업 예약: OS 수준의 자동화는 종종 작업 예약을 포함합니다. 특정 시간, 이벤트 또는 시스템 임계값과 같은 규칙으로 구성하면 자동으로 작업을 호출할 수 있습니다. 간단한 OS 수준 자동화의 예로는 Linux의 크론 작업이나 Windows의 작업 스케줄러가 있습니다.
- 리소스 확장: Kubernetes와 같은 자동화 플랫폼은 실시간 수요에 따라 리소스를 동적으로 확장합니다. 예를 들어, 웹 애플리케이션에 사용자가 급증하는 경우 Kubernetes는 자동으로 새 인스턴스(컨테이너)를 롤아웃하여 부하를 분산하고 고르게 분산합니다.
- 오류 처리: 자동화 시스템은 작업 실패를 처리할 수 있습니다. 작업이 실패하면 자동화 도구가 재시도하거나 오류를 기록하거나 수동 입력을 위한 알림을 표시할 수 있습니다. 이렇게 하면 다운타임을 최소화하고 시스템이 정상적으로 작동하는 동안 중단 없이 업무를 계속할 수 있습니다.
- 종속성 관리: 워크로드 자동화를 사용하면 어떤 작업이 어떤 작업에 종속되는지 지정할 수 있으므로 프로세스가 적절한 순서로 실행되도록 할 수 있습니다. ETL 작업이 순서대로 실행되어야 하는 데이터 처리 파이프라인에서 추출이 변환 및 로딩보다 선행되어야 한다고 가정해 보겠습니다.
워크로드 자동화를 위한 도구
1. Kubernetes: 컨테이너화된 워크로드 관리를 위한 선도적인 플랫폼인 Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화합니다. 컨트롤러를 사용하여 시스템 상태를 모니터링하고 수요에 맞게 리소스를 조정합니다.
2. AWS(아마존 웹 서비스) 람다: 서버리스 플랫폼 를 사용하면 서버를 프로비저닝하거나 관리할 필요 없이 이벤트에 대한 응답으로 코드를 실행할 수 있습니다. 이 자동화 모델을 사용하면 사용자 상호 작용, 예약된 작업 또는 기타 트리거에 따라 워크로드를 자동으로 효율적으로 확장할 수 있습니다.
3. 아파치 에어플로우: Airflow는 프로그래밍 방식의 저작, 스케줄링, 워크플로우 모니터링을 위한 인기 있는 오픈 소스 플랫폼입니다. 작업이 순차적으로 또는 특정 시간에 실행되어야 하는 배치 워크로드(예: 데이터 파이프라인 및 ETL 작업)에 특히 유용합니다.
4. 테라폼: Terraform은 인프라를 코드로 프로비저닝하고 관리하여 워크로드를 자동화할 수 있습니다(IaC). AWS 및 Google Cloud와 같은 플랫폼과 통합하여 확장 정책을 자동화하고, 서버를 프로비저닝하고, 복잡한 인프라 워크플로우를 관리할 수 있습니다.
워크로드 보호
워크로드의 복잡성이 증가함에 따라 보안 위협에 대한 워크로드의 취약성이 점점 더 커지고 있으며, 이에 따라 워크로드 보호가 필수적입니다. 워크로드 보호에는 애플리케이션, 데이터 및 이를 지원하는 인프라를 보호하는 것이 포함됩니다.
일반적인 전략은 제로 트러스트 보안 모델을 사용하여 워크로드와 상호 작용하는 모든 엔터티(사용자 또는 애플리케이션)가 리소스에 액세스하기 전에 인증 및 권한 부여를 받는 것입니다. 다음과 같은 도구 AWS Shield 와 같은 컨테이너 보안 솔루션은 분산 서비스 거부(DDoS) 공격으로부터 워크로드를 보호할 수 있으며, Falcon과 같은 컨테이너 보안 솔루션은 이상 징후가 있는지 Kubernetes 워크로드를 모니터링합니다.
클라우드 워크로드 보호(CWP)는 클라우드 워크로드 및 컨테이너의 위협을 지속적으로 모니터링하고 제거하는 것을 포함합니다. CWP 플랫폼(CWPP)은 모든 위치에서 모든 유형의 워크로드를 보호하는 보안 솔루션으로, 여러 공급업체에서 통합된 클라우드 워크로드 보호를 제공합니다. 클라우드 제공업체는 일반적으로 미사용 및 전송 중인 데이터 암호화, ID 및 액세스 관리(IAM), 가상 프라이빗 클라우드(VPC)를 통한 네트워크 격리 등의 기본 워크로드 보호 서비스를 제공합니다.
주요 요점 및 추가 리소스
- 워크로드: 애플리케이션은 소프트웨어인 반면, 시스템은 시스템에 대한 수요를 의미합니다.
- 워크로드 유형: 트랜잭션 및 대화형부터 일괄 처리, 컴퓨팅 집약적, 데이터 집약적 워크로드까지 다양합니다. 각 워크로드는 요구 사항에 따라 처리되어야 합니다.
- 워크로드 관리: 워크로드의 효율적인 관리는 종종 자동화됩니다. 시스템의 요구에 따라 리소스를 활용하는 것이 목표입니다.
- 워크로드 보호: 워크로드에 대한 위협으로부터 보호하는 것이 중요하며, 클라우드 네이티브 도구와 보안 모델은 이를 충족하는 데 도움이 됩니다.
또한 비즈니스에서 대규모로 애플리케이션을 구축하고 관리하는 데 도움이 되는 몇 가지 관련 리소스를 제공합니다.