본문 바로가기
회사/인턴

batch

by 오엔_ 2019. 7. 15.

1. 전통적인 의미의 batch:

 

https://ko.wikipedia.org/wiki/%EC%9D%BC%EA%B4%84_%EC%B2%98%EB%A6%AC

 

일괄 처리 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 일괄 처리(batch processing)란 컴퓨터 프로그램 흐름에 따라 순차적으로 자료를 처리하는 방식을 뜻한다. 초기의 일괄처리 방식은 사용자와 상호작용하는 것이 불가능했지만, 운영 체제가 발전함에 따라 프로그램 입출력을 통해 상호작용하는 것이 가능해졌다. 일괄 처리는 1950년대 전자 컴퓨팅 초기 시절 이후 메인프레임 컴퓨터와 함께하고 있다. "일괄 처리"라는 용어는 작업 생산, 일괄 생산, 플로 생산으로서의 전통적

ko.wikipedia.org

일괄처리(batch processing)란 컴퓨터 프로그램 흐름에 따라 순차적으로 자료를 처리하는 방식

 

일괄처리 = 개별적으로 어떤 요청이 있을 때마다 실시간으로 통신하는 것이 아닌, 한꺼번에 일괄적으로 대량 건을 처리하는 것.

특히 배치는 보통 정해진 특정한 시간에 실행된다.

 

1. 대량건의 데이터를 처리한다

2. 보통 특정 시간에 실행된다

3. 일괄적으로 처리한다

 

 

 

 

2. AWS가 어떻게  batch로 클라우드식 서비스를 만들었는지

https://aws.amazon.com/ko/batch/

 

AWS Batch – 쉽고 효율적인 배치 컴퓨팅 기능 – AWS

AWS Batch를 사용하면 개발자, 과학자 및 엔지니어가 AWS에서 수많은 배치 컴퓨팅 작업을 효율적으로 손쉽게 실행할 수 있습니다. AWS Batch는 제출된 배치 작업의 볼륨 및 특정 리소스 요구 사항에 따라 최적의 수량 및 유형의 컴퓨팅 리소스(예: CPU 또는 메모리 최적화 인스턴스)를 동적으로 프로비저닝합니다. AWS Batch에서는 작업 실행을 위한 배치 컴퓨팅 소프트웨어나 서버 클러스터를 설치하여 관리할 필요가 없기 때문에 결과 분석과 문제

aws.amazon.com

https://docs.aws.amazon.com/ko_kr/batch/latest/userguide/what-is-batch.html

 

AWS Batch란 무엇입니까? - AWS Batch

AWS Batch란 무엇입니까? AWS Batch를 사용하면 AWS 클라우드에서 배치 컴퓨팅 워크로드를 실행할 수 있습니다. 배치 컴퓨팅은 개발자, 과학자, 엔지니어가 수많은 컴퓨터 리소스에 액세스할 때 일반적으로 사용하는 방법입니다. AWS Batch는 기존의 배치 컴퓨팅 소프트웨어와 비슷하게 필요한 인프라를 구성하고 관리하는 획일적인 작업에 대한 부담을 덜 수 있습니다. 이 서비스는 제출된 작업에 응답하여 리소스를 효율적으로 프로비저닝함으로써 용량 제

docs.aws.amazon.com

 

AWS Batch를 사용하면 AWS 클라우드에서 배치 컴퓨팅 워크로드를 실행할 수 있다.

배치 컴퓨팅은 개발자, 과학자, 엔지니어가 수많은 컴퓨터 리소스에 액세스할 때 일반적으로 사용하는 방법이다.

 

 

 

AWS Batch:

제출된 배치 작업의 볼륨 및 특정 리소스 요구 사항에 따라

최적의 수량 및 유형의 컴퓨팅 리소스(예: CPU 또는 메모리 최적화 인스턴스-ec2)를 동적으로 프로비저닝

 

자동으로 컴퓨팅 리소스를 프로비저닝, 워크로드의 수량 및 규모에 따라 워크로드 분배를 최적화한다

 

 

AWS Batch에서는 작업 실행을 위한 배치 컴퓨팅 소프트웨어나 서버 클러스터를 설치하여 관리할 필요가 없기 때문에

문제 해결과 결과 분석에 집중할 수 있다.

 

AWS Batch는 Amazon EC2 스팟 인스턴스  AWS 컴퓨팅 서비스 및 기능의 전체 범위에 걸쳐 배치 컴퓨팅 워크로드를 계획, 예약, 실행!

 

 

 

 

https://aws.amazon.com/ko/blogs/compute/building-high-throughput-genomic-batch-workflows-on-aws-batch-layer-part-3-of-4/

 

Building High-Throughput Genomic Batch Workflows on AWS: Batch Layer (Part 3 of 4) | Amazon Web Services

This post is courtesy of Aaron Friedman – Healthcare and Life Sciences Partner Solutions Architect at AWS and Angel Pizarro – Scientific Computing Technical Business Development Manager at AWS This post is the third in a series on how to build a genomics w

aws.amazon.com

 

작업 환경이 확보되면 몇 가지 유형의 자원을 정의 할 수 있다.

 

1. 사용자를 대신하여 서비스 권한을 제공하는 IAM 역할

2. 작업에 대한 컴퓨팅 리소스를 시작하고 종료하는 컴퓨팅 환경 설정

vCPU, 메모리 등 작업이 필요로 하는 총 리소스를 기반으로 사용자를 대신하여 컴퓨터 리소스를 자동으로 실행하고 종료

 

- 컴퓨터 환경을 정의할 때 지정하는 것들

  • 사용자 환경의 원하는 인스턴스 유형
  • 환경의 최소 및 최대 vCPU
  • 사용할 Amazon 머신 이미지 (AMI)
  • 사용할 수있는 스팟 마켓 및 VPC 서브넷 에 대한 입찰가의 백분율 값

그런 다음 AWS Batch 는 RUNNABLE 상태에있는 작업의 총 리소스 요구 사항을 기반으로 프로비저닝

CPU 및 메모리를 많이 사용하는 작업이 혼합되어 실행될 준비가되면 AWS Batch는 해당 환경에서 CPU 및 메모리 최적화 인스턴스의 적절한 비율과 크기를 프로비저닝합니다

 이 게시물의 경우 인스턴스 유형이 "최적"로 설정된 가장 간단한 구성을 사용하여 AWS Batch가 최신 C, M 및 R EC2 인스턴스 제품군 중에서 선택할 수 있도록한다.

 

 

3. 커스텀 Amazon 머신 이미지 (AMI)

4. 작업 단위를 제출하고 /계산 환경 내의 해당 자원을 스케줄하여 /해당 작업을 실행하는 /작업 대기열

5. 응용 프로그램을 실행하는 방법을 정의하는 작업 정의

 

 

리소스를 만든 후에는 -> 환경을 테스트하고 -> AWS Lambda 함수를 만들어 -> 일반 작업을 대기열로 보낸다.

 

 

 

https://aws.amazon.com/ko/blogs/korea/aws-batch-run-batch-computing-jobs-on-aws/

 

AWS Batch – 배치(Batch) 컴퓨팅 관리 서비스 출시 | Amazon Web Services

제가 대학에 들어갔던 1978년에 Montgomery College 전산학과에는 IBM 370/168라는 메임 프레임이 있었고, 저는 카드 천공기를 통해 Job Control Language (JCL) 문법을 작성하는 것을 배웠습니다. (그 뒤로 FORTRAN, COBOL, PL/I 컴파일러가 나왔죠.) 작업한 카드 덱을 제출하기 위해 각 작업 식별자와 교환하여, IT 부서 운영자에게 건네 주면 인쇄된 결과와 카드 덱을 받으러 몇 시간 후에 다시 와야 [

aws.amazon.com

 

 

작업(Job): 

  • AWS Batch에 제공되는 하나의 작업 단위 (쉘 스크립트, 리눅스 실행 파일 또는 컨테이너 이미지)\
  • 작업 정의(Job Definition)에 의해 정의한 파라미터 값을 통해 EC2에서 컨테이너화 되어 실행한다.
  • Job에서 다른 작업을 ID로 참조할 수 있다. AWS Batch에서는 각 작업을 독립적으로 실행
  • 어레이 작업은 병렬적으로 작업이 되고, 동시에 가용 컴퓨팅 자원을 관리하면서 실행합니다.

 

작업 정의(Job Definition):

  • 작업을 어떻게 실행할지 정합니다. AWS Identity and Access Management (IAM) 역할을 포함한 AWS 자원 접근 제어, CPU와 메모리와 요구 사항 등의 값을 설정합니다.
  • 이러한 정보를 통해 개별 콘테이너 설정 값, 환경 변수, 마운트 지점 등을 정하게 됩니다. 개별 작업을 시작 될 때, 이들 값들이 재정의 됩니다.

 

작업 큐(Job Queue):

컴퓨팅 환경이 예약 될 때까지 작업이 있는 곳으로, 우선 순위 값은 각 대기열과 연결됩니다

 

 

스케쥴러(Scheduler):

작업 큐와 함께 작업을 언제 어디서 어떻게 실행할지 결정합니다. AWS Batch 스케줄러는 FIFO(First-in, first-out) 기반이며 작업 사이의 의존성을 인지합니다. 우선 순위를 지정하고, 같은 컴퓨팅 환경 내에서 높은 우선 순위의 큐에 있는 작업부터 낮은 순서로 실행하게 됩니다. 스케줄러는 작업을 위한 적정한 크기의 컴퓨팅 환경을 설정하기도 합니다.

 

 

컴퓨팅 환경(Compute Environment):

  • 작업을 실행하기 위한 관리 혹은 비관리 컴퓨팅 자원으로서, 관리 환경에서는 세부적인 수준에서 인스턴스 타입을 정의할 수 있다. c4.2xlargem4.10xlarge 같은 특정한 인스턴스 타입을 지정하거나,= 원하는 신규 인스턴스 타입을 간단히 지정해도 된다.
  • 또한, Spot Market의 경매에 따른 백분율 값에 따라 최소, 희망 혹은 최대 vCPU 숫자를 지정하거나, VPC 서브넷을 지정할 수 있다. 이러한 지정 파라미터와 제약 사항을 기반으로 AWS Batch가 원하는 EC2 인스턴스를 효과적으로 켜고 관리하고 종료하게 된다.

 

 

댓글