AWS Data Pipeline - 개발자 안내서

Size: px
Start display at page:

Download "AWS Data Pipeline - 개발자 안내서"

Transcription

1 AWS Data Pipeline 개발자안내서

2 AWS Data Pipeline: 개발자안내서 Copyright 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon.

3 Table of Contents AWS Data Pipeline( 이 ) 란무엇입니까?... 1 관련서비스... 2 AWS Data Pipeline 에액세스... 2 요금... 3 파이프라인작업활동에대해지원되는인스턴스유형... 3 AWS 리전별기본 Amazon EC2 인스턴스... 3 추가로지원되는 Amazon EC2 인스턴스... 4 Amazon EMR 클러스터에대해지원되는 Amazon EC2 인스턴스... 5 AWS Data Pipeline 개념... 6 Pipeline Definition... 6 파이프라인구성요소, 인스턴스및시도... 7 작업실행기... 8 데이터노드... 9 데이터베이스... 9 활동... 9 사전조건 시스템관리형사전조건 사용자관리형사전조건 리소스 리소스제한 지원되는플랫폼 Amazon EC2 스팟인스턴스와 Amazon EMR 클러스터및 AWS Data Pipeline Actions 파이프라인사전모니터링 설정 AWS 에가입 필요한 IAM 역할생성 (CLI 또는 API 전용 ) PassRole 포함관리형정책을사전정의된 IAM 역할에할당 PassRole 포함인라인정책을사용자지정 IAM 역할에할당 AWS Data Pipeline 시작하기 파이프라인생성 실행중인파이프라인모니터링 출력검토 파이프라인삭제 파이프라인작업 파이프라인일정조정 콘솔을사용하여일정생성 온디맨드 시계열스타일과 Cron 스타일비교 채우기작업 일정을이용해리소스효율극대화 데이터겹쳐쓰기방지 파이프라인생성 콘솔템플릿을사용하여파이프라인생성 콘솔을사용하여수동으로파이프라인생성 파이프라인보기 파이프라인상태코드해석 파이프라인및구성요소상태해석 파이프라인정의를보려면 파이프라인인스턴스세부정보보기 파이프라인로그보기 파이프라인편집 제한사항 콘솔을사용하여파이프라인편집 iii

4 AWS CLI 를사용하여파이프라인편집 파이프라인복제 파이프라인태그지정 파이프라인비활성화 콘솔을사용하여파이프라인비활성화 AWS CLI 를사용하여파이프라인비활성화 파이프라인삭제 활동으로데이터및테이블준비 ShellCommandActivity 로데이터스테이징 Hive 및스테이징지원데이터노드로테이블스테이징 Hive 및스테이징 - 비지원데이터노드로테이블스테이징 VPC 에서리소스시작 VPC 생성및구성 리소스간연결설정 리소스구성 파이프라인에서스팟인스턴스사용 여러리전의리소스사용 캐스케이드실패및재실행 활동 데이터노드및사전조건 리소스 캐스케이드실패객체재실행 캐스케이드실패및채우기 파이프라인정의파일구문 파일구조 파이프라인필드 사용자정의필드 API 작업 AWS SDK 설치 AWS Data Pipeline 으로 HTTP 요청 파이프라인및리소스에대한액세스제어 AWS Data Pipeline 에대한 IAM 정책 정책구문 태그를이용해파이프라인에대한액세스제어 작업자그룹을이용해파이프라인에대한액세스제어 AWS Data Pipeline 정책의예 예제 1: 태그에따라사용자에게읽기전용액세스권한부여 예제 2: 태그에따라사용자에게모든액세스권한부여 예제 3: 파이프라인소유자에게모든액세스권한부여 예제 4: 사용자에게 AWS Data Pipeline 콘솔에대한액세스권한부여 IAM 역할 AWS Data Pipeline 의기존 IAM 역할업데이트 기존파이프라인의역할변경 자습서 하둡스트리밍과함께 Amazon EMR 을사용하여데이터처리 시작하기전 콘솔사용 CLI 사용 DynamoDB 데이터가져오기및내보내기 부 : DynamoDB 로데이터가져오기 부 : DynamoDB 에서데이터내보내기 Amazon S3 에서 Amazon S3 로 CSV 데이터복사 시작하기전 콘솔사용 CLI 사용 Amazon S3 로 MySQL 데이터내보내기 시작하기전 iv

5 콘솔사용 CLI 사용 Amazon Redshift 로데이터복사 시작하기전 : COPY 옵션구성 시작하기전 : 파이프라인, 보안, 클러스터설정 콘솔사용 CLI 사용 파이프라인표현식및함수 단순한데이터유형 DateTime 숫자 객체참조 기간 표현식 필드및객체참조 중첩표현식 목록 노드표현식 표현식평가 수학함수 함수 날짜및시간함수 특수문자 파이프라인객체참조 데이터노드 DynamoDBDataNode MySqlDataNode RedshiftDataNode S3DataNode SqlDataNode 활동 CopyActivity EmrActivity HadoopActivity HiveActivity HiveCopyActivity PigActivity RedshiftCopyActivity ShellCommandActivity SqlActivity 리소스 Ec2Resource EmrCluster HttpProxy 사전조건 DynamoDBDataExists DynamoDBTableExists Exists S3KeyExists S3PrefixNotEmpty ShellCommandPrecondition 데이터베이스 JdbcDatabase RdsDatabase RedshiftDatabase 데이터형식 v

6 CSV 데이터형식 사용자지정데이터형식 DynamoDBDataFormat DynamoDBExportDataFormat RegEx 데이터형식 TSV 데이터형식 Actions SnsAlarm Terminate 일정 예 구문 유틸리티 ShellScriptConfig EmrConfiguration 속성 Task Runner 작업 AWS Data Pipeline 관리리소스의 Task Runner Task Runner 를사용하여기존리소스에서작업실행 Task Runner 설치 ( 선택사항 ) Amazon RDS 에게 Task Runner 액세스권한부여 Task Runner 시작 Task Runner 로깅확인 Task Runner 스레드및사전조건 Task Runner 구성옵션 프록시와함께작업실행기사용 Task Runner 및사용자지정 AMI 문제해결 파이프라인오류찾기 파이프라인에서비스를제공하는 Amazon EMR 클러스터확인 파이프라인상태세부정보해석 오류로그찾기 파이프라인로그 하둡작업및 Amazon EMR 단계로그 공통문제해결 보류상태에서멈춘파이프라인 실행기대기상태에서멈춘파이프라인구성요소 WAITING_ON_DEPENDENCIES 상태에서멈춘파이프라인구성요소 예약한시간에실행이시작되지않음 잘못된순서로실행되는파이프라인구성요소 EMR 클러스터실패와오류 : 요청에포함된보안토큰이잘못되었음 리소스에대한액세스권한부족 상태코드 : 400 오류코드 : PipelineNotFoundException 파이프라인생성으로보안토큰오류발생 콘솔에서파이프라인세부정보를볼수없음 원격실행기오류상태코드 : 404, AWS Service: Amazon S 액세스거부 - 기능을실행할권한이없음 datapipeline 이전버전의 Amazon EMR AMI 가대용량 CSV 파일의거짓데이터를생성할수있음 AWS Data Pipeline 제한상향 AWS CloudTrail 을사용하여 AWS Data Pipeline API 호출로깅 CloudTrail 의 AWS Data Pipeline 정보 AWS Data Pipeline 로그파일항목이해 한도 계정제한 웹서비스호출제한 조정고려사항 AWS Data Pipeline 리소스 vi

7 문서기록 vii

8 AWS Data Pipeline( 이 ) 란무엇입니까? AWS Data Pipeline 은데이터의이동과변환을자동화하는데사용할수있는웹서비스입니다. AWS Data Pipeline 을사용하면데이터중심워크플로우를정의할수있어성공적으로완료한이전작업을바탕으로작업을수행할수있습니다. 데이터변환의파라미터를정의하면 AWS Data Pipeline 이여러분이설정한로직을실행합니다. AWS Data Pipeline 의다음구성요소가서로연계되어데이터를관리합니다. 파이프라인정의에서는데이터관리의비즈니스로직을지정합니다. 자세한내용은파이프라인정의파일구문 (p. 60) 단원을참조하십시오. 파이프라인은정의된작업활동을수행할 Amazon EC2 인스턴스를생성하여작업을예약하고실행합니다. 파이프라인정의를파이프라인에업로드한다음파이프라인을활성화합니다. 파이프라인실행을위한정의를편집할수있는데, 효력을발휘하려면파이프라인을다시활성화해야합니다. 파이프라인을비활성화하고데이터원본을수정한다음파이프라인을다시활성화할수있습니다. 파이프라인을사용한작업을완료하면이를삭제할수있습니다. Task Runner 는작업에대한폴링을수행한다음작업을수행합니다. 예를들어, Task Runner 는로그파일을 Amazon S3 에복사한다음 Amazon EMR 클러스터를시작할수있습니다. Task Runner 는파이프라인정의에의해생성되는리소스에자동으로설치되어실행됩니다. 사용자지정작업실행애플리케이션을작성하거나 AWS Data Pipeline 에서제공하는 Task Runner 애플리케이션을사용할수있습니다. 자세한내용은작업실행기 (p. 8) 단원을참조하십시오. 예를들어, AWS Data Pipeline 을사용하여매일웹서버로그를 Amazon Simple Storage Service(Amazon S3;) 에보관한다음해당로그에대해 Amazon EMR(Amazon EMR) 클러스터를매주실행하여트래픽보고서를생성할수있습니다. AWS Data Pipeline 은일일작업인데이터복사와주간작업인 Amazon EMR 클러스터시작의일정을수립합니다. 또한 AWS Data Pipeline 은로그업로드가예기치않게지연되는경우라도 Amazon EMR 이최종일의데이터가 Amazon S3 에업로드될때까지기다렸다가분석을시작하도록합니다. 1

9 관련서비스 목차 관련서비스 (p. 2) AWS Data Pipeline에액세스 (p. 2) 요금 (p. 3) 파이프라인작업활동에대해지원되는인스턴스유형 (p. 3) 관련서비스 AWS Data Pipeline 은다음서비스와연계하여데이터를저장합니다. Amazon DynamoDB 저비용에빠른성능으로완벽하게관리되는 NoSQL 데이터베이스를제공합니다. 자세한내용은 Amazon DynamoDB 개발자안내서단원을참조하십시오. Amazon RDS 대량의데이터세트로확장되며완벽하게관리되는관계형데이터베이스를제공합니다. 자세한내용은 Amazon Relational Database Service 개발자안내서단원을참조하십시오. Amazon Redshift 빠르고완벽하게관리되는페타바이트규모의데이터웨어하우스로경제적이고쉽게방대한양의데이터를분석할수있습니다. 자세한내용은 Amazon Redshift Database Developer Guide 단원을참조하십시오. Amazon S3 안전하고, 안정적이며, 확장성이뛰어난객체스토리지를제공합니다. 자세한내용은 Amazon Simple Storage Service 개발자가이드단원을참조하십시오. AWS Data Pipeline 은다음컴퓨팅서비스와연계하여데이터를변환합니다. Amazon EC2 는소프트웨어시스템의빌드및호스팅에사용할수있도록컴퓨팅용량, 즉 Amazon 데이터센터의서버 를제공하며규모는필요에따라변경할수있습니다. 자세한내용은 Linux 인스턴스용 Amazon EC2 사용설명서단원을참조하십시오. Amazon EMR Apache 하둡또는 Apache Spark 와같은프레임워크를사용하여 Amazon EC2 서버에있는방대한양의데이터를용이하고신속하고비용효율적으로배포하고처리할수있도록해줍니다. 자세한내용은 Amazon EMR 개발자안내서단원을참조하십시오. AWS Data Pipeline 에액세스 다음인터페이스중하나를사용하여파이프라인을생성하고, 액세스하고, 관리할수있습니다. AWS Management 콘솔 AWS Data Pipeline 에액세스할때사용할수있는웹인터페이스를제공합니다. AWS Command Line Interface(AWS CLI) 다양한 AWS 서비스에서사용되는명령어 (AWS Data Pipeline 포함 ) 를제공하며 Windows, macos, Linux 를지원합니다. AWS CLI 설치에대한자세한내용은 AWS Command Line Interface 단원을참조하십시오. AWS Data Pipeline 에서사용되는명령어목록은 datapipeline 을참조하십시오. AWS SDK 언어별 API 를제공하고, 서명계산, 요청재시도처리및오류처리와같은많은연결세부정보를관리합니다. 자세한내용은 AWS SDK 를참조하십시오. 쿼리 API HTTPS 요청을사용하여호출하는하위수준의 API 를제공합니다. 쿼리 API 사용은 AWS Data Pipeline 에액세스하는가장직접적인방법이지만, 애플리케이션에서요청에서명할해시생성및오류처리와같은하위수준의세부정보를처리해야합니다. 자세한내용은 AWS Data Pipeline API Reference 섹션을참조하십시오. 2

10 요금 요금 Amazon Web Services 에서는사용한만큼만지불하면됩니다. AWS Data Pipeline 의경우, 활동및사전조건이얼마나자주실행예약이되는지어디에서실행되는지를바탕으로파이프라인비용을지불합니다. 자세한내용은 AWS Data Pipeline 요금을참조하십시오. AWS 계정을만든지가 12 개월이안된경우에는프리티어를이용할수있습니다. 프리티어에는월간 3 건의저빈도사전조건및 5 건의저빈도활동무상이용권이포함됩니다. 자세한내용은 AWS 프리티어단원을참조하십시오. 파이프라인작업활동에대해지원되는인스턴스유형 AWS Data Pipeline 이파이프라인을실행할때파이프라인구성요소를컴파일하여실행가능한 Amazon EC2 인스턴스세트를생성합니다. 각인스턴스는특정작업수행에필요한모든정보를포함합니다. 인스턴스의전체세트는파이프라인의할일목록입니다. AWS Data Pipeline 은인스턴스를작업실행기에분배하여처리하도록합니다. EC2 인스턴스는인스턴스유형이라고하는다양한구성으로제공됩니다. 각인스턴스유형마다 CPU, 입 / 출력및스토리지용량이다릅니다. 활동을위한인스턴스유형을지정하는것외에도, 다양한구매옵션을선택할수있습니다. AWS 리전에따라일부인스턴스유형은사용할수없습니다. 사용할수없는인스턴스유형을사용하여클러스터를생성하는경우, 파이프라인이프로비저닝에실패하거나프로비저닝이멈출수있습니다. 인스턴스가용성에대한자세한내용은 Amazon EC2 요금페이지를참조하십시오. 해당리전에서인스턴스유형을사용할수있는알아보기위해인스턴스구매옵션링크를열고리전별로필터링합니다. 이러한인스턴스유형, 패밀리및가상화유형에대한자세한내용은 Amazon EC2 인스턴스및 Amazon Linux AMI 인스턴스유형표를참조하십시오. 다음표에서는 AWS Data Pipeline 에서지원되는인스턴스유형을설명합니다. AWS Data Pipeline 을사용하여 AWS Data Pipeline 이지원되지않는리전을비롯한모든리전에서 Amazon EC2 인스턴스를실행할수있습니다. AWS Data Pipeline 이지원되는리전에대한자세한내용은 AWS 리전및엔드포인트를참조하십시오. 목차 AWS 리전별기본 Amazon EC2 인스턴스 (p. 3) 추가로지원되는 Amazon EC2 인스턴스 (p. 4) Amazon EMR 클러스터에대해지원되는 Amazon EC2 인스턴스 (p. 5) AWS 리전별기본 Amazon EC2 인스턴스 파이프라인정의에서인스턴스유형을지정하지않는경우 AWS Data Pipeline 에서기본적으로인스턴스를실행합니다. 다음표에는 AWS Data Pipeline 이지원되는리전에서 AWS Data Pipeline 이기본적으로사용하는 Amazon EC2 인스턴스가나열되어있습니다. 리전이름리전인스턴스유형 미국동부 ( 버지니아북부 ) us-east-1 m1.small 미국서부 ( 오레곤 ) us-west-2 m1.small 3

11 추가로지원되는 Amazon EC2 인스턴스 리전이름 리전 인스턴스유형 아시아태평양 ( 시드니 ) ap-southeast-2 m1.small 아시아태평양 ( 도쿄 ) ap-northeast-1 m1.small EU( 아일랜드 ) eu-west-1 m1.small 다음표에는 AWS Data Pipeline 이지원되지않는리전에서 AWS Data Pipeline 이기본적으로시작하는 Amazon EC2 인스턴스가나열되어있습니다. 리전이름 리전 인스턴스유형 미국동부 ( 오하이오 ) us-east-2 t2.small 미국서부 ( 캘리포니아북부지역 ) us-west-1 m1.small 아시아태평양 ( 뭄바이 ) ap-south-1 t2.small 아시아태평양 ( 싱가포르 ) ap-southeast-1 m1.small 아시아태평양 ( 서울 ) ap-northeast-2 t2.small 캐나다 ( 중부 ) ca-central-1 t2.small EU( 프랑크푸르트 ) eu-central-1 t2.small EU( 런던 ) eu-west-2 t2.small EU( 파리 ) eu-west-3 t2.small 남아메리카 ( 상파울루 ) sa-east-1 m1.small 추가로지원되는 Amazon EC2 인스턴스 파이프라인정의에서인스턴스유형을지정하지않는경우생성되는기본인스턴스외에도, 다음인스턴스가지원됩니다. 다음표에는 AWS Data Pipeline 에서지원하고생성할수있는 ( 지정된경우 ) Amazon EC2 인스턴스가나열되어있습니다. 인스턴스클래스 범용 인스턴스유형 t2.nano t2.micro t2.small t2.medium t2.large 컴퓨팅최적화 c3.large c3.xlarge c3.2xlarge c3.4xlarge c3.8xlarge c4.large c4.xlarge c4.2xlarge c4.4xlarge c4.8xlarge 메모리최적화 m3.medium m3.large m3.xlarge m3.2xlarge m4.large m4.xlarge m4.2xlarge m4.4xlarge m4.10xlarge m4.16xlarge r3.large r3.xlarge r3.2xlarge r3.4xlarge r3.8xlarge r4.large r4.xlarge r4.2xlarge r4.4xlarge r4.8xlarge r4.16xlarge 스토리지최적화 i2.xlarge i2.2xlarge i2.4xlarge i2.8xlarge hs1.8xlarge g2.2xlarge g2.8xlarge d2.xlarge d2.2xlarge d2.4xlarge d2.8xlarge 4

12 Amazon EMR 클러스터에대해지원되는 Amazon EC2 인스턴스 Amazon EMR 클러스터에대해지원되는 Amazon EC2 인스턴스 이표에는 AWS Data Pipeline 에서지원하고 Amazon EMR 클러스터에대해생성할수있는 ( 지정된경우 ) Amazon EC2 인스턴스가나열되어있습니다. 자세한내용은 Amazon EMR 관리안내서의지원되는인스턴스유형을참조하십시오. 인스턴스클래스 인스턴스유형 범용 m1.small m1.medium m1.large m1.xlarge m3.xlarge m3.2xlarge 컴퓨팅최적화 c1.medium c1.xlarge c3.xlarge c3.2xlarge c3.4xlarge c3.8xlarge cc1.4xlarge cc2.8xlarge c4.large c4.xlarge c4.2xlarge c4.4xlarge c4.8xlarge 메모리최적화 m2.xlarge m2.2xlarge m2.4xlarge r3.xlarge r3.2xlarge r3.4xlarge r3.8xlarge cr1.8xlarge m4.large m4.xlarge m4.2xlarge m4.4xlarge m4.10xlarge m4.16large r4.large r4.xlarge r4.2xlarge r4.4xlarge r4.8xlarge r4.16xlarge 스토리지최적화 h1.4xlarge hs1.2xlarge hs1.4xlarge hs1.8xlarge i2.xlarge i2.2xlarge i2.4large i2.8xlarge d2.xlarge d2.2xlarge d2.4xlarge d2.8xlarge 액셀러레이티드컴퓨팅 g2.2xlarge cg1.4xlarge 5

13 Pipeline Definition AWS Data Pipeline 개념 시작하기전에 AWS Data Pipeline의핵심개념및구성요소부분을읽어보십시오. 목차 Pipeline Definition (p. 6) 파이프라인구성요소, 인스턴스및시도 (p. 7) 작업실행기 (p. 8) 데이터노드 (p. 9) 데이터베이스 (p. 9) 활동 (p. 9) 사전조건 (p. 10) 리소스 (p. 11) Actions (p. 12) Pipeline Definition 파이프라인정의에서는비즈니스로직을 AWS Data Pipeline 에전달하는방식을지정합니다. 여기에는다음정보가포함됩니다. 데이터원본의이름, 위치및형식 데이터를변환하는활동 변환작업의일정 활동및사전조건을실행하는리소스 활동예약전에충족해야하는사전조건 파이프라인실행이진행되는동안상태업데이트를알리는방법 AWS Data Pipeline 은파이프라인정의를바탕으로작업을정하고, 작업일정을수립하고, 작업실행기에할당합니다. 작업이성공적으로완료되지못하면, AWS Data Pipeline 은지시에따라작업을재시도하고필요할경우다른작업실행기에재할당합니다. 작업이반복적으로실패하면파이프라인이알림메시지를보내도록구성할수있습니다. 예를들어, 파이프라인정의에서애플리케이션에의해생성된로그파일이 2013 년도에매월 Amazon S3 버킷에보관되도록지정할수있습니다. 그러면 AWS Data Pipeline 이해당월의일수가 30 일이든, 31 일이든, 28 일이든, 29 일이든상관없이각각한달치의데이터에대해복사를수행하는 12 개작업을생성합니다. 파이프라인정의를생성하는방법은다음과같습니다. AWS Data Pipeline 콘솔을사용하여그래픽방식으로정의생성 명령줄인터페이스에의해사용되는형식의 JSON 파일을작성하여텍스트방식으로정의생성 AWS SDK 또는 AWS Data Pipeline API 중하나를사용하여웹서비스를호출하는프로그래밍방식으로정의생성 6

14 파이프라인구성요소, 인스턴스및시도 파이프라인정의는다음과같은유형의구성요소를포함할수있습니다. 파이프라인구성요소데이터노드 (p. 9) 작업에사용되는입력데이터의위치또는출력데이터를저장할위치활동 (p. 9) 컴퓨팅리소스와일반적인입력및출력데이터노드를사용하여일정대로수행할작업의정의사전조건 (p. 10) 작업실행전에반드시충족되어야할조건문. 파이프라인일정조정 (p. 21) 예약된이벤트의타이밍을정의합니다 ( 예 : 활동실행시점 ). 리소스 (p. 11) 파이프라인에서정의한작업을수행하는컴퓨팅리소스입니다. Actions (p. 12) 지정된조건 ( 예 : 활동실패 ) 이충족될때트리거되는작업입니다. 자세한정보는파이프라인정의파일구문 (p. 60) 단원을참조하십시오. 파이프라인구성요소, 인스턴스및시도 다음과같은세가지유형의항목이예약된파이프라인과연결됩니다. 파이프라인구성요소 파이프라인구성요소는파이프라인의비즈니스로직을나타내며파이프라인의다양한섹션에의해표현됩니다. 파이프라인구성요소는워크플로우의데이터원본, 활동, 일정및사전조건을지정합니다. 상위구성요소로부터속성을상속받을수있습니다. 구성요소간의관계는참조에의해정의됩니다. 파이프라인구성요소는데이터관리의규칙을정의합니다. 인스턴스 AWS Data Pipeline 이파이프라인을실행할때파이프라인구성요소를컴파일하여실행가능한인스턴스세트를생성합니다. 각인스턴스는특정작업수행에필요한모든정보를포함합니다. 인스턴스의전체세트는파이프라인의할일목록입니다. AWS Data Pipeline 은인스턴스를작업실행기에분배하여처리하도록합니다. 시도 견실한데이터관리를위해 AWS Data Pipeline 은실패한작업을재시도합니다. 작업이허용최대재시도횟수에도달할때까지재시도롤계속하여반복합니다. 시도객체는다양한시도, 결과및실패사유 ( 해당하는경우 ) 를추적합니다. 기본적으로인스턴스에카운터가탑재되어있습니다. AWS Data Pipeline 은이전시도에서사용했던것과동일한리소스 ( 예 : Amazon EMR 클러스터, EC2 인스턴스 ) 를사용하여재시도를수행합니다. Note 재시도실패작업은내결함성전략의중요한부분으로 AWS Data Pipeline 정의는재시도제어에관한조건및임계값을제공합니다. 그러나재시도횟수가너무많을경우 AWS Data Pipeline 이지정된재시도횟수를모두소진할때까지는장애를보고하지않기때문에복구불가능한장애의감지가지연될수있습니다. 허용횟수를초과한재시도가 AWS 리소스상에서실행되는경우에는추가요금이발생할수있습니다. 따라서재시도제어에사용하는 AWS Data Pipeline 이기본설정및관련설정을초과하는것이적절한지신중하게고려해야합니다. 7

15 작업실행기 작업실행기 작업실행기는작업에대해 AWS Data Pipeline 을폴링한다음해당작업을수행하는애플리케이션입니다. Task Runner 가 AWS Data Pipeline 에서제공하는기본적인작업실행기입니다. Task Runner 가설치되고구성되어있으면활성화한파이프라인과연결된작업에대해 AWS Data Pipeline 을폴링합니다. 작업이 Task Runner 에할당되어있을경우, 해당작업을수행하고상태를다시 AWS Data Pipeline 으로전송합니다. 다음다이어그램은 AWS Data Pipeline 및작업실행기가상호작용하여예약된작업을처리하는방식을보여줍니다. 작업은 AWS Data Pipeline 서비스가작업실행기와공유하는개별작업단위입니다. 작업은보통여러작업을산출하는활동및리소스의일반적인정의인파이프라인과다릅니다. Task Runner 를사용하여파이프라인을처리할수있는두가지방법이있습니다. AWS Data Pipeline 이 AWS Data Pipeline 웹서비스에의해시작되고관리되는리소스에 Task Runner 를대신자동으로설치합니다. 오랫동안실행되는 EC2 인스턴스나온프레미스서버와같이사용자가관리하는컴퓨팅리소스에는 Task Runner 를직접설치합니다. 8

16 데이터노드 작업실행기작업에대한자세한내용은 Task Runner 작업 (p. 271) 단원을참조하십시오. 데이터노드 AWS Data Pipeline 에서는데이터노드가파이프라인활동이입력또는출력으로사용하는데이터의위치와유형을정의합니다. AWS Data Pipeline 이지원하는데이터노드의유형은다음과같습니다. DynamoDBDataNode (p. 135) HiveActivity (p. 170) 또는 EmrActivity (p. 159) 가사용할데이터를포함하는 DynamoDB 테이블. SqlDataNode (p. 151) 파이프라인활동이사용할데이터를나타내는 SQL 테이블및데이터베이스쿼리. Note 이전에는 MySqlDataNode 가사용되었습니다. 대신 SqlDataNode 를사용합니다. RedshiftDataNode (p. 143) RedshiftCopyActivity (p. 189) 가사용할데이터를포함하는 Amazon Redshift 테이블. S3DataNode (p. 147) 파이프라인활동이사용할하나이상의파일을포함하는 Amazon S3 위치. 데이터베이스 AWS Data Pipeline이지원하는데이터베이스의유형은다음과같습니다. JdbcDatabase (p. 246) JDBC 데이터베이스. RdsDatabase (p. 247) Amazon RDS 데이터베이스. RedshiftDatabase (p. 248) Amazon Redshift 데이터베이스. 활동 AWS Data Pipeline 에서활동은수행할작업을정의하는파이프라인구성요소입니다. AWS Data Pipeline 은한위치에서다른위치로의데이터이전, Hive 쿼리실행등과같은보편적인시나리오를수용하는다수의사전패키징된활동을제공합니다. 활동은확장가능하므로, 자체의사용자지정스크립트를실행하여무한한조합을지원할수있습니다. AWS Data Pipeline 이지원하는활동의유형은다음과같습니다. CopyActivity (p. 155) 한위치에서다른위치로의데이터복사. 9

17 사전조건 EmrActivity (p. 159) Amazon EMR 클러스터실행. HiveActivity (p. 170) Amazon EMR 클러스터상에서의 Hive 쿼리실행. HiveCopyActivity (p. 175) 고급데이터필터링과 S3DataNode (p. 147) 및 DynamoDBDataNode (p. 135) 가지원되는 Amazon EMR 클러스터에서 Hive 쿼리를실행합니다. PigActivity (p. 181) Amazon EMR 클러스터에서 Pig 스크립트를실행합니다. RedshiftCopyActivity (p. 189) Amazon Redshift 테이블과의복사를수행합니다. ShellCommandActivity (p. 197) 사용자지정 UNIX/Linux 셸명령을활동으로실행합니다. SqlActivity (p. 202) 데이터베이스에서 SQL 쿼리를실행합니다. 일부활동은데이터및데이터베이스스테이징을특별히지원합니다. 자세한내용은파이프라인활동으로데이터및테이블준비 (p. 50) 단원을참조하십시오. 사전조건 AWS Data Pipeline 에서사전조건은활동실행전에충족되어야할조건문을포함하는파이프라인구성요소입니다. 예를들어, 파이프라인활동이복사를시도하기전에원본데이터가존재하는지를사전조건이확인할수있습니다. AWS Data Pipeline 은데이터베이스테이블존재여부, Amazon S3 키존재여부등과같은보편적인시나리오를수용하는다수의사전패키징된사전조건을제공합니다. 그러나사전조건은확장가능하므로, 자체의사용자지정스크립트를실행하여무한한조합을지원할수있습니다. 사전조건에는두가지유형의사전조건 ( 시스템관리형사전조건과사용자관리형사전조건 ) 이있습니다. 시스템관리형사전조건은 AWS Data Pipeline 웹서비스가대신실행하며컴퓨팅리소스를요구하지않습니다. 사용자관리형사전조건은 runson 및 workergroup 필드를사용하여사용자가지정한컴퓨팅리소스에서만실행됩니다. workergroup 리소스는사전조건을사용하는활동으로부터추출됩니다. 시스템관리형사전조건 DynamoDBDataExists (p. 231) 특정 DynamoDB 테이블에데이터가존재하는지확인합니다. DynamoDBTableExists (p. 233) DynamoDB 테이블이존재하는지확인합니다. S3KeyExists (p. 238) Amazon S3 키가존재하는지확인합니다. S3PrefixNotEmpty (p. 240) Amazon S3 접두사가비어있는지확인합니다. 10

18 사용자관리형사전조건 사용자관리형사전조건 Exists (p. 235) 데이터노드가존재하는지확인합니다. ShellCommandPrecondition (p. 243) 사용자지정 UNIX/Linux 셸명령을사전조건으로실행합니다. 리소스 AWS Data Pipeline 에서리소스는파이프라인활동이지정하는작업을수행하는컴퓨팅리소스입니다. AWS Data Pipeline 이지원하는리소스의유형은다음과같습니다. Ec2Resource (p. 207) 파이프라인활동에의해정의된작업을수행하는 EC2 인스턴스입니다. EmrCluster (p. 212) EmrActivity (p. 159) 와같은파이프라인활동에의해정의된작업을수행하는 Amazon EMR 클러스터입니다. 리소스는작업대상데이터세트와동일한리전에서실행가능합니다 (AWS Data Pipeline 과다른리전이라도가능 ). 자세한내용은여러리전의리소스와파이프라인사용 (p. 57) 단원을참조하십시오. 리소스제한 AWS Data Pipeline 은동시에엄청나게많은수의작업을감당할수있도록조정되므로, 대용량워크로드를처리할때필요한리소스를자동으로생성하도록구성할수있습니다. 이렇게자동으로생성된리소스는사용자가제어할수있으며, AWS 계정리소스제한을기준으로계수할수있습니다. 예를들어, 20 노드 Amazon EMR 클러스터를자동으로생성하여데이터를처리하도록 AWS Data Pipeline 을구성하고, AWS 계정의 EC2 인스턴스제한이 20 으로설정된경우가용채우기리소스를본의아니게소모할수있습니다. 따라서디자인할때이러한리소스제한을고려하거나계정한계를알맞게늘리는것이좋습니다. 서비스제한에관한자세한정보는 AWS 일반참조의 AWS 서비스제한단원을참조하십시오. Note 한도는 Ec2Resource 구성요소객체당인스턴스하나입니다. 지원되는플랫폼 파이프라인은다음플랫폼에서리소스를시작할수있습니다. EC2-Classic 다른고객과공유하는단일일반네트워크에서리소스가실행됩니다. EC2-VPC AWS 계정에속하도록논리적으로독립된 Virtual Private Cloud(VPC) 에서리소스가실행됩니다. AWS 계정에서는리전별로두가지플랫폼모두또는 EC2-VPC 에서만리소스를시작할수있습니다. 자세한내용은 Linux 인스턴스용 Amazon EC2 사용설명서에서지원되는플랫폼을참조하십시오. 11

19 Amazon EC2 스팟인스턴스와 Amazon EMR 클러스터및 AWS Data Pipeline AWS 계정에서 EC2-VPC 만지원하는경우각 AWS 리전에서기본 VPC 가자동으로생성됩니다. 기본적으로리소스는기본 VPC 의기본서브넷에서시작됩니다. 아니면기본이아닌 VPC 를생성하고리소스를구성할때 VPC 의서브넷중하나를지정한다음, 기본이아닌 VPC 의지정된서브넷에서리소스를시작합니다. VPC 에서인스턴스를시작할경우해당 VPC 전용으로생성되는보안그룹을지정해야합니다. VPC 에서인스턴스를시작하는경우 EC2-Classic 용으로생성된보안그룹은지정할수없습니다. 또한보안그룹이름이아닌보안그룹 ID 를사용하여 VPC 의보안그룹을식별해야합니다. VPC 와 AWS Data Pipeline 을함께사용하는방법에대한자세한내용은 VPC 에서파이프라인을위한리소스시작 (p. 54) 단원을참조하십시오. Amazon EC2 스팟인스턴스와 Amazon EMR 클러스터및 AWS Data Pipeline 파이프라인은그 Amazon EMR 클러스터리소스에서 Amazon EC2 스팟인스턴스를작업노드로사용할수있습니다. 기본적으로파이프라인은온디맨드인스턴스를사용합니다. 스팟인스턴스를통해예비 EC2 인스턴스를사용하고실행할수있습니다. 스팟인스턴스요금모델은온디맨드및예약인스턴스요금모델을보완한것으로서, 애플리케이션에따라서는가장경제적으로컴퓨팅용량을확보할수있는방법입니다. 자세한내용은 Amazon EC2 스팟인스턴스제품페이지를참조하십시오. 스팟인스턴스를사용할경우, 클러스터가시작될때 AWS Data Pipeline 이스팟인스턴스최고가격을 Amazon EMR 에제출합니다. 그리고 taskinstancecount 필드를사용하여사용자가직접정의한스팟인스턴스작업노드번호에클러스터의작업을자동으로할당합니다. AWS Data Pipeline 은스팟인스턴스에대한입찰을성공하지못한경우온디맨드코어노드를사용할수있도록스팟인스턴스를작업노드에한정합니다. 실패혹은완료한파이프라인리소스인스턴스를편집하여스팟인스턴스를추가할수있습니다. 그러면파이프라인은클러스터를다시시작할때작업노드에스팟인스턴스를사용합니다. 스팟인스턴스고려사항 AWS Data Pipeline 에서스팟인스턴스를사용할때다음을고려합니다. 스팟인스턴스가격이해당인스턴스의최고가격을초과하거나 Amazon EC2 용량문제가있으면스팟인스턴스가종료될수있습니다. 하지만 AWS Data Pipeline 은항상온디맨드인스턴스이고종료되지않는코어노드를지닌클러스터를채용하기때문에데이터가사라질염려는없습니다. 스팟인스턴스는용량을비동기식으로채워가기때문에시작하는데시간이더오래걸릴수있습니다. 그러므로스팟인스턴스파이프라인은비슷한온디맨드인스턴스파이프라인에비해실행시간이더길어지기도합니다. 스팟인스턴스를받지못하면 ( 예 : 최고가격이너무낮은경우 ) 클러스터가실행되지않을수있습니다. Actions AWS Data Pipeline 작업은특정이벤트 ( 예 : 성공, 실패, 활동지연등 ) 가발생하는경우파이프라인구성요소가취하는단계입니다. 활동의이벤트필드는특정작업 (EmrActivity 의 onlateaction 필드에있는 snsalarm 참조 ) 을가리킵니다. AWS Data Pipeline 은 Amazon SNS 알림을파이프라인및파이프라인구성요소의의도되지않은상태를알리는기본수단으로사용합니다. 자세한내용은 Amazon SNS 단원을참조하십시오. SNS 알림이외에 AWS Data Pipeline 콘솔및 CLI 를통해서도파이프라인상태정보를얻을수있습니다. AWS Data Pipeline 은다음작업을지원합니다. SnsAlarm (p. 258) onsuccess, OnFail 및 onlateaction 이벤트를바탕으로주제에 SNS 알림을전송하는작업. 12

20 파이프라인사전모니터링 Terminate (p. 259) 대기중이거나완료되지않은활동, 리소스또는데이터노드의취소를트리거하는작업. onsuccess, OnFail 또는 onlateaction 을포함하는작업은종료할수없습니다. 파이프라인사전모니터링 문제를탐지하는최선의방법은처음부터파이프라인을미리모니터링하는것입니다. 특정상황이나이벤트 ( 에 : 파이프라인구성요소가실패하거나예약된시간에시작하지못하는경우 ) 를알리도록파이프라인구성요소를설정할수있습니다. AWS Data Pipeline 을사용하면 Amazon SNS 알림과연결할수있는파이프라인구성요소에이벤트필드를제공함으로써용이하게알림을구성할수있습니다 ( 예 : onsuccess, OnFail 및 onlateaction). 13

21 AWS 에가입 AWS Data Pipeline 설정 AWS Data Pipeline을 ( 를 ) 처음사용하는경우, 먼저다음작업을완료해야합니다. 작업 AWS에가입 (p. 14) 필요한 IAM 역할생성 (CLI 또는 API 전용 ) (p. 14) PassRole 포함관리형정책을사전정의된 IAM 역할에할당 (p. 15) PassRole 포함인라인정책을사용자지정 IAM 역할에할당 (p. 16) 이러한작업을완료한후에 AWS Data Pipeline 을사용할수있습니다. 기본자습서는 AWS Data Pipeline 시작하기 (p. 18) 을참조하십시오. AWS 에가입 Amazon Web Services(AWS) 에가입하면 AWS Data Pipeline 를포함해 AWS 의모든서비스에 AWS 계정이자동으로등록됩니다. 사용한서비스에대해서만청구됩니다. AWS Data Pipeline 사용요금에대한자세한내용은 AWS Data Pipeline 을참조하십시오. 이미 AWS 계정이있다면다음작업으로건너뛰십시오. AWS 계정이없는경우에는아래단계를수행하여계정을만드십시오. AWS 계정을생성하려면 1. 을열고 Create an AWS Account(AWS 계정생성 ) 를선택합니다. Note 전에 AWS 계정루트사용자자격증명을사용하여 AWS Management 콘솔에로그인한적이있는경우 Sign in to a different account( 다른계정으로로그인 ) 를선택합니다. 전에 IAM 자격증명을사용하여콘솔에로그인한적이있는경우 Sign-in using root account credentials( 루트계정자격증명으로로그인 ) 를선택합니다. 그런다음 Create a new AWS account( 새 AWS 계정생성 ) 를선택합니다. 2. 온라인지시사항을따릅니다. 등록절차중전화를받고전화키패드를사용하여확인코드를입력하는과정이있습니다. 필요한 IAM 역할생성 (CLI 또는 API 전용 ) AWS Data Pipeline 은파이프라인에서수행할수있는작업과액세스할수있는리소스를결정할 IAM 역할이필요합니다. 그리고사용자의파이프라인에서 EC2 인스턴스나 EMR 클러스터같은리소스를생성할때 IAM 역할은애플리케이션으로실행할수있는작업과액세스할수있는리소스를결정합니다. AWS Data Pipeline 콘솔은다음역할을생성합니다. DataPipelineDefaultRole - AWS Data Pipeline 이 AWS 리소스에액세스하도록허용 DataPipelineDefaultResourceRole - EC2 인스턴스의애플리케이션이 AWS 리소스에액세스하도록허용 14

22 PassRole 포함관리형정책을사전정의된 IAM 역할에할당 전에 AWS Data Pipeline 을사용하여이러한 IAM 역할의기존버전이있는경우업데이트해야할것입니다. 자세한내용은 AWS Data Pipeline 의기존 IAM 역할업데이트 (p. 72) 단원을참조하십시오. CLI 또는 API 를사용하고있는데전에 AWS Data Pipeline 콘솔을사용하여파이프라인을생성한적이없는경우에는 AWS Identity and Access Management(IAM) 을사용하여이러한역할을수동으로생성해야합니다. 필요한 IAM 역할을수동으로생성하려면 1. 에서 IAM 콘솔을엽니다. 2. 다음과같이 DataPipelineDefaultRole 역할을생성합니다. a. 탐색창에서 [Roles], [Create New Role] 을선택합니다. b. [Set Role Name] 페이지의 [Role name] 에 DataPipelineDefaultRole 을입력합니다. c. [Select Role Type] 페이지에서 [AWS Service Roles] 아래의 [AWS Data Pipeline] 행에서 [Select] 를선택합니다. d. [Attach Policy] 페이지에서 [AWSDataPipelineRole] 정책을선택한다음 [Next Step] 을선택합니다. e. [Review] 페이지에서 [Create Role] 을선택합니다. 3. 다음과같이 DataPipelineDefaultResourceRole 역할을생성합니다. a. 탐색창에서 [Roles], [Create New Role] 을선택합니다. b. [Set Role Name] 페이지의 [Role name] 에 DataPipelineDefaultResourceRole 을입력합니다. c. [Select Role Type] 페이지에서 [AWS Service Roles] 아래의 [Amazon EC2 Role for Data Pipeline] 행에서 [Select] 를선택합니다. d. [Attach Policy] 페이지에서 [AmazonEC2RoleforDataPipelineRole] 정책을선택한다음 [Next Step] 을선택합니다. e. [Review] 페이지에서 [Create Role] 을선택합니다. 또는사용자지정역할을생성하여사용할수있습니다. EmrCluster 객체에대한사용자지정역할을지정하는방법에대한자세한내용은 Specify custom IAM roles (p. 215) 를참조하십시오. PassRole 포함관리형정책을사전정의된 IAM 역할에할당 계정의모든 AWS Data Pipeline 사용자는 DataPipelineDefaultRole 및 DataPipelineDefaultResourceRole 사전정의된역할, 또는 AWS Data Pipeline 액세스를위해사용할기타사용자지정역할에 "Action":"iam:PassRole" 권한이있어야합니다. 편의를위해이러한사용자들을위한사용자그룹을생성하고그룹에관리형정책인 AWSDataPipeline_FullAccess 를연결해야합니다. 이관리형정책을통해사용자는 AWS Data Pipeline 에사용되는역할에 "Action":"iam:PassRole" 권한을가질수있습니다. 이작업에서사용자그룹을생성하고이그룹에관리형정책인 AWSDataPipeline_FullAccess 를연결해야합니다. 사용자그룹 DataPipelineDevelopers 를생성하고 AWSDataPipeline_FullAccess 정책을연결하려면 1. 에서 IAM 콘솔을엽니다. 2. 탐색창에서 [Groups] 를선택하고 [Create New Group] 을선택합니다. 3. [Group Name] 에그룹의이름 DataPipelineDevelopers 를입력합니다. [Next Step] 을선택합니다. 15

23 PassRole 포함인라인정책을사용자지정 IAM 역할에할당 4. 정책목록에서 [AWSDataPipeline_FullAccess] 관리형정책옆의확인란을선택합니다. [Next Step] 을선택합니다. 5. Create Group 을선택합니다. 6. 그룹에사용자를추가합니다. [Groups] 를선택한후 DataPipelineDevelopers 그룹을선택합니다. [Users] 탭을선택한후 [Add Users to Group] 를선택합니다. 추가하려는사용자를선택한후 [Add Users to Group] 을선택합니다. PassRole 포함인라인정책을사용자지정 IAM 역할에할당 AWS Data Pipeline 에대하여사전정의된 2 개의역할을포함한관리형정책인 AWSDataPipeline_FullAccess 를사용하는대신 AWS Data Pipeline 에대한 2 가지종류의사용자지정역할을생성하고각역할에 "Action":"iam:PassRole" 을갖는인라인정책을연결할수있습니다. 다음 2 가지유형의사용자지정역할을생성합니다. AWS Data Pipeline 을통해 Amazon EMR 클러스터를시작하는데사용하는사용자지정역할입니다. 이역할은사전정의된역할 DataPipelineDefaultRole 과유사하거나적은권한을가질수있습니다. 하지만이사용자지정역할은다음과같이사용하는두가지서비스인 Amazon EMR 및 AWS Data Pipeline 과신뢰관계를가져야합니다. "Effect": "Allow", "Principal": "Service": "datapipeline.amazonaws.com" "Service": "elasticmapreduce.amazonaws.com" AWS Data Pipeline 을통해 Amazon EC2 클러스터를시작하는데사용하는사용자지정역할입니다. 이역할은사전정의된역할 DataPipelineDefaultResourceRole 과유사하거나적은권한을가질수있습니다. 하지만이사용자지정역할은다음과같이 Amazon EC2 서비스와신뢰관계를가져야합니다. "Effect": "Allow", "Principal": "Service": "ec2.amazonaws.com" 자세한내용은기존역할에서신뢰관계를편집을참조하십시오. EmrCluster 객체에대한사용자지정역할을지정하는방법에대한자세한내용은 Specify custom IAM roles (p. 215) 를참조하십시오. AWS Data Pipeline 액세스권한이있는모든 CUSTOM_ROLE 역할에대하여고유한인라인정책을생성하려면이인라인정책예제를지침으로사용합니다. CUSTOM_ROLE 에대해 "Action":"iam:PassRole" 이지정되어있습니다. "Version": " ", "Statement": [ "Action": [ "s3:list*", "dynamodb:describetable", 16

24 PassRole 포함인라인정책을사용자지정 IAM 역할에할당 ], "Action": "iam:passrole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/custom_role" ] 17

25 파이프라인생성 AWS Data Pipeline 시작하기 AWS Data Pipeline 은반복되는데이터처리워크로드의순서, 일정, 실행을확실하고경제적으로관리하는데도움이됩니다. 이서비스는비즈니스논리에기반하는온프레미스와클라우드모두에서정형및비정형데이터를사용하여 ETL(extract-transform-load: 추출 - 변환 - 로드 ) 활동을쉽게설계할수있게해줍니다. AWS Data Pipeline 을사용하려면데이터처리용비즈니스논리를지정하는파이프라인정의를생성합니다. 일반적인파이프라인정의는실행할작업을정의하는활동 (p. 9), 입력및출력데이터의위치와유형을정의하는데이터노드 (p. 9), 활동실행시점을정하는일정 (p. 21) 으로구성됩니다. 이자습서에서는 Apache 웹서버로그에서 GET 요청수를계산하는셸명령스크립트를실행합니다. 이파이프라인은 1 시간동안 15 분마다실행되며, 반복될때마다 Amazon S3 로출력을기록합니다. 사전요구사항 시작하기전에 AWS Data Pipeline 설정 (p. 14) 의작업을완료해야합니다. 파이프라인객체 파이프라인은다음객체를사용합니다. ShellCommandActivity (p. 197) 입력로그파일을읽고오류수를계산합니다. S3DataNode (p. 147) ( 입력 ) 입력로그파일이있는 S3 버킷입니다. S3DataNode (p. 147) ( 출력 ) 출력용 &S3 버킷입니다. Ec2Resource (p. 207) AWS Data Pipeline 이활동을실행할때사용하는컴퓨팅리소스입니다. 대량의로그파일데이터가있는경우에는 EC2 인스턴스대신 EMR 클러스터를사용하여파일을처리하도록파이프라인을구성할수있습니다. 일정 (p. 260) 1 시간동안 15 분마다활동을실행하는것으로정의합니다. 작업 파이프라인생성 (p. 18) 실행중인파이프라인모니터링 (p. 19) 출력검토 (p. 20) 파이프라인삭제 (p. 20) 파이프라인생성 AWS Data Pipeline 을시작하는가장빠른방법은템플릿이라고하는파이프라인정의를사용하는것입니다. 18

26 실행중인파이프라인모니터링 파이프라인을생성하려면 1. 에서 AWS Data Pipeline 콘솔을엽니다. 2. 탐색모음에서리전을선택합니다. 현재위치와관계없이사용자가고를수있는리전을임의로선택합니다. 대부분의 AWS 리소스는리전에따라다르지만 AWS Data Pipeline 을사용하면파이프라인과다른리전에있는리소스를사용할수있습니다. 3. 처음표시되는화면은현재리전에서파이프라인을생성했는지여부에따라달라집니다. a. 이리전에서파이프라인을생성하지않았다면콘솔에소개화면이표시됩니다. [Get started now] 를선택합니다. b. 이리전에서이미파이프라인을생성했다면해당리전의파이프라인이나열된페이지가콘솔에표시됩니다. [Create new pipeline] 을선택합니다. 4. [Name] 에파이프라인의이름을입력합니다. 5. ( 선택적 ) [Description] 에파이프라인의설명을입력합니다. 6. 소스의경우는 [Build using a template] 을선택한후다음템플릿 [Getting Started using ShellCommandActivity] 를선택합니다. 7. 템플릿을선택할때열린 [Parameters] 부분아래의 [S3 input foler] 및 [Shell command to run] 은기본값을유지합니다. [S3 output folder] 옆의폴더아이콘을클릭하고, 버킷또는폴더중하나를선택한다음 [Select] 를클릭합니다. 8. [Schedule] 아래의기본값을그대로둡니다. 파이프라인을활성화하면파이프라인실행이시작된후 1 시간동안 15 분마다실행합니다. 원할경우 [Run once on pipeline activation] 을선택할수도있습니다. 9. [Pipeline Configuration] 에서로깅을활성화상태로두십시오. [S3 location for logs] 에서폴더아이콘을선택하고버킷이나폴더중하나를선택한다음 [Select] 를선택합니다. 원하는경우, 로깅을대신비활성화할수있습니다. 10. [Security/Access] 에서 [IAM roles] 를 [Default] 로설정된상태로둡니다. 11. [Activate] 를클릭합니다. 원한다면 [Edit in Architect] 를선택해이파이프라인을수정할수있습니다. 예를들어사전조건을추가할수있습니다. 실행중인파이프라인모니터링 파이프라인을활성화하고나면파이프라인진행률을모니터링할수있는 [Execution details] 페이지로이동하게됩니다. 파이프라인진행률을모니터링하려면 1. [Update ] 를클릭하거나 F5 를눌러표시된상태를업데이트합니다. Tip 열거된실행이없는경우, [Start (in UTC)] 와 [End (in UTC)] 에파이프라인의예약된시작및종료가포함되는지확인한다음 [Update] 를클릭합니다. 2. 파이프라인에있는모든객체의상태가 FINISHED 가되면파이프라인이예약된작업을성공적으로완료한것입니다. 3. 파이프라인이성공적으로완료되지않으면파이프라인설정에서문제를확인하십시오. 실패하거나완료되지않은파이프라인인스턴스실행문제해결에대한자세한내용은공통문제해결 (p. 282) 단원을참조하십시오. 19

27 출력검토 출력검토 Amazon S3 콘솔을열고버킷으로이동합니다. 파이프라인을한시간동안 15 분마다실행한경우타임스탬프가지정된하위폴더 4 개가표시됩니다. 각하위폴더에는이름이 output.txt 인파일의출력이포함되어있습니다. 매번동일한입력파일에서스크립트를실행했기때문에출력파일이동일합니다. 파이프라인삭제 요금이발생하는것을중지하려면파이프라인을삭제하십시오. 파이프라인을삭제하면파이프라인정의및연결된모든객체가삭제됩니다. 파이프라인을삭제하려면 1. [List Pipelines] 페이지에서파이프라인을선택합니다. 2. [Actions] 를클릭한다음 [Delete] 를선택합니다. 3. 확인메시지가나타나면 Delete 를선택합니다. 이자습서의출력으로끝난경우에는 Amazon S3 버킷의출력폴더를삭제하십시오. 20

28 파이프라인일정조정 파이프라인작업 AWS Data Pipeline 콘솔, AWS SDK 또는명령줄인터페이스 (CLI) 를사용하여파이프라인을관리하고, 생성하고, 수정할수있습니다. 이후단원들에서기본 AWS Data Pipeline 개념을소개하고파이프라인작업방법을설명합니다. 목차 Important 시작하기전에 AWS Data Pipeline 설정 (p. 14) 단원을참조하십시오. 파이프라인일정조정 (p. 21) 파이프라인생성 (p. 24) 파이프라인보기 (p. 39) 파이프라인편집 (p. 46) 파이프라인복제 (p. 47) 파이프라인태그지정 (p. 48) 파이프라인비활성화 (p. 48) 파이프라인삭제 (p. 50) 파이프라인활동으로데이터및테이블준비 (p. 50) VPC 에서파이프라인을위한리소스시작 (p. 54) 파이프라인에서 Amazon EC2 스팟인스턴스사용 (p. 57) 여러리전의리소스와파이프라인사용 (p. 57) 캐스케이드실패및재실행 (p. 58) 파이프라인정의파일구문 (p. 60) API 작업 (p. 62) 파이프라인일정조정 AWS Data Pipeline 에서일정은예약된이벤트의타이밍을정의합니다 ( 예 : 활동실행시 ). AWS Data Pipeline 은일정 (p. 260) 파이프라인구성요소를통해이기능을보여줍니다. 콘솔을사용하여일정생성 AWS Data Pipeline 콘솔을사용하여파이프라인을생성하고일정을조정할수있습니다. 이기능은생산워크로드용으로정하기전에파이프라인을테스트하고프로토타입을지정할때유용합니다. [Create Pipeline] 부분에는다음과같은필드가있습니다. 필드 작업 이름파이프라인이름을입력합니다. 설명 ( 선택사항 ) 파이프라인설명을입력합니다. [Schedule] 부분에는다음과같은필드가있습니다. 21

29 온디맨드 필드 작업 실행 [on activation] 을선택하면파이프라인이온디맨드파이프라인으로실행됩니다. 그러면활성화될때실행할수있는파이프라인이생성됩니다. Run every 각파이프라인의실행기간을입력합니다. [Starting] Ending 파이프라인이시작되는시간과날짜를입력합니다. 또는파이프라인활성화때시작날짜와시간이자동으로선택됩니다. 파이프라인이끝날시간과날짜를입력합니다. [never] 를선택하면파이프라인이무기한으로계속실행됩니다. [IAM Roles & Permissions] 부분에는다음과같은옵션이있습니다. 필드 작업 기본값이것을선택하면 AWS Data Pipeline 이사용자의역할을정합니다. 사용자지정 이것을선택하여자신의 IAM 역할을지정합니다. 이옵션을선택하면다음역할을선택할수있습니다. 파이프라인역할 AWS Data Pipeline 이계정의리소스로수행할수있는작업을정하는역할입니다. EC2 인스턴스역할 Amazon EC2 애플리케이션이계정의리소스로수행할수있는작업을제어하는역할입니다. 온디맨드 Note [Other] 부분에 [Default object on the Architect] 페이지가있습니다. AWS Data Pipeline 에는파이프라인활성화시실행될파이프라인옵션을제공하는온디맨드일정유형이있습니다. 활성화요청에따라파이프라인이한번실행됩니다. 온디맨드파이프라인은일정유형을기본객체의 ondemand 로설정해야합니다. 온디맨드파이프라인에서는사용자가일정객체를사용하는것이허용되지않으며여러일정을허용하지않습니다. 기본객체의슬롯 maxactiveinstances 를사용하여온디맨드파이프라인의동시실행최대수를구성할수있습니다. 온디맨드파이프라인은이슬롯의기본값이 1 이며, 최대값 5 까지가능합니다. 다음기본객체는온디맨드일정조정을사용합니다. "name": "Default", "resourcerole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduletype": "ondemand" 시계열스타일과 Cron 스타일비교 AWS Data Pipeline 은파이프라인구성요소일정을주기적으로조정하는두가지유형, 즉시계열스타일일정조정과 cron 스타일일정조정기능이있습니다. 22

30 채우기작업 일정유형을사용하여파이프라인구성요소인스턴스의시작시점을간격 ( 기간이라고도함 ) 시작시점또는종료시점으로지정할수있습니다. 시계열스타일일정조정에서는인스턴스일정이각간격이종료될때로지정되고, Cron 스타일일정조정에서는인스턴스일정이각간격이시작될때로지정됩니다. 예를들어, 시계열스타일일정조정을사용할때시작시간이 22:00 UTC 이고간격 / 기간이 30 분으로설정된경우에는파이프라인구성요소인스턴스의최초실행이 22:00 UTC 가아닌 22:30 UTC 에시작됩니다. 인스턴스가기간 / 간격시작시점 ( 예 : 22:00 UTC) 에실행되길원할경우에는 cron 스타일일정조정을사용하십시오. Note 최소일정조정간격은 15 분입니다. Note [Other] 부분에 [Default object on the Architect] 페이지가있습니다. 다음은 cron 스타일파이프라인의개본객체입니다. "name": "Default", "resourcerole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduletype": "cron" 다음은시계열스타일파이프라인의개본객체입니다. "name": "Default", "resourcerole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduletype": "timeseries" 리소스는일정유형무시 AWS Data Pipeline 은파이프라인의일정유형설정 ( 시계열스타일또는 cron 스타일일정조정 ) 에따라일정간격시작또는종료시점에활동및데이터노드인스턴스를생성합니다. 그러나 AWS Data Pipeline 은파이프라인일정유형과상관없이간격시작시점에 Resource 인스턴스 ( 예 : EC2Resource 및 EmrCluster) 를생성하고이것을 WAITING_ON_DEPENDENCIES 상태로설정합니다. 연결활동의일정이정해지기전까지실제기본리소스는인스턴스화되지않습니다. 채우기작업 과거에예약한시작시간으로파이프라인을정의하면 AWS Data Pipeline 이파이프라인의작업을채웁니다. 이런경우 AWS Data Pipeline 이파이프라인작업의여러인스턴스를바로실행하여예약된시작시간과현재시간사이에서이러한작업들이실행되었을횟수까지채웁니다. 이렇게되면파이프라인구성요소인스턴스가파이프라인을생성할때지정한기간값보다큰빈도로연속해서실행됩니다. AWS Data Pipeline 은과거실행횟수가채워질때만정의된기간으로파이프라인을반환합니다. 개발및테스트단계에서채우기룰최소화하려면 startdatetime..enddatetime 에비교적짧은간격을사용합니다. 파이프라인구성요소 scheduledstarttime 이하루전보다앞설경우 AWS Data Pipeline 은돌발적으로채우기가발생하지않도록파이프라인활성화를차단합니다. 파이프라인이바로시작되도록하려면 Start Date Time( 시작날짜시간 ) 을과거의날짜로설정합니다. 그러면작업백로그로인식된것을처리하기위해 AWS Data Pipeline 이 " 기한초과 " 실행을바로시작합니다. 이채우기는 AWS Data Pipeline 이첫번째클러스터를실행할때까지한시간을기다릴필요는없다는의미입니다. 23

31 일정을이용해리소스효율극대화 일정을이용해리소스효율극대화 AWS Data Pipeline 을통해리소스및연결활동의다양한일정기간을지원하여리소스효율을극대화할수있습니다. 예를들어, 일정기간이 20 분인활동이있다고가정해봅니다. 이활동의리소스도 20 분일정기간으로구성되었다면 AWS Data Pipeline 은 1 시간동안리소스의인스턴스 3 개를생성하고작업에필요한리소스의세배를소비할것입니다. 그런데 AWS Data Pipeline 을사용하면일정이다른 ( 예 : 1 시간일정 ) 리소스를구성할수있습니다. 20 분일정의활동과쌍으로연결된경우에는 AWS Data Pipeline 이 1 시간동안활동의 3 개인스턴스모두에서비스를제공할리소스 1 개만생성하므로리소스이용이극대화됩니다. 데이터겹쳐쓰기방지 AWS Data Pipeline 을사용하는반복가져오기작업으로하루에여러번실행되며, 실행될때마다동일한 Amazon S3 위치로출력이이동하는경우를가정해봅니다. 데이터기반표현식을사용하지않는다면출력데이터가우발적으로덮어쓰기될수있습니다. S3Output.DirectoryPath 의 s3://mybucket/#@scheduledstarttime 같은데이터기반표현식은각기간마다별도의디렉터리경로를지정할수있습니다. 자세한내용은일정 (p. 260) 단원을참조하십시오. 파이프라인생성 AWS Data Pipeline 은파이프라인을생성하는방법이여러개있습니다. 템플릿이있는콘솔을사용하면편리합니다. 자세한정보는콘솔템플릿을사용하여파이프라인생성 (p. 24) 단원을참조하십시오. 콘솔을사용하여각파이프라인객체를수동으로추가합니다. 자세한정보는콘솔을사용하여수동으로파이프라인생성 (p. 36) 단원을참조하십시오. JSON 형식의파이프라인정의파일이있는 AWS Command Line Interface(CLI) 를사용합니다. 언어별 API 가있는 AWS SDK 를사용합니다. 자세한정보는 API 작업 (p. 62) 단원을참조하십시오. 콘솔템플릿을사용하여파이프라인생성 AWS Data Pipeline 콘솔에는템플릿이라고하는여러개의사전구성파이프라인정의가있습니다. 템플릿을사용해 AWS Data Pipeline 을빠르게시작할수있습니다. 파라미터화된값이있는템플릿을생성할수도있습니다. 이경우파라미터와사전정의속성을사용하여파이프라인객체를지정할수있습니다. 그런다음도구를사용하여파이프라인안에특정목적값을생성할수있습니다. 이것을이용해값이다른파이프라인정의를다시사용할수있습니다. 자세한내용은파라미터화된템플릿을사용하여파이프라인생성 (p. 33) 단원을참조하십시오. 파이프라인초기화, 생성및일정조정 AWS Data Pipeline 콘솔파이프라인생성페이지에서파이프라인을간편하게생성하고일정을조정할수있습니다. 파이프라인을생성하고일정을조정하려면 1. 에서 AWS Data Pipeline 콘솔을엽니다. 2. [Get started now] 또는 [Create Pipeline] 을클릭합니다. 3. 파이프라인의파이프라인이름과설명 ( 선택사항 ) 을입력합니다. 24

32 콘솔템플릿을사용하여파이프라인생성 4. [Build using Architect] 를선택하여파이프라인정의의노드를양방향으로생성하고편집하거나 [Build using a template] 을선택하여템플릿을선택합니다. 템플릿에대한자세한내용은템플릿선택 (p. 25) 단원을참조하십시오. 템플릿사용을선택하면 [Parameters] 밑에있는템플릿에해당하는양식이콘솔에표시됩니다. 양식을알맞게작성합니다. 5. 파이프라인을활성화시점에또는일정에따라실행할지여부를선택합니다. 파이프라인이일정에따라실행되도록선택하면 a. [Run every] 에서파이프라인기간을선택합니다. 이기간이포함되도록충분히긴간격이되도록시작및종료시간을정의해야합니다. b. [Starting] 시간을선택합니다. [on pipeline activation] 을선택하면파이프라인이현재활성화시간을사용합니다. c. [Ending] 시간을선택합니다. [never] 를선택하면파이프라인이무한대로실행됩니다. 6. [IAM Roles] 에대한옵션을선택합니다. 기본값을선택하면 AWS Data Pipeline 가자신의기본역할을할당합니다. 또는 [Custom] 을선택하여계정에사용할수있는다른역할을선택할수도있습니다. 7. [Edit in Architect] 또는 [Activate] 를클릭합니다. 템플릿선택 템플릿을선택하면파이프라인이사용자지정 Amazon S3 디렉터리경로, Amazon EC2 키페어이름, 데이터베이스연결등과같이파이프라인정의에지정된파라미터로채워진페이지를생성합니다. 파이프라인생성및활성화때이정보를제공할수있습니다. 콘솔에서사용할수있는다음템플릿을 Amazon S3 버킷에서다운로드할때도사용할수있습니다. s3://datapipeline-us-east-1/templates/. 템플릿 ShellCommandActivity 사용시작하기 (p. 25) AWS CLI 명령실행 (p. 26) DynamoDB 테이블을 S3 로내보내기 (p. 26) S3 에서 DynamoDB 백업데이터가져오기 (p. 26) Amazon EMR 클러스터에서작업실행 (p. 26) Amazon RDS MySQL 테이블을 Amazon S3 로전체복사 (p. 27) Amazon RDS MySQL 테이블을 Amazon S3 로증분복사 (p. 27) Amazon RDS MySQL 테이블로 S3 데이터로드 (p. 27) Amazon RDS MySQL 테이블을 Amazon Redshift 로전체복사 (p. 32) Amazon RDS MySQL 테이블을 Amazon Redshift 로증분복사 (p. 32) Amazon S3 에서 Amazon Redshift 로데이터로드 (p. 33) ShellCommandActivity 사용시작하기 [Getting Started using ShellCommandActivity] 템플릿은셸명령스크립트를실행하여로그파일의 GET 요청수를셉니다. 파이프라인의예약실행시마다타임스탬프가지정된 Amazon S3 위치에서출력이기록됩니다. 템플릿은다음파이프라인객체를사용합니다. ShellCommandActivity S3InputNode S3OutputNode Ec2Resource 25

33 콘솔템플릿을사용하여파이프라인생성 AWS CLI 명령실행 이템플릿은사용자가지정한 AWS CLI 명령을예약된간격으로실행합니다. DynamoDB 테이블을 S3 로내보내기 DynamoDB 테이블을 S3 로내보내기템플릿은 DynamoDB 테이블의데이터를 Amazon S3 버킷으로내보내도록 Amazon EMR 클러스터일정을정합니다. 이템플릿은 Amazon EMR 클러스터를사용하는데, 그크기는 DynamoDB 테이블에서사용할수있는처리량값에비례합니다. 테이블에서 IOP 를늘릴수있지만이경우가져오기및내보내기과정에서비용이추가로발생할수있습니다. 전에는내보내기에서 HiveActivity 를사용했지만현재는네이티브 MapReduce 를사용합니다. 템플릿은다음파이프라인객체를사용합니다. EmrActivity (p. 159) EmrCluster (p. 212) DynamoDBDataNode (p. 135) S3DataNode (p. 147) 자습서는에대한내용은 AWS Data Pipeline 을사용하여 DynamoDB 데이터가져오기및내보내기 (p. 83) 을참조하십시오. S3 에서 DynamoDB 백업데이터가져오기 S3 에서 DynamoDB 백업데이터가져오기템플릿은 Amazon S3 에서생성된 DynamoDB 백업을 DynamoDB 테이블로로드하도록 Amazon EMR 클러스터일정을정합니다. DynamoDB 테이블의기존항목이백업데이터항목으로업데이트되고, 새항목이테이블에추가됩니다. 이템플릿은 Amazon EMR 클러스터를사용하는데, 그크기는 DynamoDB 테이블에서사용할수있는처리량값에비례합니다. 테이블에서 IOP 를늘릴수있지만이경우가져오기및내보내기과정에서비용이추가로발생할수있습니다. 전에는가져오기에서 HiveActivity 를사용했지만현재는네이티브 MapReduce 를사용합니다. 템플릿은다음파이프라인객체를사용합니다. EmrActivity (p. 159) EmrCluster (p. 212) DynamoDBDataNode (p. 135) S3DataNode (p. 147) S3PrefixNotEmpty (p. 240) 자습서는에대한내용은 AWS Data Pipeline 을사용하여 DynamoDB 데이터가져오기및내보내기 (p. 83) 을참조하십시오. Amazon EMR 클러스터에서작업실행 Elastic MapReduce 클러스터에서작업실행템플릿은제공된파라미터에따라 Amazon EMR 클러스터를시작하고지정된일정에따라실행단계를시작합니다. 작업이완료되면 EMR 클러스터가종료됩니다. 선택사항인부트스트랩작업을지정하여클러스터에서추가소프트웨어를설치하거나애플리케이션구성을변경할수있습니다. 템플릿은다음파이프라인객체를사용합니다. EmrActivity (p. 159) EmrCluster (p. 212) 26

34 콘솔템플릿을사용하여파이프라인생성 Amazon RDS MySQL 테이블을 Amazon S3 로전체복사 RDS MySQL 테이블을 S3 로전체복사템플릿은전체 Amazon RDS MySQL 테이블을복사하여그출력을 Amazon S3 위치에저장합니다. 출력은지정된 Amazon S3 위치에있는타임스탬프가지정된하위폴더에 CSV 파일로저장됩니다. 템플릿은다음파이프라인객체를사용합니다. CopyActivity (p. 155) Ec2Resource (p. 207) SqlDataNode (p. 151) S3DataNode (p. 147) Amazon RDS MySQL 테이블을 Amazon S3 로증분복사 RDS MySQL 테이블을 S3 로증분복사템플릿은 Amazon RDS MySQL 테이블의데이터를증분복사하여그출력을 Amazon S3 위치에저장합니다. Amazon RDS MySQL 테이블에마지막수정열이있어야합니다. 이템플릿은예약된시작시간부터시작하여예약간격마다발생한테이블변경사항을복사합니다. 예약유형이시계열 (p. 22) 유형이므로, 특정시간에대해복사가예약된경우 AWS Data Pipeline 은해당시간중마지막수정타임스탬프가있는테이블행을복사합니다. 테이블에대한물리적삭제는복사되지않습니다. 예약실행을할때마다 Amazon S3 위치의타임스탬프가있는하위폴더에결과가기록됩니다. 템플릿은다음파이프라인객체를사용합니다. CopyActivity (p. 155) Ec2Resource (p. 207) SqlDataNode (p. 151) S3DataNode (p. 147) Amazon RDS MySQL 테이블로 S3 데이터로드 RDS MySQL 테이블로 S3 데이터로드템플릿은아래에지정된 Amazon S3 파일경로에서 Amazon RDS MySQL 테이블로 CSV 파일을복사하도록 Amazon EC2 인스턴스를예약합니다. CSV 파일에헤더행이있으면안됩니다. 이템플릿은 Amazon RDS MySQL 테이블의기존항목을 Amazon S3 데이터항목으로업데이트하고, Amazon S3 데이터의새항목을 Amazon RDS MySQL 테이블에추가합니다. 데이터를기존테이블로로드하거나 SQL 쿼리를제공하여새테이블을생성할수있습니다. 템플릿은다음파이프라인객체를사용합니다. CopyActivity (p. 155) Ec2Resource (p. 207) SqlDataNode (p. 151) S3DataNode (p. 147) Amazon RDS 와 Amazon Redshift 간템플릿 다음두템플릿은변환스크립트를사용하여 Amazon RDS MySQL 에서 Amazon Redshift 로테이블을복사합니다. 이스크립트는다음조항이있는소스테이블스키마를사용하여 Amazon Redshift 테이블을생성합니다. 배포키가지정되지않은경우에는 Amazon RDS 케이블의첫번째기본키가배포키로설정됩니다. Amazon Redshift 로복사할때는 Amazon RDS MySQL 테이블에있는열을건너뛰지못합니다. 27

35 콘솔템플릿을사용하여파이프라인생성 ( 선택사항 ) Amazon RDS MySQL 과 Amazon Redshift 열데이터형식간의매핑을템플릿의파라미터로제공할수도있습니다. 이렇게지정하는경우, 스크립트는이매핑으로 Amazon Redshift 테이블을생성합니다. Overwrite_Existing Amazon Redshift 삽입모드가사용중일경우 : 배포키가제공되지않은경우에는 Amazon RDS MySQL 테이블의기본키를사용합니다. 배포키가제공되지않았는데테이블에복합기본키가있으면첫번째키를배포키로사용합니다. 첫번째복합키만 Amazon Redshift 테이블의기본키로설정됩니다. 배포키가없고 Amazon RDS MySQL 테이블에기본키가없으면복사작업이실패합니다. Amazon Redshift에대한자세한내용은다음주제를참조하십시오. Amazon Redshift 클러스터 Amazon Redshift COPY 분산스타일및 DISTKEY 예제 정렬키 아래표에서이스크립트가데이터형식을변환하는방법을설명합니다. MySQL 과 Amazon Redshift 사이의데이터형식변환 MySQL 데이터형식 Amazon Redshift 데이터형식참고 TINYINT, TINYINT ( 크기 ) TINYINT UNSIGNED, TINYINT ( 크기 ) UNSIGNED SMALLINT, SMALLINT( 크기 ) SMALLINT UNSIGNED, SMALLINT( 크기 ) UNSIGNED, MEDIUMINT, MEDIUMINT( 크기 ) SMALLINT SMALLINT SMALLINT INTEGER INTEGER MySQL: -128 ~ 127. 괄호안에최대자릿수를명시할수있습니다. Amazon Redshift: INT2. 2 바이트부호화정수 MySQL: 0 ~ 255 UNSIGNED. 괄호안에최대자릿수를명시할수있습니다. Amazon Redshift: INT2. 2 바이트부호화정수 MySQL: ~ 일반. 괄호안에최대자릿수를명시할수있습니다. Amazon Redshift: INT2. 2 바이트부호화정수 MySQL: 0 ~ UNSIGNED*. 괄호안에최대자릿수를명시할수있습니다. Amazon Redshift: INT4. 4 바이트부호화정수 MySQL: ~ 괄호안에최대자릿수를명시할수있습니다. 28

36 콘솔템플릿을사용하여파이프라인생성 MySQL 데이터형식 Amazon Redshift 데이터형식참고 Amazon Redshift: INT4. 4 바이트부호화정수 MEDIUMINT UNSIGNED, MEDIUMINT( 크기 ) UNSIGNED INTEGER MySQL: 0 ~ 괄호안에최대자릿수를명시할수있습니다. Amazon Redshift: INT4. 4 바이트부호화정수 INT, INT( 크기 ) INT UNSIGNED, INT( 크기 ) UNSIGNED INTEGER MySQL: ~ Amazon Redshift: INT4. 4 바이트부호화정수 BIGINT MySQL: 0 ~ Amazon Redshift: INT8. 8 바이트부호화정수 BIGINT BIGINT( 크기 ) BIGINT Amazon Redshift: INT8. 8 바이트부호화정수 BIGINT UNSIGNED BIGINT( 크기 ) UNSIGNED VARCHAR(20*4) MySQL: 0 ~ Amazon Redshift: 네이티브에상당하는것이없어문자배열을사용합니다. FLOAT FLOAT( 크기,d) FLOAT( 크기, d) UNSIGNED REAL 최대자릿수는크기파라미터에지정될수있습니다. 소수점오른쪽의최대자릿수는 d 파라미터에지정됩니다. Amazon Redshift: FLOAT4 DOUBLE( 크기, d) DOUBLE PRECISION 최대자릿수는크기파라미터에지정될수있습니다. 소수점오른쪽의최대자릿수는 d 파라미터에지정됩니다. Amazon Redshift: FLOAT8 DECIMAL( 크기, d) DECIMAL( 크기, d) DOUBLE이로저장되어, 고정소수점에허용됨. 최대자릿수는크기파라미터에지정될수있습니다. 소수점오른쪽의최대자릿수는 d 파라미터에지정됩니다. Amazon Redshift: 네이티브에상당하는것이없습니다. 29

37 콘솔템플릿을사용하여파이프라인생성 MySQL 데이터형식 Amazon Redshift 데이터형식참고 CHAR( 크기 ) VARCHAR( 크기 *4) 고정된길이의을유지합니다. 여기에는글자, 숫자및특수문자가포함될수있습니다. 정해진크기가괄호안에파라미터로명시됩니다. 최대 255자까지저장할수있습니다. 오른쪽에스페이스가있습니다. Amazon Redshift: CHAR 데이터형식은멀티바이트문자를지원하지않아 VARCHAR 을사용합니다. 문자테이블을 U+10FFFF 로제한하는 RFC3629 에따라문자당최대바이트수가 4 입니다. VARCHAR( 크기 ) VARCHAR( 크기 *4) 최대 255자까지저장할수있습니 다. VARCHAR 은무효 UTF-8 코드포인트, 즉 0xD800-0xDFFF, ( 바이트시퀀스 : ED A ED BF BF), 0xFDD0-0xFDEF, 0xFFFE, 0xFFFF, ( 바이트시퀀스 : EF B EF B7 AF, EF BF BE, EF BF BF) 를지원하지않습니다. TINYTEXT VARCHAR(255*4) 최대 255자길이의을포함 합니다. TEXT VARCHAR( 최대 ) 최대 65,535자길이의을 포함합니다. MEDIUMTEXT VARCHAR( 최대 ) 0 ~ 16,777,215 Char LONGTEXT VARCHAR( 최대 ) 0 ~ 4,294,967,295 Char BOOLEAN BOOL TINYINT(1) BOOLEAN MySQL: 이유형은 TINYINT(1) 의동의어입니다. 제로값은 false 로간주됩니다. 비 - 제로값은 true 로간주됩니다. BINARY[(M)] varchar(255) M은 0 ~ 255 바이트임, FIXED VARBINARY(M) VARCHAR( 최대 ) 0 ~ 65,535바이트 TINYBLOB VARCHAR(255) 0 ~ 255바이트 BLOB VARCHAR( 최대 ) 0 ~ 65,535바이트 MEDIUMBLOB VARCHAR( 최대 ) 0 ~ 16,777,215바이트 LONGBLOB VARCHAR( 최대 ) 0 ~ 4,294,967,295바이트 30

38 콘솔템플릿을사용하여파이프라인생성 MySQL 데이터형식 Amazon Redshift 데이터형식참고 ENUM VARCHAR(255*2) 거형의길이가아 니라테이블정의의열거형값이 제한됩니다. SET VARCHAR(255*2) 열거형과같음. DATE DATE (YYYY-MM-DD) TIME VARCHAR(10*4) (hh:mm:ss) " " ~ " " "-838:59:59" ~ "838:59:59" DATETIME TIMESTAMP (YYYY-MM-DD hh:mm:ss) :00:00"~" :59:59" TIMESTAMP TIMESTAMP (YYYYMMDDhhmmss) YEAR VARCHAR(4*4) (YYYY) ~ ~ 2155 열 SERIAL column BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE ID 생성 / 이열은복사되므로 OLAP 데이터웨어하우스는이속성이필요하지않습니다. 변환시에 SERIAL 키워드가추가되지않습니다. ID 생성 / 이열은복사되므로 OLAP 데이터웨어하우스는이속성이필요하지않습니다. 따라서변환시에 SERIAL 키워드가추가되지않습니다. 사실 SERIAL 은이름이 SEQUENCE 인엔터티입니다. 이것은나머지테이블에별도로존재합니다. column GENERATED BY DEFAULT 다음과동일 : CREATE SEQUENCE name; CREATE TABLE table ( column INTEGER NOT NULL DEFAULT nextval(name) ); 사실 SERIAL 은이름이 SEQUENCE 인엔터티입니다. 이것은나머지테이블에별도로존재합니다. column GENERATED BY DEFAULT 다음과동일 : CREATE SEQUENCE name; CREATE TABLE table ( column INTEGER NOT NULL DEFAULT nextval(name) ); 31

39 콘솔템플릿을사용하여파이프라인생성 MySQL 데이터형식 Amazon Redshift 데이터형식참고 ZEROFILL 변환시에 ZEROFILL 키워드가추가되지않습니다. INT UNSIGNED ZEROFILL NOT NULL ZEROFILL 은표시된필드값을열정의에지정된표시너비까지 0 으로채웁니다. 표시너비보다긴값은잘리지않습니다. ZEROFILL 사용은 UNSIGNED 도의미합니다. Amazon RDS MySQL 테이블을 Amazon Redshift 로전체복사 Amazon RDS MySQL 테이블을 Amazon Redshift 로전체복사템플릿은 Amazon S3 폴더에서데이터를스테이징하여 Amazon RDS MySQL 테이블전체를 Amazon Redshift 테이블로복사합니다. 이때 Amazon S3 스테이징폴더가 Amazon Redshift 클러스터와동일한리전에있어야합니다. 테이블이아직없는경우, 소스 Amazon RDS MySQL 테이블과동일한스키마로 Amazon Redshift 테이블이생성됩니다. Amazon Redshift 테이블을생성할때 Amazon RDS MySQL 을 Amazon Redshift 열데이터형식으로재지정하려면방법을설정하십시오. 템플릿은다음파이프라인객체를사용합니다. CopyActivity (p. 155) RedshiftCopyActivity (p. 189) S3DataNode (p. 147) SqlDataNode (p. 151) RedshiftDataNode (p. 143) RedshiftDatabase (p. 248) Amazon RDS MySQL 테이블을 Amazon Redshift 로증분복사 Amazon RDS MySQL 테이블을 Amazon Redshift 로증분복사템플릿은 Amazon S3 폴더에서데이터를스테이징하여 Amazon RDS MySQL 테이블의데이터를 Amazon Redshift 테이블로복사합니다. 이때 Amazon S3 스테이징폴더가 Amazon Redshift 클러스터와동일한리전에있어야합니다. 테이블이없는경우, AWS Data Pipeline 은변환스크립트를사용하여소스 Amazon RDS MySQL 테이블과동일한스키마로 Amazon Redshift 테이블을생성합니다. Amazon Redshift 테이블을생성할때 Amazon RDS MySQL 을 Amazon Redshift 열데이터형식으로재지정하려면방법을설정해야합니다. 이템플릿은예약된시작시간부터시작하여예약한간격사이에발생한 Amazon RDS MySQL 테이블변경사항을복사합니다. Amazon RDS MySQL 테이블에대한물리적삭제는복사되지않습니다. 마지막수정시간값을저장하는열이름을입력해야합니다. 기본템플릿을사용하여증분 Amazon RDS 사본용파이프라인을생성하는경우, 기본이름이 RDSToS3CopyActivity 인활동이생성됩니다. 이이름은바꿀수있습니다. 템플릿은다음파이프라인객체를사용합니다. CopyActivity (p. 155) RedshiftCopyActivity (p. 189) S3DataNode (p. 147) SqlDataNode (p. 151) 32

40 콘솔템플릿을사용하여파이프라인생성 RedshiftDataNode (p. 143) RedshiftDatabase (p. 248) Amazon S3 에서 Amazon Redshift 로데이터로드 S3 에서 Redshift 로데이터로드템플릿은 Amazon S3 폴더의데이터를 Amazon Redshift 테이블로복사합니다. 데이터를기존테이블로로드하거나 SQL 쿼리를제공하여테이블을생성할수있습니다. 이데이터는 Amazon Redshift COPY 옵션에따라복사됩니다. Amazon Redshift 테이블에 Amazon S3 의데이터와동일한스키마가있어야합니다. COPY 옵션의경우, Amazon Redshift 데이터베이스개발자안내서의 COPY 를참조하십시오. 템플릿은다음파이프라인객체를사용합니다. CopyActivity (p. 155) RedshiftCopyActivity (p. 189) S3DataNode (p. 147) SqlDataNode (p. 151) RedshiftDataNode (p. 143) RedshiftDatabase (p. 248) Ec2Resource (p. 207) 파라미터화된템플릿을사용하여파이프라인생성 파라미터화된템플릿을사용하여파이프라인정의를사용자지정할수있습니다. 따라서공통파이프라인정의를생성할수있지만파이프라인정의를새파이프라인에추가할때는다른파라미터를제공해야합니다. 목차 파이프라인정의에 myvariables 추가 (p. 33) 파라미터객체정의 (p. 34) 파라미터값정의 (p. 35) 파이프라인정의제출 (p. 36) 파이프라인정의에 myvariables 추가 파이프라인정의파일을생성할때 #myvariable 구문을사용하여변수를지정하십시오. 변수앞에 my 를붙여야합니다. 예를들어, 파이프라인정의파일 pipeline-definition.json 에는변수 myshellcmd, mys3inputloc, mys3outputloc 이포함됩니다. Note 파이프라인정의의파라미터최대수는 50 개입니다. "objects": [ "id": "ShellCommandActivityObj", "input": "ref": "S3InputLocation" "name": "ShellCommandActivityObj", "runson": "ref": "EC2ResourceObj" 33

41 콘솔템플릿을사용하여파이프라인생성 "command": "#myshellcmd", "output": "ref": "S3OutputLocation" "type": "ShellCommandActivity", "stage": "true" "id": "Default", "scheduletype": "CRON", "failureandrerunmode": "CASCADE", "schedule": "ref": "Schedule_15mins" "name": "Default", "role": "DataPipelineDefaultRole", "resourcerole": "DataPipelineDefaultResourceRole" "id": "S3InputLocation", "name": "S3InputLocation", "directorypath": "#mys3inputloc", "type": "S3DataNode" "id": "S3OutputLocation", "name": "S3OutputLocation", "directorypath": 'YYYY-MM-dd-HH-mmss')", "type": "S3DataNode" "id": "Schedule_15mins", "occurrences": "4", "name": "Every 15 minutes", "startat": "FIRST_ACTIVATION_DATE_TIME", "type": "Schedule", "period": "15 Minutes" "terminateafter": "20 Minutes", "id": "EC2ResourceObj", "name": "EC2ResourceObj", "instancetype":"t1.micro", "type": "Ec2Resource" ] 파라미터객체정의 파이프라인정의에서변수를정의하는파라미터객체가있는별도의파일을생성할수있습니다. 예를들어, JSON 파일 parameters.json 에는위의예제파이프라인정의에있는 myshellcmd, mys3inputloc, mys3outputloc 변수의파라미터객체가포함됩니다. "parameters": [ "id": "myshellcmd", "description": "Shell command to run", "type": "String", "default": "grep -rc \"GET\" $INPUT1_STAGING_DIR/* > $OUTPUT1_STAGING_DIR/ output.txt" 34

42 콘솔템플릿을사용하여파이프라인생성 "id": "mys3inputloc", "description": "S3 input location", "type": "AWS::S3::ObjectKey", "default": "s3://us-east-1.elasticmapreduce.samples/pig-apache-logs/data" "id": "mys3outputloc", "description": "S3 output location", "type": "AWS::S3::ObjectKey" ] Note 별도의파일을사용하지않고이러한객체를파이프라인정의파일에직접추가할수있습니다. 다음표는파라미터객체의속성을설명합니다. 파라미터속성 속성유형설명 id 파라미터의고유식별자입니다. 입력또는표시될때값을마스킹하려면별표 ('*') 를접두사로추가합니다. 예 : *myvariable. 이렇게하면 AWS Data Pipeline이저장하기전에값이암호화됩니다. description 파라미터설명입니다. 유형 String, Integer, Double 또는 AWS::S3::ObjectKey 입력값과유효성검사규칙의허용범위를정의하는파라미터유형입니다. 기본값은 String 입니다. 선택사항 Boolean 파라미터가선택인지필수인지 여부를나타냅니다. 기본값은 false입니다. allowedvalues 목록 파라미터에허용되는모든값을 열거합니다. 기본값 파라미터의기본값입니다. 파라미터값을사용하여이파라미터의값을지정하면이값이기본값을다시정의합니다. isarray Boolean 파라미터가어레이인지를나타냅 니다. 파라미터값정의 파라미터값을사용하여변수를정의할별도의파일을생성할수있습니다. 예를들어, JSON 파일 file:// values.json 에는위의예제파이프라인정의에있는변수 mys3outputloc 값이포함됩니다. 35

43 콘솔을사용하여수동으로파이프라인생성 "values": "mys3outputloc": "myoutputlocation" 파이프라인정의제출 파이프라인정의를제출하면파라미터, 파라미터객체및파라미터값을지정할수있습니다. 예를들어, putpipeline-definition AWS CLI 명령을다음과같이사용할수있습니다. $ aws datapipeline put-pipeline-definition --pipeline-id id --pipeline-definition file://pipeline-definition.json \ --parameter-objects file://parameters.json --parameter-values-uri file://values.json Note 파이프라인정의의파라미터최대수는 50 개입니다. parameter-values-uri 의파일크기상한은 15kB 입니다. 콘솔을사용하여수동으로파이프라인생성 템플릿을이용하지않고 AWS Data Pipeline 콘솔을사용하여파이프라인을생성할수있습니다. 예제파이프라인에서는 AWS Data Pipeline 을사용하여한 Amazon S3 버킷에서일정에있는다른버킷으로 CSV 를복사합니다. 사전요구사항 절차에서사용되는파일복사소스및대상의 Amazon S3 버킷입니다. 자세한내용은 Amazon Simple Storage Service 시작안내서의버킷생성을참조하십시오. 작업 파이프라인정의생성 (p. 36) 활동정의 (p. 37) 일정구성 (p. 38) 날짜노드구성 (p. 38) 리소스구성 (p. 38) 파이프라인유효성검사및저장 (p. 39) 파이프라인활성화 (p. 39) 파이프라인정의생성 초기파이프라인생성화면을완료하여파이프라인정의를생성합니다. 파이프라인정의를생성하려면 1. 에서 AWS Data Pipeline 콘솔을엽니다. 2. [Get started now]( 첫번째파이프라인인경우 ) 또는 [Create new pipeline] 을클릭합니다. 3. [Name] 에파이프라인의이름을입력합니다 ( 예 : CopyMyS3Data). 4. [Description] 에설명을입력합니다. 5. 파이프라인정의 [Source] 를선택합니다. 템플릿을사용하거나, 기존 JSON 기반파이프라인정의를로컬파일시스템이나 Amazon S3 버킷에서가져오거나, Architect 페이지에서양방향으로파이프라인을생성할수있습니다. 36

44 콘솔을사용하여수동으로파이프라인생성 템플릿은 AWS Data Pipeline 에서발생하는공통시나리오를제시합니다. 연결된파라미터값을입력하여요구에맞는템플릿을사용자지정할수있습니다. Note 기존파이프라인정의에일정이둘이상일경우파이프라인생성페이지에일정이표시되지않지만, 설계자페이지로이동하여일정을볼수있습니다. 6. 로깅을활성화하려면파이프라인구성에서 Amazon S3 의버킷을선택하여이파이프라인의로그를저장합니다. 7. [Schedule] 필드는기본값으로유지합니다. 8. [IAM roles] 를 [Default] 로설정된상태로둡니다. 또는생성해둔자신의 IAM 역할을사용하고싶을경우에는사용자지정을클릭하고 Pipeline role( 파이프라인역할 ) 및 EC2 인스턴스역할목록에서선택합니다. 9. [Create] 를클릭합니다. 활동정의 파이프라인정의에 [Activity] 객체를추가합니다. Activity 객체를정의할경우에는 AWS Data Pipeline 이이활동을수행할때필요한객체도정의해야합니다. 파이프라인의활동을정의하려면 1. 파이프라인페이지에서 [Add activity] 를클릭합니다. 2. [Activities] 창에서 [Name] 에활동이름 ( 예 : copy-mys3-data) 을입력합니다. 3. [Type] 에서 [CopyActivity] 를선택합니다. 4. [Schedule] 에서 [Create new: Schedule] 을선택합니다. 5. [Input] [Create new: DataNode] 를선택합니다. 6. [Output] 에서 [Create new: DataNode] 를선택합니다. 7. [Add an optional field] 에서 [RunsOn] 을선택합니다. 8. [Runs On] 에서 [Create new: Resource] 를선택합니다. 9. 왼쪽창에서아이콘을반대방향으로끌어분리합니다. 이것은파이프라인을그래픽으로표현한것입니다. 화살표는다양한객체사이의연결상태를나타냅니다. 파이프라인이다음이미지와비슷해야합니다. 37

45 콘솔을사용하여수동으로파이프라인생성 일정구성 파이프라인의실행날짜와시간을구성합니다. AWS Data Pipeline 는 UTC/GMT 에서 "YYYY-MM- DDTHH:MM:SS" 형식으로표현되는날짜와시간만지원합니다. 파이프라인의실행날짜와시간을구성하려면 1. 파이프라인페이지오른쪽창에서 [Schedules] 창을확장합니다. 2. 이활동의일정이름을입력합니다 ( 예 : copy-mys3-data-schedule). 3. [Start Date Time] 에서달력에서날짜를선택한다음활동을시작할시간을입력합니다. 4. [Period] 에서활동기간 ( 예 : 1) 을입력한다음기간범주 ( 예 : Days) 를선택합니다. 5. ( 선택사항 ) 활동을끝낼날짜와시간을지정하려면 [Add an optional field] 에서 [End Date Time] 을선택하고날짜와시간을입력합니다. 파이프라인이바로시작되도록하려면 Start Date Time( 시작날짜시간 ) 을과거의날짜로설정합니다. 그러면작업백로그로인식된것을처리하기위해 AWS Data Pipeline 이 " 기한초과 " 실행을바로시작합니다. 이채우기는 AWS Data Pipeline 이첫번째클러스터를실행할때까지한시간을기다릴필요는없다는의미입니다. 날짜노드구성 파이프라인의입력및출력데이터노드를구성합니다. 파이프라인의입력및출력데이터노드를구성하려면 1. 파이프라인페이지오른쪽창에서 [DataNodes] 를클릭합니다. 2. DefaultDataNode1 에서이름에입력노드로사용할 Amazon S3 버킷이름을입력합니다 ( 예 : MyS3Input). 3. [Type] 에서 [S3DataNode] 를선택합니다. 4. [Schedule] 에서 [copy-mys3-data-schedule] 을선택합니다. 5. [Add an optional field] 에서 [File Path] 를선택합니다. 6. 파일경로에 Amazon S3 버킷경로를입력합니다 ( 예 : s3://my-data-pipeline-input/data). 7. DefaultDataNode2 에서이름에출력노드로사용할 Amazon S3 버킷이름을입력합니다 ( 예 : MyS3Output). 8. [Type] 에서 [S3DataNode] 를선택합니다. 9. [Schedule] 에서 [copy-mys3-data-schedule] 을선택합니다. 10. [Add an optional field] 에서 [File Path] 를선택합니다. 11. 파일경로에 Amazon S3 버킷경로를입력합니다 ( 예 : s3://my-data-pipeline-output/data). 리소스구성 AWS Data Pipeline 이복사활동, EC2 인스턴스를실행할때사용해야하는리소스를구성합니다. 파이프라인의 EC2 인스턴스를구성하려면 1. 파이프라인페이지오른쪽창에서 [Resources] 를클릭합니다. 2. [Name] 에리소스의이름을입력합니다 ( 예 : CopyDataInstance). 3. [Type] 에서 [Ec2Resource] 를선택합니다. 4. [EC2-VPC] [Add an optional field] 에서 [Subnet Id] 를선택합니다. 38

46 파이프라인보기 5. [EC2-VPC] [Subnet] 에서서브넷 ID 를입력합니다. 6. [Schedule] 에서 [copy-mys3-data-schedule] 을선택합니다. 7. [Role] 및 [Resource Role] 은기본값으로설정된상태로둡니다. 또는생성해둔자신의 IAM 역할을사용하고싶을경우에는사용자지정을클릭하고 Pipeline role( 파이프라인역할 ) 및 EC2 인스턴스역할목록에서선택합니다. 파이프라인유효성검사및저장 생성프로세스도중언제든지파이프라인정의를저장할수있습니다. 파이프라인정의를저장하는즉시 AWS Data Pipeline 는파이프라인정의에서구문오류와누락된값을찾습니다. 파이프라인이불완전하거나잘못된경우, AWS Data Pipeline 가유효성검사오류와경고를생성합니다. 경고메시지는정보제공에그치지만오류메시지는파이프라인활성화전에모두수정해야합니다. 파이프라인을저장하고유효성을검사하려면 1. [Save pipeline] 을선택합니다. 2. AWS Data Pipeline 가파이프라인정의의유효성을검사하고성공또는오류또는경고메시지를반환합니다. 오류메시지가반환되면 [Close] 를선택한다음오른쪽창에서 [Errors/Warnings] 를선택합니다. 3. [Errors/Warnings] 창에는유효성검사에실패한객체가나열됩니다. 객체이름옆의더하기 (+) 기호를선택하고빨간색오류메시지를찾습니다. 4. 오류메시지가보이면오류가표시되는특정객체창으로이동해오류를수정합니다. 예를들어 [DataNodes] 객체에서오류메시지가표시되는경우, [DataNodes] 창으로가서오류를수정하십시오. 5. [Errors/Warnings] 창에나열된오류를수정한후 [Save Pipeline] 을선택합니다. 6. 파이프라인유효성검사에성공할때까지이프로세스를반복합니다. 파이프라인활성화 생성및처리실행을시작하려면파이프라인을활성화합니다. 파이프라인은파이프라인정의의일정과기간에따라시작됩니다. Important 활성화에성공하면파이프라인이실행되며사용요금이발생할수있습니다. 자세한내용은 AWS Data Pipeline 요금을참조하십시오. AWS Data Pipeline 사용요금발생을중지하려면파이프라인을삭제하십시오. 파이프라인을활성화하려면 1. [Activate] 를선택합니다. 2. 확인대화상자에서 [Close] 를선택합니다. 파이프라인보기 콘솔또는명령줄인터페이스 (CLI) 를사용하여파이프라인을볼수있습니다. 콘솔을사용하여파이프라인을보려면 1. AWS Data Pipeline 콘솔을엽니다. 해당리전에파이프라인을생성한경우콘솔에서그목록이표시됩니다. 아닌경우에는시작화면이표시됩니다. 39

47 파이프라인상태코드해석 2. 파이프라인에관한정보를보려면화살표를클릭합니다. 파이프라인의일정, 활동및태그에관한정보가콘솔에표시됩니다. 상태에대한자세한내용은파이프라인및구성요소상태해석 (p. 42) 를참조하십시오. AWS CLI 를사용하여파이프라인을보려면 다음 [list-pipelines] 명령을사용하여파이프라인을나열합니다. aws datapipeline list-pipelines 파이프라인상태코드해석 AWS Data Pipeline 콘솔과 CLI 에표시되는상태레벨은파이프라인과그구성요소의상태를나타냅니다. 파이프라인상태는파이프라인개요입니다. 자세한정보를확인하려면개별파이프라인구성요소의상태를봐야합니다. 파이프라인이준비상태이거나 ( 파이프라인정의가유효성검사통과 ), 현재작업을진행중이거나, 작업을완료한경우에는파이프라인이 SCHEDULED 상태입니다. 파이프라인이활성화되지않았거나작업을수행할수없는경우 ( 예 : 파이프라인정의가유효성검사실패 ) 파이프라인이 PENDING 상태입니다. 파이프라인상태가 PENDING, INACTIVE 또는 FINISHED 이면비활성상태로간주됩니다. 비활성파이프라인은요금이발생합니다 ( 자세한내용은 Pricing 참조 ). 상태코드 ACTIVATING EC2 인스턴스와같은구성요소나리소스가시작중입니다. 40

48 파이프라인상태코드해석 CANCELED 사용자나 AWS Data Pipeline 에의해구성요소가실행전에취소되었습니다. 이것은이구성요소가의존하는다른구성요소나리소스에서오류가발생할경우, 자동으로일어날수있습니다. CASCADE_FAILED 이구성요소나리소스는하나이상의종속성에서비롯된캐스케이드오류로인해취소되었지만해당구성요소가오류의근원이아닐수있습니다. DEACTIVATING FAILED 파이프라인이비활성화되는중입니다. 구성요소또는리소스에오류가발생했고작동이멈췄습니다. 구성요소또는리소스에오류가발생하면이구성요소나리소스에의존하는다른구성요소로취소와오류가캐스케이딩될수있습니다. FINISHED 구성요소가할당된작업을완료했습니다. INACTIVE PAUSED 파이프라인이비활성화되었습니다. 구성요소가일시중지되었고현재작업을수행하고있지않습니다. PENDING 파이프라인이처음활성화될준비가되었습니다. RUNNING 리소스가실행중이고작업을수신할준비가되었습니다. SCHEDULED 이리소스는실행되도록예약되어있습니다. SHUTTING_DOWN 리소스가작업을성공적으로완료한후종료중입니다. SKIPPED 구성요소가현재일정이후의타임스탬프를사용하여파이프라인이활성화된후실행간격을건너뛰었습니다. TIMEDOUT 리소스가 terminateafter 임계값을초과했고 AWS Data Pipeline 에의해중단되었습니다. 리소스가이상태에도달한후에는 AWS Data Pipeline 는해당리소스의 actiononresourcefailure, retrydelay 및 retrytimeout 값을무시합니다. 이상태는리소스에만적용됩니다. VALIDATING AWS Data Pipeline 가파이프라인정의의유효성을검사하는중입니다. WAITING_FOR_RUNNER 구성요소가작업자클라이언트가작업항목을검색하기를기다리고있습니다. 구성요소와작업자클라이언트관계는해당구성요소가정의한 runson 또는 workergroup 필드에의해제어됩니다. 41

49 파이프라인및구성요소상태해석 WAITING_ON_DEPENDENCIES 구성요소가작업수행전에기본및사용자구성사전조건이충족되었는지확인하는중입니다. 파이프라인및구성요소상태해석 각파이프라인과해당파이프라인안의구성요소에서 HEALTHY, ERROR, "-", No Completed Executions 또는 No Health Information Available 상태가반환됩니다. 파이프라인구성요소가 1 차실행을완료한이후또는구성요소사전조건이충족되지않은경우에만파이프라인이상태를갖게됩니다. 구성요소의상태가파이프라인상태로집계되며, 파이프라인실행세부정보를볼때오류상태가제일먼저표시됩니다. 파이프라인상태 HEALTHY ERROR 모든구성요소의집계상태가 HEALTHY 입니다. 이것은하나이상의구성요소가성공적으로완료되었음을의미합니다. HEALTHY 상태를클릭하면가장최근에성공적으로완료된파이프라인구성요소인스턴스를 [Execution Details] 페이지에서볼수있습니다. 파이프라인에서구성요소하나이상의상태가 ERROR 입니다. ERROR 상태를클릭하면 [Execution Details] 페이지에서가장최근에실패한파이프라인구성요소인스턴스를볼수있습니다. No Completed Executions 또는 No Health Information Available. 이파이프라인에보고된상태가없습니다. Note 구성요소들이그상태를바로업데이트하면파이프라인상태가업데이트되는데최대 5 분까지걸릴수있습니다. 구성요소상태 HEALTHY ERROR 성공을실행적으로완료하여 FINISHED 또는 MARK_FINISHED 상태가표시된구성요소 (Activity 또는 DataNode) 는상태가 HEALTHY 입니다. 구성요소이름또는 HEALTHY 상태를클릭하면 [Execution Details] 페이지에서가장최근에성공적으로완료된파이프라인구성요소인스턴스를볼수있습니다. 구성요소레벨에서오류가발생했거나그사전조건하나가충족되지않았습니다. FAILED, TIMEOUT 또는 CANCELED 로이오류가발생합니다. 구성요소이름또는 ERROR 상태를클릭하면 [Execution Details] 페이지에서가장최근에실패한파이프라인구성요소인스턴스를볼수있습니다. No Completed Executions 또는 No Health Information Available 이구성요소에보고된상태가없습니다. 파이프라인정의를보려면 AWS Data Pipeline 콘솔또는명령줄인터페이스 (CLI) 를사용하여파이프라인정의를봅니다. 콘솔에는그래픽표현이표시되며, CLI 는파이프라인정의파일을 JSON 형식으로인쇄합니다. 파이프라인정의파일의구문과사용에대한자세한내용은파이프라인정의파일구문 (p. 60) 단원을참조하십시오. 42

50 파이프라인인스턴스세부정보보기 콘솔을사용하여파이프라인정의를보려면 1. [List Pipelines] 페이지에서원하는파이프라인의 [Pipeline ID] 를클릭하면파이프라인 [Architect] 페이지가표시됩니다. 2. 파이프라인 [Architect] 페이지에서디자인창의객체아이콘을클릭하여오른쪽창에있는해당부분을확장합니다. 또는오른쪽창의부분중하나를확장하여그객체및연결된필드를봅니다. 3. 파이프라인정의그래프가디자인창에맞지않을경우에는디자인창오른쪽에있는팬버튼을사용하여캔버스를밉니다. 4. [Export] 를클릭하여전체텍스트파이프라인정의를볼수도있습니다. JSON 파이프라인정의가있는대화상자가나타납니다. CLI 를사용할경우에는수정을제출하기전에파이프라인정의를검색하는것이좋습니다. 왜냐하면작업을마친후에다른사용자또는프로세스에의해파이프라인정의가변경되었을가능성이있기때문입니다. 현재정의의사본을다운로드하고이것을토대로수정하면가장최근의파이프라인정의로작업할수있습니다. 수정후에파이프라인정의를다시검색하여업데이트에성공했는지를확인하는것도좋습니다. CLI 를사용할경우두가지파이프라인버전을가져올수있습니다. active 버전은현재실행중인파이프라인입니다. latest 버전은실행중인파이프라인을편집할때생성되는사본입니다. 편집된파이프라인을업로드하면 active 버전이되고이전 active 버전은사용할수없게됩니다. AWS CLI 를사용하여파이프라인정의를가져오려면 전체파이프라인정의를가져오려면다음 get-pipeline-definition 명령을사용하십시오. 파이프라인정의는표준출력 (stdout) 으로인쇄됩니다. 다음예제에서는지정된파이프라인의파이프라인정의를가져옵니다. aws datapipeline get-pipeline-definition --pipeline-id df sovyzexample 특정파이프라인버전을검색하려면 --version 옵션을사용합니다. 다음예제에서는지정된파이프라인의 active 버전을검색합니다. aws datapipeline get-pipeline-definition --version active --id df sovyzexample 파이프라인인스턴스세부정보보기 파이프라인진행상태를모니터링할수있습니다. 인스턴스상태에대한자세한내용은파이프라인상태세부정보해석 (p. 280) 단원을참조하십시오. 실패하거나완료되지않은파이프라인인스턴스실행문제해결에대한자세한내용은공통문제해결 (p. 282) 단원을참조하십시오. 콘솔을사용하여파이프라인의진행상태를모니터링하려면 1. [List Pipelines] 페이지의 [Pipeline ID] 열에서파이프라인에해당하는화살표를클릭하고 [View execution details] 를클릭합니다. 2. [Execution details] 페이지에각구성요소의이름, 유형, 상태및일정정보가열거됩니다. 43

51 파이프라인인스턴스세부정보보기 각구성요소이름에해당하는화살표를클릭하면해당구성요소의종속성정보가표시됩니다. 인라인요약에서인스턴스세부정보를보거나, 활동을다시실행하거나, FINISHED 로표시하거나, 종속성체인을탐색할수있습니다. Note 표시된실행목록이없는경우는파이프라인이예약되었는지확인하십시오. [End (in UTC)] 를이후날짜로변경하거나 [Start (in UTC)] 를이전날짜로변경한후 [Update] 를클릭합니다. 3. 파이프라인내모든구성요소의 [Status] 열이 FINISHED 이면파이프라인이활동을성공적으로완료한것입니다. Amazon SNS 알림을수신하도록지정한계정으로이작업의성공적인완료에관한이메일이수신되어야합니다. 출력데이터노드의콘텐츠도확인할수있습니다. 4. 파이프라인내구성요소의 [Status] 열이 FINISHED 가아닐경우는파이프라인이종속성대기중이거나실패한것입니다. 인스턴스실행실패또는미완문제를해결하려면다음절차를수행합니다. 5. 구성요소나활동옆에있는삼각형을클릭합니다. 인스턴스상태가 FAILED 이면 [Attempts] 상자에서최신시도밑에실패이유를나타내는 [Error Message] 가있습니다. 예 : Status Code: 403, AWS Service: Amazon S3, AWS Request ID: 1A ABCD, AWS Error Code: null, AWS Error Message: Forbidden. [Details] 열의 [More...] 를클릭하여이시도의인스턴스세부정보를볼수도있습니다. 6. 완료되지않거나실패한구성요소에대해조치를취하려면 [Rerun], [Mark Finished] 또는 [Cancel] 을선택합니다. AWS CLI 을사용하여파이프라인의진행상태를모니터링하려면 파이프라인이실행한횟수내역같은파이프라인인스턴스세부정보를검색하려면 [list-runs] 명령을사용합니다. 이명령을사용하여현재상태또는시작날짜 - 범위에따라반환된실행목록을필터링할수있습니다. 파이프라인기간과일정에따라실행내역이클수있으므로결과를필터링하는것이좋습니다. 다음예제에서는모든실행의정보를검색합니다. aws datapipeline list-runs --pipeline-id df sovyzexample 다음예제에서는완료된모든실행의정보를검색합니다. 44

52 파이프라인로그보기 aws datapipeline list-runs --pipeline-id df sovyzexample --status finished 다음예제에서는지정된시간프레임에서시작된모든실행의정보를검색합니다. aws datapipeline list-runs --pipeline-id df sovyzexample --start-interval " "," " 파이프라인로그보기 파이프라인을생성할때콘솔에서 Amazon S3 위치를지정하거나 SDK/CLI 의기본객체에있는 pipelineloguri 를사용하여파이프라인수준의로깅을지원합니다. 해당 URI 내각파이프라인의디렉터리구조는다음과같습니다. pipelineid -componentname -instanceid -attemptid 파이프라인 df abc7def8hijk 의디렉토리구조는다음과같습니다. df abc7def8hijk -ActivityId_fXNzc ShellCommandActivity 는이러한활동과연결된 stderr 및 stdout 의로그가각시도의디렉터리에저장됩니다. emrloguri 가설정된 EmrCluster 같은리소스는이값이우선합니다. 그외에는리소스 ( 이러한리소스의 TaskRunner 로그포함 ) 가위의파이프라인로깅구조를따릅니다. 파이프라인의 [Execution Details] 페이지에서구성요소세부정보를보고로그링크를클릭하여각구성요소의이러한로그를볼수있습니다. 각시도의로그도볼수있습니다. 예를들어, HadoopActivity 의로그를보려면활동의파이프라인 [Attempts] 탭을클릭하면됩니다. 하둡로그에는하둡작업으로생성된로그가있습니다. 45

53 파이프라인편집 파이프라인편집 파이프라인하나의일부측면을변경하려면그파이프라인정의를업데이트하면됩니다. 실행중인파이프라인을변경한후에는파이프라인을다시활성화해야변경이적용됩니다. 그리고하나이상의파이프라인구성요소를다시실행할수있습니다. 목차 제한사항 (p. 46) 콘솔을사용하여파이프라인편집 (p. 46) AWS CLI 를사용하여파이프라인편집 (p. 47) 제한사항 파이프라인이 PENDING 상태이고활성화되지않은경우파이프라인을변경할수있습니다. 파이프라인을활성화한후에파이프라인을편집할수있으며이때다음과같은제한이있습니다. 변경을저장하고파이프라인을다시실행한후에파이프라인객체를새로실행할때변경이적용됩니다. 객체는제거할수없습니다. 기존객체의예약기간을변경할수없습니다. 기존객체의참조필드를추가, 삭제또는수정할수없습니다. 새객체의출력필드에서기존객체를참조할수없습니다. 객체의예약된시작날짜를변경할수없습니다 ( 그대신, 특정날짜와시간의파이프라인을활성화합니다 ). 콘솔을사용하여파이프라인편집 AWS Management 콘솔을사용하여파이프라인을편집할수있습니다. 콘솔을사용하여파이프라인을편집하려면 1. [List Pipelines] 페이지에서파이프라인의 [Pipeline ID] 와 [Name] 열을확인한다음파이프라인 ID 를클릭합니다. 2. 파이프라인정의를완료또는수정하려면 a. 파이프라인 (Architect) 페이지에서오른쪽창에있는객체창을클릭하고파이프라인정의필드의객체및필드정의를완료합니다. 활성파이프라인을수정할경우일부필드가희미하게표시되어수정할수없습니다. 변경중에는파이프라인을복제하여사본을편집하기가더쉬운것도있습니다. 자세한정보는파이프라인복제 (p. 47) 단원을참조하십시오. b. [Save pipeline] 을클릭합니다. 유효성검사오류가있는경우에는이를시정하고파이프라인을다시저장합니다. 3. 유효성검사오류가없는파이프라인정의를저장한후에 [Activate] 을클릭합니다. 4. [List Pipelines] 페이지에새로생성한파이프라인이나열되어있고 [Schedule State] 열에 SCHEDULED 가표시되는지점검합니다. 5. 활성파이프라인을편집한후에하나이상의파이프라인구성요소를다시실행해야할수있습니다. [List Pipelines] 페이지의파이프라인세부정보드롭다운에서 [View execution details] 를클릭합니다. a. [Execution details] 페이지의목록에서파이프라인구성요소드롭다운을선택하여구성요소의세부정보를봅니다. b. [Rerun] 을클릭합니다. c. 확인프롬프트에서 [Continue] 를클릭합니다. 46

54 AWS CLI 를사용하여파이프라인편집 변경된파이프라인구성요소와종속요소의상태가변합니다. 예를들어, 리소스는 CREATING 상태로변하고, 활동은 WAITING_FOR_RUNNER 상태로변합니다. AWS CLI 를사용하여파이프라인편집 명령줄도구를사용하여파이프라인을편집할수있습니다. 먼저 get-pipeline-definition 명령을사용하여현재파이프라인정의사본을다운로드합니다. 이렇게하면가장최근파이프라인정의를수정할수있습니다. 다음예제에서는파이프라인정의를표준출력 (stdout) 으로인쇄합니다. aws datapipeline get-pipeline-definition --pipeline-id df sovyzexample 파이프라인정의를파일로저장하고필요에따라편집합니다. put-pipeline-definition 명령을사용하여파이프라인정의를업데이트합니다. 다음예제에서는업데이트된파이프라인정의파일을업로드합니다. aws datapipeline put-pipeline-definition --pipeline-id df sovyzexample --pipelinedefinition file://myemrpipelinedefinition.json get-pipeline-definition 명령을사용하여파이프라인정의를다시검색하고업데이트가성공했는지확인할수있습니다. 파이프라인을활성화하려면다음 activate-pipeline 명령을사용하십시오. aws datapipeline activate-pipeline --pipeline-id df sovyzexample 필요할경우다음과같이 --start-timestamp 옵션을사용하여특정날짜와시간의파이프라인을활성화할수있습니다. aws datapipeline activate-pipeline --pipeline-id df sovyzexample --starttimestamp YYYY-MM-DDTHH:MM:SSZ 하나이상의파이프라인구성요소를다시실행하려면 set-status 명령을사용합니다. 파이프라인복제 복제하면파이프라인사본이생겨이것을사용하여새파이프라인의이름을지정할수있습니다. 오류가발생해도임의상태의파이프라인을복제할수있으나새파이프라인은수동으로활성화하기전까지 PENDING 상태를유지합니다. 새파이프라인은복제작업에서활성버전이아닌원래파이프라인정의의최신버전이사용됩니다. 복제작업에서원래파이프라인의전체일정이새파이프라인에복사되지않고기간설정만복사됩니다. Note 명령줄인터페이스 (CLI) 를사용하여파이프라인을복제할수없습니다. 콘솔을사용하여파이프라인을복제하려면 1. [List Pipelines] 페이지에서복제할파이프라인을선택합니다. 2. [Actions] 를클릭한다음, [Clone] 을클릭합니다. 3. [Clone a Pipeline] 대화상자에서새파이프라인이름을입력하고 [Clone] 을클릭합니다. 4. [Schedule] 창에서새파이프라인일정을지정합니다. 47

55 파이프라인태그지정 5. 새파이프라인을활성화하려면 [Actions] 를클릭한후 [Activate] 를클릭합니다. 파이프라인태그지정 태그는사용자가정의하는키와선택값으로이루어진대소문자를구분하는키 - 값쌍입니다. 각파이프라인에최대 10 개의태그를적용할수있습니다. 태그키는각파이프라인마다고유해야합니다. 파이프라인에이미연결된키를통해태그를추가하면해당태그의값이업데이트됩니다. 파이프라인에태그를적용하면그기본리소스 ( 예 : Amazon EMR 클러스터와 Amazon EC2 인스턴스 ) 에도태그가전파됩니다. 그러나이러한태그가 FINISHED 또는종료상태의리소스에는적용되지않습니다. 필요할경우 CLI 를사용하여이러한리소스에태그를적용할수있습니다. 태그사용을마치면파이프라인에서이를제거할수있습니다. 콘솔을사용하여파이프라인에태그를지정하려면 1. 에서 AWS Data Pipeline 콘솔을엽니다. 2. [List Pipelines] 페이지의 [Pipeline ID] 열에서파이프라인옆에있는확장화살표를클릭한다음 [Tags] 밑에있는 [View all/edit] 을클릭합니다. 3. [View all / Edit] 대화상자에서다음을수행합니다. a. 추가할각태그의키와값을지정합니다. b. 제거할태크의 ' 제거 ' 아이콘을클릭합니다. c. Save 를클릭합니다. AWS CLI 를사용하여파이프라인에태그를지정하려면 새파이프라인에태그를추가하려면 create-pipeline 명령에 --tags 옵션을추가합니다. 예를들어, 다음옵션은 production 값이있는 environment 태그와 sales 값이있는 owner 태그가있는파이프라인을생성합니다. --tags key=environment,value=production key=owner,value=sales 기존파이프라인에태그를추가하려면다음과같이 add-tags 명령을사용합니다. aws datapipeline add-tags --pipeline-id df sovyzexample --tags key=environment,value=production key=owner,value=sales 기존파이프라인에서태그를제거하려면다음과같이 remove-tags 명령을사용합니다. aws datapipeline remove-tags --pipeline-id df sovyzexample --tag-keys environment owner 파이프라인비활성화 실행중인파이프라인을비활성화하면파이프라인실행이일시중지됩니다. 파이프라인실행을재개하려면파이프라인을활성화하면됩니다. 그후에변경할수있습니다. 예를들어, 유지관리가예약된데이터베이스로데이터를기록할경우파이프라인을비활성화하고, 유지관리가완료될때까지기다렸다가, 파이프라인을활성화할수있습니다. 48

56 콘솔을사용하여파이프라인비활성화 파이프라인을비활성화할때실행중인활동에관한사항을지정할수있습니다. 기본적으로이러한활동은바로취소됩니다. 또는파이프라인비활성화전에활동이완료될때까지 AWS Data Pipeline 을대기시킬수있습니다. 비활성화된파이프라인을활성화할때재개시점을지정할수있습니다. 예를들어, AWS Management 콘솔을사용하여마지막으로완료된실행이후, 현재시간부터또는지정된날짜와시간부터재개할수있습니다. AWS CLI 또는 API 를사용하면마지막으로완료된실행부터파이프라인이재개되거나 ( 기본값 ) 파이프라인을재개할날짜와시간을지정할수있습니다. 목차 콘솔을사용하여파이프라인비활성화 (p. 49) AWS CLI 를사용하여파이프라인비활성화 (p. 49) 콘솔을사용하여파이프라인비활성화 다음절차에따라실행중인파이프라인을비활성화합니다. 파이프라인을비활성화하려면 1. [List Pipelines] 페이지에서비활성화할파이프라인을선택합니다. 2. [Actions] 를클릭한다음, [Deactivate] 를클릭합니다. 3. [Deactivate a Pipeline] 대화상자에서옵션을선택한다음 [Deactivate] 를클릭합니다. 4. 확인메시지가나타나면 [Deactivate] 를클릭합니다. 파이프라인실행을재개할준비가완료되면다음절차에따라비활성파이프라인을활성화합니다. 파이프라인을활성화하려면 1. [List Pipelines] 페이지에서활성화할파이프라인을선택합니다. 2. [Actions] 를클릭한다음, [Activate] 를클릭합니다. 3. [Activate a Pipeline] 대화상자에서옵션을선택한다음 [Activate] 를선택합니다. AWS CLI 를사용하여파이프라인비활성화 다음 deactivate-pipeline 명령을사용하여파이프라인을비활성화합니다. aws datapipeline deactivate-pipeline --pipeline-id df sovyzexample 실행중인모든활동이끝난후에만파이프라인을비활성화하려면다음과같이 --no-cancel-active 옵션을추가합니다. aws datapipeline deactivate-pipeline --pipeline-id df sovyzexample --no-cancelactive 준비가완료되면다음 activate-pipeline 명령을사용하여비활성상태였던파이프라인실행을재개할수있습니다. aws datapipeline activate-pipeline --pipeline-id df sovyzexample 특정날짜와시간부터파이프라인을시작하려면다음과같이 --start-timestamp 옵션을추가합니다. 49

57 파이프라인삭제 aws datapipeline activate-pipeline --pipeline-id df sovyzexample --starttimestamp YYYY-MM-DDTHH:MM:SSZ 파이프라인삭제 애플리케이션테스트때생성한파이프라인처럼더이상필요없는파이프라인은삭제하여활성사용에서제거해야합니다. 파이프라인을삭제하면삭제상태가됩니다. 파이프라인이삭제상태가되면그파이프라인정의와실행내역이사라집니다. 따라서파이프라인설명을포함해파이프라인작업을수행하지못합니다. Important 삭제후에는파이프라인을복원할수없으므로앞으로파이프라인이필요하지않은지확인한후에삭제하십시오. 콘솔을사용하여파이프라인을삭제하려면 1. [List Pipelines] 페이지에서파이프라인을선택합니다. 2. [Actions] 를클릭한후 [Delete] 를클릭합니다. 3. 확인메시지가나타나면 Delete 를클릭합니다. AWS CLI 를사용하여파이프라인을삭제하려면 파이프라인을삭제하려면 delete-pipeline 명령을사용하십시오. 다음명령은지정된파이프라인을삭제합니다. aws datapipeline delete-pipeline --pipeline-id df sovyzexample 파이프라인활동으로데이터및테이블준비 AWS Data Pipeline 은파이프라인에서입력및출력데이터를스테이징하여 ShellCommandActivity 및 HiveActivity 같은특정활동을좀더쉽게사용할수있게해줍니다. 데이터스테이징을사용하면입력데이터노드의데이터를활동실행중인리소스로복사할수있으며, 마찬가지로리소스에서출력데이터노드로도복사할수있습니다. Amazon EMR 또는 Amazon EC2 리소스에서스테이징된데이터는활동의셸명령또는 Hive 스크립트의특수변수를이용해사용할수있습니다. 테이블스테이징도데이터스테이징과유사하지만, 스테이징된데이터가데이터베이스테이블의양식을띈다는점이다릅니다. AWS Data Pipeline 은다음스테이징시나리오를지원합니다. ShellCommandActivity 로데이터스테이징 Hive 및스테이징지원데이터노드로테이블스테이징 Hive 및스테이징비 - 지원데이터노드로테이블스테이징 Note 스테이징은 stage 필드가 ShellCommandActivity 등의활동에서 true 로설정될때만작동합니다. 자세한내용은 ShellCommandActivity (p. 197) 단원을참조하십시오. 50

58 ShellCommandActivity 로데이터스테이징 그리고데이터노드와활동의관계를다음네방식으로설정할수있습니다. 리소스에서로컬로데이터스테이징 입력데이터가자동으로리소스로컬파일시스템에복사됩니다. 출력데이터가자동으로리소스로컬파일시스템에서출력데이터노드로복사됩니다. 예를들어, ShellCommandActivity 입력및출력을스테이징 = true 로구성하면입력데이터는 INPUTx_STAGING_DIR 로사용할수있고, 출력데이터는 OUTPUTx_STAGING_DIR 로사용할수있습니다. 여기서 x 는입력또는출력번호입니다. 활동의입력및출력정의스테이징 입력데이터형식 ( 열이름과테이블이름 ) 이자동으로활동의리소스에복사됩니다. 예를들어, HiveActivity 를스테이징 = true 로구성할때가이에해당합니다. 입력 S3DataNode 에지정된데이터형식을사용하여 Hive 테이블의테이블정의를스테이징합니다. 활성화되지않은스테이징 입력및출력객체와그필드를활동에사용할수있지만데이터는사용하지못합니다. 예를들어, EmrActivity( 기본값 ) 또는기타활동을스테이징 = false 로구성할때가이에해당합니다. 이구성에서는데이터필드를활동에사용하여 AWS Data Pipeline 표현식구문으로참조할수있으며, 이는종속성이충족될때만가능합니다. 이것은종속성확인기능만합니다. 활동의코드는입력값의데이터를해당활동을실행하는리소스로복사하는역할을담당합니다. 객체사이의종속성관계 객체사이에종속관계가있는데, 이것때문에스테이징이활성화되지않을때와유사한상황이발생합니다. 이로인해데이터노드나활동이다른활동을실행하는사전조건역할을하게됩니다. ShellCommandActivity 로데이터스테이징 S3DataNode 객체가데이터입력및출력인 ShellCommandActivity 를사용하는시나리오를생각해봅니다. AWS Data Pipeline 은다음예제에표시된환경변수 $INPUT1_STAGING_DIR 및 $OUTPUT1_STAGING_DIR 를사용하여데이터노드를자동으로스테이징하여로컬파일폴더인것처럼셸명령에액세스할수있게합니다. 이름이 INPUT1_STAGING_DIR 및 OUTPUT1_STAGING_DIR 인변수의숫자부분은활동이참조하는데이터노드의수에따라증분합니다. Note 이시나리오는데이터입력과출력이 S3DataNode 객체일경우에만설명대로작동합니다. 그리고출력데이터스테이징은 directorypath 가출력 S3DataNode 객체에설정된경우에만허용됩니다. "id": "AggregateFiles", "type": "ShellCommandActivity", "stage": "true", "command": "cat $INPUT1_STAGING_DIR/part* > $OUTPUT1_STAGING_DIR/aggregated.csv", "input": "ref": "MyInputData" "output": "ref": "MyOutputData" "id": "MyInputData", "type": "S3DataNode", "schedule": "ref": "MySchedule" 51

59 Hive 및스테이징지원데이터노드로테이블스테이징 "filepath": items" "id": "MyOutputData", "type": "S3DataNode", "schedule": "ref": "MySchedule" "directorypath": Hive 및스테이징지원데이터노드로테이블스테이징 S3DataNode 객체가데이터입력및출력인 HiveActivity 를사용하는시나리오를생각해봅니다. AWS Data Pipeline 은 HiveActivity 에대한다음예제에표시된환경변수 $input1 및 $output1 를사용하여데이터노드를자동으로스테이징하여 Hive 테이블인것처럼 Hive 스크립트에액세스할수있게합니다. 이름이 input 및 output 인변수의숫자부분은활동이참조하는데이터노드의수에따라증분합니다. Note 이시나리오는데이터입력및출력이 S3DataNode 또는 MySqlDataNode 객체인경우에만설명대로작동합니다. DynamoDBDataNode 는테이블스테이징이지원되지않습니다. "id": "MyHiveActivity", "type": "HiveActivity", "schedule": "ref": "MySchedule" "runson": "ref": "MyEmrResource" "input": "ref": "MyInputData" "output": "ref": "MyOutputData" "hivescript": "INSERT OVERWRITE TABLE $output1 select * from $input1;" "id": "MyInputData", "type": "S3DataNode", "schedule": "ref": "MySchedule" "directorypath": "s3://test-hive/input" "id": "MyOutputData", "type": "S3DataNode", "schedule": "ref": "MySchedule" "directorypath": "s3://test-hive/output" 52

60 Hive 및스테이징 - 비지원데이터노드로테이블스테이징... Hive 및스테이징 - 비지원데이터노드로테이블스테이징 DynamoDBDataNode 가데이터입력이고 S3DataNode 객체가출력인 HiveActivity 를사용하는시나리오를생각해봅니다. DynamoDBDataNode 는데이터스테이징을사용할수없으므로, 먼저 Hive 스크립트안에수동으로테이블을생성하고, 이름이 #input.tablename 인변수를사용하여 DynamoDB 테이블을참조해야합니다. DynamoDB 테이블이출력일경우에도비슷한명칭이적용됩니다. 단, 변수 #output.tablename 을사용하는것이다릅니다. 이예제에서는출력 S3DataNode 객체에스테이징을사용할수있어 $output1 같은출력데이터노드를참조할수있습니다. Note 이예제에서는테이블이름변수에 #( 해시 ) 문자접두사가있는데, 그이유는 AWS Data Pipeline 이표현식을사용하여 tablename 또는 directorypath 에액세스하기때문입니다. AWS Data Pipeline 에서표현식평가가어떻게이루어지는지에관한자세한내용은표현식평가 (p. 127) 단원을참조하십시오. "id": "MyHiveActivity", "type": "HiveActivity", "schedule": "ref": "MySchedule" "runson": "ref": "MyEmrResource" "input": "ref": "MyDynamoData" "output": "ref": "MyS3Data" "hivescript": "-- Map DynamoDB Table SET dynamodb.endpoint=dynamodb.us-east-1.amazonaws.com; SET dynamodb.throughput.read.percent = 0.5; CREATE EXTERNAL TABLE dynamodb_table (item map<string,string>) STORED BY 'org.apache.hadoop.hive.dynamodb.dynamodbstoragehandler' TBLPROPERTIES ("dynamodb.table.name" = "#input.tablename"); INSERT OVERWRITE TABLE $output1 SELECT * FROM dynamodb_table;" "id": "MyDynamoData", "type": "DynamoDBDataNode", "schedule": "ref": "MySchedule" "tablename": "MyDDBTable" "id": "MyS3Data", "type": "S3DataNode", "schedule": "ref": "MySchedule" "directorypath": "s3://test-hive/output" 53

61 VPC 에서리소스시작... VPC 에서파이프라인을위한리소스시작 파이프라인은 Amazon EC2 인스턴스와 Amazon EMR 클러스터를 VPC(virtual private cloud) 에서실행할수있습니다. 먼저 Amazon VPC 를사용하여 VPC 와서브넷을생성합니다. VPC 의인스턴스가 AWS Data Pipeline 엔드포인트와 Amazon S3 에액세스할수있도록 VPC 를구성합니다. 그다음에 Task Runner 가사용자의데이터소스에액세스하도록허용하는보안그룹을설정합니다. 끝으로인스턴스와클러스터를구성할때그리고데이터소스를생성할때 VPC 에서서브넷을지정합니다. 리전에기본 VPC 가있는경우에는다른 AWS 서비스에액세스하도록구성되어있습니다. 사용자가리소스를시작하면저희쪽에서사용자의기본 VPC 에자동으로시작합니다. VPC 에대한자세한내용은 Amazon VPC 사용설명서단원을참조하십시오. 목차 VPC 생성및구성 (p. 54) 리소스간연결설정 (p. 55) 리소스구성 (p. 56) VPC 생성및구성 사용자가생성하는 VPC 에서브넷, 인터넷게이트웨이, 인터넷게이트웨이로경로가지정된서브넷의라우팅테이블이있어야만 VPC 의인스턴스가 Amazon S3 에액세스할수있습니다. ( 기본 VPC 가있다면이미이렇게구성되어있습니다.) VPC 를생성하고구성하는가장쉬운방법은다음절차와같이 VPC 마법사를사용하는것입니다. VPC 마법사를사용하여 VPC 를생성하고구성하려면 1. 에서 Amazon VPC 콘솔을엽니다. 2. 탐색모음에서리전선택기를사용하여 VPC 에해당하는리전을선택합니다. 이 VPC 에서모든인스턴스와클러스터를시작할것이므로파이프라인에맞는리전을선택하십시오. 3. 탐색창에서 [VPC Dashboard] 를클릭합니다. 4. VPC 리소스가없으면대시보드의 [Your Virtual Private Cloud] 영역에서 [Get started creating a VPC] 를클릭합니다. VPC 리소스가있으면 [Start VPC Wizard] 를클릭합니다. 5. 첫번째옵션인 [VPC with a Single Public Subnet Only] 을클릭한후 [Continue] 를클릭합니다. 6. 확인페이지에선택한 CIDR 범위와설정이표시됩니다. [Enable DNS hostnames] 가 [Yes] 인지확인합니다. 그밖에필요한변경을마친후에 [Create VPC] 를클릭하여 VPC, 서브넷, 인터넷게이트웨이, 라우팅테이블을만듭니다. 7. VPC 가생성되면탐색상에서 [Your VPCs] 를클릭하고목록에서해당 VPC 를선택합니다. [Summary] 탭에서 [DNS resolution] 과 [DNS hostnames] 둘다 [yes] 인지확인합니다. DHCP 옵션세트의식별자를클릭합니다. domain-name-servers 가 AmazonProvidedDNS 이고 domain-name 이미국동부 ( 버지니아북부 ) 리전에대해 ec2.internal 이고다른모든리전에대해 region-name.compute.internal 인지확인합니다. 아닐경우에는이러한설정으로새옵션세트를생성하고이를 VPC 와연결합니다. 자세한내용은 Amazon VPC 사용설명서의 DHCP 옵션세트를사용한작업을참조하십시오. 54

62 리소스간연결설정 VPC, 서브넷, 인터넷게이트웨이및라우팅테이블을수동으로생성하는방법은 Amazon VPC 사용설명서의 VPC 생성및 VPC 에인터넷게이트웨이추가를참조하십시오. 리소스간연결설정 보안그룹은인스턴스에대한인바운드및아웃바운드트래픽을제어하는가상방화벽역할을합니다. 데이터소스에대한 Task Runner 의액세스를허용해야합니다. 보안그룹에대한자세한내용은 Amazon VPC 사용설명서의 VPC 의보안그룹을참조하십시오. 먼저, Task Runner 를실행하는리소스에서사용되는보안그룹또는 IP 주소를확인합니다. 리소스가 EmrCluster (p. 212) 유형일경우에는기본적으로 Task Runner 가클러스터에서실행됩니다. 클러스터를실행하면이름이 ElasticMapReduce-master 및 ElasticMapReduce-slave 인보안그룹이생성됩니다. 나중에이러한보안그룹의 ID 가필요합니다. VPC 의클러스터용보안그룹 ID 를가져오려면 1. 에서 Amazon EC2 콘솔을엽니다. 2. 탐색창에서 Security Groups 를클릭합니다. 3. 보안그룹목록이긴경우에는이름열을클릭하여보안그룹을이름별로정렬할수있습니다. [Name] 열이보이지않으면 [Show/Hide Columns] 아이콘을클릭한다음 [Name] 을클릭하십시오. 4. ElasticMapReduce-master 및 ElasticMapReduce-slave 보안그룹 ID 를메모하십시오. 리소스가 Ec2Resource (p. 207) 유형일경우에는기본적으로 Task Runner 가 EC2 인스턴스에서실행됩니다. VPC 용보안그룹을생성하고 EC2 인스턴스를시작할시점을지정합니다나중에이보안그룹의 ID 가필요합니다. VPC 에서 EC2 인스턴스의보안그룹을생성하려면 1. 에서 Amazon EC2 콘솔을엽니다. 2. 탐색창에서 Security Groups 를클릭합니다. 3. Create Security Group 을클릭합니다. 4. 보안그룹의이름과설명을지정합니다. 5. 목록에서 VPC 를선택한다음 [Create] 을클릭합니다. 6. 새보안그룹의 ID 를메모합니다. 컴퓨터에서 Task Runner 를실행중인경우에는 CIDR 표기법으로퍼블릭 IP 주소를메모합니다. 컴퓨터에서방화벽을사용하는경우에는네트워크의전체주소범위를메모하십시오. 나중에이주소가필요합니다. 그다음에데이터리소스 Task Runner 의인바운드트래픽이액세스해야하는리소스보안그룹에규칙을생성합니다. 예를들어, Task Runner 가 Amazon Redshift 클러스터에액세스해야할경우에는 Amazon Redshift 클러스터의보안그룹이리소소의인바운드트래픽을허용해야합니다. Amazon RDS 데이터베이스의보안그룹에규칙을추가하려면 1. 에서 Amazon RDS 콘솔을엽니다. 2. 탐색창에서 Instances 를클릭합니다. 3. DB 인스턴스의세부정보아이콘을클릭합니다. 보안및네트워크에서보안그룹링크를클릭하면 Amazon EC2 콘솔로이동합니다. 보안그룹에기존콘솔디자인을사용할경우에는콘솔페이지상단에표시된아이콘을클릭하여새콘솔디자인으로전환합니다. 4. [Inbound] 탭에서 [Edit] 을클릭한다음 [Add Rule] 을클릭합니다. DB 인스턴스를시작할때사용한데이터베이스포트를지정합니다. 소스에서 Task Runner 를실행하는리소스가사용하는 IP 주소또는보안그룹 ID 를입력합니다. 5. Save 를클릭합니다. 55

63 리소스구성 Amazon Redshift 클러스터의보안그룹에규칙을추가하려면 1. 에서 Amazon Redshift 콘솔을엽니다. 2. 탐색창에서 [Configuration] 을클릭합니다. 3. 클러스터의세부정보아이콘을클릭합니다. 클러스터속성에서보안그룹의이름이나 ID 를메모한다음 VPC 보안그룹보기를클릭하면 Amazon EC2 콘솔로이동합니다. 보안그룹에기존콘솔디자인을사용할경우에는콘솔페이지상단에표시된아이콘을클릭하여새콘솔디자인으로전환합니다. 4. 클러스터의보안그룹을선택합니다. 5. [Inbound] 탭에서 [Edit] 을클릭한다음 [Add Rule] 을클릭합니다. 유형, 프로토콜및포트범위를지정합니다. 소스에서 Task Runner 를실행하는리소스가사용하는 IP 주소또는보안그룹 ID 를입력합니다. 6. Save 를클릭합니다. 리소스구성 비 - 기본 VPC 의서브넷또는기본 VPC 의비 - 기본서브넷에서리소스를시작하려면리소스를구성할때 subnetid 필드를사용하여서브넷을지정해야합니다. 기본 VPC 가있는상태에서 subnetid 를지정하지않으면기본 VPC 의기본서브넷에서리소스가시작됩니다. 예제 EmrCluster 다음예제객체는 Amazon EMR 클러스터를비 - 기본 VPC 에서시작합니다. "id" : "MyEmrCluster", "type" : "EmrCluster", "keypair" : "my-key-pair", "masterinstancetype" : "m1.xlarge", "coreinstancetype" : "m1.small", "coreinstancecount" : "10", "taskinstancetype" : "m1.small", "taskinstancecount": "10", "subnetid": "subnet " 자세한정보는 EmrCluster (p. 212) 단원을참조하십시오. 예제 Ec2Resource 다음예제객체는 EC2 인스턴스를비 - 기본 VPC 에서시작합니다. 기본이아닌 VPC 에서인스턴스의보안그룹을지정할때그이름이아니라 ID 를사용해야합니다. "id" : "MyEC2Resource", "type" : "Ec2Resource", "actionontaskfailure" : "terminate", "actiononresourcefailure" : "retryall", "maximumretries" : "1", "role" : "test-role", "resourcerole" : "test-role", "instancetype" : "m1.medium", "securitygroupids" : "sg ", "subnetid": "subnet-1a2b3c4d", "associatepublicipaddress": "true", "keypair" : "my-key-pair" 56

64 파이프라인에서스팟인스턴스사용 자세한정보는 Ec2Resource (p. 207) 단원을참조하십시오. 파이프라인에서 Amazon EC2 스팟인스턴스사용 파이프라인은그 Amazon EMR 클러스터리소스에서 Amazon EC2 스팟인스턴스를작업노드로사용할수있습니다. 기본적으로파이프라인은온디맨드 Amazon EC2 인스턴스를사용합니다. 이와함께스팟인스턴스를사용할수있습니다. 스팟인스턴스를통해예비 Amazon EC2 인스턴스를사용하고실행할수있습니다. 스팟인스턴스요금모델은온디맨드및예약인스턴스요금모델을보완한것으로서, 애플리케이션에따라서는가장경제적으로컴퓨팅용량을확보할수있는방법입니다. 자세한내용은 Amazon EC2 제품페이지의 Amazon EC2 스팟인스턴스를참조하십시오. 파이프라인에서스팟인스턴스를사용하려면 1. 에서 AWS Data Pipeline 콘솔을엽니다. 2. Architect 에서파이프라인을엽니다. 3. [Resources] 창에서 EMR 클러스터로이동합니다. [Add an optional field] 에서 [Task Instance Bid Price] 를선택합니다. [Task Instance Bid Price] 를스팟인스턴스의시간당최고가격으로설정합니다. 이것은지불하는최대달러금액이며, 0 초과 미만의십진수값입니다. 자세한정보는 EmrCluster (p. 212) 단원을참조하십시오. 여러리전의리소스와파이프라인사용 기본적으로 Ec2Resource 및 EmrCluster 리소스는 AWS Data Pipeline 과같은리전에서실행되지만 AWS Data Pipeline 은다른리전의입력데이터가통합된한리전에서리소스를실행하는것과같이여러리전에서데이터흐름을조정하는기능을지원합니다. 리소스가지정리전에서실행되게하면리소스를그종속데이터세트와같은위치에배치할수있으며, 지연시간을줄이고리전간데이터전송요금의발생을방지하여성능을극대화할수있습니다. Ec2Resource 및 EmrCluster 에서 region 필드를사용하여 AWS Data Pipeline 과다른리전에서실행되도록리소스를구성할수있습니다. 다음예제파이프라인 JSON 파일은 EU( 아일랜드 ) 리전에서 EmrCluster 리소스를실행하는방법을보여줍니다. 단, 작업할클러스터의대용량데이터가동일리전에있다는것을전제로합니다. 이예제에서일반파이프라인과유일하게다른점은 EmrCluster 의 region 필드값이 eu-west-1 로설정되어있다는것입니다. "objects": [ "id": "Hourly", "type": "Schedule", "startdatetime": " T07:48:00", "enddatetime": " T07:48:00", "period": "1 hours" "id": "MyCluster", "type": "EmrCluster", "masterinstancetype": "m3.medium", "region": "eu-west-1", "schedule": "ref": "Hourly" "id": "MyEmrActivity", 57

65 캐스케이드실패및재실행 "type": "EmrActivity", "schedule": "ref": "Hourly" "runson": "ref": "MyCluster" "step": "/home/hadoop/contrib/streaming/hadoop-streaming.jar,-input,s3n:// elasticmapreduce/samples/wordcount/input,-output,s3://eu-west-1-bucket/wordcount/output/ reducer,aggregate" ] 다음표에는선택할수있는리전과 region 필드에서사용하는연결된리전코드가나열되어있습니다. Note 다음목록에는 AWS Data Pipeline 이워크플로우를조율하고 Amazon EMR 또는 Amazon EC2 리소스를실행할수있는리전이포함되어있습니다. AWS Data Pipeline 은이들리전에서지원되지않을수있습니다. AWS Data Pipeline 이지원되는리전에대한자세한내용은 AWS 리전및엔드포인트를참조하십시오. 리전이름미국동부 ( 버지니아북부 ) 미국동부 ( 오하이오 ) 미국서부 ( 캘리포니아북부지역 ) 미국서부 ( 오레곤 ) 캐나다 ( 중부 ) EU( 아일랜드 ) EU( 런던 ) EU( 프랑크푸르트 ) 아시아태평양 ( 싱가포르 ) 아시아태평양 ( 시드니 ) 아시아태평양 ( 뭄바이 ) 아시아태평양 ( 도쿄 ) 아시아태평양 ( 서울 ) 남아메리카 ( 상파울루 ) 지역코드 us-east-1 us-east-2 us-west-1 us-west-2 ca-central-1 eu-west-1 eu-west-2 eu-central-1 ap-southeast-1 ap-southeast-2 ap-south-1 ap-northeast-1 ap-northeast-2 sa-east-1 캐스케이드실패및재실행 AWS Data Pipeline 을사용하여종속요소가실패하거나사용자에의해취소될때파이프라인객체가작동하는방식을구성할수있습니다. 실패가다른파이프라인객체 ( 소비자 ) 에게까지캐스케이딩되는지확인하여무한대기를방지할수있습니다. 모든활동, 데이터노드및사전조건에는이름이 58

66 활동 failureandrerunmode 이고기본값이 none 인파일이있습니다. 캐스케이드실패를활성화하려면 failureandrerunmode 필드를 cascade 로설정합니다. 이필드가활성화되면파이프라인객체가 WAITING_ON_DEPENDENCIES 상태에서차단되고, 대기중인명령없이종속요소가실패한경우캐스케이드실패가발생합니다. 캐스케이드실패시다음이벤트가발생합니다. 객체가실패하면그소비자가 CASCADE_FAILED 로설정되고, 원래객체와그소비자의사전조건이 CANCELED 로설정됩니다. FINISHED, FAILED 또는 CANCELED 상태의객체는모두무시됩니다. 원래실패한객체와연결된사전조건은제외하고캐스케이드실패는실패한객체의종속요소 ( 업스트림 ) 에서작동하지않습니다. 캐스케이드실패의영향을받는파이프라인객체는 onfail 같은사후조치나재시도를트리거할수있습니다. 캐스케이드실패의세부영향은객체유형에따라다릅니다. 활동 종속요소중하나가실패하면활동이 CASCADE_FAILED 로변하며, 이후활동소비자에서캐스케이드실패를트리거합니다. 활동을좌우하는리소스가실패할경우해당활동은 CANCELED 상태가되며, 그모든소비자는 CASCADE_FAILED 로변합니다. 데이터노드및사전조건 실패한활동의출력으로구성되는데이터노드는 CASCADE_FAILED 상태로변합니다. 데이터노드실패는연결된모든사전조건으로전파되어, 사전조건이 CANCELED 상태로변합니다. 리소스 리소스에좌우되는객체가 FAILED 상태이고, 리소스자체는 WAITING_ON_DEPENDENCIES 상태이면리소스가 FINISHED 상태로변합니다. 캐스케이드실패객체재실행 기본적으로활동또는데이터노드만재실행하면연결된리소스가재실행됩니다. 그러나파이프라인객체에서 failureandrerunmode 필드를 cascade 로설정하면대상객체에대한재실행명령이다음조건에서모든소비자에게전파됩니다. 대상객체의소비자가 CASCADE_FAILED 상태입니다. 대상객체의종속요소에대기중인재실행명령이없습니다. 대상객체의종속요소가 FAILED, CASCADE_FAILED 또는 CANCELED 상태가아닙니다. CASCADE_FAILED 객체를재실행할때그종속요소중하나가 FAILED, CASCADE_FAILED 또는 CANCELED 상태이면재실행에실패하고객체를 CASCADE_FAILED 상태로반환합니다. 실패한객체를성공적으로재실행하려면종속성체인의실패를추적하여실패의원래원인을찾아해당객체를재실행해야합니다. 리소스에서재실행명령을다시내릴때이에좌우되는객체의재실행도시도합니다. 캐스케이드실패및채우기 캐스케이드실패를활성화하고, 여러채우기를생성하는파이프라인이있는경우에는파이프라인실행시간오류로인해유용한작업이수행되지않고리소스가연속해서빠르게생성되고삭제될수있습니다. 파이프라인을저장하면 AWS Data Pipeline 이다음경고메시지로이상황을알립니다. 59

67 파이프라인정의파일구문 Pipeline_object_name has 'failureandrerunmode' field set to 'cascade' and you are about to create a backfill with schedulestarttime start_time. This can result in rapid creation of pipeline objects in case of failures. 이렇게되는이유는캐스케이드실패가다운스트림활동을 CASCADE_FAILED 로빠르게설정하고, 더이상필요없는 EMR 클러스터와 EC2 리소스를정지할수있기때문입니다. 짧은시간범위에서파이프라인을테스트하여이상황의영향을제한하는것이좋습니다. 파이프라인정의파일구문 이단원의설명은 AWS Data Pipeline 명령줄인터페이스 (CLI) 를사용하여파이프라인정의파일을수동으로처리하는작업에관한것입니다. 이것은 AWS Data Pipeline 콘솔을사용하여양방향으로파이프라인을설계하는것을대신합니다. UTF-8 파일형식을사용하는파일저장을지원하는텍스트편집기를사용하여수동으로파이프라인정의파일을생성하고 AWS Data Pipeline 명령줄인터페이스를사용하여파일을제출할수있습니다. AWS Data Pipeline 은파이프라인정의안에있는다양한복잡한표현식과함수도지원합니다. 자세한내용은파이프라인표현식및함수 (p. 124) 단원을참조하십시오. 파일구조 파이프라인생성의첫단계는파이프라인정의파일에서파이프라인정의객체를구성하는일입니다. 다음예제는파이프라인정의파일의일반구조를보여줍니다. 이파일은두객체를정의하는데, 이객체는 '' 및 '' 로구분되고, 콤마로분리됩니다. 다음예제에서는첫번째객체가필드라고하는이름 - 값쌍 2 개를정의합니다. 두번째객체는 3 개필드를정의합니다. "objects" : [ "name1" : "value1", "name2" : "value2" "name1" : "value3", "name3" : "value4", "name4" : "value5" ] 파이프라인정의파일을생성할때는필요하게될파이프라인객체유형을선택하고, 이것을파이프라인정의파일에추가한다음해당필드를추가해야합니다. 파이프라인객체에대한자세한내용은파이프라인객체참조 (p. 134) 섹션을참조하십시오. 예를들어, 입력데이터노드용파이프라인정의객체와출력데이터노드용파이프라인정의객체를생성할수있을것입니다. 그런다음 Amazon EMR 을사용하여입력데이터를처리하는것과같은활동의파이프라인정의객체도생성합니다. 파이프라인필드 파이프라인정의파일에포함시킬객체유형을확인한후에각파이프라인객체의정의에필드를추가합니다. 필드이름은인용부호안에들어가며, 다음예제에서처럼스페이스, 콜론, 스페이스로필드값과분리됩니다. 60

68 사용자정의필드 "name" : "value" 텍스트, 다른객체의참조, 함수호출, 표현식또는이모든유형의정렬목록이필드값이될수있습니다. 필드값에사용할수있는데이터형식에대한자세한내용은단순한데이터유형 (p. 124) 단원을참조하십시오. 필드값을평가할때사용할수있는함수에대한자세한내용은표현식평가 (p. 127) 단원을참조하십시오. 필드는 2048 자로제한됩니다. 객체크기는 20KB 이므로객체에큰필드여러개를추가할수없습니다. 각파이프라인객체에는다음예제와같이 id 및 type 필드가포함되어야합니다. 객체유형에따라이외의필드가필요할수도있습니다. 자신에게의미가있고, 파이프라인정의안에서고유한 id 값을선택하십시오. type 값은객체유형을지정합니다. 지원되는파이프라인정의객체유형 ( 파이프라인객체참조 (p. 134) 주제에나열되어있는 ) 중하나를지정하십시오. "id": "MyCopyToS3", "type": "CopyActivity" 각객체의필수필드와선택필드에관한자세한내용은객체문서를참조하십시오. 다른객체에있는한객체의필드를포함시키려면객체참조와함께 parent 필드를사용합니다. 예를들어, 객체 "B" 에는그필드 "B1" 과 "B2" 그리고객체 "A", "A1", "A2" 의필드가포함됩니다. "id" : "A", "A1" : "value", "A2" : "value" "id" : "B", "parent" : "ref" : "A" "B1" : "value", "B2" : "value" ID "Default" 로객체에서공통필드를정의할수있습니다. 이러한필드는그 parent 필드를다른객체의참조로명시적으로설정하지않는파이프라인정의파일내각객체에자동으로포함됩니다. "id" : "Default", "onfail" : "ref" : "FailureNotification" "maximumretries" : "3", "workergroup" : "myworkergroup" 사용자정의필드 파이프라인구성요소에서사용자정의또는사용자지정필드를생성하고, 표현식으로참조할수있습니다. 다음예제는이름이 mycustomfield 및 my_customfieldreference 이고, S3DataNode 객체에추가된사용자지정필드를보여줍니다. "id": "S3DataInput", "type": "S3DataNode", "schedule": "ref": "TheSchedule" "filepath": "s3://bucket_name", 61

69 API 작업 "mycustomfield": "This is a custom value in a custom field.", "my_customfieldreference": "ref":"anotherpipelinecomponent" 사용자정의필드의이름은모두소문자인 "my" 단어가앞에붙고, 그뒤에대문자또는밑줄문자가있어야합니다. 그리고사용자정의필드는앞의 mycustomfield 예제와같이값또는앞의 my_customfieldreference 예제와같은파이프라인구성요소의참조일수있습니다. Note 사용자정의필드에서 AWS Data Pipeline 은다른파이프라인구성요소의유효한참조만확인하고, 사용자가추가하는사용자지정필드값은확인하지않습니다. API 작업 Note AWS Data Pipeline 과상호작용하는프로그램을작성하지않을경우에는 AWS SDK 를설치할필요가없습니다. 콘솔또는명령줄인터페이스를사용하여파이프라인을생성하고실행할수있습니다. 자세한내용은 AWS Data Pipeline 설정 (p. 14) 단원을참조하십시오. AWS Data Pipeline 과상호작용하는애플리케이션을작성하거나사용자지정 Task Runner 를구현하는가장간편한방법은 AWS SDK 중하나를사용하는것입니다. AWS SDK 에는원하는프로그래밍환경에서웹서비스 API 를간단하게호출하는기능이있습니다. 자세한내용은 AWS SDK 설치 (p. 62) 단원을참조하십시오. AWS SDK 설치 AWS SDK 는 API 를래핑하고서명계산, 요청처리및오류처리같은여러연결세부정보를처리하는함수를제공합니다. SDK 에는 AWS 를호출하는애플리케이션작성을시작하는데도움이될샘플코드, 자습서및기타리소스도포함되어있습니다. SDK 에서래퍼함수를호출하면 AWS 애플리케이션작성프로세스가크게간소화됩니다. AWS SDK 를다운로드및사용하는방법에대한자세한내용을보려면샘플코드및라이브러리로이동합니다. AWS Data Pipeline 지원은다음플랫폼용 SDK 에서사용할수있습니다. Java 용 AWS SDK Node.js 용 AWS SDK PHP 용 AWS SDK Python 용 AWS SDK(Boto) Ruby 용 AWS SDK.NET 용 AWS SDK AWS Data Pipeline 으로 HTTP 요청 AWS Data Pipeline 의프로그래밍객체에관한전체설명은 AWS Data Pipeline API 참조를확인하십시오. AWS SDK 중하나를사용하지않는경우 POST 요청메서드를사용하여 HTTP 를통해 AWS Data Pipeline 작업을수행할수있습니다. POST 메서드를사용하는경우, 요청의헤더에작업을지정하고요청본문에 JSON 형식으로작업데이터를입력해야합니다. HTTP 헤더콘텐츠 AWS Data Pipeline 작업시 HTTP 요청의헤더에다음정보를제공해야합니다. 62

70 AWS Data Pipeline 으로 HTTP 요청 host AWS Data Pipeline 엔드포인트입니다. 엔드포인트에대한자세한내용은리전및엔드포인트를참조하십시오. x-amz-date HTTP 날짜헤더또는 AWS x-amz-date 헤더에타임스탬프를제공해야합니다. ( 일부 HTTP 클라이언트라이브러리에서는날짜헤더를설정할수없습니다.) x-amz-date 헤더가있으면요청인증시모든날짜헤더가무시됩니다. HTTP/1.1 RFC 에지정된다음 3 개형식중하나로날짜를지정해야합니다. Sun, 06 Nov :49:37 GMT (RFC 822, RFC 1123 이후 ) Sunday, 06-Nov-94 08:49:37 GMT(RFC 1036 에의해폐기된 RFC 850) Sun Nov 6 08:49: (ANSI C asctime() 형식 ) Authorization AWS 가요청의유효성및진위를확인하기위해사용하는인증파라미터의집합입니다. 이헤더를생성하는자세한방법은 Signature Version 4 Signing Process 단원을참조하십시오. x-amz-target 요청및데이터작업의대상서비스로다음과같은형식을띱니다. <<servicename>>_<<api version>>.<<operationname>> 예, DataPipeline_ ActivatePipeline content-type JSON 및버전을지정하는부분입니다. 예, Content-Type: application/x-amzjson-1.0 다음은파이프라인을활성화하기위한 HTTP 요청의헤더예제입니다. POST / HTTP/1.1 host: x-amz-date: Mon, 12 Nov :49:52 GMT x-amz-target: DataPipeline_ ActivatePipeline Authorization: AuthParams Content-Type: application/x-amz-json-1.1 Content-Length: 39 Connection: Keep-Alive HTTP 본문 HTTP 요청의본문에는 HTTP 요청의헤더에지정한작업의데이터가포함되며, JSON 데이터스키마에따라각 AWS Data Pipeline API 에데이터형식을지정해야합니다. AWS Data Pipeline JSON 데이터스키마는각작업에사용할수있는데이터및파라미터 ( 예 : 비교연산자, 열거형상수 ) 의유형을정의합니다. HTTP 요청의본문형식지정 JSON 데이터형식을사용하여데이터값과데이터구조를동시에표현합니다. 괄호표기를사용하여요소를다른요소안에중첩할수있습니다. 다음예제는객체 3 개와해당슬롯으로구성되는파이프라인정의의입력요청을보여줍니다. "pipelineid": "df sovyzexample", "pipelineobjects": [ "id": "Default", "name": "Default", "slots": [ "key": "workergroup", "stringvalue": "MyWorkerGroup" ] 63

71 AWS Data Pipeline 으로 HTTP 요청 "id": "Schedule", "name": "Schedule", "slots": [ "key": "startdatetime", "stringvalue": " T17:00:00" "key": "type", "stringvalue": "Schedule" "key": "period", "stringvalue": "1 hour" "key": "enddatetime", "stringvalue": " T18:00:00" ] "id": "SayHello", "name": "SayHello", "slots": [ "key": "type", "stringvalue": "ShellCommandActivity" "key": "command", "stringvalue": "echo hello" "key": "parent", "refvalue": "Default" "key": "schedule", "refvalue": "Schedule" ] ] HTTP 응답처리 다음은 HTTP 응답의몇가지중요헤더와애플리케이션에서이를처리하는방법입니다. HTTP/1.1 이헤더다음에는상태코드가이어집니다. 코드값 200 은작업성공을나타냅니다. 그외의값은오류를나타냅니다. x-amzn-requestid 이헤더는 AWS Data Pipeline 에요청시발생하는문제를해결해야할경우사용할수있는요청 ID 를포함합니다. 요청 ID 의예로는 K2QH8DNOU907N97FNA2GDLL8OBVV4KQNSO5AEMVJF66Q9ASUAAJG 가있습니다. x-amz-crc32 AWS Data Pipeline 은 HTTP 페이로드의 CRC32 체크섬을계산하고이체크섬을 x-amzcrc32 헤더에반환합니다. 클라이언트측에서자체 CRC32 체크섬을계산하여 x-amz-crc32 헤더와비교해보는것이좋습니다. 체크섬이일치하지않을경우데이터가전송중손상되었을수있습니다. 이경우요청을다시시도해야합니다. AWS SDK 사용자의경우, SDK 가 Amazon DynamoDB 로부터오는각회신의체크섬을계산하고불일치가감지될경우자동으로재시도하기때문에수동으로확인을수행하지않아도됩니다. 예제 AWS Data Pipeline JSON 요청및응답 다음예제는새파이프라인생성요청을보여줍니다. 그다음은새로생성된파이프라인의파이프라인식별자를포함한 AWS Data Pipeline 응답을보여줍니다. HTTP POST 요청 POST / HTTP/1.1 host: 64

72 AWS Data Pipeline 으로 HTTP 요청 x-amz-date: Mon, 12 Nov :49:52 GMT x-amz-target: DataPipeline_ CreatePipeline Authorization: AuthParams Content-Type: application/x-amz-json-1.1 Content-Length: 50 Connection: Keep-Alive "name": "MyPipeline", "uniqueid": "12345ABCDEFG" AWS Data Pipeline 응답 HTTP/ x-amzn-requestid: b16911ce e2-af6f-6bc7a6be60d9 x-amz-crc32: Content-Type: application/x-amz-json-1.0 Content-Length: 2 Date: Mon, 16 Jan :50:53 GMT "pipelineid": "df sovyzexample" 65

73 AWS Data Pipeline 에대한 IAM 정책 파이프라인및리소스에대한액세스제어 보안자격증명은 AWS 의서비스에서사용자를식별하고파이프라인과같은 AWS 리소스의무제한사용을허가하는데사용됩니다. AWS Data Pipeline 및 AWS Identity and Access Management(IAM) 의기능을사용하면 AWS Data Pipeline 및다른사용자들도사용자의보안자격증명을공유하지않고사용자의 AWS Data Pipeline 리소스에액세스할수있습니다. 조직들이파이프라인에대한액세스권한을공유하여해당조직의개인이파이프라인을공동으로개발하고유지할수있습니다. 그러나다음을수행해야합니다. 특정파이프라인에액세스할수있는 IAM 사용자제어 생산파이프라인이실수로편집되는것방지 감사자에게파이프라인에대한읽기전용액세스권한을부여하되, 변경은못하게함 AWS Data Pipeline 는 AWS Identity and Access Management(IAM) 과통합됩니다. 이서비스를통해다음작업을수행할수있습니다. AWS 계정의사용자와그룹생성 AWS 계정의사용자간에 AWS 리소스쉽게공유하기 각사용자에게고유한보안자격증명을할당합니다. 서비스및리소스에대한각사용자의액세스권한을제어합니다. AWS 계정의모든사용자에대해단일청구서받기 IAM 과 AWS Data Pipeline 을함께사용하면조직내사용자별로특정 API 작업을사용하는작업수행과특정 AWS 리소스의사용권한을제어할수있습니다. 파이프라인태그및작업자그룹에기반한 IAM 정책을사용하여다른사용자와파이프라인을공유하고다른사용자의액세스권한레벨을제어할수있습니다. 목차 AWS Data Pipeline 에대한 IAM 정책 (p. 66) AWS Data Pipeline 정책의예 (p. 69) AWS Data Pipeline 의 IAM 역할 (p. 72) AWS Data Pipeline 에대한 IAM 정책 기본적으로 IAM 사용자는 AWS 리소스를생성또는수정할수있는권한이없습니다. IAM 사용자에게리소스생성또는수정및작업수행을허용하려면 IAM 사용자에게필요한특정리소스및 API 작업을사용할권한을부여하는 IAM 정책을생성하고, 해당권한을필요로하는 IAM 사용자또는그룹에게정책을연결해야합니다. 사용자또는사용자그룹에정책을연결하면지정된리소스에대해지정된작업을수행할권한이허용되거나거부됩니다. IAM 정책에대한일반적인내용은 IAM 사용설명서가이드에서권한및정책을참조하십시오. 사용자지정 IAM 정책관리및생성에대한자세한내용은 IAM 정책관리섹션을참조하십시오. 목차 정책구문 (p. 67) 태그를이용해파이프라인에대한액세스제어 (p. 67) 작업자그룹을이용해파이프라인에대한액세스제어 (p. 68) 66

74 정책구문 정책구문 IAM 정책은하나이상의명령문으로구성된 JSON 문서입니다. 각명령문의구조는다음과같습니다. "Statement":[ "Effect":"effect", "Action":"action", "Resource":"*", "Condition": "condition": "key":"value" ] 정책명령문은다음요소로구성됩니다. Effect: effect 는 Allow 또는 Deny 일수있습니다. 기본적으로 IAM 사용자에게는리소스및 API 작업을사용할권한이없으므로모든요청이거부됩니다. 명시적허용은기본설정을무시합니다. 명시적거부는모든허용을무시합니다. Action: action 은권한을부여하거나거부할특정 API 작업입니다. AWS Data Pipeline 에대한작업의목록은 AWS Data Pipeline API Reference 에서작업단원을참조하십시오. Resource: 작업의영향을받는리소스입니다. 여기서유일한유효값은 "*" 입니다. Condition: Condition 은선택사항으로서정책이적용되는시점을제어하는데사용할수있습니다. AWS Data Pipeline 은 AWS 전체컨텍스트키 ( 사용가능한조건키참조 ) 와다음서비스별키를구현합니다. datapipeline:pipelinecreator 파이프라인을생성한사용자에대한액세스권한을부여합니다. Grant the pipeline owner full access (p. 71) 에나오는예제를참조하십시오. datapipeline:tag 파이프라인태그지정에따라액세스권한을부여합니다. 자세한내용은태그를이용해파이프라인에대한액세스제어 (p. 67) 단원을참조하십시오. datapipeline:workergroup 작업그룹의이름에따라액세스권한을부여합니다. 자세한내용은작업자그룹을이용해파이프라인에대한액세스제어 (p. 68) 단원을참조하십시오. 태그를이용해파이프라인에대한액세스제어 파이프라인의태그를참조하는 IAM 정책을생성할수있습니다. 이것을사용하여파이프라인태그지정으로다음작업을수행할수있습니다. 파이프라인에대한읽기전용액세스권한부여 파이프라인에대한읽기 / 쓰기액세스권한부여 파이프라인에대한액세스차단 예를들어, 관리자에게생산과개발의두가지파이프라인환경이있고각환경마다 IAM 그룹이있다고가정해봅니다. 생산환경의파이프라인의경우관리자가생산 IAM 그룹의사용자에게는읽기 / 쓰기액세스권한을부여하고, 개발자 IAM 그룹사용자에게는읽기전용액세스권한만부여합니다. 개발환경의파이프라인의경우관리자가생산및개발자 IAM 그룹사용자모두에게는읽기 / 쓰기액세스권한을부여합니다. 이시나리오를실현하기위해관리자는생산파이프라인에 "environment=production" 태그를지정하고, 개발자 IAM 그룹에게다음정책을첨부합니다. 첫번째명령문은모든파이프라인에대한읽기전용액세스권한 67

75 작업자그룹을이용해파이프라인에대한액세스제어 을부여합니다. 두번째명령문은 "environment=production" 태그가없는파이프라인에대한읽기 / 쓰기액세스권한을부여합니다. "Version": " ", "Statement": [ "Effect": "Allow", "Action": [ "datapipeline:describe*", "datapipeline:listpipelines", "datapipeline:getpipelinedefinition", "datapipeline:queryobjects" ], "Resource": "*" "Effect": "Allow", "Action": "datapipeline:*", "Resource": "*", "Condition": "StringNotEquals": "datapipeline:tag/environment": "production" ] 그리고관리자는생산 IAM 그룹에다음정책을첨부합니다. 이명령문은모든파이프라인에대한모든액세스권한을부여합니다. "Version": " ", "Statement": [ "Effect": "Allow", "Action": "datapipeline:*", "Resource": "*" ] 자세한예제는 Grant users read-only access based on a tag (p. 70) 및 Grant users full access based on a tag (p. 70) 를참조하십시오. 작업자그룹을이용해파이프라인에대한액세스제어 작업자그룹이름을참조하는 IAM 정책을생성할수있습니다. 예를들어, 관리자에게생산과개발의두가지파이프라인환경이있고각환경마다 IAM 그룹이있다고가정해봅니다. 관리자는각각생산, 생산전및개발자환경용으로구성된작업실행기가있는데이터베이스서버 3 개를갖고있습니다. 관리자는생산 IAM 그룹사용자가작업을생산리소스로추진하는파이프라인을생성할수있는지그리고개발 IAM 그룹사용자가작업을생산전및개발자리소스모두로추진할수있는지확인해야합니다. 이시나리오를실현하기위해관리자가생산리소스에생산자격증명을사용하여작업실행기를설치하고 workergroup 를 "prodresource" 로설정합니다. 그리고관리자가개발자격증명을사용하여개발리소스에작업실행기를설치하고 workergroup 을 "pre-production" 및 "development" 로설정합니다. 관리자가개발자 IAM 그룹에다음정책을첨부하여 "prodresource" 리소스에대한액세스를차단합니다. 첫번째명령문은모든파이프라인에대한읽기전용액세스권한을부여합니다. 두번째명령문은작업자그룹이름에접두사 "dev" 또는 "pre-prod" 가있을때파이프라인에대한읽기 / 쓰기액세스권한을부여합니다. 68

76 AWS Data Pipeline 정책의예 "Version": " ", "Statement": [ "Effect": "Allow", "Action": [ "datapipeline:describe*", "datapipeline:listpipelines", "datapipeline:getpipelinedefinition", "datapipeline:queryobjects" ], "Resource": "*" "Action": "datapipeline:*", "Effect": "Allow", "Resource": "*", "Condition": "StringLike": "datapipeline:workergroup": ["dev*","pre-prod*"] ] 그리고관리자가생산 IAM 그룹에다음정책을첨부하여 "prodresource" 리소스에대한액세스권한을부여합니다. 첫번째명령문은모든파이프라인에대한읽기전용액세스권한을부여합니다. 두번째명령문은작업자그룹이름에접두사 "prod" 가있을때읽기 / 쓰기액세스권한을부여합니다. "Version": " ", "Statement": [ "Effect": "Allow", "Action": [ "datapipeline:describe*", "datapipeline:listpipelines", "datapipeline:getpipelinedefinition", "datapipeline:queryobjects" ], "Resource": "*" "Effect": "Allow", "Action": "datapipeline:*", "Resource": "*", "Condition": "StringLike": "datapipeline:workergroup": "prodresource*" ] AWS Data Pipeline 정책의예 다음예제는사용자에게파이프라인에대한모든또는제한된액세스권한을부여하는방법을보여줍니다. 목차 예제 1: 태그에따라사용자에게읽기전용액세스권한부여 (p. 70) 69

77 예제 1: 태그에따라사용자에게읽기전용액세스권한부여 예제 2: 태그에따라사용자에게모든액세스권한부여 (p. 70) 예제 3: 파이프라인소유자에게모든액세스권한부여 (p. 71) 예제 4: 사용자에게 AWS Data Pipeline 콘솔에대한액세스권한부여 (p. 71) 예제 1: 태그에따라사용자에게읽기전용액세스권한부여 다음정책에따라사용자는읽기전용 AWS Data Pipeline API 작업을사용할수있으며, 단 "environment=production" 태그가있는파이프라인만가능합니다. ListPipelines API 작업은태그기반권한부여는지원하지않습니다. "Version": " ", "Statement": [ "Effect": "Allow", "Action": [ "datapipeline:describe*", "datapipeline:getpipelinedefinition", "datapipeline:validatepipelinedefinition", "datapipeline:queryobjects" ], "Resource": [ "*" ], "Condition": "StringEquals": "datapipeline:tag/environment": "production" ] 예제 2: 태그에따라사용자에게모든액세스권한부여 다음정책에따라사용자는 ListPipelines 를제외한모든 AWS Data Pipeline API 작업을사용할수있으며, 단 "environment=test" 태그가있는파이프라인만가능합니다. "Version": " ", "Statement": [ "Effect": "Allow", "Action": [ "datapipeline:*" ], "Resource": [ "*" ], "Condition": "StringEquals": "datapipeline:tag/environment": "test" ] 70

78 예제 3: 파이프라인소유자에게모든액세스권한부여 예제 3: 파이프라인소유자에게모든액세스권한부여 다음정책에따라사용자는모든 AWS Data Pipeline API 작업을사용할수있으며, 단자체파이프라인만가능합니다. "Version": " ", "Statement": [ "Effect": "Allow", "Action": [ "datapipeline:*" ], "Resource": [ "*" ], "Condition": "StringEquals": "datapipeline:pipelinecreator": "$aws:userid" ] 예제 4: 사용자에게 AWS Data Pipeline 콘솔에대한액세스권한부여 다음정책에따라사용자는 AWS Data Pipeline 콘솔을사용하여파이프라인을생성하고관리할수있습니다. 이정책에는 AWS Data Pipeline 가필요로하는 rolearn 에묶여있는특정리소스에대한 PassRole 권한의작업이포함되어있습니다. 자격증명기반 (IAM) PassRole 권한에대한자세한내용은블로그게시물 Granting Permission to Launch EC2 Instances with IAM Roles (PassRole Permission) 을참조하십시오. "Version": " ", "Statement": [ "Action": [ "cloudwatch:*", "datapipeline:*", "dynamodb:describetable", "elasticmapreduce:addjobflowsteps", "elasticmapreduce:listinstance*", "iam:addroletoinstanceprofile", "iam:createinstanceprofile", "iam:getinstanceprofile", "iam:getrole", "iam:getrolepolicy", "iam:listinstanceprofiles", "iam:listinstanceprofilesforrole", "iam:listroles", "rds:describedbinstances", "rds:describedbsecuritygroups", "redshift:describeclusters", "redshift:describeclustersecuritygroups", "s3:list*", 71

79 IAM 역할 "sns:listtopics" ], "Effect": "Allow", "Resource": [ "*" ] "Action": "iam:passrole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/datapipelinedefaultresourcerole", "arn:aws:iam::*:role/datapipelinedefaultrole" ] ] AWS Data Pipeline 의 IAM 역할 AWS Data Pipeline 은파이프라인에서수행할수있는작업과액세스할수있는리소스를결정할 IAM 역할이필요합니다. 그리고파이프라인에서 EC2 인스턴스나 EMR 클러스터같은리소스를생성할때 IAM 역할은애플리케이션으로실행할수있는작업과액세스할수있는리소스를결정합니다. AWS Data Pipeline 콘솔은다음역할을생성합니다. DataPipelineDefaultRole - AWS Data Pipeline 이 AWS 리소스에액세스하도록허용 DataPipelineDefaultResourceRole - 애플리케이션이 AWS 리소스에액세스할수있는권한부여 CLI 또는 API 를사용하고있는데전에 AWS Data Pipeline 콘솔을사용하여파이프라인을생성한적이없는경우에는 AWS Identity and Access Management(IAM) 을사용하여이러한역할을수동으로생성해야합니다. 자세한내용은필요한 IAM 역할생성 (CLI 또는 API 전용 ) (p. 14) 단원을참조하십시오. 또는사용자지정역할을생성할수있습니다. EmrCluster 객체의이러한역할을지정하는방법은 [Specify custom IAM roles (p. 215)] 를참조하십시오. AWS Data Pipeline 의기존 IAM 역할업데이트 관리형정책이아니라인라인정책을사용하여 DataPipelineDefaultRole 및 DataPipelineDefaultResourceRole 역할을생성한경우에는 AWS 계정소유자가이를업데이트하여관리형정책을사용할수있습니다. AWS 관리형정책을사용하도록역할을업데이트하면향후업데이트가자동으로발송됩니다. 다음절차에따라 DataPipelineDefaultRole 및 DataPipelineDefaultResourceRole 역할을업데이트합니다. 관리형정책을사용하여기존 IAM 역할을업데이트하려면 1. 에서 IAM 콘솔을엽니다. 2. 다음과같이 DataPipelineDefaultRole 역할을업데이트합니다. a. 탐색창에서 [Roles] 를클릭한다음 DataPipelineDefaultRole 역할에해당하는행을클릭합니다. b. [Permissions] 에서인라인정책의 [Remove Policy] 를클릭합니다. 확인메시지가표시되면 [Remove] 를클릭합니다. c. [Permissions] 에서 [Attach Policy] 를클릭합니다. d. [Attach Policy] 페이지에서 AWSDataPipelineRole 정책옆의상자를클릭한다음 [Attach Policy] 을클릭합니다. 72

80 AWS Data Pipeline 의기존 IAM 역할업데이트 3. 다음과같이 DataPipelineDefaultResourceRole 역할을업데이트합니다. a. 탐색창에서 [Roles] 를클릭한다음 DataPipelineDefaultResourceRole 역할에해당하는행을클릭합니다. b. [Permissions] 에서인라인정책의 [Remove Policy] 를클릭합니다. 확인메시지가표시되면 [Remove] 를클릭합니다. c. [Permissions] 에서 [Attach Policy] 를클릭합니다. d. [Attach Policy] 페이지에서 AmazonEC2RoleforDataPipelineRole 정책옆의상자를클릭한다음 [Attach Policy] 을클릭합니다. 인라인정책을유지하고싶을경우에는다음과같이하면됩니다. 인라인정책을사용하여기존 IAM 역할을업데이트하려면 1. 다음정책을사용하도록 DataPipelineDefaultRole 을업데이트합니다. "Version": " ", "Statement": [ "Effect": "Allow", "Action": [ "cloudwatch:*", "datapipeline:describeobjects", "datapipeline:evaluateexpression", "dynamodb:batchgetitem", "dynamodb:describetable", "dynamodb:getitem", "dynamodb:query", "dynamodb:scan", "dynamodb:updatetable", "ec2:authorizesecuritygroupingress", "ec2:cancelspotinstancerequests", "ec2:createsecuritygroup", "ec2:createtags", "ec2:deletetags", "ec2:describe*", "ec2:modifyimageattribute", "ec2:modifyinstanceattribute", "ec2:requestspotinstances", "ec2:runinstances", "ec2:startinstances", "ec2:stopinstances", "ec2:terminateinstances", "ec2:authorizesecuritygroupegress", "ec2:deletesecuritygroup", "ec2:revokesecuritygroupegress", "ec2:describenetworkinterfaces", "ec2:createnetworkinterface", "ec2:deletenetworkinterface", "ec2:detachnetworkinterface", "elasticmapreduce:*", "iam:getinstanceprofile", "iam:getrole", "iam:getrolepolicy", "iam:listattachedrolepolicies", "iam:listrolepolicies", "iam:listinstanceprofiles", "iam:passrole", "rds:describedbinstances", "rds:describedbsecuritygroups", "redshift:describeclusters", "redshift:describeclustersecuritygroups", 73

81 AWS Data Pipeline 의기존 IAM 역할업데이트 "s3:createbucket", "s3:deleteobject", "s3:get*", "s3:list*", "s3:put*", "sdb:batchputattributes", "sdb:select*", "sns:gettopicattributes", "sns:listtopics", "sns:publish", "sns:subscribe", "sns:unsubscribe", "sqs:createqueue", "sqs:delete*", "sqs:getqueue*", "sqs:purgequeue", "sqs:receivemessage" ], "Resource": ["*"] "Effect": "Allow", "Action": "iam:createservicelinkedrole", "Resource": "*", "Condition": "StringLike": "iam:awsservicename": ["elasticmapreduce.amazonaws.com","spot.amazonaws.com"] ] 2. 다음신뢰할수있는엔터티목록을사용하도록 DataPipelineDefaultRole 을업데이트합니다. "Version": " ", "Statement": [ "Effect": "Allow", "Principal": "Service": [ "elasticmapreduce.amazonaws.com", "datapipeline.amazonaws.com" ] "Action": "sts:assumerole" ] 3. 다음정책을사용하도록 DataPipelineDefaultResourceRole 을업데이트합니다. "Version": " ", "Statement": [ "Effect": "Allow", "Action": [ "cloudwatch:*", "datapipeline:*", "dynamodb:*", "ec2:describe*", "elasticmapreduce:addjobflowsteps", "elasticmapreduce:describe*", 74

82 기존파이프라인의역할변경 "elasticmapreduce:listinstance*", "rds:describe*", "redshift:describeclusters", "redshift:describeclustersecuritygroups", "s3:*", "sdb:*", "sns:*", "sqs:*" ], "Resource": ["*"] ] 4. 다음신뢰할수있는엔터티목록을사용하도록 DataPipelineDefaultResourceRole 을업데이트합니다. "Version": " ", "Statement": [ "Effect": "Allow", "Principal": "Service": [ "ec2.amazonaws.com" ] "Action": "sts:assumerole" ] 기존파이프라인의역할변경 사용자지정역할이있는데, AWS Data Pipeline 콘솔에서파이프라인을편집하여기존파이프라인의역할을변경하고싶은경우 1. 에서 AWS Data Pipeline 콘솔을엽니다. 2. 파이프라인 ID 를클릭하여편집하려는파이프라인을선택합니다. 3. [Edit Pipeline] 을선택합니다. 4. [Others] 드롭다운을선택하고해당하는 [Role] 및 [Resource Role] 을입력합니다. 75

83 하둡스트리밍과함께 Amazon EMR 을사용하여데이터처리 자습서 다음자습서는 AWS Data Pipeline으로파이프라인을생성하고사용하는과정을단계별로설명합니다. 자습서 하둡스트리밍과함께 Amazon EMR을사용하여데이터처리 (p. 76) AWS Data Pipeline을사용하여 DynamoDB 데이터가져오기및내보내기 (p. 83) AWS Data Pipeline을사용하여 Amazon S3 버킷사이에서 CSV 데이터복사 (p. 92) AWS Data Pipeline을사용하여 Amazon S3로 MySQL 데이터내보내기 (p. 102) AWS Data Pipeline을사용하여 Amazon Redshift로데이터복사 (p. 112) 하둡스트리밍과함께 Amazon EMR 을사용하여데이터처리 AWS Data Pipeline 을사용하여 Amazon EMR 클러스터를관리할수있습니다. 클러스터시작전에충족해야하는사전조건 ( 예 : 오늘데이터를 Amazon S3 로업로드 ), 클러스터반복실행일정및사용할클러스터구성을 AWS Data Pipeline 을사용하여지정할수있습니다. 다음자습서는단순한클러스터를시작하는방법을설명합니다. 이자습서에서단순한 Amazon EMR 클러스터용파이프라인을생성하여 Amazon EMR 이제공한기존하둡스트리밍작업을실행하고, 작업이성공적으로완료된후에 Amazon SNS 알림을전송합니다. AWS Data Pipeline 이제공한 Amazon EMR 클러스터리소스를이작업에사용합니다. 샘플애플리케이션은이름이 WordCount 이며, Amazon EMR 콘솔에서수동으로실행할수도있습니다. 사용자대신 AWS Data Pipeline 이생성한클러스터는 Amazon EMR 콘솔에표시되며, 요금은사용자의 AWS 계정으로청구됩니다. 파이프라인객체 파이프라인은다음객체를사용합니다. EmrActivity (p. 159) 파이프라인에서수행할작업을정의합니다 (Amazon EMR 이제공한기존하둡스트리밍작업실행 ). EmrCluster (p. 212) 이작업을수행할때 AWS Data Pipeline 이사용하는리소스입니다. 클러스터는 Amazon EC2 인스턴스의집합입니다. AWS Data Pipeline 은클러스터를시작한후작업이끝나면종료합니다. 일정 (p. 260) 이활동의시작날짜, 시간및기간입니다. 종료날짜와시간을지정할수도있습니다. SnsAlarm (p. 258) 작업이성공적으로끝나면사용자가지정한주제로 Amazon SNS 알림을전송합니다. 목차 76

84 시작하기전 시작하기전 (p. 77) AWS Data Pipeline 콘솔을사용하여클러스터시작 (p. 77) 명령줄을사용하여클러스터시작 (p. 80) 시작하기전 다음단계가완료되어야합니다. AWS Data Pipeline 설정 (p. 14) 의작업을완료합니다. ( 선택사항 ) 클러스터의 VPC 와 VPC 의보안그룹을설정합니다. 자세한정보는 VPC 에서파이프라인을위한리소스시작 (p. 54) 단원을참조하십시오. 이메일알림을전송할주제를생성하고주제의 Amazon Resource Name(ARN) 을메모합니다. 자세한내용은 Amazon Simple Notification Service 시작안내서의주제생성단원을참조하십시오. AWS Data Pipeline 콘솔을사용하여클러스터시작 파이프라인을생성하여웹로그를분석하거나과학데이터를분석할클러스터를시작할수있습니다. 작업 파이프라인생성 (p. 77) 파이프라인저장및유효성검사 (p. 79) 파이프라인활성화 (p. 79) 파이프라인실행모니터링 (p. 80) ( 선택사항 ) 파이프라인삭제 (p. 80) 파이프라인생성 먼저파이프라인을생성합니다. 파이프라인을생성하려면 1. 에서 AWS Data Pipeline 콘솔을엽니다. 2. 처음표시되는화면은현재리전에서파이프라인을생성했는지여부에따라달라집니다. a. 이리전에서파이프라인을생성하지않았다면콘솔에소개화면이표시됩니다. [Get started now] 를선택합니다. b. 이리전에서이미파이프라인을생성했다면해당리전의파이프라인이나열된페이지가콘솔에표시됩니다. [Create new pipeline] 을선택합니다. 3. [Name] 에파이프라인의이름을입력합니다. 4. ( 선택적 ) [Description] 에파이프라인의설명을입력합니다. 5. [Source] 는 [Build using Architect] 를선택합니다. 6. [Schedule] 에서 [on pipeline activation] 을선택합니다. 7. [Pipeline Configuration] 에서로깅을활성화상태로두십시오. [S3 location for logs] 에서폴더아이콘을선택하고버킷이나폴더중하나를선택한다음 [Select] 를선택합니다. 원하는경우, 로깅을대신비활성화할수있습니다. 8. [Security/Access] 에서 [IAM roles] 를 [Default] 로설정된상태로둡니다. 9. [Edit in Architect] 를클릭합니다. 77

85 콘솔사용 그다음에파이프라인정의에활동을추가합니다. 이것은 AWS Data Pipeline 이이활동을수행할때사용해야하는나머지객체도정의합니다. 활동을구성하려면 1. [Add activity] 를클릭합니다. 2. [Activities] 창에서 a. [Name] 필드에활동이름을입력합니다 ( 예 : MyEMRActivity). b. [Type] 에서 [EmrActivity] 를선택합니다. c. [Step] 에다음을입력합니다. /home/hadoop/contrib/streaming/hadoop-streaming.jar,-input,s3n://elasticmapreduce/ samples/wordcount/input,-output,s3://example-bucket/wordcount/output/ #@scheduledstarttime-mapper,s3n://elasticmapreduce/samples/wordcount/ wordsplitter.py,-reducer,aggregate d. [Add an optional field] 에서 [Runs On] 을선택합니다. 값을 [Create new: EmrCluster] 로설정합니다. e. [Add an optional field] 에서 [On Success] 를선택합니다. 값을 [Create new: Action] 으로설정합니다. 그다음에 AWS Data Pipeline 이 Amazon EMR 작업을수행할때사용하는리소스를구성합니다. 리소스를구성하려면 1. 오른쪽창에서 [Resources] 를선택합니다. 2. 이름필드에 Amazon EMR 클러스터이름을입력합니다 ( 예 : MyEMRCluster). 3. [Type] 은 EmrCluster 로설정된상태로둡니다. 4. [EC2-VPC] ( 선택사항 ) [Add an optional field] 에서 [Subnet Id] 를선택합니다. 값을서브넷 ID 로설정합니다. 5. ( 선택사항 ) [Add an optional field] 에서 [Enable Debugging] 을선택합니다. 값을 true( 으 ) 로설정합니다. Note 이옵션은로그데이터스토리지때문에추가비용이발생할수있습니다. 이옵션은선택적으로사용하십시오 ( 예 : 원형생성및문제해결 ). 6. ( 선택사항 ) 오른쪽창에서 [Others] 를선택합니다. Default 의 [Add an optional field] 에서 [Pipeline Log Uri] 를선택합니다. 값을 Amazon EMR 로그의 Amazon S3 버킷으로설정합니다. 예 : s3://examplesbucket/emrlogs. 78

86 콘솔사용 Note 이옵션은로그파일스토리지때문에추가비용이발생할수있습니다. 이옵션은선택적으로사용하십시오 ( 예 : 원형생성및문제해결 ). 이제 AWS Data Pipeline 이 Amazon EMR 작업이성공적으로완료된후에실행하는 Amazon SNS 알림작업을구성합니다. 알림작업을구성하려면 1. 오른쪽창에서 [Others] 를클릭합니다. 2. DefaultAction1 에서다음을수행합니다. a. 알림이름을입력합니다 ( 예 : MyEMRJobNotice). b. [Type] 에서 SnsAlarm 을선택합니다. c. [Subject] 필드에알림제목줄을입력합니다. d. [Topic Arn] 필드에서주제의 ARN 을입력합니다 (Create a Topic 참조 ). e. [Message] 에메시지내용을입력합니다. f. [Role] 은기본값을그대로사용합니다. 파이프라인저장및유효성검사 생성프로세스도중언제든지파이프라인정의를저장할수있습니다. 파이프라인정의를저장하는즉시 AWS Data Pipeline 는파이프라인정의에서구문오류와누락된값을찾습니다. 파이프라인이불완전하거나잘못된경우, AWS Data Pipeline 가유효성검사오류와경고를생성합니다. 경고메시지는정보제공에그치지만오류메시지는파이프라인활성화전에모두수정해야합니다. 파이프라인을저장하고유효성을검사하려면 1. [Save pipeline] 을선택합니다. 2. AWS Data Pipeline 가파이프라인정의의유효성을검사하고성공또는오류또는경고메시지를반환합니다. 오류메시지가반환되면 [Close] 를선택한다음오른쪽창에서 [Errors/Warnings] 를선택합니다. 3. [Errors/Warnings] 창에는유효성검사에실패한객체가나열됩니다. 객체이름옆의더하기 (+) 기호를선택하고빨간색오류메시지를찾습니다. 4. 오류메시지가보이면오류가표시되는특정객체창으로이동해오류를수정합니다. 예를들어 [DataNodes] 객체에서오류메시지가표시되는경우, [DataNodes] 창으로가서오류를수정하십시오. 5. [Errors/Warnings] 창에나열된오류를수정한후 [Save Pipeline] 을선택합니다. 6. 파이프라인유효성검사에성공할때까지이프로세스를반복합니다. 파이프라인활성화 생성및처리실행을시작하려면파이프라인을활성화합니다. 파이프라인은파이프라인정의의일정과기간에따라시작됩니다. Important 활성화에성공하면파이프라인이실행되며사용요금이발생할수있습니다. 자세한내용은 AWS Data Pipeline 요금을참조하십시오. AWS Data Pipeline 사용요금발생을중지하려면파이프라인을삭제하십시오. 파이프라인을활성화하려면 1. [Activate] 를선택합니다. 79

87 CLI 사용 2. 확인대화상자에서 [Close] 를선택합니다. 파이프라인실행모니터링 파이프라인을활성화하고나면파이프라인진행률을모니터링할수있는 [Execution details] 페이지로이동하게됩니다. 파이프라인실행진행률을모니터링하려면 1. [Update ] 를선택하거나 F5 를눌러표시된상태를업데이트합니다. Tip 열거된실행이없는경우, [Start (in UTC)] 와 [End (in UTC)] 에파이프라인의예약된시작및종료가포함되는지확인한다음 [Update] 를선택합니다. 2. 파이프라인에있는모든객체의상태가 FINISHED 가되면파이프라인이예약된작업을성공적으로완료한것입니다. SNS 알림을만든경우, 이작업의성공적완료에관한이메일이수신되어야합니다. 3. 파이프라인이성공적으로완료되지않으면파이프라인설정에서문제를확인하십시오. 실패하거나완료되지않은파이프라인인스턴스실행문제해결에대한자세한내용은공통문제해결 (p. 282) 단원을참조하십시오. ( 선택사항 ) 파이프라인삭제 요금이발생하는것을중지하려면파이프라인을삭제하십시오. 파이프라인을삭제하면파이프라인정의및연결된모든객체가삭제됩니다. 파이프라인을삭제하려면 1. [List Pipelines] 페이지에서파이프라인을선택합니다. 2. [Actions] 를클릭한다음 [Delete] 를선택합니다. 3. 확인메시지가나타나면 Delete 를선택합니다. 명령줄을사용하여클러스터시작 Amazon EMR 클러스터를정기적으로실행하여웹로그를분석하거나과학데이터를분석할경우에는 AWS Data Pipeline 을사용하여 Amazon EMR 클러스터를관리할수있습니다. 클러스터시작전에충족해야하는사전조건 ( 예 : 오늘데이터를 Amazon S3 로업로드 ) 을 AWS Data Pipeline 을사용하여지정할수있습니다. 이자습서는단순한 Amazon EMR 기반파이프라인의모델이될수있는클러스터또는좀더관련된파이프라인의일부로클러스터를시작하는방법을설명합니다. 사전요구사항 CLI 를사용하려면다음단계를완료해야합니다. 1. 명령줄인터페이스 (CLI) 를설치하고구성합니다. 자세한내용은 AWS Data Pipeline 에액세스 (p. 2) 단원을참조하십시오. 2. [DataPipelineDefaultRole] 및 [DataPipelineDefaultResourceRole] 라는이름의 IAM 역할이존재하는지확인하십시오. AWS Data Pipeline 콘솔은자동으로이러한역할을생성합니다. AWS Data Pipeline 콘솔을한번이상사용하지않았다면수동으로이러한역할을생성해야합니다. 자세한내용은 AWS Data Pipeline 의 IAM 역할 (p. 72) 단원을참조하십시오. 작업 파이프라인정의파일생성 (p. 81) 80

88 CLI 사용 파이프라인정의업로드및활성화 (p. 82) 파이프라인실행모니터링 (p. 82) 파이프라인정의파일생성 다음코드는 Amazon EMR 이제공한기존하둡스트리밍작업을실행하는단순한 Amazon EMR 클러스터의파이프라인정의파일입니다. 이샘플애플리케이션은이름이 WordCount 이며, Amazon EMR 콘솔을사용하여실행할수도있습니다. 이코드를텍스트파일로복사하고 MyEmrPipelineDefinition.json 으로저장합니다. Amazon S3 버킷위치를사용자가소유한 Amazon S3 버킷이름으로바꿔야합니다. 시작및종료날짜도바꿔야합니다. 클러스터를바로시작하려면 startdatetime 을하루전날짜로설정하고 enddatetime 을하루뒤날짜로설정합니다. 그러면작업백로그로인식된것을처리하기위해 AWS Data Pipeline 이 " 기한초과 " 클러스터를바로시작합니다. 이채우기는 AWS Data Pipeline 이첫번째클러스터를실행할때까지한시간을기다릴필요는없다는의미입니다. "objects": [ "id": "Hourly", "type": "Schedule", "startdatetime": " T07:48:00", "enddatetime": " T07:48:00", "period": "1 hours" "id": "MyCluster", "type": "EmrCluster", "masterinstancetype": "m1.small", "schedule": "ref": "Hourly" "id": "MyEmrActivity", "type": "EmrActivity", "schedule": "ref": "Hourly" "runson": "ref": "MyCluster" "step": "/home/hadoop/contrib/streaming/hadoop-streaming.jar,-input,s3n:// elasticmapreduce/samples/wordcount/input,-output,s3://myawsbucket/wordcount/output/ #@scheduledstarttime-mapper,s3n://elasticmapreduce/samples/wordcount/wordsplitter.py,- reducer,aggregate" ] 이파이프라인은다음 3 개의객체가있습니다. Hourly: 작업일정을나타냅니다. 활동에서필드하나로일정을설정할수있습니다. 그러면활동이해당일정 ( 이경우는매시간 ) 에따라실행됩니다. MyCluster: 클러스터를실행할때사용한 Amazon EC2 인스턴스의세트를나타냅니다. 클러스터로실행할 EC2 인스턴스의크기와수를지정할수있습니다. 인스턴스수를지정하지않으면클러스터가마스터노드와작업노드 2 개로시작됩니다. 클러스터를시작할서브넷을지정할수있습니다. Amazon EMR 이제공하는 AMI 에추가소프트웨어를로드할부트스트랩작업같이클러스터에추가구성을추가할수있습니다. 81

89 CLI 사용 MyEmrActivity. 클러스터와함께처리할컴퓨팅을나타냅니다. Amazon EMR 은스트리밍, Cascading, Scripted Hive 등여러유형의클러스터를지원합니다. runson 필드는클러스터의기본사양으로사용하는 MyCluster 를다시참조합니다. 파이프라인정의업로드및활성화 파이프라인정의를업로드하고파이프라인을활성화해야합니다. 다음예제명령에서 pipeline_name 을파이프라인의레이블로대체하고, pipeline_file 을파이프라인정의.json 파일의정규화된경로로대체하십시오. AWS CLI 파이프라인정의를업로드하고파이프라인을활성화하려면다음 create-pipeline 명령을사용하십시오. 대부분의 CLI 명령에서이값을사용하므로파이프라인 ID 는를기록하십시오. aws datapipeline create-pipeline --name pipeline_name --unique-id token "pipelineid": "df sovyzexample" 파이프라인정의를업로드하려면다음 put-pipeline-definition 명령을사용하십시오. aws datapipeline put-pipeline-definition --pipeline-id df sovyzexample --pipelinedefinition file://myemrpipelinedefinition.json 파이프라인유효성검사에성공하면 validationerrors 필드가비게됩니다. 경고가있으면검토해야합니다. 파이프라인을활성화하려면다음 activate-pipeline 명령을사용하십시오. aws datapipeline activate-pipeline --pipeline-id df sovyzexample 다음 list-pipelines 명령을사용하면파이프라인목록에파이프라인이표시되는지확인할수있습니다. aws datapipeline list-pipelines 파이프라인실행모니터링 AWS Data Pipeline 이시작한클러스터를 Amazon EMR 콘솔을사용하여볼수있으며, Amazon S3 콘솔을사용하여출력폴더를볼수있습니다. AWS Data Pipeline 이시작한클러스터의진행상황을확인하려면 1. Amazon EMR 콘솔을엽니다. 2. AWS Data Pipeline 이생성한클러스터의이름은다음의형식을갖습니다. 82

90 DynamoDB 데이터가져오기및내보내기 3. 실행중하나가완료되면 Amazon S3 콘솔을열고타임스탬프가지정된출력폴더가존재하는지그리고그안에클러스터의예상결과가포함되는지확인합니다. AWS Data Pipeline 을사용하여 DynamoDB 데이터가져오기및내보내기 이자습서에서는 AWS Data Pipeline 을사용하여스키마없는데이터를 Amazon DynamoDB 안팎으로옮기는방법을설명합니다. 1 부를완료한후에 2 부로넘어가십시오. 자습서 1 부 : DynamoDB 로데이터가져오기 (p. 83) 2 부 : DynamoDB 에서데이터내보내기 (p. 88) 1 부 : DynamoDB 로데이터가져오기 이자습서 1 부에서는 Amazon S3 의탭으로구분된파일에서데이터를검색하여 DynamoDB 테이블을채우도록 AWS Data Pipeline 파이프라인을정의하는방법, 변환단계를정의하는방법, 작업을실행할 Amazon EMR 클러스터를생성하는방법을설명합니다. 작업 시작하기전 (p. 84) 83

91 1 부 : DynamoDB 로데이터가져오기 1단계 : 파이프라인생성 (p. 85) 2단계 : 파이프라인저장및유효성검사 (p. 86) 3단계 : 파이프라인활성화 (p. 86) 4단계 : 파이프라인실행모니터링 (p. 87) 5단계 : 데이터가져오기확인 (p. 87) 6단계 : 파이프라인삭제 ( 선택사항 ) (p. 87) 시작하기전 다음단계를완료해야합니다. AWS Data Pipeline 설정 (p. 14) 의작업을완료합니다. ( 선택사항 ) 클러스터의 VPC 와 VPC 의보안그룹을설정합니다. 자세한정보는 VPC 에서파이프라인을위한리소스시작 (p. 54) 단원을참조하십시오. 주제를생성하고, AWS Data Pipeline 에서파이프라인구성요소상태에관한알림을수신하도록신청합니다. 자세한내용은 Amazon Simple Notification Service 시작안내서의주제생성을참조하십시오. 데이터를저장할 DynamoDB 테이블을생성합니다. 자세한내용은 DynamoDB 테이블생성 (p. 84) 단원을참조하십시오. 다음에유의하십시오. 가져오기는 DynamoDB 테이블의데이터를덮어쓸수있습니다. Amazon S3 에서데이터를가져오면데이터가 DynamoDB 테이블의항목을덮어쓸수있습니다. 올바른데이터를올바른테이블로가져와야합니다. 같은데이터를여러번가져오는반복적가져오기파이프라인을실수로설정하지않도록주의하십시오. 내보내기는 Amazon S3 버킷의데이터를덮어쓸수있습니다. Amazon S3 로데이터를내보낼때같은버킷경로에쓰면이전내보내기를덮어쓰게될수있습니다. [Export DynamoDB to S3] 템플릿의기본동작은 Amazon S3 버킷경로에작업의예약된시간을추가하므로이문제를피하는데도움이됩니다. 가져오기및내보내기작업은 DynamoDB 테이블의프로비저닝처리용량일부를소비합니다. 이번단원에서는 Amazon EMR 을사용하여가져오기또는내보내기작업을예약하는방법을설명합니다. Amazon EMR 클러스터는내보내기도중읽기용량일부를, 가져오기도중에는쓰기용량을소비합니다. MyImportJob.myDynamoDBWriteThroughputRatio 및 MyExportJob.myDynamoDBReadThroughputRatio 설정을통해가져오기 / 내보내기작업이소비하는프로비저닝용량의비율을제어할수있습니다. 이러한설정은가져오기 / 내보내기프로세스가시작될때소비하는용량을결정하는것이며, 프로세스도중테이블의프로비저닝용량을변경하는경우에는실시간으로조정되지않는다는점에유의하십시오. 비용에유의하십시오. AWS Data Pipeline 가가져오기 / 내보내기프로세스를대신관리하지만사용중인기본 AWS 서비스에대해서는요금을지불해야합니다. 가져오기및내보내기파이프라인은 Amazon EMR 클러스터를생성해데이터를읽고쓰며, 클러스터의각노드에대해서는인스턴스당비용이청구됩니다. Amazon EMR 요금에대한자세한내용을읽어볼수있습니다. 기본클러스터구성은 m1.small 인스턴스마스터노드 1 개와 m1.xlarge 인스턴스작업노드 1 개이지만파이프라인정의에서이구성을변경할수있습니다. AWS Data Pipeline 에도요금이부과됩니다. 자세한내용은 AWS Data Pipeline 요금및 Amazon S3 요금을참조하십시오. DynamoDB 테이블생성 이자습서에필요한 DynamoDB 테이블을생성할수있습니다. DynamoDB 테이블이이미있는경우에는이테이블생성절차를생략할수있습니다. 자세한내용은 Amazon DynamoDB 개발자안내서의 DynamoDB 의테이블작업을참조하십시오. 84

92 1 부 : DynamoDB 로데이터가져오기 DynamoDB 테이블을만들려면 1. 에서 DynamoDB 콘솔을엽니다. 2. [Create Table] 을클릭합니다. 3. [Table Name] 에테이블의고유이름을입력합니다. 4. [Primary Key : Partition Key] 필드에숫자 Id 를입력합니다. 5. 선택사항인 [Add Indexes] 페이지를건너뛰려면 [Continue] 를클릭합니다. 6. [Provisioned Throughput Capacity] 페이지에서다음을실행합니다. 샘플데이터가작기때문에이러한값이작습니다. 보유한데이터에필요한크기를계산하는방법은 Amazon DynamoDB 개발자안내서의 Amazon DynamoDB 에서프로비저닝된처리량을참조하십시오. a. [Read Capacity Units] 에 5 를입력합니다. b. [Write Capacity Units] 에 5 를입력합니다. c. Continue 를클릭합니다. 7. [Throughput Alarms] 페이지에서 [Send notification to] 에이메일주소를입력한다음 [Continue] 를클릭합니다. 8. [Review] 페이지에서 [Create ] 을클릭합니다. 1 단계 : 파이프라인생성 먼저파이프라인을생성합니다. 파이프라인을생성하려면 1. 에서 AWS Data Pipeline 콘솔을엽니다. 2. 처음표시되는화면은현재리전에서파이프라인을생성했는지여부에따라달라집니다. a. 이리전에서파이프라인을생성하지않았다면콘솔에소개화면이표시됩니다. [Get started now] 를선택합니다. b. 이리전에서이미파이프라인을생성했다면해당리전의파이프라인이나열된페이지가콘솔에표시됩니다. [Create new pipeline] 을선택합니다. 3. [Name] 에파이프라인의이름을입력합니다. 4. ( 선택적 ) [Description] 에파이프라인의설명을입력합니다. 5. 소스의경우는 [Build using a template] 을선택한후다음템플릿 [Import DynamoDB backup data from S3] 을선택합니다. 6. [Parameters] 에서 [Input S3 folder] 를샘플데이터소스, ProductCatalog.txt 를포함하는디렉터리인 s3://elasticmapreduce/samples/store/productcatalog 로설정하고, [DynamoDB table name] 을테이블이름으로설정합니다. 7. [Schedule] 에서 [on pipeline activation] 을선택합니다. 8. [Pipeline Configuration] 에서로깅을활성화상태로두십시오. [S3 location for logs] 에서폴더아이콘을선택하고버킷이나폴더중하나를선택한다음 [Select] 를선택합니다. 원하는경우, 로깅을대신비활성화할수있습니다. 9. [Security/Access] 에서 [IAM roles] 를 [Default] 로설정된상태로둡니다. 10. [Edit in Architect] 를클릭합니다. 이제 AWS Data Pipeline 이작업결과에따라실행하는 Amazon SNS 알림작업을구성합니다. 성공및실패작업을구성하려면 1. 오른쪽창에서 [Activities] 를클릭합니다. 85

93 1 부 : DynamoDB 로데이터가져오기 2. [Add an optional field] 에서 [On Success] 를선택합니다. 3. 새로추가된 [On Success] 에서 [Create new: Action] 을선택합니다. 4. [Add an optional field] 에서 [On Fail] 을선택합니다. 5. 새로추가된 [On Fail] 에서 [Create new: Action] 을선택합니다. 6. 오른쪽창에서 [Others] 를클릭합니다. 7. DefaultAction1에서다음을수행합니다. a. 이름을 SuccessSnsAlarm으로변경합니다. b. [Type] 에서 SnsAlarm을선택합니다. c. 주제 ARN에서생성한주제의 ARN을입력합니다 (Amazon SNS용 ARN 리소스이름참조 ). d. 주제와메시지를입력합니다. 8. DefaultAction2에서다음을수행합니다. a. 이름을 FailureSnsAlarm으로변경합니다. b. [Type] 에서 SnsAlarm을선택합니다. c. 주제 ARN에서생성한주제의 ARN을입력합니다 (Amazon SNS용 ARN 리소스이름참조 ). d. 주제와메시지를입력합니다. 2 단계 : 파이프라인저장및유효성검사 생성프로세스도중언제든지파이프라인정의를저장할수있습니다. 파이프라인정의를저장하는즉시 AWS Data Pipeline 는파이프라인정의에서구문오류와누락된값을찾습니다. 파이프라인이불완전하거나잘못된경우, AWS Data Pipeline 가유효성검사오류와경고를생성합니다. 경고메시지는정보제공에그치지만오류메시지는파이프라인활성화전에모두수정해야합니다. 파이프라인을저장하고유효성을검사하려면 1. [Save pipeline] 을선택합니다. 2. AWS Data Pipeline 가파이프라인정의의유효성을검사하고성공또는오류또는경고메시지를반환합니다. 오류메시지가반환되면 [Close] 를선택한다음오른쪽창에서 [Errors/Warnings] 를선택합니다. 3. [Errors/Warnings] 창에는유효성검사에실패한객체가나열됩니다. 객체이름옆의더하기 (+) 기호를선택하고빨간색오류메시지를찾습니다. 4. 오류메시지가보이면오류가표시되는특정객체창으로이동해오류를수정합니다. 예를들어 [DataNodes] 객체에서오류메시지가표시되는경우, [DataNodes] 창으로가서오류를수정하십시오. 5. [Errors/Warnings] 창에나열된오류를수정한후 [Save Pipeline] 을선택합니다. 6. 파이프라인유효성검사에성공할때까지이프로세스를반복합니다. 3 단계 : 파이프라인활성화 생성및처리실행을시작하려면파이프라인을활성화합니다. 파이프라인은파이프라인정의의일정과기간에따라시작됩니다. Important 활성화에성공하면파이프라인이실행되며사용요금이발생할수있습니다. 자세한내용은 AWS Data Pipeline 요금을참조하십시오. AWS Data Pipeline 사용요금발생을중지하려면파이프라인을삭제하십시오. 파이프라인을활성화하려면 1. [Activate] 를선택합니다. 2. 확인대화상자에서 [Close] 를선택합니다. 86

94 1 부 : DynamoDB 로데이터가져오기 4 단계 : 파이프라인실행모니터링 파이프라인을활성화하고나면파이프라인진행률을모니터링할수있는 [Execution details] 페이지로이동하게됩니다. 파이프라인실행진행률을모니터링하려면 1. [Update ] 를선택하거나 F5 를눌러표시된상태를업데이트합니다. Tip 열거된실행이없는경우, [Start (in UTC)] 와 [End (in UTC)] 에파이프라인의예약된시작및종료가포함되는지확인한다음 [Update] 를선택합니다. 2. 파이프라인에있는모든객체의상태가 FINISHED 가되면파이프라인이예약된작업을성공적으로완료한것입니다. SNS 알림을만든경우, 이작업의성공적완료에관한이메일이수신되어야합니다. 3. 파이프라인이성공적으로완료되지않으면파이프라인설정에서문제를확인하십시오. 실패하거나완료되지않은파이프라인인스턴스실행문제해결에대한자세한내용은공통문제해결 (p. 282) 단원을참조하십시오. 5 단계 : 데이터가져오기확인 그다음에는 DynamoDB 콘솔을사용하여테이블의데이터를보고데이터가져오기가성공적으로이루어졌는지확인합니다. DynamoDB 테이블을확인하려면 1. DynamoDB 콘솔을엽니다. 2. 테이블화면에서 DynamoDB 테이블을클릭하고 Explore Table( 테이블탐색 ) 을클릭합니다. 3. [Browse Items] 탭에다음화면에표시된것처럼데이터입력파일에해당하는열이표시되어야합니다 ( 예 : ID, Price, ProductCategory). 이것은파일에서 DynamoDB 테이블로가져오기작업이성공적으로이루어졌음을나타냅니다. 6 단계 : 파이프라인삭제 ( 선택사항 ) 요금이발생하는것을중지하려면파이프라인을삭제하십시오. 파이프라인을삭제하면파이프라인정의및연결된모든객체가삭제됩니다. 87

95 2 부 : DynamoDB 에서데이터내보내기 파이프라인을삭제하려면 1. [List Pipelines] 페이지에서파이프라인을선택합니다. 2. [Actions] 를클릭한다음 [Delete] 를선택합니다. 3. 확인메시지가나타나면 Delete 를선택합니다. 2 부 : DynamoDB 에서데이터내보내기 두부분으로구성된자습서의 2 부에서는 AWS Data Pipeline 을사용하여스키마없는데이터를 DynamoDB 안팎으로옮기는평범한시나리오를통해여러가지 AWS 기능을모아확장가능한방식으로실제문제를해결하는방법을설명합니다. 작업 시작하기전 (p. 88) 1 단계 : 파이프라인생성 (p. 89) 2 단계 : 파이프라인저장및유효성검사 (p. 91) 3 단계 : 파이프라인활성화 (p. 91) 4 단계 : 파이프라인실행모니터링 (p. 91) 5 단계 : 데이터내보내기파일확인 (p. 92) 6 단계 : 파이프라인삭제 ( 선택사항 ) (p. 92) 시작하기전 이자습서 1 부를완료해야만이부분에나오는단계를실행할때필요한데이터가 DynamoDB 테이블에포함됩니다. 자세한내용은 1 부 : DynamoDB 로데이터가져오기 (p. 83) 단원을참조하십시오. 그리고다음단계를완료해야합니다. AWS Data Pipeline 설정 (p. 14) 의작업을완료합니다. 주제를생성하고, AWS Data Pipeline 에서파이프라인구성요소상태에관한알림을수신하도록신청합니다. 자세한내용은 Amazon SNS 시작안내서의주제생성을참조하십시오. 이자습서 1 부에서생성하여데이터가채워진 DynamoDB 테이블이있어야합니다. 이테이블은자습서 2 부의데이터소스가됩니다. 자세한내용은 1 부 : DynamoDB 로데이터가져오기 (p. 83) 단원을참조하십시오. 다음에유의하십시오. 가져오기는 DynamoDB 테이블의데이터를덮어쓸수있습니다. Amazon S3 에서데이터를가져오면데이터가 DynamoDB 테이블의항목을덮어쓸수있습니다. 올바른데이터를올바른테이블로가져와야합니다. 같은데이터를여러번가져오는반복적가져오기파이프라인을실수로설정하지않도록주의하십시오. 내보내기는 Amazon S3 버킷의데이터를덮어쓸수있습니다. Amazon S3 로데이터를내보낼때같은버킷경로에쓰면이전내보내기를덮어쓰게될수있습니다. [Export DynamoDB to S3] 템플릿의기본동작은 Amazon S3 버킷경로에작업의예약된시간을추가하므로이문제를피하는데도움이됩니다. 가져오기및내보내기작업은 DynamoDB 테이블의프로비저닝처리용량일부를소비합니다. 이번단원에서는 Amazon EMR 을사용하여가져오기또는내보내기작업을예약하는방법을설명합니다. Amazon EMR 클러스터는내보내기도중읽기용량일부를, 가져오기도중에는쓰기용량을소비합니다. MyImportJob.myDynamoDBWriteThroughputRatio 및 MyExportJob.myDynamoDBReadThroughputRatio 설정을통해가져오기 / 내보내기작업이소비하는 88

96 2 부 : DynamoDB 에서데이터내보내기 프로비저닝용량의비율을제어할수있습니다. 이러한설정은가져오기 / 내보내기프로세스가시작될때소비하는용량을결정하는것이며, 프로세스도중테이블의프로비저닝용량을변경하는경우에는실시간으로조정되지않는다는점에유의하십시오. 비용에유의하십시오. AWS Data Pipeline 가가져오기 / 내보내기프로세스를대신관리하지만사용중인기본 AWS 서비스에대해서는요금을지불해야합니다. 가져오기및내보내기파이프라인은 Amazon EMR 클러스터를생성해데이터를읽고쓰며, 클러스터의각노드에대해서는인스턴스당비용이청구됩니다. Amazon EMR 요금에대한자세한내용을읽어볼수있습니다. 기본클러스터구성은 m1.small 인스턴스마스터노드 1 개와 m1.xlarge 인스턴스작업노드 1 개이지만파이프라인정의에서이구성을변경할수있습니다. AWS Data Pipeline 에도요금이부과됩니다. 자세한내용은 AWS Data Pipeline 요금및 Amazon S3 요금을참조하십시오. 1 단계 : 파이프라인생성 먼저파이프라인을생성합니다. 파이프라인을생성하려면 1. 에서 AWS Data Pipeline 콘솔을엽니다. 2. 처음표시되는화면은현재리전에서파이프라인을생성했는지여부에따라달라집니다. a. 이리전에서파이프라인을생성하지않았다면콘솔에소개화면이표시됩니다. [Get started now] 를선택합니다. b. 이리전에서이미파이프라인을생성했다면해당리전의파이프라인이나열된페이지가콘솔에표시됩니다. [Create new pipeline] 을선택합니다. 3. [Name] 에파이프라인의이름을입력합니다. 4. ( 선택적 ) [Description] 에파이프라인의설명을입력합니다. 5. 소스의경우는 [Build using a template] 을선택한후다음템플릿 [Export DynamoDB table to S3] 을선택합니다. 6. [Parameters] 에서 [DynamoDB table name] 을테이블이름으로설정합니다. Output S3 folder( 출력 S3 폴더 ) 옆의폴더아이콘을클릭하고, Amazon S3 버킷중하나를선택한다음선택을클릭합니다. 7. [Schedule] 에서 [on pipeline activation] 을선택합니다. 8. [Pipeline Configuration] 에서로깅을활성화상태로두십시오. [S3 location for logs] 에서폴더아이콘을선택하고버킷이나폴더중하나를선택한다음 [Select] 를선택합니다. 원하는경우, 로깅을대신비활성화할수있습니다. 9. [Security/Access] 에서 [IAM roles] 를 [Default] 로설정된상태로둡니다. 10. [Edit in Architect] 를클릭합니다. 89

97 2 부 : DynamoDB 에서데이터내보내기 이제 AWS Data Pipeline 이작업결과에따라실행하는 Amazon SNS 알림작업을구성합니다. 성공, 실패및늦은알림작업을구성하려면 1. 오른쪽창에서 [Activities] 를클릭합니다. 2. [Add an optional field] 에서 [On Success] 를선택합니다. 3. 새로추가된 [On Success] 에서 [Create new: Action] 을선택합니다. 4. [Add an optional field] 에서 [On Fail] 을선택합니다. 5. 새로추가된 [On Fail] 에서 [Create new: Action] 을선택합니다. 6. [Add an optional field] 에서 [On Late Action] 을선택합니다. 7. 새로추가된 [On Late Action] 에서 [Create new: Action] 을선택합니다. 8. 오른쪽창에서 [Others] 를클릭합니다. 9. DefaultAction1 에서다음을수행합니다. a. 이름을 SuccessSnsAlarm 으로변경합니다. b. [Type] 에서 SnsAlarm 을선택합니다. c. 주제 ARN 에생성한주제의 ARN 을입력합니다. Amazon SNS 용 ARN 리소스이름을참조하십시오. d. 주제와메시지를입력합니다. 10. DefaultAction2 에서다음을수행합니다. a. 이름을 FailureSnsAlarm 으로변경합니다. b. [Type] 에서 SnsAlarm 을선택합니다. c. 주제 ARN 에생성한주제의 ARN 을입력합니다 (Amazon SNS 용 ARN 리소스이름참조 ). d. 주제와메시지를입력합니다. 11. DefaultAction3 에서다음을수행합니다. a. 이름을 LateSnsAlarm 으로변경합니다. 90

98 2 부 : DynamoDB 에서데이터내보내기 b. [Type] 에서 SnsAlarm 을선택합니다. c. 주제 ARN 에생성한주제의 ARN 을입력합니다 (Amazon SNS 용 ARN 리소스이름참조 ). d. 주제와메시지를입력합니다. 2 단계 : 파이프라인저장및유효성검사 생성프로세스도중언제든지파이프라인정의를저장할수있습니다. 파이프라인정의를저장하는즉시 AWS Data Pipeline 는파이프라인정의에서구문오류와누락된값을찾습니다. 파이프라인이불완전하거나잘못된경우, AWS Data Pipeline 가유효성검사오류와경고를생성합니다. 경고메시지는정보제공에그치지만오류메시지는파이프라인활성화전에모두수정해야합니다. 파이프라인을저장하고유효성을검사하려면 1. [Save pipeline] 을선택합니다. 2. AWS Data Pipeline 가파이프라인정의의유효성을검사하고성공또는오류또는경고메시지를반환합니다. 오류메시지가반환되면 [Close] 를선택한다음오른쪽창에서 [Errors/Warnings] 를선택합니다. 3. [Errors/Warnings] 창에는유효성검사에실패한객체가나열됩니다. 객체이름옆의더하기 (+) 기호를선택하고빨간색오류메시지를찾습니다. 4. 오류메시지가보이면오류가표시되는특정객체창으로이동해오류를수정합니다. 예를들어 [DataNodes] 객체에서오류메시지가표시되는경우, [DataNodes] 창으로가서오류를수정하십시오. 5. [Errors/Warnings] 창에나열된오류를수정한후 [Save Pipeline] 을선택합니다. 6. 파이프라인유효성검사에성공할때까지이프로세스를반복합니다. 3 단계 : 파이프라인활성화 생성및처리실행을시작하려면파이프라인을활성화합니다. 파이프라인은파이프라인정의의일정과기간에따라시작됩니다. Important 활성화에성공하면파이프라인이실행되며사용요금이발생할수있습니다. 자세한내용은 AWS Data Pipeline 요금을참조하십시오. AWS Data Pipeline 사용요금발생을중지하려면파이프라인을삭제하십시오. 파이프라인을활성화하려면 1. [Activate] 를선택합니다. 2. 확인대화상자에서 [Close] 를선택합니다. 4 단계 : 파이프라인실행모니터링 파이프라인을활성화하고나면파이프라인진행률을모니터링할수있는 [Execution details] 페이지로이동하게됩니다. 파이프라인실행진행률을모니터링하려면 1. [Update ] 를선택하거나 F5 를눌러표시된상태를업데이트합니다. Tip 열거된실행이없는경우, [Start (in UTC)] 와 [End (in UTC)] 에파이프라인의예약된시작및종료가포함되는지확인한다음 [Update] 를선택합니다. 2. 파이프라인에있는모든객체의상태가 FINISHED 가되면파이프라인이예약된작업을성공적으로완료한것입니다. SNS 알림을만든경우, 이작업의성공적완료에관한이메일이수신되어야합니다. 91

99 Amazon S3 에서 Amazon S3 로 CSV 데이터복사 3. 파이프라인이성공적으로완료되지않으면파이프라인설정에서문제를확인하십시오. 실패하거나완료되지않은파이프라인인스턴스실행문제해결에대한자세한내용은공통문제해결 (p. 282) 단원을참조하십시오. 5 단계 : 데이터내보내기파일확인 그다음에는출력파일콘텐츠보기를사용하여데이터내보내기가성공적으로이루어졌는지확인합니다. 내보내기파일콘텐츠를확인하려면 1. Amazon S3 콘솔을엽니다. 2. 버킷창에서파일출력이포함된 Amazon S3 버킷 ( 예제파이프라인에서는출력경로 s3:// mybucket/output/mytable 사용 ) 을클릭하고기본텍스트편집기로출력파일을엽니다. 출력파일이름은확장자가없는식별자값입니다 ( 이예에서는 ae10f955-fb2f b11- fbfea01a871e_000000). 3. 기본텍스트편집기를사용하여출력파일콘텐츠를보고 DynamoDB 소스에해당하는데이터파일이있는지확인합니다. 이텍스트파일이있다는것은 DynamoDB 에서출력파일로내보내기작업이성공적으로이루어졌음을나타냅니다. 6 단계 : 파이프라인삭제 ( 선택사항 ) 요금이발생하는것을중지하려면파이프라인을삭제하십시오. 파이프라인을삭제하면파이프라인정의및연결된모든객체가삭제됩니다. 파이프라인을삭제하려면 1. [List Pipelines] 페이지에서파이프라인을선택합니다. 2. [Actions] 를클릭한다음 [Delete] 를선택합니다. 3. 확인메시지가나타나면 Delete 를선택합니다. AWS Data Pipeline 을사용하여 Amazon S3 버킷사이에서 CSV 데이터복사 AWS Data Pipeline( 이 ) 란무엇입니까? (p. 1) 을읽고 AWS Data Pipeline 을사용하여데이터의이동및변환을자동화하기로결정한후에데이터파이프라인생성을시작하십시오. AWS Data Pipeline 작동방식을쉽게이해할수있도록간단한작업을살펴보겠습니다. 이자습서는데이터파이프라인을생성하여한 Amazon S3 버킷에서다른버킷으로데이터를복사하고, 복사작업이성공적으로완료된후에 Amazon SNS 알림을전송하는과정을설명합니다. AWS Data Pipeline 이관리하는 EC2 인스턴스를이복사활동에사용합니다. 파이프라인객체 파이프라인은다음객체를사용합니다. CopyActivity (p. 155) AWS Data Pipeline 이이파이프라인에서수행하는활동입니다 ( 한 Amazon S3 버킷에서다른버킷으로 CSV 데이터복사 ). Important CopyActivity 및 S3DataNode 에서 CSV 파일형식을사용할때제한이있습니다. 자세한내용은 CopyActivity (p. 155) 단원을참조하십시오. 92

100 시작하기전 일정 (p. 260) 이활동의시작날짜, 시간및반복입니다. 종료날짜와시간을지정할수도있습니다. Ec2Resource (p. 207) AWS Data Pipeline 이이활동을실행할때사용하는리소스 (EC2 인스턴스 ) 입니다. S3DataNode (p. 147) 이파이프라인의입력및출력노드 (Amazon S3 버킷 ) 입니다. SnsAlarm (p. 258) 지정조건이충족될때 AWS Data Pipeline 이취해야할조치입니다 ( 작업이성공적으로완료된후에주제로 Amazon SNS 알림전송 ). 목차 시작하기전 (p. 93) AWS Data Pipeline 콘솔을사용하여 CSV 데이터복사 (p. 93) 명령줄을사용하여 CSV 데이터복사 (p. 97) 시작하기전 다음단계가완료되어야합니다. AWS Data Pipeline 설정 (p. 14) 의작업을완료합니다. ( 선택사항 ) 인스턴스의 VPC 와 VPC 의보안그룹을설정합니다. 자세한정보는 VPC 에서파이프라인을위한리소스시작 (p. 54) 단원을참조하십시오. Amazon S3 버킷을데이터소스로생성합니다. 자세한내용은 Amazon Simple Storage Service 시작안내서의버킷생성을참조하십시오. 사용자의 Amazon S3 버킷으로데이터를업로드합니다. 자세한내용은 Amazon Simple Storage Service 시작안내서의버킷에객체추가를참조하십시오. 다른 Amazon S3 버킷을데이터대상으로생성합니다. 이메일알림을전송할주제를생성하고주제의 Amazon Resource Name(ARN) 을메모합니다. 자세한내용은 Amazon Simple Notification Service 시작안내서의주제생성을참조하십시오. ( 선택사항 ) 이자습서는 AWS Data Pipeline 이생성한기본 IAM 역할정책을사용합니다. 자신의 IAM 역할정책및신뢰관계를생성하고구성하려면 AWS Data Pipeline 의 IAM 역할 (p. 72) 에서설명하는지침에따릅니다. AWS Data Pipeline 콘솔을사용하여 CSV 데이터복사 한 Amazon S3 버킷에서다른버킷으로데이터를복사할파이프라인을생성하여사용할수있습니다. 작업 파이프라인생성 (p. 94) 파이프라인저장및유효성검사 (p. 96) 파이프라인활성화 (p. 97) 파이프라인실행모니터링 (p. 97) ( 선택사항 ) 파이프라인삭제 (p. 97) 93

101 콘솔사용 파이프라인생성 먼저파이프라인을생성합니다. 파이프라인을생성하려면 1. 에서 AWS Data Pipeline 콘솔을엽니다. 2. 처음표시되는화면은현재리전에서파이프라인을생성했는지여부에따라달라집니다. a. 이리전에서파이프라인을생성하지않았다면콘솔에소개화면이표시됩니다. [Get started now] 를선택합니다. b. 이리전에서이미파이프라인을생성했다면해당리전의파이프라인이나열된페이지가콘솔에표시됩니다. [Create new pipeline] 을선택합니다. 3. [Name] 에파이프라인의이름을입력합니다. 4. ( 선택적 ) [Description] 에파이프라인의설명을입력합니다. 5. [Source] 는 [Build using Architect] 를선택합니다. 6. [Schedule] 에서 [on pipeline activation] 을선택합니다. 7. [Pipeline Configuration] 에서로깅을활성화상태로두십시오. [S3 location for logs] 에서폴더아이콘을선택하고버킷이나폴더중하나를선택한다음 [Select] 를선택합니다. 원하는경우, 로깅을대신비활성화할수있습니다. 8. [Security/Access] 에서 [IAM roles] 를 [Default] 로설정된상태로둡니다. 9. [Edit in Architect] 를클릭합니다. 그다음에파이프라인정의에서 Activity 객체를정의합니다. Activity 객체를정의할때 AWS Data Pipeline 이이활동을수행할때사용해야하는객체도정의합니다. 파이프라인의활동을구성하려면 1. [Add activity] 를클릭합니다. 2. [Activities] 창에서 a. [Name] 필드에활동이름을입력합니다 ( 예 : copy-mys3-data). b. [Type] 에서 [CopyActivity] 를선택합니다. c. [Output] 에서 [Create new: DataNode] 를선택합니다. d. [Schedule] 에서 [Create new: Schedule] 을선택합니다. e. [Input] 에서 [Create new: DataNode] 를선택합니다. f. [Add an optional field] 에서 [Runs On] 을선택합니다. g. 새로추가된 [Runs On] 에서 [Create new: Resource] 를선택합니다. h. [Add an optional field] 에서 [On Success] 를선택합니다. i. 새로추가된 [On Success] 에서 [Create new: Action] 을선택합니다. 94

102 콘솔사용 3. 왼쪽창에서아이콘을반대방향으로끌어분리합니다. 이것은파이프라인을그래픽으로표현한것입니다. 화살표는객체사이의연결상태를나타냅니다. 그다음에파이프라인의입력및출력데이터노드를구성합니다. 파이프라인의입력및출력데이터노드를구성하려면 1. 오른쪽창에서 [DataNodes] 를클릭합니다. 2. 데이터소스를나타내는 DefaultDataNode1은다음을실행합니다. a. 입력노드의이름을입력합니다 ( 예 : MyS3Input). b. [Type] 에서 [S3DataNode] 를선택합니다. c. [Schedule] 에서일정을선택합니다 ( 예 : copy-s3data-schedule). d. [Add an optional field] 에서 [File Path] 를선택합니다. e. 파일경로필드에서데이터소스용 Amazon S3의경로를입력합니다. 3. 데이터대상을나타내는 DefaultDataNode2은다음을실행합니다. a. 출력노드의이름을입력합니다 ( 예 : MyS3Output). b. [Type] 에서 [S3DataNode] 를선택합니다. c. [Schedule] 에서일정을선택합니다 ( 예 : copy-s3data-schedule). d. [Add an optional field] 에서 [File Path] 를선택합니다. e. 파일경로필드에서데이터대상용 Amazon S3의경로를입력합니다. 95

103 콘솔사용 그다음에 AWS Data Pipeline이복사활동을실행할때사용해야하는리소스를구성합니다. 리소스를구성하려면 1. 오른쪽창에서 [Resources] 를클릭합니다. 2. 리소스이름을입력합니다 ( 예 : CopyDataInstance). 3. [Type] 에서 [Ec2Resource] 를선택합니다. 4. [Schedule] 에서일정을선택합니다 ( 예 : copy-s3data-schedule). 5. [Resource Role] 및 [Role] 은기본값으로설정된상태로둡니다. 자체 IAM 역할을생성한경우원하면이역할을선택해도됩니다. 6. [EC2-VPC] [Add an optional field] 에서 [Subnet Id] 를선택합니다. 7. [EC2-VPC] [Subnet] 에서 EC2 인스턴스의서브넷 ID를입력합니다. 이제 AWS Data Pipeline 이복사활동이성공적으로완료된후에실행하는 Amazon SNS 알림작업을구성합니다. 알림작업을구성하려면 1. 오른쪽창에서 [Others] 를클릭합니다. 2. DefaultAction1 에서다음을수행합니다. a. 알림이름을입력합니다 ( 예 : CopyDataNotice). b. [Type] 에서 SnsAlarm 을선택합니다. c. [Subject] 필드에알림제목줄을입력합니다. d. [Topic Arn] 필드에주제의 ARN 을입력합니다. e. [Message] 필드에메시지내용을입력합니다. f. [Role] 필드를기본값으로설정된상태로둡니다. 파이프라인저장및유효성검사 생성프로세스도중언제든지파이프라인정의를저장할수있습니다. 파이프라인정의를저장하는즉시 AWS Data Pipeline 는파이프라인정의에서구문오류와누락된값을찾습니다. 파이프라인이불완전하거나잘못된경우, AWS Data Pipeline 가유효성검사오류와경고를생성합니다. 경고메시지는정보제공에그치지만오류메시지는파이프라인활성화전에모두수정해야합니다. 파이프라인을저장하고유효성을검사하려면 1. [Save pipeline] 을선택합니다. 2. AWS Data Pipeline 가파이프라인정의의유효성을검사하고성공또는오류또는경고메시지를반환합니다. 오류메시지가반환되면 [Close] 를선택한다음오른쪽창에서 [Errors/Warnings] 를선택합니다. 3. [Errors/Warnings] 창에는유효성검사에실패한객체가나열됩니다. 객체이름옆의더하기 (+) 기호를선택하고빨간색오류메시지를찾습니다. 4. 오류메시지가보이면오류가표시되는특정객체창으로이동해오류를수정합니다. 예를들어 [DataNodes] 객체에서오류메시지가표시되는경우, [DataNodes] 창으로가서오류를수정하십시오. 5. [Errors/Warnings] 창에나열된오류를수정한후 [Save Pipeline] 을선택합니다. 6. 파이프라인유효성검사에성공할때까지이프로세스를반복합니다. 96

104 CLI 사용 파이프라인활성화 생성및처리실행을시작하려면파이프라인을활성화합니다. 파이프라인은파이프라인정의의일정과기간에따라시작됩니다. Important 활성화에성공하면파이프라인이실행되며사용요금이발생할수있습니다. 자세한내용은 AWS Data Pipeline 요금을참조하십시오. AWS Data Pipeline 사용요금발생을중지하려면파이프라인을삭제하십시오. 파이프라인을활성화하려면 1. [Activate] 를선택합니다. 2. 확인대화상자에서 [Close] 를선택합니다. 파이프라인실행모니터링 파이프라인을활성화하고나면파이프라인진행률을모니터링할수있는 [Execution details] 페이지로이동하게됩니다. 파이프라인실행진행률을모니터링하려면 1. [Update ] 를선택하거나 F5 를눌러표시된상태를업데이트합니다. Tip 열거된실행이없는경우, [Start (in UTC)] 와 [End (in UTC)] 에파이프라인의예약된시작및종료가포함되는지확인한다음 [Update] 를선택합니다. 2. 파이프라인에있는모든객체의상태가 FINISHED 가되면파이프라인이예약된작업을성공적으로완료한것입니다. SNS 알림을만든경우, 이작업의성공적완료에관한이메일이수신되어야합니다. 3. 파이프라인이성공적으로완료되지않으면파이프라인설정에서문제를확인하십시오. 실패하거나완료되지않은파이프라인인스턴스실행문제해결에대한자세한내용은공통문제해결 (p. 282) 단원을참조하십시오. ( 선택사항 ) 파이프라인삭제 요금이발생하는것을중지하려면파이프라인을삭제하십시오. 파이프라인을삭제하면파이프라인정의및연결된모든객체가삭제됩니다. 파이프라인을삭제하려면 1. [List Pipelines] 페이지에서파이프라인을선택합니다. 2. [Actions] 를클릭한다음 [Delete] 를선택합니다. 3. 확인메시지가나타나면 Delete 를선택합니다. 명령줄을사용하여 CSV 데이터복사 한 Amazon S3 버킷에서다른버킷으로데이터를복사할파이프라인을생성하여사용할수있습니다. 사전요구사항 시작하기전에다음단계를완료해야합니다. 97

105 CLI 사용 1. 명령줄인터페이스 (CLI) 를설치하고구성합니다. 자세한내용은 AWS Data Pipeline 에액세스 (p. 2) 단원을참조하십시오. 2. [DataPipelineDefaultRole] 및 [DataPipelineDefaultResourceRole] 라는이름의 IAM 역할이존재하는지확인하십시오. AWS Data Pipeline 콘솔은자동으로이러한역할을생성합니다. AWS Data Pipeline 콘솔을한번이상사용하지않았다면수동으로이러한역할을생성해야합니다. 자세한내용은 AWS Data Pipeline 의 IAM 역할 (p. 72) 단원을참조하십시오. 작업 JSON 형식으로파이프라인정의 (p. 98) 파이프라인정의업로드및활성화 (p. 101) JSON 형식으로파이프라인정의 이예제시나리오는 JSON 파이프라인정의와 AWS Data Pipeline CLI 를사용하여두 Amazon S3 버킷사이의데이터복사일정을특정시간간격으로정하는방법을보여줍니다. 전체파이프라인정의 JSON 파일마다각부분의설명이뒤따릅니다. Note JSON 형식파일의구문을확인하고.json 파일확장자로파일이름을지정할수있는텍스트편집기를사용할것을권장합니다. 쉽게이해할수있도록이예제에서는선택필드는건너뛰고필수필드만설명합니다. 이예제의전체파이프라인 JSON 파일은다음과같습니다. "objects": [ "id": "MySchedule", "type": "Schedule", "startdatetime": " T00:00:00", "enddatetime": " T00:00:00", "period": "1 day" "id": "S3Input", "type": "S3DataNode", "schedule": "ref": "MySchedule" "filepath": "s3://example-bucket/source/inputfile.csv" "id": "S3Output", "type": "S3DataNode", "schedule": "ref": "MySchedule" "filepath": "s3://example-bucket/destination/outputfile.csv" "id": "MyEC2Resource", "type": "Ec2Resource", "schedule": "ref": "MySchedule" "instancetype": "m1.medium", "role": "DataPipelineDefaultRole", 98

106 CLI 사용 ] "resourcerole": "DataPipelineDefaultResourceRole" "id": "MyCopyActivity", "type": "CopyActivity", "runson": "ref": "MyEC2Resource" "input": "ref": "S3Input" "output": "ref": "S3Output" "schedule": "ref": "MySchedule" 일정 파이프라인은시작및종료일자와기간으로일정을정의하여이파이프라인의활동실행주기를결정합니다. "id": "MySchedule", "type": "Schedule", "startdatetime": " T00:00:00", "enddatetime": " T00:00:00", "period": "1 day" Amazon S3 데이터노드 그다음에입력 S3DataNode 파이프라인구성요소는입력파일의위치, 이경우는 Amazon S3 버킷위치를정의합니다. 입력 S3DataNode 구성요소는다음필드로정의됩니다. "id": "S3Input", "type": "S3DataNode", "schedule": "ref": "MySchedule" "filepath": "s3://example-bucket/source/inputfile.csv" Id Type 일정 입력위치용사용자정의이름입니다 ( 참조용라벨 ). 파이프라인구성요소유형입니다. 즉, Amazon S3 버킷에서데이터가상주하는위치에맞출 "S3DataNode" 입니다. MySchedule 로표시된 JSON 파일의이전라인에서생성한일정구성요소에대한참조입니다. 99

107 CLI 사용 경로 데이터노드와연결된데이터경로입니다. 데이터노드구문은이유형으로결정됩니다. 예를들어, Amazon S3 경로의구문은데이터베이스테이블에맞는다른구문을따릅니다. 그다음에출력 S3DataNode 구성요소는데이터의출력대상위치를정의합니다. 이것은입력 S3DataNode 구성요소와동일한형식을따릅니다. 단, 구성요소이름과대상파일을나타내는경로는다릅니다. "id": "S3Output", "type": "S3DataNode", "schedule": "ref": "MySchedule" "filepath": "s3://example-bucket/destination/outputfile.csv" 리소스 이것은복사작업을수행할전산리소스의정의입니다. 이예제에서는 AWS Data Pipeline 이복사작업을수행하고작업완료후리소스를종료할 EC2 인스턴스를자동으로생성해야합니다. 여기에정의된필드는작업할 EC2 인스턴스의생성과기능을제어합니다. EC2Resource 는다음필드로정의됩니다. "id": "MyEC2Resource", "type": "Ec2Resource", "schedule": "ref": "MySchedule" "instancetype": "m1.medium", "role": "DataPipelineDefaultRole", "resourcerole": "DataPipelineDefaultResourceRole" Id Type 일정 참조용레이블인파이프라인일정용사용자정의이름입니다. 작업을수행할전산리소스유형입니다. 이경우는 EC2 인스턴스입니다. 다른리소스유형도있습니다 ( 예 : EmrCluster 유형 ). 이전산리소스를생성할일정입니다. instancetype 역할 생성할 EC2 인스턴스의크기입니다. AWS Data Pipeline 으로수행할작업의부하와가장일치하는 EC2 인스턴스의적정크기를설정해야합니다. 이경우는 m1.medium EC2 인스턴스를설정합니다. 다른인스턴스유형과각인스턴스를언제사용하는지에관한자세한내용은 Amazon EC2 인스턴스유형주제 ( 를참조하십시오. 리소스에액세스할계정의 IAM 역할입니다 ( 예 : Amazon S3 버킷에액세스하여데이터검색 ). resourcerole 리소스를생성할계정의 IAM 역할입니다 ( 예 : 사용자대신 EC2 인스턴스생성및구성 ). Role 과 ResourceRole 은동일한역할일수있지만보안구성에서각각더세분화됩니다. 100

108 CLI 사용 활동 수행할작업을나타내는활동의정의인 JSON 파일에있는마지막선택입니다. 이예제에서는 CopyActivity 를사용하여 버킷에있는 CSV 파일의데이터를다른파일로복사합니다. CopyActivity 구성요소는다음필드로정의됩니다. "id": "MyCopyActivity", "type": "CopyActivity", "runson": "ref": "MyEC2Resource" "input": "ref": "S3Input" "output": "ref": "S3Output" "schedule": "ref": "MySchedule" Id Type runson 입력 결과 일정 참조용레이블인활동용사용자정의이름입니다. 수행할활동의유형입니다 ( 예 : MyCopyActivity). 이활동이정의하는작업을수행할전산리소스입니다. 이예제에서는이전에정의한 EC2 인스턴스의참조를제공합니다. runson 필드를사용하면 AWS Data Pipeline 이 EC2 인스턴스를생성합니다. [runson] 필드는 AWS 인프라에리소스가있음을나타내며, workergroup 값은자체온프레미스리소스를사용하여작업을수행해야한다는것을나타냅니다. 복사할데이터의위치입니다. 대상위치데이터입니다. 이활동을실행할일정입니다. 파이프라인정의업로드및활성화 파이프라인정의를업로드하고파이프라인을활성화해야합니다. 다음예제명령에서 pipeline_name 을파이프라인의레이블로대체하고, pipeline_file 을파이프라인정의.json 파일의정규화된경로로대체하십시오. AWS CLI 파이프라인정의를업로드하고파이프라인을활성화하려면다음 create-pipeline 명령을사용하십시오. 대부분의 CLI 명령에서이값을사용하므로파이프라인 ID 는를기록하십시오. aws datapipeline create-pipeline --name pipeline_name --unique-id token 101

109 Amazon S3 로 MySQL 데이터내보내기 "pipelineid": "df sovyzexample" 파이프라인정의를업로드하려면다음 put-pipeline-definition 명령을사용하십시오. aws datapipeline put-pipeline-definition --pipeline-id df sovyzexample --pipelinedefinition file://myemrpipelinedefinition.json 파이프라인유효성검사에성공하면 validationerrors 필드가비게됩니다. 경고가있으면검토해야합니다. 파이프라인을활성화하려면다음 activate-pipeline 명령을사용하십시오. aws datapipeline activate-pipeline --pipeline-id df sovyzexample 다음 list-pipelines 명령을사용하면파이프라인목록에파이프라인이표시되는지확인할수있습니다. aws datapipeline list-pipelines AWS Data Pipeline 을사용하여 Amazon S3 로 MySQL 데이터내보내기 이자습서는 MySQL 데이터베이스에있는테이블의데이터 ( 행 ) 를 Amazon S3 버킷에있는 CSV( 쉼표구분값 ) 파일로복사한다음복사작업이성공적으로완료된후 Amazon SNS 알림을전송할데이터파이프라인을생성하는과정을설명합니다. AWS Data Pipeline 이제공하는 EC2 인스턴스를이복사활동에사용합니다. 파이프라인객체 파이프라인은다음객체를사용합니다. CopyActivity (p. 155) Ec2Resource (p. 207) MySqlDataNode (p. 139) S3DataNode (p. 147) SnsAlarm (p. 258) 목차 시작하기전 (p. 102) AWS Data Pipeline 콘솔을사용하여 MySQL 데이터복사 (p. 103) 명령줄을사용하여 MySQL 데이터복사 (p. 106) 시작하기전 다음단계가완료되어야합니다. AWS Data Pipeline 설정 (p. 14) 의작업을완료합니다. 102

110 콘솔사용 ( 선택사항 ) 인스턴스의 VPC 와 VPC 의보안그룹을설정합니다. 자세한정보는 VPC 에서파이프라인을위한리소스시작 (p. 54) 단원을참조하십시오. Amazon S3 버킷을데이터출력으로생성합니다. 자세한내용은 Amazon Simple Storage Service 시작안내서의버킷생성을참조하십시오. MySQL 데이터베이스인스턴스를데이터소스로생성하여시작합니다. 자세한내용은 Amazon RDS Getting Started Guide 의 DB 인스턴스시작을참조하십시오. Amazon RDS 인스턴스가생성된후에는 MySQL 설명서의 Create a Table 을참조하십시오. Note MySQL 인스턴스를생성할때사용한사용자이름과암호를메모합니다. MySQL 데이터베이스인스턴스를시작한후에인스턴스의엔드포인트를메모합니다. 나중에이정보가필요합니다. MySQL 데이터베이스인스턴스를연결하고, 테이블을생성한다음, 테스트데이터값을새로생성된테이블에추가합니다. 설명을위해다음구성과샘플데이터를갖는 MySQL 테이블로이자습서를만들었습니다. 다음은 MySQL Workbench 5.2 CE 의스크린샷입니다. 자세한내용은 MySQL 설명서의 Create a Table 과 MySQL Workbench product page 를참조하십시오. 이메일알림을전송할주제를생성하고주제의 Amazon Resource Name(ARN) 을메모합니다. 자세한내용은 Amazon Simple Notification Service 시작안내서의주제생성을참조하십시오. ( 선택사항 ) 이자습서는 AWS Data Pipeline 이생성한기본 IAM 역할정책을사용합니다. 사용자의 IAM 역할정책및신뢰관계를생성하고구성하려면 AWS Data Pipeline 의 IAM 역할 (p. 72) 에서설명하는지침에따릅니다. AWS Data Pipeline 콘솔을사용하여 MySQL 데이터복사 MySQL 테이블의데이터를 Amazon S3 버킷의파일로복사할파이프라인을생성할수있습니다. 작업 파이프라인생성 (p. 104) 파이프라인저장및유효성검사 (p. 105) 파이프라인정의확인 (p. 105) 파이프라인활성화 (p. 106) 파이프라인실행모니터링 (p. 106) 103

111 콘솔사용 ( 선택사항 ) 파이프라인삭제 (p. 106) 파이프라인생성 먼저파이프라인을생성합니다. 대상 RDS 인스턴스와동일한리전에파이프라인을생성해야합니다. 파이프라인을생성하려면 1. 에서 AWS Data Pipeline 콘솔을엽니다. 2. 처음표시되는화면은현재리전에서파이프라인을생성했는지여부에따라달라집니다. a. 이리전에서파이프라인을생성하지않았다면콘솔에소개화면이표시됩니다. [Get started now] 를선택합니다. b. 이리전에서이미파이프라인을생성했다면해당리전의파이프라인이나열된페이지가콘솔에표시됩니다. [Create new pipeline] 을선택합니다. 3. [Name] 에파이프라인의이름을입력합니다. 4. ( 선택적 ) [Description] 에파이프라인의설명을입력합니다. 5. 소스의경우는 [Build using a template] 을선택한후다음템플릿 [Full copy of RDS MySQL table to S3] 을선택합니다. 6. 템플릿을선택할때열린 [Parameters] 부분에서다음작업을수행합니다. a. DBInstance ID 는 Aurora 클러스터의데이터를복사할때사용할 Aurora DB 인스턴스의 DB 인스턴스이름을입력합니다. DB 인스턴스의엔드포인트세부정보위치는 Amazon RDS 사용설명서의 MySQL 데이터베이스엔진기반 DB 인스턴스에연결을참조하십시오. b. RDS MySQL username 은 MySQL 데이터베이스인스턴스를생성할때사용한사용자이름을입력합니다. c. [RDS MySQL password] 필드에 DB 인스턴스를생성할때사용한암호를입력합니다. d. EC2 instance type 필드에 EC2 인스턴스의인스턴스유형을입력합니다. e. [Output S3 folder] 옆의폴더아이콘을클릭하고, 버킷또는폴더중하나를선택한다음 [Select] 를클릭합니다. 7. [Schedule] 에서 [on pipeline activation] 을선택합니다. 8. [Pipeline Configuration] 에서로깅을활성화상태로두십시오. [S3 location for logs] 에서폴더아이콘을선택하고버킷이나폴더중하나를선택한다음 [Select] 를선택합니다. 원하는경우, 로깅을대신비활성화할수있습니다. 9. [Security/Access] 에서 [IAM roles] 를 [Default] 로설정된상태로둡니다. 10. [Edit in Architect] 를클릭합니다. 11. 왼쪽창에서아이콘을반대방향으로끌어분리합니다. 이것은파이프라인을그래픽으로표현한것입니다. 화살표는객체사이의연결상태를나타냅니다. 그다음에데이터베이스이름설정을구성합니다. 이것은현재사용가능한템플릿에없습니다. 1. 왼쪽창에서 RDSDatabase 를클릭합니다. 2. 오른쪽창의 rds_mysql 부분에서 [Add an optional field...] 는 [Database Name] 을선택합니다. 104

112 콘솔사용 3. 대상데이터베이스의 [Database Name] 을입력하고선택필드를추가합니다. 복사활동이성공적으로끝난후에 AWS Data Pipeline 이수행하는 Amazon SNS 알림작업을구성할수있습니다. Amazon SNS 알림작업을구성하려면 1. 오른쪽창에서 [Activities] 를클릭합니다. 2. [Add an optional field] 에서 [On Success] 를선택합니다. 3. 새로추가된 [On Success] 에서 [Create new: Action] 을선택합니다. 4. 오른쪽창에서 [Others] 를클릭합니다. 5. DefaultAction1 에서다음을수행합니다. a. 알림이름을입력합니다 ( 예 : CopyDataNotice). b. [Type] 에서 [SnsAlarm] 을선택합니다. c. [Message] 필드에메시지내용을입력합니다. d. [Subject] 필드에알림제목줄을입력합니다. e. [Topic Arn] 필드에주제의 ARN 을입력합니다. f. [Role] 필드를기본값으로설정된상태로둡니다. 파이프라인저장및유효성검사 생성프로세스도중언제든지파이프라인정의를저장할수있습니다. 파이프라인정의를저장하는즉시 AWS Data Pipeline 는파이프라인정의에서구문오류와누락된값을찾습니다. 파이프라인이불완전하거나잘못된경우, AWS Data Pipeline 가유효성검사오류와경고를생성합니다. 경고메시지는정보제공에그치지만오류메시지는파이프라인활성화전에모두수정해야합니다. 파이프라인을저장하고유효성을검사하려면 1. [Save pipeline] 을선택합니다. 2. AWS Data Pipeline 가파이프라인정의의유효성을검사하고성공또는오류또는경고메시지를반환합니다. 오류메시지가반환되면 [Close] 를선택한다음오른쪽창에서 [Errors/Warnings] 를선택합니다. 3. [Errors/Warnings] 창에는유효성검사에실패한객체가나열됩니다. 객체이름옆의더하기 (+) 기호를선택하고빨간색오류메시지를찾습니다. 4. 오류메시지가보이면오류가표시되는특정객체창으로이동해오류를수정합니다. 예를들어 [DataNodes] 객체에서오류메시지가표시되는경우, [DataNodes] 창으로가서오류를수정하십시오. 5. [Errors/Warnings] 창에나열된오류를수정한후 [Save Pipeline] 을선택합니다. 6. 파이프라인유효성검사에성공할때까지이프로세스를반복합니다. 파이프라인정의확인 파이프라인을활성화하기전에정의에서파이프라인이올바로초기화되었는지확인해야합니다. 파이프라인정의를확인하려면 1. [List Pipelines] 페이지에서새로생성한파이프라인을찾습니다. AWS Data Pipeline 는파이프라인정의의고유한 [Pipeline ID] 를생성했습니다. 파이프라인이나열된행의 [Scheduled State] 열에 PENDING 이표시되어야합니다. 105

113 CLI 사용 2. 파이프라인옆의삼각형아이콘을선택합니다. 아래의파이프라인요약창에파이프라인실행세부정보가표시됩니다. 파이프라인이아직활성화되지않았으므로실행세부정보가표시되지않을것입니다. 하지만파이프라인정의의구성은표시됩니다. 파이프라인활성화 생성및처리실행을시작하려면파이프라인을활성화합니다. 파이프라인은파이프라인정의의일정과기간에따라시작됩니다. Important 활성화에성공하면파이프라인이실행되며사용요금이발생할수있습니다. 자세한내용은 AWS Data Pipeline 요금을참조하십시오. AWS Data Pipeline 사용요금발생을중지하려면파이프라인을삭제하십시오. 파이프라인을활성화하려면 1. [Activate] 를선택합니다. 2. 확인대화상자에서 [Close] 를선택합니다. 파이프라인실행모니터링 파이프라인을활성화하고나면파이프라인진행률을모니터링할수있는 [Execution details] 페이지로이동하게됩니다. 파이프라인실행진행률을모니터링하려면 1. [Update ] 를선택하거나 F5 를눌러표시된상태를업데이트합니다. Tip 열거된실행이없는경우, [Start (in UTC)] 와 [End (in UTC)] 에파이프라인의예약된시작및종료가포함되는지확인한다음 [Update] 를선택합니다. 2. 파이프라인에있는모든객체의상태가 FINISHED 가되면파이프라인이예약된작업을성공적으로완료한것입니다. SNS 알림을만든경우, 이작업의성공적완료에관한이메일이수신되어야합니다. 3. 파이프라인이성공적으로완료되지않으면파이프라인설정에서문제를확인하십시오. 실패하거나완료되지않은파이프라인인스턴스실행문제해결에대한자세한내용은공통문제해결 (p. 282) 단원을참조하십시오. ( 선택사항 ) 파이프라인삭제 요금이발생하는것을중지하려면파이프라인을삭제하십시오. 파이프라인을삭제하면파이프라인정의및연결된모든객체가삭제됩니다. 파이프라인을삭제하려면 1. [List Pipelines] 페이지에서파이프라인을선택합니다. 2. [Actions] 를클릭한다음 [Delete] 를선택합니다. 3. 확인메시지가나타나면 Delete 를선택합니다. 명령줄을사용하여 MySQL 데이터복사 MySQL 테이블의데이터를 Amazon S3 버킷의파일로복사할파이프라인을생성할수있습니다. 106

114 CLI 사용 사전요구사항 시작하기전에다음단계를완료해야합니다. 1. 명령줄인터페이스 (CLI) 를설치하고구성합니다. 자세한내용은 AWS Data Pipeline 에액세스 (p. 2) 단원을참조하십시오. 2. [DataPipelineDefaultRole] 및 [DataPipelineDefaultResourceRole] 라는이름의 IAM 역할이존재하는지확인하십시오. AWS Data Pipeline 콘솔은자동으로이러한역할을생성합니다. AWS Data Pipeline 콘솔을한번이상사용하지않았다면수동으로이러한역할을생성해야합니다. 자세한내용은 AWS Data Pipeline 의 IAM 역할 (p. 72) 단원을참조하십시오. 3. Amazon S3 버킷과 Amazon RDS 인스턴스를설정합니다. 자세한내용은시작하기전 (p. 102) 단원을참조하십시오. 작업 JSON 형식으로파이프라인정의 (p. 107) 파이프라인정의업로드및활성화 (p. 112) JSON 형식으로파이프라인정의 이예제시나리오는 JSON 파이프라인정의와 AWS Data Pipeline CLI 를사용하여 MySQL 데이터베이스에있는테이블의데이터 ( 행 ) 를 Amazon S3 버킷에있는 CSV( 쉼표구분값 ) 파일로지정된시간간격에복사하는방법을설명합니다. 전체파이프라인정의 JSON 파일마다각부분의설명이뒤따릅니다. Note JSON 형식파일의구문을확인하고.json 파일확장자로파일이름을지정할수있는텍스트편집기를사용할것을권장합니다. "objects": [ "id": "ScheduleId113", "startdatetime": " T00:00:00", "name": "My Copy Schedule", "type": "Schedule", "period": "1 Days" "id": "CopyActivityId112", "input": "ref": "MySqlDataNodeId115" "schedule": "ref": "ScheduleId113" "name": "My Copy", "runson": "ref": "Ec2ResourceId116" "onsuccess": "ref": "ActionId1" "onfail": "ref": "SnsAlarmId117" 107

115 CLI 사용 "output": "ref": "S3DataNodeId114" "type": "CopyActivity" "id": "S3DataNodeId114", "schedule": "ref": "ScheduleId113" "filepath": "s3://example-bucket/rds-output/output.csv", "name": "My S3 Data", "type": "S3DataNode" "id": "MySqlDataNodeId115", "username": "my-username", "schedule": "ref": "ScheduleId113" "name": "My RDS Data", "*password": "my-password", "table": "table-name", "connectionstring": "jdbc:mysql://your-sql-instance-name.id.regionname.rds.amazonaws.com:3306/database-name", "selectquery": "select * from #table", "type": "SqlDataNode" "id": "Ec2ResourceId116", "schedule": "ref": "ScheduleId113" "name": "My EC2 Resource", "role": "DataPipelineDefaultRole", "type": "Ec2Resource", "resourcerole": "DataPipelineDefaultResourceRole" "message": "This is a success message.", "id": "ActionId1", "subject": "RDS to S3 copy succeeded!", "name": "My Success Alarm", "role": "DataPipelineDefaultRole", "topicarn": "arn:aws:sns:us-east-1: :example-topic", "type": "SnsAlarm" "id": "Default", "scheduletype": "timeseries", "failureandrerunmode": "CASCADE", "name": "Default", "role": "DataPipelineDefaultRole", "resourcerole": "DataPipelineDefaultResourceRole" "message": "There was a problem executing #node.name at for period #node.@scheduledstarttime to #node.@scheduledendtime", "id": "SnsAlarmId117", "subject": "RDS to S3 copy failed", "name": "My Failure Alarm", "role": "DataPipelineDefaultRole", "topicarn": "arn:aws:sns:us-east-1: :example-topic", "type": "SnsAlarm" ] 108

116 CLI 사용 MySQL 데이터노드 입력 MySqlDataNode 파이프라인구성요소는입력데이터의위치, 이경우는 Amazon RDS 인스턴스를정의합니다. 입력 MySqlDataNode 구성요소는다음필드로정의됩니다. "id": "MySqlDataNodeId115", "username": "my-username", "schedule": "ref": "ScheduleId113" "name": "My RDS Data", "*password": "my-password", "table": "table-name", "connectionstring": "jdbc:mysql://your-sql-instance-name.id.regionname.rds.amazonaws.com:3306/database-name", "selectquery": "select * from #table", "type": "SqlDataNode" Id 참조용라벨인사용자정의이름입니다. 사용자이름 일정 이름 데이터베이스테이블에서데이터를검색할권한이있는데이터베이스계정의사용자이름입니다. myusername 을사용자계정이름으로바꿉니다. JSON 파일의이전라인에서생성한일정구성요소에대한참조입니다. 참조용라벨인사용자정의이름입니다. * 비밀번호 표 AWS Data Pipeline 이암호값을암호화해야한다는것을나타내는별표접두사가있는데이터베이스계정의암호입니다. my-password 를사용자계정의정확한암호로바꿉니다. 암호필드앞에별표특수문자가있습니다. 자세한내용은특수문자 (p. 133) 단원을참조하십시오. 복사할데이터가있는데이터베이스테이블의이름입니다. table-name 을데이터베이스테이블이름으로바꿉니다. connectionstring 데이터베이스에연결할 CopyActivity 객체의 JDBC 연결입니다. selectquery 유형 데이터베이스테이블에서복사할데이터를지정하는유효 SQL SELECT 쿼리입니다. #table 은 JSON 파일에서앞줄의 "table" 변수로제공되는테이블이름을다시사용하는표현식입니다. SqlDataNode 유형입니다. 이예제에서는 MySQL 을사용하는 Amazon RDS 인스턴스입니다. Note MySqlDataNode 유형은사용되지않습니다. MySqlDataNode 는계속사용할수있지만 SqlDataNode 사용을권장합니다. 109

117 CLI 사용 Amazon S3 데이터 그다음에입력 S3Output 파이프라인구성요소는출력파일의위치, 이경우는 Amazon S3 버킷위치에있는 CSV 파일을정의합니다. 출력 S3DataNode 구성요소는다음필드로정의됩니다. "id": "S3DataNodeId114", "schedule": "ref": "ScheduleId113" "filepath": "s3://example-bucket/rds-output/output.csv", "name": "My S3 Data", "type": "S3DataNode" Id 일정 filepath 이름 유형 참조용레이블인사용자정의 ID 입니다. JSON 파일의이전라인에서생성한일정구성요소에대한참조입니다. 이예제에서 CSV 출력파일인데이터노드와연결된데이터로가는경로입니다. 참조용라벨인사용자정의이름입니다. 파이프라인객체유형입니다. 즉, Amazon S3 버킷에서데이터가상주하는위치에맞출 S3DataNode 입니다. 리소스 이것은복사작업을수행할전산리소스의정의입니다. 이예제에서는 AWS Data Pipeline 이복사작업을수행하고작업완료후리소스를종료할 EC2 인스턴스를자동으로생성해야합니다. 여기에정의된필드는작업할 EC2 인스턴스의생성과기능을제어합니다. EC2Resource 는다음필드로정의됩니다. "id": "Ec2ResourceId116", "schedule": "ref": "ScheduleId113" "name": "My EC2 Resource", "role": "DataPipelineDefaultRole", "type": "Ec2Resource", "resourcerole": "DataPipelineDefaultResourceRole" Id 참조용레이블인사용자정의 ID입니다. 일정이전산리소스를생성할일정입니다. 이름참조용라벨인사용자정의이름입니다. 110

118 CLI 사용 역할 유형 리소스에액세스할계정의 IAM 역할입니다 ( 예 : Amazon S3 버킷에액세스하여데이터검색 ). 작업을수행할전산리소스유형입니다. 이경우는 EC2 인스턴스입니다. 다른리소스유형도있습니다 ( 예 : EmrCluster 유형 ). resourcerole 리소스를생성할계정의 IAM 역할입니다 ( 예 : 사용자대신 EC2 인스턴스생성및구성 ). Role 과 ResourceRole 은동일한역할일수있지만보안구성에서각각더세분화됩니다. 활동 수행할작업을나타내는활동의정의인 JSON 파일에있는마지막선택입니다. 이경우에는 CopyActivity 구성요소를사용하여 Amazon S3 버킷에있는파일의데이터를다른파일로복사합니다. CopyActivity 구성요소는다음필드로정의됩니다. "id": "CopyActivityId112", "input": "ref": "MySqlDataNodeId115" "schedule": "ref": "ScheduleId113" "name": "My Copy", "runson": "ref": "Ec2ResourceId116" "onsuccess": "ref": "ActionId1" "onfail": "ref": "SnsAlarmId117" "output": "ref": "S3DataNodeId114" "type": "CopyActivity" Id 입력 일정 이름 runson 참조용레이블인사용자정의 ID 입니다. 복사할 MySQL 데이터의위치입니다. 이활동을실행할일정입니다. 참조용라벨인사용자정의이름입니다. 이활동이정의하는작업을수행할전산리소스입니다. 이예제에서는이전에정의한 EC2 인스턴스의참조를제공합니다. runson 필드를사용하면 AWS Data Pipeline 이 EC2 인스턴스를생성합니다. [runson] 필드는 AWS 인프라에리소스가있음을나타내며, workergroup 값은자체온프레미스리소스를사용하여작업을수행해야한다는것을나타냅니다. 111

119 Amazon Redshift 로데이터복사 onsuccess 활동이성공적으로완료될경우에전송할 SnsAlarm (p. 258) onfail 활동이실패할경우에전송할 SnsAlarm (p. 258) 결과 CSV 출력파일의 Amazon S3 위치유형실행할활동의유형입니다. 파이프라인정의업로드및활성화 파이프라인정의를업로드하고파이프라인을활성화해야합니다. 다음예제명령에서 pipeline_name 을파이프라인의레이블로대체하고, pipeline_file 을파이프라인정의.json 파일의정규화된경로로대체하십시오. AWS CLI 파이프라인정의를업로드하고파이프라인을활성화하려면다음 create-pipeline 명령을사용하십시오. 대부분의 CLI 명령에서이값을사용하므로파이프라인 ID 는를기록하십시오. aws datapipeline create-pipeline --name pipeline_name --unique-id token "pipelineid": "df sovyzexample" 파이프라인정의를업로드하려면다음 put-pipeline-definition 명령을사용하십시오. aws datapipeline put-pipeline-definition --pipeline-id df sovyzexample --pipelinedefinition file://myemrpipelinedefinition.json 파이프라인유효성검사에성공하면 validationerrors 필드가비게됩니다. 경고가있으면검토해야합니다. 파이프라인을활성화하려면다음 activate-pipeline 명령을사용하십시오. aws datapipeline activate-pipeline --pipeline-id df sovyzexample 다음 list-pipelines 명령을사용하면파이프라인목록에파이프라인이표시되는지확인할수있습니다. aws datapipeline list-pipelines AWS Data Pipeline 을사용하여 Amazon Redshift 로데이터복사 이자습서는 AWS Data Pipeline CLI 가있는파이프라인정의파일또는 AWS Data Pipeline 콘솔의 Redshift 로복사템플릿을사용하여 Amazon S3 에서 Amazon Redshift 로데이터를주기적으로옮기는파이프라인을생성하는과정을설명합니다. Amazon S3 는클라우드에데이터를저장하는웹서비스입니다. 자세한내용은 Amazon Simple Storage Service 콘솔사용설명서단원을참조하십시오. 112

120 시작하기전 : COPY 옵션구성 Amazon Redshift 는클라우드의데이터웨어하우스서비스입니다. 자세한내용은 Amazon Redshift Cluster Management Guide 단원을참조하십시오. 이자습서는몇가지사전요구사항이있습니다. 다음단계를완료한후에만콘솔또는 CLI 를사용하여자습서를계속진행할수있습니다. 목차 시작하기전 : COPY 옵션구성및데이터로드 (p. 113) 파이프라인설정, 보안그룹생성, Amazon Redshift 클러스터생성 (p. 113) AWS Data Pipeline 콘솔을사용하여 Amazon Redshift 로데이터복사 (p. 114) 명령줄을사용하여 Amazon Redshift 로데이터복사 (p. 117) 시작하기전 : COPY 옵션구성및데이터로드 AWS Data Pipeline 내의 Amazon Redshift로데이터를복사하기전에다음을수행합니다. Amazon S3에서데이터를로드합니다. Amazon Redshift에서 COPY 활동을설정합니다. 이러한옵션이작동하고데이터로드를성공적으로완료하면복사를수행하기위해이러한옵션을 AWS Data Pipeline 으로전송합니다. COPY 옵션의경우, Amazon Redshift 데이터베이스개발자안내서의 COPY 를참조하십시오. Amazon S3 에서데이터를로드하는단계는 Amazon Redshift 데이터베이스개발자안내서의 Amazon S3 에서데이터로드를참조하십시오. 예를들어 Amazon Redshift 에서다음 SQL 명령은 LISTING 이라는새테이블을생성하고 Amazon S3 에있는공개적으로사용가능한버킷에서샘플데이터를복사합니다. <iam-role-arn> 과리전은사용자의값으로바꾸십시오. 이예제에대한세부정보는 Amazon Redshift 시작안내서의 Amazon S3 에서샘플데이터로드를참조하십시오. create table listing( listid integer not null distkey, sellerid integer not null, eventid integer not null, dateid smallint not null sortkey, numtickets smallint not null, priceperticket decimal(8,2), totalprice decimal(8,2), listtime timestamp); copy listing from 's3://awssampledbuswest2/tickit/listings_pipe.txt' credentials 'aws_iam_role=<iam-role-arn>' delimiter ' ' region 'us-west-2'; 파이프라인설정, 보안그룹생성, Amazon Redshift 클러스터생성 자습서에맞게설정하려면 1. AWS Data Pipeline 설정 (p. 14) 의작업을완료합니다. 113

121 콘솔사용 2. 보안그룹생성. a. Amazon EC2 콘솔을엽니다. b. 탐색창에서 Security Groups 를클릭합니다. c. Create Security Group 을클릭합니다. d. 보안그룹의이름과설명을지정합니다. e. [EC2-Classic] VPC 의 No VPC 를선택합니다. f. [EC2-VPC] VPC 의 VPC ID 를선택합니다. g. [Create] 를클릭합니다. 3. [EC2-Classic] Amazon Redshift 클러스터보안그룹을생성하고 Amazon EC2 보안그룹을지정합니다. a. Amazon Redshift 콘솔을엽니다. b. 탐색창에서 Security Groups 를클릭합니다. c. [Create Cluster Security Group] 을클릭합니다. d. [Create Cluster Security Group] 대화상자에서클러스터보안그룹의이름과설명을지정합니다. e. 새클러스터보안그룹이름을클릭합니다. f. [Add Connection Type] 을클릭합니다. g. [Add Connection Type] 대화상자의 [Connection Type] 에서 [EC2 Security Group] 을선택하고 [EC2 Security Group Name] 에서생성한보안그룹을선택한다음 [Authorize] 를클릭합니다. 4. [EC2-VPC] Amazon Redshift 클러스터보안그룹을생성하고 VPC 보안그룹을지정합니다. a. Amazon EC2 콘솔을엽니다. b. 탐색창에서 Security Groups 를클릭합니다. c. Create Security Group 을클릭합니다. d. [Create Security Group] 대화상자에서보안그룹의이름과설명을지정하고 VPC 의 VPC ID 를선택합니다. e. Add Rule 을클릭합니다. 유형, 프로토콜및포트범위를지정하고 [Source.] 에서보안그룹의 ID 를입력합니다. 2 단계에서생성한보안그룹을선택합니다. f. [Create] 를클릭합니다. 5. 다음은단계의요약입니다. 기존 Amazon Redshift 클러스터가있다면클러스터 ID 를적어둡니다. 새클러스터를생성하고샘플데이터를로드하려면 Amazon Redshift 시작하기의단계에따르십시오. 클러스터생성에대한자세한내용은 Amazon Redshift Cluster Management Guide 의클러스터생성을참조하십시오. a. Amazon Redshift 콘솔을엽니다. b. [Launch Cluster] 를클릭합니다. c. 클러스터에필요한세부정보를입력한다음 [Continue] 를클릭합니다. d. 노드구성을제공한다음 [Continue] 를클릭합니다. e. 추가구성정보페이지에서생성한클러스터보안그룹을선택한다음 [Continue] 를클릭합니다. f. 클러스터사양을검토한다음 [Launch Cluster] 를클릭합니다. AWS Data Pipeline 콘솔을사용하여 Amazon Redshift 로데이터복사 Amazon S3에서 Amazon Redshift로데이터를 114 복사할파이프라인을생성할수있습니다. Amazon Redshift 에새테이블을생성한다음 AWS Data Pipeline을사용하여 CSV 형식의샘플입력데이터가있는퍼블릭

122 콘솔사용 Amazon S3 버킷에서이테이블로데이터를전송합니다. 소유하고있는 Amazon S3 버킷으로로그가저장됩니다. Amazon S3 는클라우드에데이터를저장하는웹서비스입니다. 자세한내용은 Amazon Simple Storage Service 콘솔사용설명서단원을참조하십시오. Amazon Redshift 는클라우드의데이터웨어하우스서비스입니다. 자세한내용은 Amazon Redshift Cluster Management Guide 단원을참조하십시오. 사전요구사항 이자습서를시작하기전에시작하기전 : COPY 옵션구성및데이터로드 (p. 113) 및파이프라인설정, 보안그룹생성, Amazon Redshift 클러스터생성 (p. 113) 에설명된사전조건을완료해야합니다. 작업 파이프라인생성 (p. 115) 파이프라인저장및유효성검사 (p. 116) 파이프라인활성화 (p. 116) 파이프라인실행모니터링 (p. 116) ( 선택사항 ) 파이프라인삭제 (p. 117) 파이프라인생성 먼저파이프라인을생성합니다. 이파이프라인은구문 (p. 191) 의옵션을토대로합니다. 이파이프라인은 AWS Data Pipeline 콘솔에서 Redshift 로복사템플릿을사용합니다. 이템플릿에대한자세한내용은 Amazon S3 에서 Amazon Redshift 로데이터로드 (p. 33) 단원을참조하십시오. 파이프라인을생성하려면 1. 에서 AWS Data Pipeline 콘솔을엽니다. 2. 처음표시되는화면은현재리전에서파이프라인을생성했는지여부에따라달라집니다. a. 이리전에서파이프라인을생성하지않았다면콘솔에소개화면이표시됩니다. [Get started now] 를선택합니다. b. 이리전에서이미파이프라인을생성했다면해당리전의파이프라인이나열된페이지가콘솔에표시됩니다. [Create new pipeline] 을선택합니다. 3. [Name] 에파이프라인의이름을입력합니다. 4. ( 선택적 ) [Description] 에파이프라인의설명을입력합니다. 5. 소스의경우는 [Build using a template] 을선택한후다음템플릿 [Load data from S3 into Redshift] 을선택합니다. 6. 파라미터밑에생성된 Amazon S3 및 Amazon Redshift 데이터베이스의입력폴더에관한정보를제공합니다. 7. [Schedule] 에서 [on pipeline activation] 을선택합니다. 8. [Pipeline Configuration] 에서로깅을활성화상태로두십시오. [S3 location for logs] 에서폴더아이콘을선택하고버킷이나폴더중하나를선택한다음 [Select] 를선택합니다. 원하는경우, 로깅을대신비활성화할수있습니다. 9. [Security/Access] 에서 [IAM roles] 를 [Default] 로설정된상태로둡니다. 10. [Activate] 를클릭합니다. 원한다면 [Edit in Architect] 를선택해이파이프라인을수정할수있습니다. 예를들어사전조건을추가할수있습니다. 115

123 콘솔사용 파이프라인저장및유효성검사 생성프로세스도중언제든지파이프라인정의를저장할수있습니다. 파이프라인정의를저장하는즉시 AWS Data Pipeline 는파이프라인정의에서구문오류와누락된값을찾습니다. 파이프라인이불완전하거나잘못된경우, AWS Data Pipeline 가유효성검사오류와경고를생성합니다. 경고메시지는정보제공에그치지만오류메시지는파이프라인활성화전에모두수정해야합니다. 파이프라인을저장하고유효성을검사하려면 1. [Save pipeline] 을선택합니다. 2. AWS Data Pipeline 가파이프라인정의의유효성을검사하고성공또는오류또는경고메시지를반환합니다. 오류메시지가반환되면 [Close] 를선택한다음오른쪽창에서 [Errors/Warnings] 를선택합니다. 3. [Errors/Warnings] 창에는유효성검사에실패한객체가나열됩니다. 객체이름옆의더하기 (+) 기호를선택하고빨간색오류메시지를찾습니다. 4. 오류메시지가보이면오류가표시되는특정객체창으로이동해오류를수정합니다. 예를들어 [DataNodes] 객체에서오류메시지가표시되는경우, [DataNodes] 창으로가서오류를수정하십시오. 5. [Errors/Warnings] 창에나열된오류를수정한후 [Save Pipeline] 을선택합니다. 6. 파이프라인유효성검사에성공할때까지이프로세스를반복합니다. 파이프라인활성화 생성및처리실행을시작하려면파이프라인을활성화합니다. 파이프라인은파이프라인정의의일정과기간에따라시작됩니다. Important 활성화에성공하면파이프라인이실행되며사용요금이발생할수있습니다. 자세한내용은 AWS Data Pipeline 요금을참조하십시오. AWS Data Pipeline 사용요금발생을중지하려면파이프라인을삭제하십시오. 파이프라인을활성화하려면 1. [Activate] 를선택합니다. 2. 확인대화상자에서 [Close] 를선택합니다. 파이프라인실행모니터링 파이프라인을활성화하고나면파이프라인진행률을모니터링할수있는 [Execution details] 페이지로이동하게됩니다. 파이프라인실행진행률을모니터링하려면 1. [Update ] 를선택하거나 F5 를눌러표시된상태를업데이트합니다. Tip 열거된실행이없는경우, [Start (in UTC)] 와 [End (in UTC)] 에파이프라인의예약된시작및종료가포함되는지확인한다음 [Update] 를선택합니다. 2. 파이프라인에있는모든객체의상태가 FINISHED 가되면파이프라인이예약된작업을성공적으로완료한것입니다. SNS 알림을만든경우, 이작업의성공적완료에관한이메일이수신되어야합니다. 3. 파이프라인이성공적으로완료되지않으면파이프라인설정에서문제를확인하십시오. 실패하거나완료되지않은파이프라인인스턴스실행문제해결에대한자세한내용은공통문제해결 (p. 282) 단원을참조하십시오. 116

124 CLI 사용 ( 선택사항 ) 파이프라인삭제 요금이발생하는것을중지하려면파이프라인을삭제하십시오. 파이프라인을삭제하면파이프라인정의및연결된모든객체가삭제됩니다. 파이프라인을삭제하려면 1. [List Pipelines] 페이지에서파이프라인을선택합니다. 2. [Actions] 를클릭한다음 [Delete] 를선택합니다. 3. 확인메시지가나타나면 Delete 를선택합니다. 명령줄을사용하여 Amazon Redshift 로데이터복사 이자습서는 Amazon S3 에서 Amazon Redshift 로데이터를복사하는방법을설명합니다. Amazon Redshift 에새테이블을생성한다음 AWS Data Pipeline 을사용하여 CSV 형식의샘플입력데이터가있는퍼블릭 Amazon S3 버킷에서이테이블로데이터를전송합니다. 소유하고있는 Amazon S3 버킷으로로그가저장됩니다. Amazon S3 는클라우드에데이터를저장하는웹서비스입니다. 자세한내용은 Amazon Simple Storage Service 콘솔사용설명서단원을참조하십시오. Amazon Redshift 는클라우드의데이터웨어하우스서비스입니다. 자세한정보는 Amazon Redshift Cluster Management Guide 단원을참조하십시오. 사전요구사항 시작하기전에다음단계를완료해야합니다. 1. 명령줄인터페이스 (CLI) 를설치하고구성합니다. 자세한내용은 AWS Data Pipeline 에액세스 (p. 2) 단원을참조하십시오. 2. [DataPipelineDefaultRole] 및 [DataPipelineDefaultResourceRole] 라는이름의 IAM 역할이존재하는지확인하십시오. AWS Data Pipeline 콘솔은자동으로이러한역할을생성합니다. AWS Data Pipeline 콘솔을한번이상사용하지않았다면수동으로이러한역할을생성해야합니다. 자세한내용은 AWS Data Pipeline 의 IAM 역할 (p. 72) 단원을참조하십시오. 3. AWS Data Pipeline 내에서복사를수행할때이와동일한옵션이작동해야하므로 Amazon Redshift 에서 COPY 명령을설정합니다. 자세한내용은시작하기전 : COPY 옵션구성및데이터로드 (p. 113) 단원을참조하십시오. 4. Amazon Redshift 데이터베이스를설정합니다. 자세한내용은파이프라인설정, 보안그룹생성, Amazon Redshift 클러스터생성 (p. 113) 단원을참조하십시오. 작업 JSON 형식으로파이프라인정의 (p. 117) 파이프라인정의업로드및활성화 (p. 123) JSON 형식으로파이프라인정의 이예제시나리오는 Amazon S3 버킷에서 Amazon Redshift 로데이터를복사하는방법을보여줍니다. 전체파이프라인정의 JSON 파일마다각부분의설명이뒤따릅니다. JSON 형식파일의구문을확인하고.json 파일확장자로파일이름을지정할수있는텍스트편집기를사용할것을권장합니다. "objects": [ 117

125 CLI 사용 "id": "CSVId1", "name": "DefaultCSV1", "type": "CSV" "id": "RedshiftDatabaseId1", "databasename": "dbname", "username": "user", "name": "DefaultRedshiftDatabase1", "*password": "password", "type": "RedshiftDatabase", "clusterid": "redshiftclusterid" "id": "Default", "scheduletype": "timeseries", "failureandrerunmode": "CASCADE", "name": "Default", "role": "DataPipelineDefaultRole", "resourcerole": "DataPipelineDefaultResourceRole" "id": "RedshiftDataNodeId1", "schedule": "ref": "ScheduleId1" "tablename": "orders", "name": "DefaultRedshiftDataNode1", "createtablesql": "create table StructuredLogs (requestbegintime CHAR(30) PRIMARY KEY DISTKEY SORTKEY, requestendtime CHAR(30), hostname CHAR(100), requestdate varchar(20));", "type": "RedshiftDataNode", "database": "ref": "RedshiftDatabaseId1" "id": "Ec2ResourceId1", "schedule": "ref": "ScheduleId1" "securitygroups": "MySecurityGroup", "name": "DefaultEc2Resource1", "role": "DataPipelineDefaultRole", "loguri": "s3://mylogs", "resourcerole": "DataPipelineDefaultResourceRole", "type": "Ec2Resource" "id": "ScheduleId1", "startdatetime": "yyyy-mm-ddt00:00:00", "name": "DefaultSchedule1", "type": "Schedule", "period": "period", "enddatetime": "yyyy-mm-ddt00:00:00" "id": "S3DataNodeId1", "schedule": "ref": "ScheduleId1" "filepath": "s3://datapipeline-us-east-1/samples/hive-ads-samples.csv", "name": "DefaultS3DataNode1", "dataformat": "ref": "CSVId1" "type": "S3DataNode" 118

126 CLI 사용 ] "id": "RedshiftCopyActivityId1", "input": "ref": "S3DataNodeId1" "schedule": "ref": "ScheduleId1" "insertmode": "KEEP_EXISTING", "name": "DefaultRedshiftCopyActivity1", "runson": "ref": "Ec2ResourceId1" "type": "RedshiftCopyActivity", "output": "ref": "RedshiftDataNodeId1" 이러한객체에대한자세한내용은다음설명서를참조하십시오. 객체 데이터노드 (p. 119) 리소스 (p. 121) 활동 (p. 122) 데이터노드 이예제에서는입력데이터노드, 출력데이터노드및데이터베이스를사용합니다. 입력데이터노드 입력 S3DataNode 파이프라인구성요소는 Amazon S3 의입력데이터위치와입력데이터의데이터형식을정의합니다. 자세한내용은 S3DataNode (p. 147) 단원을참조하십시오. 이입력구성요소는다음필드로정의됩니다. "id": "S3DataNodeId1", "schedule": "ref": "ScheduleId1" "filepath": "s3://datapipeline-us-east-1/samples/hive-ads-samples.csv", "name": "DefaultS3DataNode1", "dataformat": "ref": "CSVId1" "type": "S3DataNode" id 참조용레이블인사용자정의 ID입니다. schedule 일정구성요소참조입니다. 119

127 CLI 사용 filepath 이예제에서 CSV 입력파일인데이터노드와연결된데이터로가는경로입니다. name 참조용라벨인사용자정의이름입니다. dataformat 이활동에서처리할데이터형식의참조입니다. 출력데이터노드 출력 RedshiftDataNode 파이프라인구성요소는출력데이터의위치를정의합니다. 이경우에는 Amazon Redshift 데이터베이스에있는테이블입니다. 자세한내용은 RedshiftDataNode (p. 143) 단원을참조하십시오. 이출력구성요소는다음필드로정의됩니다. "id": "RedshiftDataNodeId1", "schedule": "ref": "ScheduleId1" "tablename": "orders", "name": "DefaultRedshiftDataNode1", "createtablesql": "create table StructuredLogs (requestbegintime CHAR(30) PRIMARY KEY DISTKEY SORTKEY, requestendtime CHAR(30), hostname CHAR(100), requestdate varchar(20));", "type": "RedshiftDataNode", "database": "ref": "RedshiftDatabaseId1" id 참조용레이블인사용자정의 ID입니다. schedule 일정구성요소참조입니다. tablename Amazon Redshift 테이블의이름. name 참조용라벨인사용자정의이름입니다. createtablesql 데이터베이스에서테이블을생성하는 SQL 표현식입니다. database Amazon Redshift 데이터베이스의참조입니다. 데이터베이스 RedshiftDatabase 구성요소는다음필드로정의됩니다. 자세한내용은 RedshiftDatabase (p. 248) 단원을참조하십시오. "id": "RedshiftDatabaseId1", 120

128 CLI 사용 "databasename": "dbname", "username": "user", "name": "DefaultRedshiftDatabase1", "*password": "password", "type": "RedshiftDatabase", "clusterid": "redshiftclusterid" id 참조용레이블인사용자정의 ID입니다. databasename 논리데이터베이스의이름입니다. username 데이터베이스에연결할사용자이름입니다. name 참조용라벨인사용자정의이름입니다. password 데이터베이스에연결할비밀번호입니다. clusterid Redshift 클러스터의 ID입니다. 리소스 이것은복사작업을수행할전산리소스의정의입니다. 이예제에서는 AWS Data Pipeline 이복사작업을수행하고작업완료후인스턴스를종료할 EC2 인스턴스를자동으로생성해야합니다. 여기에정의된필드는작업할인스턴스의생성과기능을제어합니다. 자세한내용은 Ec2Resource (p. 207) 단원을참조하십시오. Ec2Resource 는다음필드로정의됩니다. "id": "Ec2ResourceId1", "schedule": "ref": "ScheduleId1" "securitygroups": "MySecurityGroup", "name": "DefaultEc2Resource1", "role": "DataPipelineDefaultRole", "loguri": "s3://mylogs", "resourcerole": "DataPipelineDefaultResourceRole", "type": "Ec2Resource" id 참조용레이블인사용자정의 ID입니다. schedule 이전산리소스를생성할일정입니다. securitygroups 리소스풀에서인스턴스에사용할보안그룹입니다. 121

129 CLI 사용 name role loguri 참조용라벨인사용자정의이름입니다. 리소스에액세스할계정의 IAM 역할입니다 ( 예 : Amazon S3 버킷에액세스하여데이터검색 ). Ec2Resource 에서작업실행기로그를백업할 Amazon S3 대상경로입니다. resourcerole 리소스를생성할계정의 IAM 역할입니다 ( 예 : 사용자대신 EC2 인스턴스생성및구성 ). Role 과 ResourceRole 은동일한역할일수있지만보안구성에서각각더세분화됩니다. 활동 수행할작업을나타내는활동의정의인 JSON 파일에있는마지막선택입니다. 이경우 RedshiftCopyActivity 구성요소를사용하여 Amazon S3 에서 Amazon Redshift 로데이터를복사합니다. 자세한내용은 RedshiftCopyActivity (p. 189) 단원을참조하십시오. RedshiftCopyActivity 구성요소는다음필드로정의됩니다. "id": "RedshiftCopyActivityId1", "input": "ref": "S3DataNodeId1" "schedule": "ref": "ScheduleId1" "insertmode": "KEEP_EXISTING", "name": "DefaultRedshiftCopyActivity1", "runson": "ref": "Ec2ResourceId1" "type": "RedshiftCopyActivity", "output": "ref": "RedshiftDataNodeId1" id 참조용레이블인사용자정의 ID입니다. input Amazon S3 소스파일의참조입니다. schedule 이활동을실행할일정입니다. insertmode 인서트유형 (KEEP_EXISTING, OVERWRITE_EXISTING 또는 TRUNCATE) 입니다. name 참조용라벨인사용자정의이름입니다. runson 이활동이정의하는작업을수행할전산리소스입니다. 122

130 CLI 사용 output Amazon Redshift 대상테이블의참조입니다. 파이프라인정의업로드및활성화 파이프라인정의를업로드하고파이프라인을활성화해야합니다. 다음예제명령에서 pipeline_name 을파이프라인의레이블로대체하고, pipeline_file 을파이프라인정의.json 파일의정규화된경로로대체하십시오. AWS CLI 파이프라인정의를업로드하고파이프라인을활성화하려면다음 create-pipeline 명령을사용하십시오. 대부분의 CLI 명령에서이값을사용하므로파이프라인 ID 는를기록하십시오. aws datapipeline create-pipeline --name pipeline_name --unique-id token "pipelineid": "df sovyzexample" 파이프라인정의를업로드하려면다음 put-pipeline-definition 명령을사용하십시오. aws datapipeline put-pipeline-definition --pipeline-id df sovyzexample --pipelinedefinition file://myemrpipelinedefinition.json 파이프라인유효성검사에성공하면 validationerrors 필드가비게됩니다. 경고가있으면검토해야합니다. 파이프라인을활성화하려면다음 activate-pipeline 명령을사용하십시오. aws datapipeline activate-pipeline --pipeline-id df sovyzexample 다음 list-pipelines 명령을사용하면파이프라인목록에파이프라인이표시되는지확인할수있습니다. aws datapipeline list-pipelines 123

131 단순한데이터유형 파이프라인표현식및함수 이단원은연결된데이터형식을포함해파이프라인에서표현식과함수를사용하는구문을설명합니다. 단순한데이터유형 다음데이터유형을필드값으로설정할수있습니다. 유형 DateTime (p. 124) 숫자 (p. 124) 객체참조 (p. 124) 기간 (p. 124) (p. 125) DateTime AWS Data Pipeline 은 UTC/GMT 에서 "YYYY-MM-DDTHH:MM:SS" 형식으로표현되는날짜와시간만지원합니다. 다음은 UTC/GMT 시간대에서 Schedule 객체의 startdatetime 필드를 1/15/2012, 11:59 p.m. 으로설정한예제입니다. "startdatetime" : " T23:59:00" 숫자 AWS Data Pipeline 은정수와부동소수점값을모두지원합니다. 객체참조 파이프라인정의에있는객체입니다. 이것은현재객체, 파이프라인내다른곳에정의된객체의이름또는키워드 node 로참조되는현재객체를필드에표시하는객체일수있습니다. node 에대한자세한내용은필드및객체참조 (p. 125) 단원을참조하십시오. 파이프라인객체유형에대한자세한내용은파이프라인객체참조 (p. 134) 단원을참조하십시오. 기간 예약된이벤트의실행빈도를나타냅니다. "N [years months weeks days hours minutes]" 형식으로표현되며, 여기서 N 은양의정수값입니다. 최소기간은 15 분이며, 최대기간은 3 년입니다. 다음예제에서는 Schedule 객체의 period 필드를 3 시간으로설정합니다. 따라서 3 시간마다실행되는일정이생성됩니다. "period" : "3 hours" 124

132 표준값입니다. 은큰따옴표 (") 로묶어야합니다. 의이스케이프문자에백슬래시문자 (\) 를포함할수있습니다. 여러줄의은지원되지않습니다. 다음예제는 id 필드에유효한값예입니다. "id" : "My Data Object" "id" : "My \"Data\" Object" 값을평가하는표현식도에담을수있습니다. 이러한표현식은에삽입되며, "#" 및 "" 로구분합니다. 다음예제에서는표현식을사용하여현재객체이름을경로에삽입합니다. "filepath" : "s3://mybucket/#name.csv" 표현식사용에관한자세한내용은필드및객체참조 (p. 125) 및표현식평가 (p. 127) 단원을참조하십시오. 표현식 표현식을사용하여관련객체에서값을공유할수있습니다. 표현식은실행시간에 AWS Data Pipeline 웹서비스로처리되어, 모든표현식이표현식값으로대체됩니다. 표현식은 "#" 및 "" 로구분됩니다. 법적고지이있는파이프라인정의객체에서표현식을사용할수있습니다. 슬롯이참조이거나 ID, NAME, TYPE, SPHERE 유형중하나일경우에는그값이축약되어평가및사용되지않습니다. 다음표현식은 AWS Data Pipeline 함수중하나를호출합니다. 자세한내용은표현식평가 (p. 127) 단원을참조하십시오. #format(mydatetime,'yyyy-mm-dd hh:mm:ss') 필드및객체참조 표현식이존재하는현재객체의필드또는참조로연결되는다른객체의필드를표현식에서사용할수있습니다. 슬롯형식은생성시간과객체생성시간순으로 ( 예 구성됩니다. 또한 Amazon S3 백업위치의슬롯 ID 처럼파이프라인정의에지정된해당슬롯 ID 를참조할수도있습니다. 슬롯 ID 를참조하려면 #parent.@id 를사용합니다. 다음예제에서는 filepath 필드가동일객체내 id 필드를참조하여파일이름을형성합니다. filepath 의값은 "s3://mybucket/exampledatanode.csv" 로평가됩니다. "id" : "ExampleDataNode", "type" : "S3DataNode", "schedule" : "ref" : "ExampleSchedule" "filepath" : "s3://mybucket/#parent.@id.csv", "precondition" : "ref" : "ExampleCondition" 125

133 중첩표현식 "onfail" : "ref" : "FailureNotify" 참조로연결된다른객체에있는필드를사용하려면 node 키워드를사용합니다. 이키워드는경보및사전조건객체와함께사용해야합니다. 이전예제에서 SnsAlarm 의표현식은 Schedule 의날짜와시간을나타낼수있는데, 그이유는 S3DataNode 가둘다참조하기때문입니다. 구체적으로 FailureNotify 의 message 필드는 ExampleSchedule 실행시간필드를사용할수있는데그이유는 ExampleDataNode 의 onfail 필드가 FailureNotify 를참조하고그 schedule 필드가 ExampleSchedule 을참조하기때문입니다. "id" : "FailureNotify", "type" : "SnsAlarm", "subject" : "Failed to run pipeline component", "message": "Error for interval #node.@scheduledstarttime..#node.@scheduledendtime.", "topicarn":"arn:aws:sns:us-east-1:28619example:exampletopic" Note 다른시스템이나작업에의존하는파이프라인내작업같이종속요소가있는파이프라인을생성할수있습니다. 파이프라인에특정리소스가필요할경우에는데이터노드와작업에연결한사전조건을사용하여파이프라인에종속요소를추가합니다. 그러면파이프라인의복원력이강화되고디버그도용이해집니다. 그리고교차파이프라인문제는해결이어려우므로가급적이면단일파이프라인안에종속요소를유지하는것이좋습니다. 중첩표현식 AWS Data Pipeline 을사용하면값을중첩하여좀더복잡한표현식을만들수있습니다. 예를들어, 시간을계산하고 (scheduledstarttime 에서 30 분빼기 ) 결과를포맷하여파이프라인정의에사용하려면활동에서다음표현식을사용할수있을것입니다. #format(minusminutes(@scheduledstarttime,30),'yyyy-mm-dd hh:mm:ss') 표현식이 SnsAlarm 또는 Precondition 의일부일경우 node 접두사를사용합니다. #format(minusminutes(node.@scheduledstarttime,30),'yyyy-mm-dd hh:mm:ss') 목록 목록과목록의함수로표현식을평가할수있습니다. 예를들어, "mylist":["one","two"] 같이목록이정의되어있다고가정해보겠습니다. 이목록이표현식 #'this is ' + mylist 에사용되면 ["this is one", "this is two"] 로평가됩니다. 목록이 2 개일경우이둘을평가할때결국데이터파이프라인에의해결합됩니다. 예를들어, mylist1 이 [1,2] 로정의되고, mylist2 가 [3,4] 으로정의되면표현식 [#mylist1 #mylist2] 는 [1,2,3,4] 로평가됩니다. 노드표현식 AWS Data Pipeline 은파이프라인구성요소의부모객체의역참조를위해 SnsAlarm 또는 PreCondition 에 #node.* 표현식을사용합니다. SnsAlarm 와 PreCondition 는역참조가없는리 126

134 표현식평가 소스나활동에서참조하므로 node 가참조페이지를참조하는방법입니다. 예를들어, 다음파이프라인정의는장애알림이 node 를사용하여부모, 이경우 ShellCommandActivity 를참조하고, 부모의예약된시작및종료시간을 SnsAlarm 메시지에포함시키는방법을보여줍니다. ShellCommandActivity 의 scheduledstarttime 참조는 node 접두사가필요없습니다. scheduledstarttime 이자체를나타내기때문입니다. Note 앞에 AT 부호가있는필드는실행시간필드입니다. "id" : "ShellOut", "type" : "ShellCommandActivity", "input" : "ref" : "HourlyData" "command" : "/home/username/xxx.sh #@scheduledstarttime #@scheduledendtime", "schedule" : "ref" : "HourlyPeriod" "stderr" : "/tmp/stderr:#@scheduledstarttime", "stdout" : "/tmp/stdout:#@scheduledstarttime", "onfail" : "ref" : "FailureNotify" "id" : "FailureNotify", "type" : "SnsAlarm", "subject" : "Failed to run pipeline component", "message": "Error for interval #node.@scheduledstarttime..#node.@scheduledendtime.", "topicarn":"arn:aws:sns:us-east-1:28619example:exampletopic" AWS Data Pipeline 은실행시간필드가아니라사용자정의필드용전이참조를지원합니다. 전이참조는다른파이프라인구성요소에의존하는두파이프라인구성요소사이에서매개역할을하는참조입니다. 다음예제는전이사용자정의필드의참조와비 - 전이실행시간필드의참조를보여주며, 둘다유효합니다. 자세한내용은사용자정의필드 (p. 61) 단원을참조하십시오. "name": "DefaultActivity1", "type": "CopyActivity", "schedule": "ref": "Once" "input": "ref": "s3nodeone" "onsuccess": "ref": "action" "workergroup": "test", "output": "ref": "s3nodetwo" "name": "action", "type": "SnsAlarm", "message": "S3 bucket '#node.output.directorypath' succeeded at #node.@actualendtime.", "subject": "Testing", "topicarn": "arn:aws:sns:us-east-1:28619example:exampletopic", "role": "DataPipelineDefaultRole" 표현식평가 AWS Data Pipeline 은필드값을계산할때사용할수있는함수집합을제공합니다. 다음은 makedate 함수를사용하여 Schedule 객체의 startdatetime 필드를 " T0:00:00" GMT/UTC 로설정하는예제입니다. "startdatetime" : "makedate(2011,5,24)" 127

135 수학함수 수학함수 다음함수는숫자값에사용할수있습니다. 함수 설명 + 덧셈. 예 : #1 + 2 Result: 3 - 뺄셈. 예 : #1-2 Result: -1 * 곱셈. 예 : #1 * 2 Result: 2 / 나눗셈. 정수 2개를나누면결과가중간에잘립니다. 예제 : #1 / 2 결과 : 0 예제 : #1.0 / 2 결과 :.5 ^ 지수. 예 : #2 ^ 2 Result: 4.0 함수 다음함수는값에사용할수있습니다. 함수 설명 + 연결. 비 - 값이먼저로변환됩니다. 예 : #"hel" + "lo" Result: "hello" 날짜및시간함수 다음함수는 DateTime 값에사용할수있습니다. 예제에서 mydatetime 값은 May 24, 5:10 pm GMT 입니다. 128

136 날짜및시간함수 Note AWS Data Pipeline 의날짜 / 시간형식은 Joda Time 입니다. 이것은 Java 날짜및시간클래스를대신합니다. 자세한내용은 Joda Time - Class DateTimeFormat 을참조하십시오. 함수 int day(datetime mydatetime) 설명 DateTime 값의날짜를정수로가져옵니다. 예 : #day(mydatetime) Result: 24 int dayofyear(datetime mydatetime) DateTime 값의연중날짜를정수로가져옵니다. 예 : #dayofyear(mydatetime) Result: 144 DateTime firstofmonth(datetime mydatetime) 지정된 DateTime 에서월시작일에해당하는 DateTime 객체를생성합니다. 예 : #firstofmonth(mydatetime) Result: " T17:10:00z" String format(datetime mydatetime,string format) 지정된형식의을사용하여지정된 DateTime 의변환결과인객체를생성합니다. 예 : #format(mydatetime,'yyyy- MM-dd HH:mm:ss z') Result: " T17:10:00 UTC" int hour(datetime mydatetime) DateTime 값의시를정수로가져옵니다. 예 : #hour(mydatetime) Result: 17 DateTime makedate(int year,int month,int day) 지정된연, 월, 일의자정에해당하는 DateTime 객체를 UTC 에생성합니다. 예 : #makedate(2011,5,24) Result: " T0:00:00z" 129

137 날짜및시간함수 함수 DateTime makedatetime(int year,int month,int day,int hour,int minute) 설명 지정된연, 월, 일, 분에해당하는 DateTime 객체를 UTC 에생성합니다. 예 : #makedatetime(2011,5,24,14,21) Result: " T14:21:00z" DateTime midnight(datetime mydatetime) 지정된 DateTime 을기준으로현재자정에해당하는 DateTime 객체를생성합니다. MyDateTime 이 T17:10:00z 인예제의결과는다음과같습니다. 예 : #midnight(mydatetime) Result: " T0:00:00z" DateTime minusdays(datetime mydatetime,int daystosub) 지정된 DateTime 에서지정된일수를뺀결과가되는 DateTime 객체를생성합니다. 예 : #minusdays(mydatetime,1) Result: " T17:10:00z" DateTime minushours(datetime mydatetime,int hourstosub) 지정된 DateTime 에서지정된시수를뺀결과가되는 DateTime 객체를생성합니다. 예 : #minushours(mydatetime,1) Result: " T16:10:00z" DateTime minusminutes(datetime mydatetime,int minutestosub) 지정된 DateTime 에서지정된분수를뺀결과가되는 DateTime 객체를생성합니다. 예 : #minusminutes(mydatetime,1) Result: " T17:09:00z" 130

138 날짜및시간함수 함수 DateTime minusmonths(datetime mydatetime,int monthstosub) 설명 지정된 DateTime 에서지정된월수를뺀결과가되는 DateTime 객체를생성합니다. 예 : #minusmonths(mydatetime,1) Result: " T17:10:00z" DateTime minusweeks(datetime mydatetime,int weekstosub) 지정된 DateTime 에서지정된주수를뺀결과가되는 DateTime 객체를생성합니다. 예 : #minusweeks(mydatetime,1) Result: " T17:10:00z" DateTime minusyears(datetime mydatetime,int yearstosub) 지정된 DateTime 에서지정된연수를뺀결과가되는 DateTime 객체를생성합니다. 예 : #minusyears(mydatetime,1) Result: " T17:10:00z" int minute(datetime mydatetime) DateTime 값의분을정수로가져옵니다. 예 : #minute(mydatetime) Result: 10 int month(datetime mydatetime) DateTime 값의월을정수로가져옵니다. 예 : #month(mydatetime) Result: 5 DateTime plusdays(datetime mydatetime,int daystoadd) 지정된 DateTime 에지정된일수를더한결과가되는 DateTime 객체를생성합니다. 예 : #plusdays(mydatetime,1) Result: " T17:10:00z" 131

139 날짜및시간함수 함수 DateTime plushours(datetime mydatetime,int hourstoadd) 설명 지정된 DateTime 에지정된시수를더한결과가되는 DateTime 객체를생성합니다. 예 : #plushours(mydatetime,1) Result: " T18:10:00z" DateTime plusminutes(datetime mydatetime,int minutestoadd) 지정된 DateTime 에지정된분수를더한결과가되는 DateTime 객체를생성합니다. 예 : #plusminutes(mydatetime,1) Result: " :11:00z" DateTime plusmonths(datetime mydatetime,int monthstoadd) 지정된 DateTime 에지정된월수를더한결과가되는 DateTime 객체를생성합니다. 예 : #plusmonths(mydatetime,1) Result: " T17:10:00z" DateTime plusweeks(datetime mydatetime,int weekstoadd) 지정된 DateTime 에지정된주수를더한결과가되는 DateTime 객체를생성합니다. 예 : #plusweeks(mydatetime,1) Result: " T17:10:00z" DateTime plusyears(datetime mydatetime,int yearstoadd) 지정된 DateTime 에지정된연수를더한결과가되는 DateTime 객체를생성합니다. 예 : #plusyears(mydatetime,1) Result: " T17:10:00z" 132

140 특수문자 함수 DateTime sunday(datetime mydatetime) 설명 지정된 DateTime 을기준으로이전일요일에해당하는 DateTime 객체를생성합니다. 지정된 DateTime 이일요일인경우에는지정된 DateTime 이결과가됩니다. 예 : #sunday(mydatetime) Result: " :10:00 UTC" int year(datetime mydatetime) DateTime 값의연을정수로가져옵니다. 예 : #year(mydatetime) Result: 2011 DateTime yesterday(datetime mydatetime) 지정된 DateTime 을기준으로이전일에해당하는 DateTime 객체를생성합니다. 결과는 minusdays(1) 와같습니다. 예 : #yesterday(mydatetime) Result: " T17:10:00z" 특수문자 AWS Data Pipeline 은다음표와같이파이프라인정의에서특수한의미를갖는특정문자를사용합니다. @resourcestatus # 표현식. 표현식은 "#" 및 "" 로구분되며, 괄호안내용은 AWS Data Pipeline 이평가합니다. 자세한내용은표현식 (p. 125) 단원을참조하십시오. * 암호화필드입니다. 이문자는 AWS Data Pipeline 이콘솔또는 CLI 와 AWS Data Pipeline 서비스사이중간에있는이필드의내용을암호화해야한다는것을나타내는필드이름접두사입니다. #format(mydatetime,'yyyy- MM-dd hh:mm:ss') s3://mybucket/#id.csv * 암호 133

141 파이프라인객체참조 파이프라인정의에다음파이프라인객체및구성요소를사용할수있습니다. 목차 데이터노드 (p. 135) 활동 (p. 154) 리소스 (p. 206) 사전조건 (p. 230) 데이터베이스 (p. 245) 데이터형식 (p. 250) Actions (p. 258) 일정 (p. 260) 유틸리티 (p. 265) Note AWS Data Pipeline Java SDK 를사용하는예제애플리케이션에관한내용은 GitHub 에서 Data Pipeline DynamoDB Export Java Sample 를참조하십시오. 다음은 AWS Data Pipeline 의객체계층입니다. 134

142 데이터노드 데이터노드 다음은 AWS Data Pipeline 데이터노드객체입니다. 객체 DynamoDBDataNode (p. 135) MySqlDataNode (p. 139) RedshiftDataNode (p. 143) S3DataNode (p. 147) SqlDataNode (p. 151) DynamoDBDataNode HiveActivity 또는 EMRActivity 객체에대한입력으로지정된 DynamoDB 를사용하여데이터노드를정의합니다. 예 Note DynamoDBDataNode 객체는 Exists 사전조건을지원하지않습니다. 다음은이객체유형의예제입니다. 이객체는동일한파이프라인정의파일에서정의하려는다른두객체를참조합니다. CopyPeriod 는 Schedule 객체이고 Ready 는사전조건객체입니다. "id" : "MyDynamoDBTable", "type" : "DynamoDBDataNode", "schedule" : "ref" : "CopyPeriod" "tablename" : "adevents", "precondition" : "ref" : "Ready" 구문 필수필드설명슬롯유형 tablename DynamoDB 테이블. 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면사용자가다른객체로일정참조를지정해야합니다. 사용자가객체에서일정을명확히설정하여 ( 예 : "schedule": "ref": "DefaultSchedule" 지정 ) 하여이요건을충족할수있습니다. 대부분의경우에서는모든객체가상속할수있도록일정참조를기본파이프라인객체에두는것이좋습니다. 또는파이프라인에일정트리가있는경우 ( 마스터일정안의일정 ) 사용자가일정참조가있는부모객체를생성할수있습니 참조객체. 예 : "schedule": "ref":"myscheduleid" 135

143 DynamoDBDataNode 액체호출필드설명슬롯유형 다. 선택형일정구성예제에대한자세한내용은일정을참조하십시오. 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout dataformat 원격작업완료의제한시간입니다. 이필드를설정한경우설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 이데이터노드로기술된 ` 데이터의 DataFormat 입니다. 현재 HiveActivity 와 HiveCopyActivity 가지원됩니다. 기간 참조객체, "dataformat": "ref":"mydynamodbdataformatid" dependson 실행가능한다른객체의종속성을지정 참조객체. 예 : "dependson": "ref":"myactivityid" failureandrerunmode lateaftertimeout maxactiveinstances 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 열거 기간 정수 maximumretries 장애시재시도최대횟수정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" pipelineloguri precondition readthroughputpercent 파이프라인의로그를업로드할 S3 URI( 예 : 's3:// BucketName/Key/') 입니다. 또는사전조건을정의합니다. 모든사전조건이충족되기전까지데이터노드에 "READY" 가표시되지않습니다. DynamoDB 프로비저닝처리속도를테이블에할당된범위로유지하도록읽기작업속도를설정합니다. 값은 0.1~1.0 사이의배정밀도입니다. 참조객체. 예 : "precondition": "ref":"mypreconditionid" Double 136

144 DynamoDBDataNode 선택필드설명슬롯유형 region DynamoDB 테이블이있는리전의코드입니다. 예 : us-east-1. Hive 에서 DynamoDB 테이블스테이징을실행할때 HiveActivity 가이것을사용합니다. 열거 reportprogresstimeout 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 runson 활동또는명령을실행할전산리소스입니다. Amazon EC2 인스턴스또는 Amazon EMR 클러스터가이에해당합니다. 참조객체. 예 : "runson": "ref":"myresourceid" scheduletype workergroup writethroughputpercent 일정유형을사용하여파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 시계열스타일일정조정은각간격이종료될때인스턴스일정이지정되고 Cron 스타일일정조정은각간격이시작될때인스턴스일정이지정됩니다. 온디맨드일정을사용하면파이프라인을활성화될때한번씩실행할수있습니다. 이경우다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. 온디맨드일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 schuletype 이어야합니다. 온디맨드파이프라인을사용하려면이후실행할때마다 ActivatePipeline 작업을호출하면됩니다. 값은 cron, ondemand 및 timeseries 입니다. 작업자그룹입니다. 이것은작업라우팅에사용됩니다. workergroup 이있을때 runson 값을제공하면 workergroup 이무시됩니다. DynamoDB 프로비저닝처리속도를테이블에할당된범위로유지하도록쓰기작업속도를설정합니다. 그값은 0.1 과 1.0 사이의두배입니다. 열거 Double 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" 137

145 DynamoDBDataNode 실행시간필드설명슬롯유형 emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace 이객체의실행이완료된시간입니다. DateTime EMR 기반활동시도시에만사용할수있는하둡작업로그 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간 객체의일정시작시간 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 138

146 MySqlDataNode MySqlDataNode MySQL 를사용하여데이터노드를정의합니다. 예 Note MySqlDataNode 유형은사용되지않습니다. 그대신 SqlDataNode (p. 151) 를사용할것을권장합니다. 다음은이객체유형의예제입니다. 이객체는동일한파이프라인정의파일에서정의하려는다른두객체를참조합니다. CopyPeriod 는 Schedule 객체이고 Ready 는사전조건객체입니다. "id" : "Sql Table", "type" : "MySqlDataNode", "schedule" : "ref" : "CopyPeriod" "table" : "adevents", "username": "user_name", "*password": "my_password", "connectionstring": "jdbc:mysql://mysqlinstance-rds.example.useast-1.rds.amazonaws.com:3306/database_name", "selectquery" : "select * from #table where eventtime >= '#@scheduledstarttime.format('yyyy-mm-dd HH:mm:ss')' and eventtime < '#@scheduledendtime.format('yyyy-mm-dd HH:mm:ss')'", "precondition" : "ref" : "Ready" 구문 필수필드설명슬롯유형 table MySQL 데이터베이스에있는테이블의이름입니다. 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면사용자가다른객체로일정참조를지정해야합니다. 사용자가객체에서일정을명확히설정하여 ( 예 : "schedule": "ref": "DefaultSchedule" 지정 ) 하여이요건을충족할수있습니다. 대부분의경우에서는모든객체가상속할수있도록일정참조를기본파이프라인객체에두는것이좋습니다. 또는파이프라인에일정트리가있는경우 ( 마스터일정안의일정 ) 사용자가일정참조가있는부모객체를생성할수있습니다. 선택형일정구성예제에대한자세한내용은 dp-object-schedule.html 단원을참조하십시오. 참조객체. 예 : "schedule": "ref":"myscheduleid" 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. 139

147 MySqlDataNode 선택필드설명슬롯유형 attempttimeout createtablesql 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. SQL 은테이블을생성할테이블표현식을생성합니다. 기간 데이터베이스 데이터베이스의이름입니다. 참조객체. 예 : "database": "ref":"mydatabaseid" dependson 실행가능한다른객체의종속성을지정합니다. 참조객체. 예 : "dependson": "ref":"myactivityid" failureandrerunmode 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 열거 insertquery 테이블에데이터를삽입할 SQL 문입니다. lateaftertimeout maxactiveinstances 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 기간 정수 maximumretries 장애시재시도최대횟수정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" pipelineloguri precondition reportprogresstimeout 파이프라인의로그를업로드할 S3 URI( 예 : 's3:// BucketName/Key/') 입니다. 또는사전조건을정의합니다. 모든사전조건이충족되기전까지데이터노드에 "READY" 가표시되지않습니다. 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 참조객체. 예 : "precondition": "ref":"mypreconditionid" 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 140

148 MySqlDataNode 선택필드설명슬롯유형 runson 활동또는명령을실행할전산리소스입니다. Amazon EC2 인스턴스또는 Amazon EMR 클러스터가이에해당합니다. 참조객체. 예 : "runson": "ref":"myresourceid" scheduletype 일정유형을사용하여파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 시계열스타일일정조정은각간격이종료될때인스턴스일정이지정되고 Cron 스타일일정조정은각간격이시작될때인스턴스일정이지정됩니다. 온디맨드일정을사용하면파이프라인을활성화될때한번씩실행할수있습니다. 이경우다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. 온디맨드일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 schuletype 이어야합니다. 온디맨드파이프라인을사용하려면이후실행할때마다 ActivatePipeline 작업을호출하면됩니다. 값은 cron, ondemand 및 timeseries 입니다. 열거 schemaname 테이블을보유하는스키마의이름 selectquery 테이블에서데이터를가져올 SQL 문장입니다. workergroup 작업자그룹입니다. 이것은작업라우팅에사용됩니다. workergroup 이있을때 runson 값을제공하면 workergroup 이무시됩니다. 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace 이객체의실행이완료된시간입니다. DateTime 141

149 MySqlDataNode 실행시간필드설명슬롯유형 EMR 기반활동시도시에만사용할수있는하둡작업로그 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간. 객체의일정시작시간. 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 참고항목 S3DataNode (p. 147) 142

150 RedshiftDataNode RedshiftDataNode Amazon Redshift 을사용하여데이터노드를정의합니다. RedshiftDataNode 는파이프라인에서사용하는데이터베이스내의데이터테이블과같은데이터속성을나타냅니다. 예 다음은이객체유형의예제입니다. "id" : "MyRedshiftDataNode", "type" : "RedshiftDataNode", "database": "ref": "MyRedshiftDatabase" "tablename": "adevents", "schedule": "ref": "Hour" 구문 필수필드설명슬롯유형 데이터베이스 테이블이상주하는데이터베이스. 참조객체. 예 : "database": "ref":"myredshiftdatabaseid" tablename Amazon Redshift 테이블의이름입니다. 이테이블은존재하지않은상태에서 createtablesql 을제공한경우에생성됩니다. 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면사용자가다른객체로일정참조를지정해야합니다. 사용자가객체에서일정을명확히설정하여 ( 예 : "schedule": "ref": "DefaultSchedule" 지정 ) 하여이요건을충족할수있습니다. 대부분의경우에서는모든객체가상속할수있도록일정참조를기본파이프라인객체에두는것이좋습니다. 또는파이프라인에일정트리가있는경우 ( 마스터일정안의일정 ) 사용자가일정참조가있는부모객체를생성할수있습니다. 선택형일정구성예제에대한자세한내용은 dp-object-schedule.html 단원을참조하십시오. 참조객체. 예 : "schedule": "ref":"myscheduleid" 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 기간 143

151 RedshiftDataNode 선택필드설명슬롯유형 createtablesql 데이터베이스에서테이블을생성하는 SQL 표현식입니다. 테이블이생성되는스키마를지정하는것이좋습니다 ( 예 : CREATE TABLE myschema.mytable (bestcolumn varchar(25) 기본키 distkey, numberofwins 정수 sortkey)). AWS Data Pipeline 은 tablename 로지정된테이블이 schemaname 필드로지정된스키마에없을경우 createtablesql 필드에서스크립트를실행합니다. 예를들어, schemaname 을 myschema 로지정했는데 createtablesql 필드에 myschema 가없는경우테이블이잘못된스키마에생성됩니다 ( 기본적으로 PUBLIC 에생성됨 ). 이것은 AWS Data Pipeline 이 CREATE TABLE 구문을분석하지않기때문에발생합니다. dependson 실행가능한다른객체의종속성을지정 참조객체. 예 : "dependson": "ref":"myactivityid" failureandrerunmode lateaftertimeout maxactiveinstances 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 열거 기간 정수 maximumretries 장애시재시도최대횟수. 정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" pipelineloguri precondition 파이프라인의로그를업로드할 S3 URI( 예 : 's3:// BucketName/Key/') 입니다. 또는사전조건을정의합니다. 모든사전조건이충족되기전까지데이터노드에 "READY" 가표시되지않습니다. 참조객체. 예 : "precondition": "ref":"mypreconditionid" 144

152 RedshiftDataNode 선택필드설명슬롯유형 primarykeys reportprogresstimeout RedShiftCopyActivity 의대상테이블로 primarykey 를지정하지않을경우 mergekey 역할을하게될 primarykey 를사용하여칼럼목록을지정할수있습니다. 그러나 Amazon Redshift 테이블에 primarykey 가정의되어있으면이설정이기존키를다시정의합니다. 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 runson 활동또는명령을실행할전산리소스입니다. Amazon EC2 인스턴스또는 Amazon EMR 클러스터가이에해당합니다. 참조객체. 예 : "runson": "ref":"myresourceid" scheduletype schemaname workergroup 일정유형을사용하여파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 시계열스타일일정조정은각간격이종료될때인스턴스일정이지정되고 Cron 스타일일정조정은각간격이시작될때인스턴스일정이지정됩니다. 온디맨드일정을사용하면파이프라인을활성화될때한번씩실행할수있습니다. 이경우다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. 온디맨드일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 schuletype 이어야합니다. 온디맨드파이프라인을사용하려면이후실행할때마다 ActivatePipeline 작업을호출하면됩니다. 값은 cron, ondemand 및 timeseries 입니다. 이선택필드는 Amazon Redshift 테이블용스키마의이름을지정합니다. 지정되지않으면스키마이름이 PUBLIC 이되며, 이것은 Amazon Redshift 의기본스키마입니다. 자세한내용은 Amazon Redshift 데이터베이스개발자안내서를참조하십시오. 작업자그룹입니다. 이것은작업라우팅에사용됩니다. workergroup 이있을때 runson 값을제공하면 workergroup 이무시됩니다. 열거 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 입니다. 145

153 RedshiftDataNode 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace 이객체의실행이완료된시간입니다. DateTime EMR 기반활동시도시에만사용할수있는하둡작업로그 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간 객체의일정시작시간 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 ID. 146

154 S3DataNode 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. S3DataNode Amazon S3 를사용하여데이터노드를정의합니다. 기본적으로 S3DataNode 는서버측암호화를사용합니다. 이를비활성화하려면 s3encryptiontype 을 NONE 으로설정합니다. 예 Note S3DataNode 를 CopyActivity 에입력으로사용하는경우 CSV 및 TSV 데이터형식만지원됩니다. 다음은이객체유형의예제입니다. 이객체는동일한파이프라인정의파일에서정의하려는다른객체를참조합니다. CopyPeriod 는 Schedule 객체입니다. "id" : "OutputData", "type" : "S3DataNode", "schedule" : "ref" : "CopyPeriod" "filepath" : "s3://mybucket/#@scheduledstarttime.csv" 구문 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면사용자가다른객체로일정참조를지정해야합니다. 사용자가객체에서일정을명확히설정하여 ( 예 : "schedule": "ref": "DefaultSchedule" 지정 ) 하여이요건을충족할수있습니다. 대부분의경우에서는모든객체가상속할수있도록일정참조를기본파이프라인객체에두는것이좋습니다. 또는파이프라인에일정트리가있는경우 ( 마스터일정안의일정 ) 사용자가일정참조가있는부모객체를생성할수있습니다. 선택형일정구성예제에대한자세한내용은 dp-object-schedule.html 단원을참조하십시오. 참조객체. 예 : "schedule": "ref":"myscheduleid" 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 기간 147

155 S3DataNode 선택필드설명슬롯유형 압축 dataformat S3DataNode 가기술하는데이터의압축유형입니다. "none" 은압축되지않은것이며, "gzip" 은 gzip 알고리즘으로압축됩니다. 이필드는 Amazon Redshift 를사용할때와 S3DataNode 를 CopyActivity 와함께사용할때만지원됩니다. 이 S3DataNode 로기술된 ` 데이터의 DataFormat 입니다. 열거 참조객체. 예 : "dataformat": "ref":"mydataformatid" dependson 실행가능한다른객체의종속성을지정 참조객체. 예 : "dependson": "ref":"myactivityid" directorypath failureandrerunmode filepath lateaftertimeout manifestfilepath maxactiveinstances Amazon S3 디렉터리경로, URI: s3://mybucket/my-key-for-directory 입니다. filepath 또는 directorypath 값을제공해야합니다. 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. Amazon S3 의객체경로 URI 입니다 ( 예 : s3://mybucket/my-key-for-file). filepath 또는 directorypath 값을제공해야합니다. 이는폴더와파일이름을나타냅니다. 디렉토리에여러파일을담을수있도록 directorypath 값을사용합니다. 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. Amazon Redshift 에서지원하는형식의매니페스트파일에대한 Amazon S3 경로입니다. AWS Data Pipeline 은매니페스트파일을사용하여지정된 Amazon S3 파일을테이블로복사합니다. 이필드는 RedShiftCopyActivity 가 S3DataNode 를참조할때만유효합니다. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 열거기간정수 maximumretries 장애시재시도최대횟수정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" 148

156 S3DataNode 선택필드설명슬롯유형 pipelineloguri precondition reportprogresstimeout 파이프라인의로그를업로드할 S3 URI( 예 : 's3:// BucketName/Key/') 입니다. 또는사전조건을정의합니다. 모든사전조건이충족되기전까지데이터노드에 "READY" 가표시되지않습니다. 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 참조객체. 예 : "precondition": "ref":"mypreconditionid" 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 runson 활동또는명령을실행할전산리소스입니다. Amazon EC2 인스턴스또는 Amazon EMR 클러스터가이에해당합니다. 참조객체. 예 : "runson": "ref":"myresourceid" s3encryptiontype scheduletype workergroup Amazon S3 암호화유형을다시정의합니다. 그값은 SERVER_SIDE_ENCRYPTION 또는 NONE 입니다. 기본적으로서버측암호화가활성화되어있습니다. 일정유형을사용하여파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 시계열스타일일정조정은각간격이종료될때인스턴스일정이지정되고 Cron 스타일일정조정은각간격이시작될때인스턴스일정이지정됩니다. 온디맨드일정을사용하면파이프라인을활성화될때한번씩실행할수있습니다. 이경우다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. 온디맨드일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 schuletype 이어야합니다. 온디맨드파이프라인을사용하려면이후실행할때마다 ActivatePipeline 작업을호출하면됩니다. 값은 cron, ondemand 및 timeseries 입니다. 작업자그룹입니다. 이것은작업라우팅에사용됩니다. workergroup 이있을때 runson 값을제공하면 workergroup 이무시됩니다. 열거 열거 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 입니다. 149

157 S3DataNode 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace 이객체의실행이완료된시간입니다. DateTime EMR 기반활동시도시에만사용할수있는하둡작업로그 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간 객체의일정시작시간 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 ID 150

158 SqlDataNode 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 참고항목 MySqlDataNode (p. 139) SqlDataNode SQL 을사용하여데이터노드를정의합니다. 예 다음은이객체유형의예제입니다. 이객체는동일한파이프라인정의파일에서정의하려는다른두객체를참조합니다. CopyPeriod 는 Schedule 객체이고 Ready 는사전조건객체입니다. "id" : "Sql Table", "type" : "SqlDataNode", "schedule" : "ref" : "CopyPeriod" "table" : "adevents", "database":"mydatabasename", "selectquery" : "select * from #table where eventtime >= '#@scheduledstarttime.format('yyyy-mm-dd HH:mm:ss')' and eventtime < '#@scheduledendtime.format('yyyy-mm-dd HH:mm:ss')'", "precondition" : "ref" : "Ready" 구문 필수필드설명슬롯유형 table SQL 데이터베이스에있는테이블의이름입니다. 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면사용자가다른객체로일정참조를지정해야합니다. 사용자가객체에서일정을명확히설정하여 ( 예 : "schedule": "ref": "DefaultSchedule" 지정 ) 하여이요건을충족할수있습니다. 대부분의경우에서는모든객체가상속할수있도록일정참조를기본파이프라인객체에두는것이좋습니다. 또는파이프라인에일정트리가있는경우 ( 마스터일정안의일정 ) 사용자가일정참조가있는부모객체를생성할수있습니다. 선택형일정구성예제에대한자세한내용은 dp-object-schedule.html 단원을참조하십시오. 참조객체. 예 : "schedule": "ref":"myscheduleid" 151

159 SqlDataNode 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout createtablesql 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. SQL 은테이블을생성할테이블표현식을생성합니다. 기간 데이터베이스 데이터베이스의이름입니다. 참조객체. 예 : "database": "ref":"mydatabaseid" dependson 실행가능한다른객체의종속성을지정합니다. 참조객체. 예 : "dependson": "ref":"myactivityid" failureandrerunmode 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 열거 insertquery 테이블에데이터를삽입할 SQL 문입니다. lateaftertimeout maxactiveinstances 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 기간 정수 maximumretries 장애시재시도최대횟수정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" pipelineloguri precondition reportprogresstimeout 파이프라인의로그를업로드할 S3 URI( 예 : 's3:// BucketName/Key/') 입니다. 또는사전조건을정의합니다. 모든사전조건이충족되기전까지데이터노드에 "READY" 가표시되지않습니다. 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 참조객체. 예 : "precondition": "ref":"mypreconditionid" 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 152

160 SqlDataNode 선택필드설명슬롯유형 runson 활동또는명령을실행할전산리소스입니다. Amazon EC2 인스턴스또는 Amazon EMR 클러스터가이에해당합니다. 참조객체. 예 : "runson": "ref":"myresourceid" scheduletype 일정유형을사용하여파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 시계열스타일일정조정은각간격이종료될때인스턴스일정이지정되고 Cron 스타일일정조정은각간격이시작될때인스턴스일정이지정됩니다. 온디맨드일정을사용하면파이프라인을활성화될때한번씩실행할수있습니다. 이경우다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. 온디맨드일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 schuletype 이어야합니다. 온디맨드파이프라인을사용하려면이후실행할때마다 ActivatePipeline 작업을호출하면됩니다. 값은 cron, ondemand 및 timeseries 입니다. 열거 schemaname 테이블을보유하는스키마의이름 selectquery 테이블에서데이터를가져올 SQL 문장입니다. workergroup 작업자그룹입니다. 이것은작업라우팅에사용됩니다. workergroup 이있을때 runson 값을제공하면 workergroup 이무시됩니다. 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace 이객체의실행이완료된시간입니다. DateTime 153

161 활동 실행시간필드설명슬롯유형 EMR 기반활동시도시에만사용할수있는하둡작업로그 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간 객체의일정시작시간 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 참고항목 S3DataNode (p. 147) 활동 다음은 AWS Data Pipeline 활동객체입니다. 154

162 CopyActivity 객체 CopyActivity (p. 155) EmrActivity (p. 159) HadoopActivity (p. 164) HiveActivity (p. 170) HiveCopyActivity (p. 175) PigActivity (p. 181) RedshiftCopyActivity (p. 189) ShellCommandActivity (p. 197) SqlActivity (p. 202) CopyActivity 한위치에서다른위치로의데이터를복사합니다. CopyActivity 는 S3DataNode (p. 147) 와 SqlDataNode (p. 151) 를입력및출력으로지원하며일반적으로복사작업은레코드별로수행됩니다. 그러나 CopyActivity 는다음조건이모두충족되면고성능 Amazon S3 에서 Amazon S3 로의복사를제공합니다. 입력및출력은 S3DataNodes 입니다. dataformat 필드는입력및출력이동일합니다. 압축된데이터파일을입력으로제공하고 S3 데이터노드에서 compression 필드를사용하여이를나타내지않으면 CopyActivity 가실패할수도있습니다. 이경우 CopyActivity 가레코드끝문자를제대로감지하지못하여작업이실패합니다. 또한 CopyActivity 는디렉터리에서다른디렉터리로의복사와디렉터리에파일복사를지원하지만, 파일을디렉터리에복사하는경우에는레코드별로복사합니다. 마지막으로 CopyActivity 는멀티파트 Amazon S3 파일복사를지원하지않습니다. CopyActivity 에는해당 CSV 지원에대한특정제한이있습니다. CopyActivity 의입력으로 S3DataNode 를사용하는경우에는 Amazon S3 입력및출력필드에서 CSV 데이터파일형식의 Unix/Linux 변형만사용할수있습니다. Unix/Linux 변형에는다음사항이필요합니다. 구분기호는 ","( 쉼표 ) 문자여야합니다. 레코드가따옴표로묶여있지않습니다. 기본이스케이프문자가 ASCII 값 92( 백슬래시 ) 입니다. 레코드의끝식별자가 ASCII 값 10( 또는 "\n") 입니다. 일반적으로 Windows 기반시스템에서는다른레코드끝문자시퀀스를사용하며캐리지리턴및줄바꿈을함께사용합니다 (ASCII 값 13, ASCII 값 10). CopyActivity 가레코드끝을제대로감지할수있도록추가메커니즘 ( 예 : 입력데이터를수정하기위한사전복사스크립트 ) 을사용하여이차이를수용해야합니다. 그렇지않으면 CopyActivity 가반복적으로실패합니다. CopyActivity 를사용하여 PostgreSQL RDS 객체에서 TSV 데이터형식으로내보낼때기본 NULL 문자는 \n 입니다. 예 다음은이객체유형의예제입니다. 이객체는동일한파이프라인정의파일에서정의하려는다른세객체를참조합니다. CopyPeriod 는 Schedule 객체이고 InputData 및 OutputData 는데이터노드객체입니다. 155

163 CopyActivity "id" : "S3ToS3Copy", "type" : "CopyActivity", "schedule" : "ref" : "CopyPeriod" "input" : "ref" : "InputData" "output" : "ref" : "OutputData" "runson" : "ref" : "MyEc2Resource" 구문 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면사용자가다른객체로일정참조를지정해야합니다. 사용자가객체에서일정을명확히설정하여 ( 예 : "schedule": "ref": "DefaultSchedule" 지정 ) 하여이요건을충족할수있습니다. 대부분의경우에서는모든객체가상속할수있도록일정참조를기본파이프라인객체에두는것이좋습니다. 또는파이프라인에일정트리가있는경우 ( 마스터일정안의일정 ) 사용자가일정참조가있는부모객체를생성할수있습니다. 선택형일정구성예제에대한자세한내용은 dp-object-schedule.html 단원을참조하십시오. 참조객체. 예 : "schedule": "ref":"myscheduleid" 필수그룹 ( 다음중하나를제공해야함 ) 설명 슬롯유형 runson 활동또는명령을실행할전산리소스입니다. Amazon EC2 인스턴스또는 Amazon EMR 클러스터가이에해당합니다. 참조객체. 예 : "runson": "ref":"myresourceid" workergroup 작업자그룹입니다. 이것은작업라우팅에사용됩니다. workergroup 이있을때 runson 값을제공하면 workergroup 이무시됩니다. 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 기간 dependson 실행가능한다른객체의종속성을지정합니다. 참조객체. 예 : "dependson": "ref":"myactivityid" failureandrerunmode 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 열거 입력 입력데이터소스입니다. 참조객체, 예 : "input": "ref":"mydatanodeid" 156

164 CopyActivity 선택필드설명슬롯유형 lateaftertimeout maxactiveinstances 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 기간 정수 maximumretries 장애시재시도최대횟수정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" 출력 출력데이터소스입니다. 참조객체, 예 : "output": "ref":"mydatanodeid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" pipelineloguri precondition reportprogresstimeout 파이프라인의로그를업로드할 S3 URI( 예 : 's3:// BucketName/Key/') 입니다. 또는사전조건을정의합니다. 모든사전조건이충족되기전까지데이터노드에 "READY" 가표시되지않습니다. 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 참조객체. 예 : "precondition": "ref":"mypreconditionid" 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 scheduletype 일정유형을사용하여파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 시계열스타일일정조정은각간격이종료될때인스턴스일정이지정되고 Cron 스타일일정조정은각간격이시작될때인스턴스일정이지정됩니다. 온디맨드일정을사용하면파이프라인을활성화될때한번씩실행할수있습니다. 이경우다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. 온디맨드일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 schuletype 이어야합니다. 온디맨드파이프라인을사용하려면이후실행할때마다 ActivatePipeline 작업을호출하면됩니다. 값은 cron, ondemand 및 timeseries 입니다. 열거 157

165 CopyActivity 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace 이객체의실행이완료된시간입니다. DateTime EMR 기반활동시도시에만사용할수있는하둡작업로그 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간 객체의일정시작시간 상태 객체와함께생성된파이프라인버전입니다. 158

166 EmrActivity 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 참고항목 ShellCommandActivity (p. 197) EmrActivity (p. 159) AWS Data Pipeline 을사용하여 Amazon S3 로 MySQL 데이터내보내기 (p. 102) EmrActivity EMR 클러스터를실행합니다. AWS Data Pipeline 은 Amazon EMR 대신에단계마다다른형식을사용합니다. 예를들어, AWS Data Pipeline 은 EmrActivity 단계필드에서 JAR 이름뒤에쉼표로구분된인수를사용합니다. 다음예제에서는해당 Amazon EMR 형식의단계에이어 AWS Data Pipeline 형식의단계를보여줍니다. s3://example-bucket/mywork.jar arg1 arg2 arg3 "s3://example-bucket/mywork.jar,arg1,arg2,arg3" 예제 다음은이객체유형의예제입니다. 이예제에서는이전버전의 Amazon EMR 을사용합니다. 사용중인 Amazon EMR 클러스터버전과비교하여이예제의정확성을확인합니다. 이객체는동일한파이프라인정의파일에서정의하려는다른세객체를참조합니다. MyEmrCluster 는 EmrCluster 객체이고 MyS3Input 및 MyS3Output 는 S3DataNode 객체입니다. Note 이예제에서는 step 필드를 Pig 스크립트, Hadoop 스트리밍클러스터, 파라미터를포함하는사용자지정 JAR 등원하는클러스터로바꿉니다. Hadoop 2.x(AMI 3.x) 159

167 EmrActivity "id" : "MyEmrActivity", "type" : "EmrActivity", "runson" : "ref" : "MyEmrCluster" "prestepcommand" : "scp remotefiles localfiles", "step" : ["s3://mybucket/mypath/mystep.jar,firstarg,secondarg,-files,s3://mybucket/ mypath/myfile.py,-input,s3://myinputbucket/path,-output,s3://myoutputbucket/path,- mapper,myfile.py,-reducer,reducername","s3://mybucket/mypath/myotherstep.jar,..."], "poststepcommand" : "scp localfiles remotefiles", "input" : "ref" : "MyS3Input" "output" : "ref" : "MyS3Output" Note 한단계에서애플리케이션에인수를전달하려면다음예제와같이스크립트의경로에리전을지정해야합니다. 또한전달하는인수를이스케이프해야합니다. 예를들어, script-runner.jar 를사용하여셸스크립트를실행하고인수를스크립트에전달하려면이를구분하는쉼표를이스케이프해야합니다. 다음은이를수행하는방법을설명하는단계슬롯입니다. "step" : "s3://eu-west-1.elasticmapreduce/libs/script-runner/scriptrunner.jar,s3://datapipeline/echo.sh,a\\\\,b\\\\,c" 구문 이단계에서는 script-runner.jar 를사용하여 echo.sh 셸스크립트를실행하고 a, b 및 c 를단일인수로스크립트에전달합니다. 첫번째이스케이프문자는결과인수에서제거되므로다시이스케이프해야할수도있습니다. 예를들어 JSON 에서 File\.gz 를인수로가졌다면 File\\ \\.gz 를사용하여이스케이프할수있습니다. 그러나첫번째이스케이프가삭제되었기때문에 File\\\\\\\\.gz 를사용해야합니다. 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면다른객체로일정참조를지정합니다. 사용자가객체에서일정을명확히설정하여 ( 예 : "schedule": "ref": "DefaultSchedule" 지정 ) 하여이요건을충족할수있습니다. 대부분의경우에서는모든객체가상속할수있도록일정참조를기본파이프라인객체에두는것이좋습니다. 또는파이프라인에일정트리가있는경우 ( 마스터일정안의일정 ) 사용자가일정참조가있는부모객체를생성할수있습니다. 선택형일정구성예제에대한자세한내용은 dpobject-schedule.html 단원을참조하십시오. 참조객체. 예 : "schedule": "ref":"myscheduleid" 필수그룹 ( 다음중하나를제공해야함 ) 설명 슬롯유형 runson 이작업이실행될 Amazon EMR 클러스터입니다. 참조객체. 예 : "runson": "ref":"myemrclusterid" workergroup 작업자그룹입니다. 이것은작업라우팅에사용됩니다. workergroup 이있을때 runson 값을제공하면 workergroup 이무시됩니다. 160

168 EmrActivity 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 기간 dependson 실행가능한다른객체의종속성을지정합니다. 참조객체. 예 : "dependson": "ref":"myactivityid" failureandrerunmode 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 열거 입력 입력데이터의위치입니다. 참조객체. 예 : "input": "ref":"mydatanodeid" lateaftertimeout maxactiveinstances 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 기간 정수 maximumretries 장애시재시도최대횟수. 정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체가성공하면실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" 출력 출력데이터의위치입니다. 참조객체. 예 : "output": "ref":"mydatanodeid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" pipelineloguri 파이프라인의로그를업로드할 Amazon S3 URI( 예 : 's3://bucketname/prefix/') 입니다. poststepcommand precondition prestepcommand 모든단계가끝난후에실행될셸스크립트입니다. 스크립트를여러개 ( 최대 255 개 ) 지정하려면 poststepcommand 필드를여러개추가합니다. 또는사전조건을정의합니다. 모든사전조건이충족되기전까지데이터노드에 "READY" 가표시되지않습니다. 임의단계가실행되기전에실행될셸스크립트입니다. 스크립트를여러개 ( 최대 255 개 ) 지정하려면 prestepcommand 필드를여러개추가합니다. 참조객체. 예 : "precondition": "ref":"mypreconditionid" 161

169 EmrActivity 선택필드설명슬롯유형 reportprogresstimeout 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 기간 resizeclusterbeforerunning 이활동을수행하기전에입력또는출력으로지정된 DynamoDB 테이블이포함되도록클러스터크기를조정합니다. Note 부울 해당 EmrActivity 가입력또는출력데이터노드로 DynamoDBDataNode 를사용하는경우 resizeclusterbeforerunning 을 TRUE 로설정하면 AWS Data Pipeline 이 m3.xlarge 인스턴스유형을사용하여시작합니다. 그러면해당인스턴스유형선택을 m3.xlarge 가덮어써서월요금이증가할수있습니다. resizeclustermaxinstances 크기조정알고리즘으로요청할수있는인스턴스의최대수에대한제한입니다. 정수 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 scheduletype 단계 일정유형을사용하여파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 값은 cron, ondemand 및 timeseries 입니다. timeseries 일정조정은각간격이종료될때인스턴스일정이지정됩니다. cron 일정조정은각간격이시작될때인스턴스일정이지정됩니다. ondemand 일정을사용하면활성화될때마다한번씩파이프라인을실행할수있습니다. 그러므로다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. ondemand 일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 scheduletype 이어야합니다. ondemand 파이프라인을사용하려면후속실행마다 ActivatePipeline 작업을호출합니다. 클러스터가실행할하나이상의단계입니다. 최대 255 개까지여러단계를지정하려면여러단계필드를추가합니다. JAR 이름뒤에쉼표로구분된인수를사용합니다. 예 : "s3://example-bucket/ MyWork.jar,arg1,arg2,arg3" 열거 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. DateTime 162

170 EmrActivity 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog EMR 활동을시도할때만사용할수있는 Amazon EMR 단계로그. errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace 이객체의실행이완료된시간입니다. DateTime EMR 기반활동시도시에만사용할수있는하둡작업로그 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간. 객체의일정시작시간. 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 163

171 HadoopActivity 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 참고항목 ShellCommandActivity (p. 197) CopyActivity (p. 155) EmrCluster (p. 212) HadoopActivity 클러스터에서 MapReduce 작업을실행합니다. 클러스터는 AWS Data Pipeline 으로관리되는 EMR 클러스터이거나 TaskRunner 를사용하는경우에는다른리소스일수있습니다. 병렬방식으로작업을실행하는경우 HadoopActivity 를사용하십시오. 이를통해 Hadoop 1 에서 MapReduce 리소스매니저또는 YARN 프레임워크의예약리소스를사용할수있습니다. Amazon EMR 단계작업을사용하여순차적으로작업을진행하려는경우에도 EmrActivity (p. 159) 를사용할수있습니다. 예제 AWS Data Pipeline 으로관리되는 EMR 클러스터를사용한 HadoopActivity 다음 HadoopActivity 객체는 EmrCluster 리소스를사용하여프로그램을실행합니다. "name": "MyHadoopActivity", "schedule": "ref": "ResourcePeriod" "runson": "ref": MyEmrCluster "type": "HadoopActivity", "preactivitytaskconfig":"ref":"pretaskscriptconfig "jaruri": "/home/hadoop/contrib/streaming/hadoop-streaming.jar", "argument": [ "-files", s3://elasticmapreduce/samples/wordcount/wordsplitter.py, "-mapper", "wordsplitter.py", "-reducer", "aggregate", "-input", "s3://elasticmapreduce/samples/wordcount/input/", "-output", s3://test-bucket/myhadoopactivity/#@pipelineid/#format(@scheduledstarttime,'yyyy- MM-dd')" ], "maximumretries": "0", "postactivitytaskconfig":"ref":"posttaskscriptconfig "hadoopqueue" : high 다음은 Hadoop 2 기반 AMI 용으로 YARN 에서 FairScheduler 및대기열을구성하는해당 MyEmrCluster 입니다. 164

172 HadoopActivity "id" : "MyEmrCluster", "type" : "EmrCluster", "hadoopschedulertype" : "PARALLEL_FAIR_SCHEDULING", amiversion : 3.7.0, "bootstrapaction" : ["s3://region.elasticmapreduce/bootstrapactions/configure-hadoop,-z,yarn.scheduler.capacity.root.queues=low \,high\,default,-z,yarn.scheduler.capacity.root.high.capacity=50,- z,yarn.scheduler.capacity.root.low.capacity=10,- z,yarn.scheduler.capacity.root.default.capacity=30 ] Hadoop 1 에서 FairScheduler 를구성하는데사용하는 EmrCluster 입니다. "id": "MyEmrCluster", "type": "EmrCluster", "hadoopschedulertype": "PARALLEL_FAIR_SCHEDULING", "amiversion": "2.4.8", "bootstrapaction": "s3://region.elasticmapreduce/bootstrap- actions/configure-hadoop,-m,mapred.queue.names=low\\\\,high\\\\,default,- m,mapred.fairscheduler.poolnameproperty=mapred.job.queue.name" 다음 EmrCluster 는 Hadoop 2 기반 AMI 의 CapacityScheduler 를구성합니다. "id": "MyEmrCluster", "type": "EmrCluster", "hadoopschedulertype": "PARALLEL_CAPACITY_SCHEDULING", "amiversion": "3.7.0", "bootstrapaction": "s3://region.elasticmapreduce/bootstrapactions/configure-hadoop,-z,yarn.scheduler.capacity.root.queues=low \\\\,high,-z,yarn.scheduler.capacity.root.high.capacity=40,- z,yarn.scheduler.capacity.root.low.capacity=60" 기존 EMR 클러스터를사용한 HadoopActivity 이예제에서는 workergroups 및 TaskRunner 를사용하여기존 EMR 클러스터에서프로그램을실행합니다. 파이프라인정의는 HadoopActivity 를사용하여다음을수행합니다. myworkergroup 리소스에서만 MapReduce 프로그램을실행합니다. 작업자그룹에대한정보는 Task Runner 를사용하여기존리소스에서작업실행 (p. 273) 를참조하십시오. preactivitytaskconfig 및 postactivitytaskconfig 를실행합니다. "objects": [ "argument": [ "-files", "s3://elasticmapreduce/samples/wordcount/wordsplitter.py", "-mapper", "wordsplitter.py", "-reducer", "aggregate", "-input", "s3://elasticmapreduce/samples/wordcount/input/", "-output", 165

173 HadoopActivity ], "id": "MyHadoopActivity", "jaruri": "/home/hadoop/contrib/streaming/hadoop-streaming.jar", "name": "MyHadoopActivity", "type": "HadoopActivity" "id": "SchedulePeriod", "startdatetime": "start_datetime", "name": "SchedulePeriod", "period": "1 day", "type": "Schedule", "enddatetime": "end_datetime" "id": "ShellScriptConfig", "scripturi": "s3://test-bucket/scripts/pretaskscript.sh", "name": "pretaskscriptconfig", "scriptargument": [ "test", "argument" ], "type": "ShellScriptConfig" "id": "ShellScriptConfig", "scripturi": "s3://test-bucket/scripts/posttaskscript.sh", "name": "posttaskscriptconfig", "scriptargument": [ "test", "argument" ], "type": "ShellScriptConfig" "id": "Default", "scheduletype": "cron", "schedule": "ref": "SchedulePeriod" "name": "Default", "pipelineloguri": "s3://test-bucket/logs/ t18:02:00.343z642f3fe415", "maximumretries": "0", "workergroup": "myworkergroup", "preactivitytaskconfig": "ref": "pretaskscriptconfig" "postactivitytaskconfig": "ref": "posttaskscriptconfig" ] 구문 필수필드설명슬롯유형 jaruri Amazon S3 또는클러스터의로컬파일시스템에서 HadoopActivity 와함께실행될 JAR 의위치입니다. 166

174 HadoopActivity 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면사용자가다른객체로일정참조를지정해야합니다. 사용자가객체에서일정을명확히설정하여 ( 예 : "schedule": "ref": "DefaultSchedule" 지정 ) 하여이요건을충족할수있습니다. 대부분의경우에서는모든객체가상속할수있도록일정참조를기본파이프라인객체에두는것이좋습니다. 또는파이프라인에일정트리가있는경우 ( 마스터일정안의일정 ) 사용자가일정참조가있는부모객체를생성할수있습니다. 선택형일정구성예제에대한자세한내용은 dp-object-schedule.html 단원을참조하십시오. 참조객체. 예 : "schedule": "ref":"myscheduleid" 필수그룹 ( 다음중하나를제공해야함 ) 설명 슬롯유형 runson 이작업이실행될 EMR 클러스터입니다. 참조객체. 예 : "runson": "ref":"myemrclusterid" workergroup 작업자그룹입니다. 이것은작업라우팅에사용됩니다. workergroup 이있을때 runson 값을제공하면 workergroup 이무시됩니다. 선택필드설명슬롯유형 인수 JAR 에전달할인수입니다. attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 기간 dependson 실행가능한다른객체의종속성을지정합니다. 참조객체. 예 : "dependson": "ref":"myactivityid" failureandrerunmode hadoopqueue 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 활동이제출될 Hadoop 스케줄러대기열이름입니다. 열거 입력 입력데이터의위치입니다. 참조객체, 예 : "input": "ref":"mydatanodeid" lateaftertimeout mainclass 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. HadoopActivity 과함께실행하는 JAR 의주클래스입니다. 기간 167

175 HadoopActivity 선택필드설명슬롯유형 maxactiveinstances 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 정수 maximumretries 장애시재시도최대횟수정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" 출력 출력데이터의위치입니다. 참조객체, 예 : "output": "ref":"mydatanodeid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" pipelineloguri postactivitytaskconfig preactivitytaskconfig precondition reportprogresstimeout 파이프라인의로그를업로드할 S3 URI( 예 : 's3:// BucketName/Key/') 입니다. 실행할사후활동구성스크립트입니다. 이것은 Amazon S3 의셸스크립트 URI 와인수목록으로구성됩니다. 실행할사전활동구성스크립트입니다. 이것은 Amazon S3 의셸스크립트 URI 와인수목록으로구성됩니다. 또는사전조건을정의합니다. 모든사전조건이충족되기전까지데이터노드에 "READY" 가표시되지않습니다. 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 참조객체. 예 : "postactivitytaskconfig": "ref":"myshellscriptconfigid" 참조객체. 예 : "preactivitytaskconfig": "ref":"myshellscriptconfigid" 참조객체. 예 : "precondition": "ref":"mypreconditionid" 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 168

176 HadoopActivity 선택필드설명슬롯유형 scheduletype 일정유형을사용하여파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 시계열스타일일정조정은각간격이종료될때인스턴스일정이지정되고 Cron 스타일일정조정은각간격이시작될때인스턴스일정이지정됩니다. 온디맨드일정을사용하면파이프라인을활성화될때한번씩실행할수있습니다. 이경우다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. 온디맨드일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 schuletype 이어야합니다. 온디맨드파이프라인을사용하려면이후실행할때마다 ActivatePipeline 작업을호출하면됩니다. 값은 cron, ondemand 및 timeseries 입니다. 열거 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace 이객체의실행이완료된시간입니다. DateTime EMR 기반활동시도시에만사용할수있는하둡작업로그 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime 169

177 HiveActivity 실행시간필드설명슬롯유형 hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간 객체의일정시작시간 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 참고항목 ShellCommandActivity (p. 197) CopyActivity (p. 155) EmrCluster (p. 212) HiveActivity EMR 클러스터에서 Hive 쿼리를실행합니다. HiveActivity 를사용하면 Amazon EMR 활동을보다쉽게설정하고 Amazon S3 또는 Amazon RDS 에서제공되는입력데이터를기반으로 Hive 테이블을자동으로생성할수있습니다. 소스데이터에서실행할 HiveQL 만지정하면됩니다. AWS Data Pipeline 에서는 HiveActivity 객체의입력필드를기반으로 $input1 $input2 등으로 Hive 테이블을자동으로생성합니다. Amazon S3 입력의경우 dataformat 필드를사용하여 Hive 열이름을생성합니다. MySQL(Amazon RDS) 입력의경우 SQL 쿼리의열이름을사용하여 Hive 열이름을생성합니다. 170

178 HiveActivity 예 Note 이활동은 Hive CSV Serde 를사용합니다. 다음은이객체유형의예제입니다. 이객체는동일한파이프라인정의파일에서정의하는다른세객체를참조합니다. MySchedule 는 Schedule 객체이고 MyS3Input 및 MyS3Output 는데이터노드객체입니다. "name" : "ProcessLogData", "id" : "MyHiveActivity", "type" : "HiveActivity", "schedule" : "ref": "MySchedule" "hivescript" : "INSERT OVERWRITE TABLE $output1 select host,user,time,request,status,size from $input1;", "input" : "ref": "MyS3Input" "output" : "ref": "MyS3Output" "runson" : "ref": "MyEmrCluster" 구문 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면다른객체로일정참조를지정합니다. 사용자가객체에서일정을명확히설정하여 ( 예 : "schedule": "ref": "DefaultSchedule" 지정 ) 하여이요건을충족할수있습니다. 대부분의경우에서는모든객체가상속할수있도록일정참조를기본파이프라인객체에두는것이좋습니다. 또는파이프라인에일정트리가있는경우 ( 마스터일정안의일정 ) 사용자가일정참조가있는부모객체를생성할수있습니다. 선택형일정구성예제에대한자세한내용은 dp-objectschedule.html 단원을참조하십시오. 참조객체. 예 : "schedule": "ref":"myscheduleid" 필수그룹 ( 다음중하나를제공해야함 ) 설명 슬롯유형 hivescript 실행할 Hive 스크립트입니다. scripturi 실행할 Hive 스크립트의위치입니다 ( 예 : s3:// scriptlocation). 필수그룹설명슬롯유형 runson 이 HiveActivity가실행될 EMR 클러스터입니다. 참조객체. 예 : "runson": "ref":"myemrclusterid" workergroup 작업자그룹입니다. 이것은작업라우팅에사용됩니다. workergroup 이있을때 runson 값을제공하면 workergroup 이무시됩니다. 171

179 HiveActivity 필수그룹설명슬롯유형 입력 입력데이터소스입니다. 참조객체. 예 : "input": "ref":"mydatanodeid" 출력 출력데이터소스입니다. 참조객체. 예 : "output": "ref":"mydatanodeid" 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 기간 dependson 실행가능한다른객체의종속성을지정합니다. 참조객체. 예 : "dependson": "ref":"myactivityid" failureandrerunmode hadoopqueue lateaftertimeout maxactiveinstances 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 작업이제출될 Hadoop 스케줄러대기열이름입니다. 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 열거기간정수 maximumretries 장애시재시도최대횟수. 정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" pipelineloguri postactivitytaskconfig 파이프라인의로그를업로드할 S3 URI( 예 : 's3:// BucketName/Key/') 입니다. 실행할사후활동구성스크립트입니다. 이것은 Amazon S3 의셸스크립트 URI 와인수목록으로구성됩니다. 참조객체. 예 : "postactivitytaskconfig": "ref":"myshellscriptconfigid" 172

180 HiveActivity 선택필드설명슬롯유형 preactivitytaskconfig precondition reportprogresstimeout 실행할사전활동구성스크립트입니다. 이것은 Amazon S3 의셸스크립트 URI 와인수목록으로구성됩니다. 또는사전조건을정의합니다. 모든사전조건이충족되기전까지데이터노드에 "READY" 가표시되지않습니다. 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 참조객체. 예 : "preactivitytaskconfig": "ref":"myshellscriptconfigid" 참조객체. 예 : "precondition": "ref":"mypreconditionid" 기간 resizeclusterbeforerunning 이활동을수행하기전에입력또는출력으로지정된 DynamoDB 데이터노드가포함되도록클러스터크기를조정합니다. Note 부울 활동이입력또는출력데이터노드로 DynamoDBDataNode 를사용하는경우 resizeclusterbeforerunning 을 TRUE 로설정하면 AWS Data Pipeline 이 m3.xlarge 인스턴스유형을사용하여시작합니다. 그러면해당인스턴스유형선택을 m3.xlarge 가덮어써서월요금이증가할수있습니다. resizeclustermaxinstances 크기조정알고리즘으로요청할수있는인스턴스의최대수에대한제한입니다. 정수 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 scheduletype 일정유형을사용하여파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 시계열스타일일정조정은각간격이종료될때인스턴스일정이지정되고 Cron 스타일일정조정은각간격이시작될때인스턴스일정이지정됩니다. 온디맨드일정을사용하면파이프라인을활성화될때한번씩실행할수있습니다. 이경우다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. 온디맨드일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 schuletype 이어야합니다. 온디맨드파이프라인을사용하려면이후실행할때마다 ActivatePipeline 작업을호출하면됩니다. 값은 cron, ondemand 및 timeseries 입니다. 열거 173

181 HiveActivity 선택필드설명슬롯유형 scriptvariable 스크립트실행중에 Hive로전달할 Amazon EMR의스크립트변수를지정합니다. 예를들어 SAMPLE=s3:// elasticmapreduce/samples/hive-ads 및 MM-dd')% 예제스크립트변수는 SAMPLE 및 FILTER_DATE 변수를 Hive에전달합니다. 이필드는여러개의값을허용하며 script 필드및 scripturi 필드와연동합니다. 또한 scriptvariable은스테이지가 true로설정되든 false로설정되든상관없이작동합니다. 이필드는특히 AWS Data Pipeline 표현식과함수를사용하여 Hive로동적값을전송할때유용합니다. stage 스크립트실행이전또는이후의스테이징활성화여부를결정합니다. Hive 11 에는허용되지않으므로 Amazon EMR AMI 버전 이상을사용해야합니다. 부울 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog EMR 활동을시도할때만사용할수있는 Amazon EMR 단계로그. errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace 이객체의실행이완료된시간입니다. DateTime EMR 기반활동시도시에만사용할수있는하둡작업로그 종료상태에도달한마지막인스턴스객체의 ID입니다. 174

182 HiveCopyActivity 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간. 객체의일정시작시간. 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 참고항목 ShellCommandActivity (p. 197) EmrActivity (p. 159) HiveCopyActivity EMR 클러스터에서 Hive 쿼리를실행합니다. HiveCopyActivity 를사용하면 DynamoDB 테이블사이에서데이터를보다쉽게복사할수있습니다. HiveCopyActivity 는 HiveQL 문을사용하여열및행수준에서 DynamoDB 의입력데이터를필터링합니다. 175

183 HiveCopyActivity 예 다음예제는데이터를필터링하는동안타임스탬프를기반으로 HiveCopyActivity 및 DynamoDBExportDataFormat 을사용하여한 DynamoDBDataNode 에서다른로데이터를복사하는방법을보여줍니다. "objects": [ "id" : "DataFormat.1", "name" : "DataFormat.1", "type" : "DynamoDBExportDataFormat", "column" : "timestamp BIGINT" "id" : "DataFormat.2", "name" : "DataFormat.2", "type" : "DynamoDBExportDataFormat" "id" : "DynamoDBDataNode.1", "name" : "DynamoDBDataNode.1", "type" : "DynamoDBDataNode", "tablename" : "item_mapped_table_restore_temp", "schedule" : "ref" : "ResourcePeriod" "dataformat" : "ref" : "DataFormat.1" "id" : "DynamoDBDataNode.2", "name" : "DynamoDBDataNode.2", "type" : "DynamoDBDataNode", "tablename" : "restore_table", "region" : "us_west_1", "schedule" : "ref" : "ResourcePeriod" "dataformat" : "ref" : "DataFormat.2" "id" : "EmrCluster.1", "name" : "EmrCluster.1", "type" : "EmrCluster", "schedule" : "ref" : "ResourcePeriod" "masterinstancetype" : "m1.xlarge", "coreinstancecount" : "4" "id" : "HiveTransform.1", "name" : "Hive Copy Transform.1", "type" : "HiveCopyActivity", "input" : "ref" : "DynamoDBDataNode.1" "output" : "ref" : "DynamoDBDataNode.2" "schedule" : "ref" : "ResourcePeriod" "runson" : "ref" : "EmrCluster.1" "filtersql" : "`timestamp` > unix_timestamp(\"#@scheduledstarttime\", \"yyyy-mmdd't'hh:mm:ss\")" "id" : "ResourcePeriod", "name" : "ResourcePeriod", "type" : "Schedule", "period" : "1 Hour", "startdatetime" : " T00:00:00", "enddatetime" : " T01:00:00" ] 176

184 HiveCopyActivity 구문 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면사용자가다른객체로일정참조를지정해야합니다. 사용자가객체에서일정을명확히설정하여 ( 예 : "schedule": "ref": "DefaultSchedule" 지정 ) 하여이요건을충족할수있습니다. 대부분의경우에서는모든객체가상속할수있도록일정참조를기본파이프라인객체에두는것이좋습니다. 또는파이프라인에일정트리가있는경우 ( 마스터일정안의일정 ) 사용자가일정참조가있는부모객체를생성할수있습니다. 선택형일정구성예제에대한자세한내용은 dp-object-schedule.html 단원을참조하십시오. 참조객체. 예 : "schedule": "ref":"myscheduleid" 필수그룹 ( 다음중하나를제공해야함 ) 설명 슬롯유형 runson 실행할클러스터를지정합니다. 참조객체. 예 : "runson": "ref":"myresourceid" workergroup 작업자그룹입니다. 이것은작업라우팅에사용됩니다. workergroup 이있을때 runson 값을제공하면 workergroup 이무시됩니다. 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고한상태입니다. attempttimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 기간 dependson 실행가능한다른객체의종속성을지정합니다. 참조객체. 예 : "dependson": "ref":"myactivityid" failureandrerunmode filtersql 입력 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 복사할 DynamoDB 또는 Amazon S3 데이터의하위집합을필터링하는 Hive SQL 문장의일부입니다. 필터는조건자만포함해야하며, WHERE 절로시작하면안됩니다. 그이유는 AWS Data Pipeline 이자동으로추가하기때문입니다. 입력데이터소스입니다. 이값은 S3DataNode 또는 DynamoDBDataNode 여야합니다. DynamoDBNode 를사용하는경우 DynamoDBExportDataFormat 을지정합니다. 열거 참조객체, 예 : "input": "ref":"mydatanodeid" 177

185 HiveCopyActivity 선택필드설명슬롯유형 lateaftertimeout maxactiveinstances 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 기간 정수 maximumretries 장애시재시도최대횟수. 정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" 출력 출력데이터소스입니다. 입력이 S3DataNode 인경우이값은 DynamoDBDataNode 여야합니다. 그외의경우에는 S3DataNode 또는 DynamoDBDataNode 가될수있습니다. DynamoDBNode 를사용하는경우 DynamoDBExportDataFormat 을지정합니다. 참조객체, 예 : "output": "ref":"mydatanodeid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" pipelineloguri 파이프라인의로그를업로드할 Amazon S3 URI( 예 : 's3://bucketname/key/') 입니다. postactivitytaskconfig preactivitytaskconfig precondition reportprogresstimeout 실행할사후활동구성스크립트입니다. 이것은 Amazon S3 의셸스크립트 URI 와인수목록으로구성됩니다. 실행할사전활동구성스크립트입니다. 이것은 Amazon S3 의셸스크립트 URI 와인수목록으로구성됩니다. 또는사전조건을정의합니다. 모든사전조건이충족되기전까지데이터노드에 "READY" 가표시되지않습니다. 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 참조객체. 예 : "postactivitytaskconfig": "ref":"myshellscriptconfigid" 참조객체. 예 : "preactivitytaskconfig": "ref":"myshellscriptconfigid" 참조객체. 예 : "precondition": "ref":"mypreconditionid" 기간 178

186 HiveCopyActivity 선택필드설명슬롯유형 resizeclusterbeforerunning 이활동을수행하기전에입력또는출력으로지정된 DynamoDB 데이터노드가포함되도록클러스터크기를조정합니다. Note Boolean 활동이입력또는출력데이터노드로 DynamoDBDataNode 를사용하는경우 resizeclusterbeforerunning 을 TRUE 로설정하면 AWS Data Pipeline 이 m3.xlarge 인스턴스유형을사용하여시작합니다. 그러면해당인스턴스유형선택을 m3.xlarge 가덮어써서월요금이증가할수있습니다. resizeclustermaxinstances 크기조정알고리즘으로요청할수있는인스턴스의최대수에대한제한입니다. 정수 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 scheduletype 일정유형을사용하여파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 시계열스타일일정조정은각간격이종료될때인스턴스일정이지정되고 Cron 스타일일정조정은각간격이시작될때인스턴스일정이지정됩니다. 온디맨드일정을사용하면파이프라인을활성화될때한번씩실행할수있습니다. 이경우다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. 온디맨드일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 schuletype 이어야합니다. 온디맨드파이프라인을사용하려면이후실행할때마다 ActivatePipeline 작업을호출하면됩니다. 값은 cron, ondemand 및 timeseries 입니다. 열거 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog EMR 활동을시도할때만사용할수있는 Amazon EMR 단계로그. 179

187 HiveCopyActivity 실행시간필드설명슬롯유형 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace 이객체의실행이완료된시간입니다. DateTime EMR 기반활동시도시에만사용할수있는하둡작업로그 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간. 객체의일정시작시간. 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Object 를실행하는 Instance Objects 를야기합니다. 180

188 PigActivity 참고항목 ShellCommandActivity (p. 197) EmrActivity (p. 159) PigActivity PigActivity 는 ShellCommandActivity 또는 EmrActivity 를사용할필요없이 AWS Data Pipeline 에서 Pig 스크립트를기본으로지원합니다. 그밖에도 PigActivity 는데이터스테이징을지원합니다. 스테이지필드가 true 로설정되면 AWS Data Pipeline 에서는사용자의추가코드없이입력데이터가 Pig 의스키마로스테이징됩니다. 예 다음예제파이프라인은 PigActivity 를사용하는방법을보여줍니다. 이예제파이프라인은다음단계를수행합니다. MyPigActivity1 은 Amazon S3 에서데이터를로드하고몇개의데이터열을선택하여 Amazon S3 에업로드하는 Pig 스크립트를실행합니다. MyPigActivity2 는첫번째출력을로드하고데이터열몇개와데이터행 3 개를선택하여이를두번째출력으로 Amazon S3 에업로드합니다. MyPigActivity3 은두번째출력데이터를로드하고두개의데이터행과 " 다섯번째 " 라는이름의열만을 Amazon RDS 에삽입합니다. MyPigActivity4 는 Amazon RDS 데이터를로드하고데이터의첫번째행을선택하여 Amazon S3 에업로드합니다. "objects": [ "id": "MyInputData1", "schedule": "ref": "MyEmrResourcePeriod" "directorypath": "s3://example-bucket/pigtestinput", "name": "MyInputData1", "dataformat": "ref": "MyInputDataType1" "type": "S3DataNode" "id": "MyPigActivity4", "scheduletype": "CRON", "schedule": "ref": "MyEmrResourcePeriod" "input": "ref": "MyOutputData3" "pipelineloguri": "s3://example-bucket/path/", "name": "MyPigActivity4", "runson": "ref": "MyEmrResource" "type": "PigActivity", "dependson": "ref": "MyPigActivity3" 181

189 PigActivity "output": "ref": "MyOutputData4" "script": "B = LIMIT $input1 1; $output1 = FOREACH B GENERATE one;", "stage": "true" "id": "MyPigActivity3", "scheduletype": "CRON", "schedule": "ref": "MyEmrResourcePeriod" "input": "ref": "MyOutputData2" "pipelineloguri": "s3://example-bucket/path", "name": "MyPigActivity3", "runson": "ref": "MyEmrResource" "script": "B = LIMIT $input1 2; $output1 = FOREACH B GENERATE Fifth;", "type": "PigActivity", "dependson": "ref": "MyPigActivity2" "output": "ref": "MyOutputData3" "stage": "true" "id": "MyOutputData2", "schedule": "ref": "MyEmrResourcePeriod" "name": "MyOutputData2", "directorypath": "s3://example-bucket/pigactivityoutput2", "dataformat": "ref": "MyOutputDataType2" "type": "S3DataNode" "id": "MyOutputData1", "schedule": "ref": "MyEmrResourcePeriod" "name": "MyOutputData1", "directorypath": "s3://example-bucket/pigactivityoutput1", "dataformat": "ref": "MyOutputDataType1" "type": "S3DataNode" "id": "MyInputDataType1", "name": "MyInputDataType1", "column": [ "First STRING", "Second STRING", "Third STRING", "Fourth STRING", "Fifth STRING", "Sixth STRING", "Seventh STRING", 182

190 PigActivity "Eighth STRING", "Ninth STRING", "Tenth STRING" ], "inputregex": "^(\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S +) (\\\\S+) (\\\\S+)", "type": "RegEx" "id": "MyEmrResource", "region": "us-east-1", "schedule": "ref": "MyEmrResourcePeriod" "keypair": "example-keypair", "masterinstancetype": "m1.small", "enabledebugging": "true", "name": "MyEmrResource", "actionontaskfailure": "continue", "type": "EmrCluster" "id": "MyOutputDataType4", "name": "MyOutputDataType4", "column": "one STRING", "type": "CSV" "id": "MyOutputData4", "schedule": "ref": "MyEmrResourcePeriod" "directorypath": "s3://example-bucket/pigactivityoutput3", "name": "MyOutputData4", "dataformat": "ref": "MyOutputDataType4" "type": "S3DataNode" "id": "MyOutputDataType1", "name": "MyOutputDataType1", "column": [ "First STRING", "Second STRING", "Third STRING", "Fourth STRING", "Fifth STRING", "Sixth STRING", "Seventh STRING", "Eighth STRING" ], "columnseparator": "*", "type": "Custom" "id": "MyOutputData3", "username": " ", "schedule": "ref": "MyEmrResourcePeriod" "insertquery": "insert into #table (one) values (?)", "name": "MyOutputData3", "*password": " ", "runson": "ref": "MyEmrResource" 183

191 PigActivity "connectionstring": "jdbc:mysql://example-database-instance:3306/example-database", "selectquery": "select * from #table", "table": "example-table-name", "type": "MySqlDataNode" "id": "MyOutputDataType2", "name": "MyOutputDataType2", "column": [ "Third STRING", "Fourth STRING", "Fifth STRING", "Sixth STRING", "Seventh STRING", "Eighth STRING" ], "type": "TSV" "id": "MyPigActivity2", "scheduletype": "CRON", "schedule": "ref": "MyEmrResourcePeriod" "input": "ref": "MyOutputData1" "pipelineloguri": "s3://example-bucket/path", "name": "MyPigActivity2", "runson": "ref": "MyEmrResource" "dependson": "ref": "MyPigActivity1" "type": "PigActivity", "script": "B = LIMIT $input1 3; $output1 = FOREACH B GENERATE Third, Fourth, Fifth, Sixth, Seventh, Eighth;", "output": "ref": "MyOutputData2" "stage": "true" "id": "MyEmrResourcePeriod", "startdatetime": " T00:00:00", "name": "MyEmrResourcePeriod", "period": "1 day", "type": "Schedule", "enddatetime": " T00:00:00" "id": "MyPigActivity1", "scheduletype": "CRON", "schedule": "ref": "MyEmrResourcePeriod" "input": "ref": "MyInputData1" "pipelineloguri": "s3://example-bucket/path", "scripturi": "s3://example-bucket/script/pigtestscipt.q", "name": "MyPigActivity1", "runson": "ref": "MyEmrResource" 184

192 PigActivity ] "scriptvariable": [ "column1=first", "column2=second", "three=3" ], "type": "PigActivity", "output": "ref": "MyOutputData1" "stage": "true" pigtestscript.q 의내용은다음과같습니다. B = LIMIT $input1 $three; $output1 = FOREACH B GENERATE $column1, $column2, Third, Fourth, Fifth, Sixth, Seventh, Eighth; 구문 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면사용자가다른객체로일정참조를지정해야합니다. 사용자가객체에서일정을명확히설정하여 ( 예 : "schedule": "ref": "DefaultSchedule" 지정 ) 하여이요건을충족할수있습니다. 대부분의경우에서는모든객체가상속할수있도록일정참조를기본파이프라인객체에두는것이좋습니다. 또는파이프라인에일정트리가있는경우 ( 마스터일정안의일정 ) 사용자가일정참조가있는부모객체를생성할수있습니다. 선택형일정구성예제에대한자세한내용은 dp-object-schedule.html 단원을참조하십시오. 참조객체. 예 : "schedule": "ref":"myscheduleid" 필수그룹 ( 다음중하나를제공해야함 ) 설명 슬롯유형 script 실행할 Pig 스크립트입니다. scripturi 실행할 Pig 스크립트의위치입니다 ( 예 : s3:// scriptlocation). 필수그룹 ( 다음중하나를제공해야함 ) 설명 슬롯유형 runson 이 PigActivity가실행될 EMR 클러스터입니다. 참조객체. 예 : "runson": "ref":"myemrclusterid" workergroup 작업자그룹입니다. 이것은작업라우팅에사용됩니다. workergroup 이있을때 runson 값을제공하면 workergroup 이무시됩니다. 185

193 PigActivity 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고한상태입니다. attempttimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 기간 dependson 실행가능한다른객체의종속성을지정합니다. 참조객체. 예 : "dependson": "ref":"myactivityid" failureandrerunmode 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 열거 입력 입력데이터소스입니다. 참조객체. 예 : "input": "ref":"mydatanodeid" lateaftertimeout maxactiveinstances 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 기간 정수 maximumretries 장애시재시도최대횟수. 정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" 출력 출력데이터소스입니다. 참조객체. 예 : "output": "ref":"mydatanodeid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" pipelineloguri 파이프라인의로그를업로드할 Amazon S3 URI( 예 : 's3://bucketname/key/') 입니다. postactivitytaskconfig preactivitytaskconfig precondition 실행할사후활동구성스크립트입니다. 이것은 Amazon S33 의셸스크립트 URI 와인수목록으로구성됩니다. 실행할사전활동구성스크립트입니다. 이것은 Amazon S3 의셸스크립트 URI 와인수목록으로구성됩니다. 또는사전조건을정의합니다. 모든사전조건이충족되기전까지데이터노드에 "READY" 가표시되지않습니다. 참조객체. 예 : "postactivitytaskconfig": "ref":"myshellscriptconfigid" 참조객체. 예 : "preactivitytaskconfig": "ref":"myshellscriptconfigid" 참조객체. 예 : "precondition": "ref":"mypreconditionid" 186

194 PigActivity 선택필드설명슬롯유형 reportprogresstimeout 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 기간 resizeclusterbeforerunning 이활동을수행하기전에입력또는출력으로지정된 DynamoDB 데이터노드가포함되도록클러스터크기를조정합니다. Note Boolean 활동이입력또는출력데이터노드로 DynamoDBDataNode 를사용하는경우 resizeclusterbeforerunning 을 TRUE 로설정하면 AWS Data Pipeline 이 m3.xlarge 인스턴스유형을사용하여시작합니다. 그러면해당인스턴스유형선택을 m3.xlarge 가덮어써서월요금이증가할수있습니다. resizeclustermaxinstances 크기조정알고리즘으로요청할수있는인스턴스의최대수에대한제한입니다. 정수 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 scheduletype scriptvariable stage 일정유형을사용하여파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 시계열스타일일정조정은각간격이종료될때인스턴스일정이지정되고 Cron 스타일일정조정은각간격이시작될때인스턴스일정이지정됩니다. 온디맨드일정을사용하면파이프라인을활성화될때한번씩실행할수있습니다. 이경우다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. 온디맨드일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 schuletype 이어야합니다. 온디맨드파이프라인을사용하려면이후실행할때마다 ActivatePipeline 작업을호출하면됩니다. 값은 cron, ondemand 및 timeseries 입니다. Pig 스크립트에전달할인수입니다. scriptvariable 을 script 또는 scripturi 와함께사용할수있습니다. 스테이징활성화여부를결정하며, Pig 스크립트를사용하여 $INPUT1 및 $OUTPUT1 같은스테이징데이터테이블에액세스할수있습니다. 열거 부울 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. DateTime 187

195 PigActivity 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog EMR 활동을시도할때만사용할수있는 Amazon EMR 단계로그. errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace 이객체의실행이완료된시간입니다. DateTime EMR 기반활동시도시에만사용할수있는하둡작업로그 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간. 객체의일정시작시간. 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 188

196 RedshiftCopyActivity 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 참고항목 ShellCommandActivity (p. 197) EmrActivity (p. 159) RedshiftCopyActivity DynamoDB 또는 Amazon S3 에서 Amazon Redshift 로데이터를복사합니다. 데이터를기존테이블로로드하거나기존테이블에데이터를쉽게병합할수있습니다. 다음은 RedshiftCopyActivity 를사용할사용사례의개요입니다. 1. 먼저 AWS Data Pipeline 을사용하여 Amazon S3 에서데이터를스테이징합니다. 2. RedshiftCopyActivity 를사용하여 Amazon RDS 및 Amazon EMR 에서 Amazon Redshift 로데이터를이동합니다. 이렇게하면 Amazon Redshift 에데이터를로드하여데이터를분석할수있습니다. 3. SqlActivity (p. 202) 를사용하여 Amazon Redshift 에로드한데이터에대해 SQL 쿼리를수행합니다. 또한 RedshiftCopyActivity 는매니페스트파일을지원하므로 S3DataNode 작업을할수있습니다. 자세한내용은 S3DataNode (p. 147) 단원을참조하십시오. 예 다음은이객체유형의예제입니다. 이예제는형식변환을위해 commandoptions 에서 EMPTYASNULL 및 IGNOREBLANKLINES 특수변환파라미터를사용합니다. 자세한내용은 Amazon Redshift 데이터베이스개발자안내서의데이터변환파라미터를참조하십시오. "id" : "S3ToRedshiftCopyActivity", "type" : "RedshiftCopyActivity", "input" : "ref": "MyS3DataNode" "output" : "ref": "MyRedshiftDataNode" "insertmode" : "KEEP_EXISTING", "schedule" : "ref": "Hour" "runson" : "ref": "MyEc2Resource" "commandoptions": ["EMPTYASNULL", "IGNOREBLANKLINES"] 다음예제파이프라인정의는 APPEND 삽입모드를사용하는활동을보여줍니다. "objects": [ 189

197 RedshiftCopyActivity "id": "CSVId1", "name": "DefaultCSV1", "type": "CSV" "id": "RedshiftDatabaseId1", "databasename": "dbname", "username": "user", "name": "DefaultRedshiftDatabase1", "*password": "password", "type": "RedshiftDatabase", "clusterid": "redshiftclusterid" "id": "Default", "scheduletype": "timeseries", "failureandrerunmode": "CASCADE", "name": "Default", "role": "DataPipelineDefaultRole", "resourcerole": "DataPipelineDefaultResourceRole" "id": "RedshiftDataNodeId1", "schedule": "ref": "ScheduleId1" "tablename": "orders", "name": "DefaultRedshiftDataNode1", "createtablesql": "create table StructuredLogs (requestbegintime CHAR(30) PRIMARY KEY DISTKEY SORTKEY, requestendtime CHAR(30), hostname CHAR(100), requestdate varchar(20));", "type": "RedshiftDataNode", "database": "ref": "RedshiftDatabaseId1" "id": "Ec2ResourceId1", "schedule": "ref": "ScheduleId1" "securitygroups": "MySecurityGroup", "name": "DefaultEc2Resource1", "role": "DataPipelineDefaultRole", "loguri": "s3://mylogs", "resourcerole": "DataPipelineDefaultResourceRole", "type": "Ec2Resource" "id": "ScheduleId1", "startdatetime": "yyyy-mm-ddt00:00:00", "name": "DefaultSchedule1", "type": "Schedule", "period": "period", "enddatetime": "yyyy-mm-ddt00:00:00" "id": "S3DataNodeId1", "schedule": "ref": "ScheduleId1" "filepath": "s3://datapipeline-us-east-1/samples/hive-ads-samples.csv", "name": "DefaultS3DataNode1", "dataformat": "ref": "CSVId1" 190

198 RedshiftCopyActivity ] "type": "S3DataNode" "id": "RedshiftCopyActivityId1", "input": "ref": "S3DataNodeId1" "schedule": "ref": "ScheduleId1" "insertmode": "APPEND", "name": "DefaultRedshiftCopyActivity1", "runson": "ref": "Ec2ResourceId1" "type": "RedshiftCopyActivity", "output": "ref": "RedshiftDataNodeId1" APPEND 작업은기본키또는정렬키에관계없이테이블에항목을추가합니다. 예를들어다음테이블이있는경우동일한 ID 와사용자값으로레코드를추가할수있습니다. ID(PK) USER 1 aaa 2 bbb 동일한 ID 와사용자값으로레코드를추가할수있습니다. ID(PK) USER 1 aaa 2 bbb 1 aaa Note APPEND 작업이중단되었다가재시도되는경우, 결과재실행파이프라인이처음부터잠재적으로추가됩니다. 이로인해더많은중복이발생할수있으므로특히행수를계산하는논리가있는경우에는이동작을숙지하고있어야합니다. 자습서는에대한내용은 AWS Data Pipeline 을사용하여 Amazon Redshift 로데이터복사 (p. 112) 을참조하십시오. 구문 필수필드설명슬롯유형 insertmode 로드할데이터에있는행과겹치는대상테이블의기존데이터로 AWS Data Pipeline 이수행할작업을결정합니다. 유효값은 KEEP_EXISTING, OVERWRITE_EXISTING, TRUNCATE 및 APPEND 입니다. KEEP_EXISTING 은테이블에새행을추가하고, 기존행은그대로둡니다. 열거 191

199 RedshiftCopyActivity 필수필드설명슬롯유형 KEEP_EXISTING 과 OVERWRITE_EXISTING 은기본키, 정렬키및배포키를사용하여어느수신행이기존행과일치하는지식별합니다. Amazon Redshift 데이터베이스개발자안내서의새데이터업데이트및삽입을참조하십시오. TRUNCATE 는새데이터를기록하기전에대상테이블의데이터를모두삭제합니다. APPEND 는 Redshift 테이블끝에모든레코드를추가합니다. APPEND 는기본, 배포키또는정렬키를사용할필요가없어중복가능성이있는항목이추가될수있습니다. 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면다른객체로일정참조를지정합니다. "schedule": "ref":"myscheduleid" 와같은참조객체 대부분의경우, 모든객체가일정을상속할수있도록해당일정참조를기본파이프라인객체에두는것이좋습니다. 예를들어 "schedule": "ref": "DefaultSchedule" 을지정하여객체에서일정을명시적으로설정할수있습니다. 파이프라인의마스터일정에중첩된일정이포함된경우, 일정참조가있는부모객체를생성합니다. 선택형일정구성예제에대한자세한내용은일정을참조하십시오. 필수그룹 ( 다음중하나를제공해야함 ) runson workergroup 설명 활동또는명령을실행할전산리소스입니다. 예를들면 Amazon EC2 인스턴스또는 Amazon EMR 클러스터입니다. 작업자그룹입니다. 이것은작업라우팅에사용됩니다. workergroup 이있을때 runson 값을제공하면 workergroup 이무시됩니다. 슬롯유형 참조객체. 예 : "runson": "ref":"myresourceid" 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 기간 192

200 RedshiftCopyActivity 선택필드설명슬롯유형 commandoptions COPY 작업중에 Amazon Redshift 데이터노드로전달할파라미터를가져옵니다. 파라미터에대해서는 Amazon Redshift 데이터베이스개발자안내서의 COPY 를참조하십시오. COPY 는테이블을로드할때을대상열의데이터형식으로묵시적으로변환하려시도합니다. 자동으로이루어지는기본데이터변환외에도오류가수신되거나다른변환이필요한경우, 추가변환파라미터를지정할수있습니다. 자세한내용은 Amazon Redshift 데이터베이스개발자안내서의데이터변환파라미터를참조하십시오. 데이터형식이입력또는출력데이터노드와연결된경우에는제공된파라미터는무시됩니다. 복사작업에서는먼저 COPY 를사용하여스테이징테이블에데이터를삽입한다음 INSERT 명령을사용하여스테이징테이블의데이터를대상테이블로복사하기때문에테이블자동압축을활성화할수있는 COPY 명령과같은일부 COPY 파라미터는적용되지않습니다. 압축이필요할경우에는열인코딩세부정보를 CREATE TABLE 문에추가합니다. 또한 Amazon Redshift 클러스터에서데이터를언로드하고 Amazon S3 에서파일을생성해야하는경우, RedshiftCopyActivity 는 Amazon Redshift 의 UNLOAD 작업에의존합니다. 복사및언로드중에성능을개선하려면 UNLOAD 명령에서 PARALLEL OFF 파라미터를지정합니다. 파라미터에대해서는 Amazon Redshift 데이터베이스개발자안내서의 UNLOAD 를참조하십시오. dependson 실행가능한다른객체의종속성을지정합니다. 참조객체 : "dependson": "ref":"myactivityid" failureandrerunmode 입력 lateaftertimeout maxactiveinstances 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 입력데이터노드입니다. Amazon S3, DynamoDB 또는 Amazon Redshift 가데이터소스가될수있습니다. 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 열거 참조객체 : "input": "ref":"mydatanodeid" 기간 정수 maximumretries 장애시재시도최대횟수정수 onfail 현재객체장애시실행할작업입니다. 참조객체 : "onfail": "ref":"myactionid" 193

201 RedshiftCopyActivity 선택필드설명슬롯유형 onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체 : "onsuccess": "ref":"myactionid" 출력 출력데이터노드입니다. Amazon S3 또는 Amazon Redshift 가출력위치가될수있습니다. 참조객체 : "output": "ref":"mydatanodeid" parent 슬롯을상속할현재객체의부모입니다. 참조객체 : "parent": "ref":"mybaseobjectid" pipelineloguri precondition 대기열 reportprogresstimeout 파이프라인의로그를업로드할 S3 URI( 예 : 's3:// BucketName/Key/') 입니다. 또는사전조건을정의합니다. 모든사전조건이충족되기전까지데이터노드에 "READY" 가표시되지않습니다. Amazon Redshift 에서 query_group 설정에해당하며, 이것을사용하여대기열내위치에따라동시실행활동을할당하고우선순위를정할수있습니다. Amazon Redshift 는동시연결수를 15 로제한합니다. 자세한내용은 Amazon RDS 데이터베이스개발자안내서의대기열에쿼리할당을참조하십시오. 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 참조객체 : "precondition": "ref":"mypreconditionid" 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 194

202 RedshiftCopyActivity 선택필드설명슬롯유형 scheduletype transformsql 파이프라인에서객체에대한일정조정을지정할수있습니다. 값은 cron, ondemand 및 timeseries 입니다. timeseries 일정조정은각간격이종료될때인스턴스일정이지정됩니다. Cron 일정조정은각간격이시작될때인스턴스일정이지정됩니다. ondemand 일정을사용하면활성화될때마다한번씩파이프라인을실행할수있습니다. 이경우다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. ondemand 파이프라인을사용하려면후속실행마다 ActivatePipeline 작업을호출합니다. ondemand 일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 scheduletype 이어야합니다. 입력데이터를변환할때사용되는 SQL SELECT 표현식입니다. staging 이라는테이블에서 transformsql 표현식을실행합니다. DynamoDB 또는 Amazon S3 의데이터를복사하면 AWS Data Pipeline 이 " 스테이징 " 이라고하는테이블을생성하고, 처음에는여기에데이터를로드합니다. 이테이블의데이터는대상테이블을업데이트할때사용됩니다. transformsql 의출력스키마는최종대상테이블의스키마와일치해야합니다. transformsql 옵션을지정하는경우, 지정된 SQL 문에서두번째스테이징테이블이생성됩니다. 이후이두번째스테이징테이블은최종대상테이블에서업데이트됩니다. 열거 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 입니다. 195

203 RedshiftCopyActivity 객체실패가발생한종속체인에대한설명입니다. 참조객체 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace 이객체의실행이완료된시간입니다. DateTime EMR 기반활동시도시에만사용할수있는하둡작업로그 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간. 객체의일정시작시간. 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 ID. 196

204 ShellCommandActivity 객체의구입니다. 수명주기상객체의위치를나타냅니다. 예를들어구성요소객체가인스턴스객체를트리거하고, 인스턴스객체는시도객체를실행합니다. ShellCommandActivity 명령또는스크립트를실행합니다. ShellCommandActivity 를사용하여시계열또는 Cron 같은예약된작업을실행할수있습니다. stage 필드가참으로설정되고 S3DataNode 와함께사용되는경우 ShellCommandActivity 는데이터스테이징개념을지원합니다. 즉, Amazon S3 에서스테이지위치 ( 예 : Amazon EC2 또는로컬환경 ) 로데이터를이동하고스크립트및 ShellCommandActivity 를사용하여데이터에대한작업을수행한후이를다시 Amazon S3 로이동할수있습니다. 이경우셸명령이입력 S3DataNode 에연결되면셸스크립트는 ShellCommandActivity 입력필드를참조해 $INPUT1_STAGING_DIR $INPUT2_STAGING_DIR 및기타필드를사용하는데이터에서직접작동할수있습니다. 마찬가지로셸명령의출력을출력디렉터리에서스테이징하여 $OUTPUT1_STAGING_DIR $OUTPUT2_STAGING_DIR 등에의해참조되는 Amazon S3 에자동으로푸시할수있습니다. 이러한표현식을통해데이터변환논리에사용할셸명령에명령줄인수로전달할수있습니다. ShellCommandActivity 는 Linux 스타일의오류코드및을반환합니다. ShellCommandActivity 에서오류가발생하면반환된 error 는 0 이아닌값이됩니다. 예 다음은이객체유형의예제입니다. "id" : "CreateDirectory", "type" : "ShellCommandActivity", "command" : "mkdir new-directory" 구문 액체호출필드설명슬롯유형 schedule 이객체는 schedule 간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면다른객체로 schedule 참조를지정합니다. 참조객체. 예 : "schedule": "ref":"myscheduleid" 이요구사항을충족하려면, 예컨대 "schedule": "ref": "DefaultSchedule" 을지정하여객체에서 schedule 을명시적으로설정합니다. 대부분의경우에는모든객체가상속할수있도록 schedule 참조를기본파이프라인객체에두는것 197

205 ShellCommandActivity 액체호출필드설명슬롯유형 이좋습니다. 파이프라인이일정트리로구성된경우 ( 마스터일정안의일정 ) 일정참조가있는부모객체를생성합니다. 로드를분산시키기위해 AWS Data Pipeline 은일정보다약간앞서물리적객체를생성하지만일정에따라실행합니다. 선택형일정구성예제에대한자세한내용은 dpobject-schedule.html 단원을참조하십시오. 필수그룹 ( 다음중하나를제공해야함 ) 명령 scripturi 설명 실행할명령입니다. $ 을사용하여명령의파라미터를지정할위치파라미터와 scriptargument 를참조합니다. 이값및연결된파라미터는 Task Runner 를실행중인환경에서작동해야합니다. 파일을다운로드하여셸명령으로실행할 Amazon S3 URI 경로입니다. 단하나의 scripturi 또는 command 필드만지정합니다. scripturi 는파라미터를사용할수없으며, command 를사용합니다. 슬롯유형 필수그룹 ( 다음중하나를제공해야함 ) runson workergroup 설명 Amazon EC2 인스턴스또는 Amazon EMR 클러스터등, 활동이나명령을실행할전산리소스입니다. 작업라우팅에사용됩니다. workergroup 이있을때 runson 값을제공하면 workergroup 이무시됩니다. 슬롯유형 참조객체. 예 : "runson": "ref":"myresourceid" 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고한상태입니다. attempttimeout 원격작업완료의제한시간입니다. 이필드를설정하면지정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 기간 dependson 실행가능한다른객체의종속성을지정합니다. 참조객체. 예 : "dependson": "ref":"myactivityid" failureandrerunmode 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 열거 입력 입력데이터의위치입니다. 참조객체, 예 : "input": "ref":"mydatanodeid" 198

206 ShellCommandActivity 선택필드설명슬롯유형 lateaftertimeout maxactiveinstances 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 기간 정수 maximumretries 장애시재시도최대횟수. 정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" 출력 출력데이터의위치입니다. 참조객체, 예 : "output": "ref":"mydatanodeid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" pipelineloguri 파이프라인의로그를업로드할 Amazon S3 URI( 예 : 's3://bucketname/key/') 입니다. precondition reportprogresstimeout 또는사전조건을정의합니다. 모든사전조건이충족되기전까지데이터노드에 "READY" 가표시되지않습니다. 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이것이설정되면지정기간동안진행상황을보고하지않는원격활동은중단된것으로간주되어재시도될수있습니다. 참조객체. 예 : "precondition": "ref":"mypreconditionid" 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 199

207 ShellCommandActivity 선택필드설명슬롯유형 scheduletype 파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 값은 cron, ondemand 및 timeseries 입니다. timeseries 로설정하면각간격이종료될때인스턴스일정이지정됩니다. Cron 로설정하면각간격이시작될때인스턴스일정이지정됩니다. ondemand 로설정하면활성화될때마다한번씩파이프라인을실행할수있습니다. 이경우다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. ondemand 일정을사용하려면기본객체에서이것을파이프라인의객체에유일한 scheduletype 으로지정합니다. ondemand 파이프라인을사용하려면후속실행마다 ActivatePipeline 작업을호출합니다. 열거 scriptargument 명령으로지정된명령에전달할의 JSON 형식어레이입니다. 예를들어, 명령이 echo $1 $2인경우 scriptargument를 "param1", "param2" 로지정합니다. 여러인수와파라미터의경우, "scriptargument":"arg1","scriptargument":"param1","scriptargument":"a 같이 scriptargument를전달합니다. scriptargument는 command와함께사용해야하며 scripturi 절과함께사용하면오류가발생합니다. stage stderr stdout 스테이징활성화여부를결정하며, 셸명령을사용하여 $INPUT1_STAGING_DIR 및 $OUTPUT1_STAGING_DIR 같은스테이징데이터변수에액세스할수있습니다. 명령에서리디렉션된시스템오류메시지를수신하는경로입니다. runson 필드를사용할경우에는활동을실행할리소스가임시적이므로 Amazon S3 경로가되어야합니다. 그러나 workergroup 필드를지정할경우에는로컬파일경로가허용됩니다. 명령에서리디렉션된출력을수신하는 Amazon S3 경로입니다. runson 필드를사용할경우에는활동을실행할리소스가임시적이므로 Amazon S3 경로가되어야합니다. 그러나 workergroup 필드를지정할경우에는로컬파일경로가허용됩니다. 부울 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. DateTime 200

208 ShellCommandActivity 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패를유발한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog Amazon EMR 활동을시도할때만사용할수있는 Amazon EMR 단계로그. errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace 객체의실행이완료된시간입니다. DateTime Amazon EMR 기반활동시도시에만사용할수있는하둡작업로그입니다. 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간입니다. 객체의일정시작시간입니다. 상태 객체생성에사용된 AWS Data Pipeline 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 201

209 SqlActivity 이객체가속하는파이프라인의 ID 수명주기상객체의위치. 구성요소객체가인스턴스객체를트리거하고, 인스턴스객체는시도객체를실행합니다. 참고항목 CopyActivity (p. 155) EmrActivity (p. 159) SqlActivity 데이터베이스에서 SQL 쿼리 ( 스크립트 ) 를실행합니다. 예 다음은이객체유형의예제입니다. "id" : "MySqlActivity", "type" : "SqlActivity", "database" : "ref": "MyDatabaseID" "script" : "SQLQuery" "scripturi" : s3://scriptbucket/query.sql, "schedule" : "ref": "MyScheduleID" 구문 필수필드설명슬롯유형 데이터베이스 제공된 SQL 스크립트를실행할데이터베이스. 참조객체. 예 : "database": "ref":"mydatabaseid" 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면다른객체로일정참조를지정해야합니다. 예컨대 "schedule": "ref": "DefaultSchedule" 을지정하여객체에서일정을명시적으로설정할수있습니다. 대부분의경우에서는모든객체가상속할수있도록일정참조를기본파이프라인객체에두는것이좋습니다. 참조객체. 예 : "schedule": "ref":"myscheduleid" 202

210 SqlActivity 액체호출필드설명슬롯유형 파이프라인에마스터일정내에서중첩된일정트리가있는경우, 일정참조가있는부모객체를생성합니다. 선택형일정구성예제에대한자세한내용은 dp-object-schedule.html 단원을참조하십시오. 필수그룹 ( 다음중하나를제공해야함 ) script scripturi 설명 실행할 SQL 스크립트. script 또는 scripturi 를지정해야합니다. 스크립트가 Amazon S3 에저장되면, 해당스크립트는표현식으로평가되지않습니다. 스크립트가 Amazon S3 에저장되는경우에는 scriptargument 에대해복수값을지정하는것이도움이됩니다. 이활동에서실행할 SQL 스크립트의위치를지정하는 URI. 슬롯유형 필수그룹 ( 다음중하나를제공해야함 ) runson workergroup 설명 활동또는명령을실행할전산리소스입니다. 예를들면 Amazon EC2 인스턴스또는 Amazon EMR 클러스터입니다. 작업자그룹입니다. 이것은작업라우팅에사용됩니다. workergroup 이있을때 runson 값을제공하면 workergroup 이무시됩니다. 슬롯유형 참조객체. 예 : "runson": "ref":"myresourceid" 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 기간 dependson 실행가능한다른객체의종속성을지정합니다. 참조객체. 예 : "dependson": "ref":"myactivityid" failureandrerunmode 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 열거 입력 입력데이터의위치입니다. 참조객체, 예 : "input": "ref":"mydatanodeid" lateaftertimeout maxactiveinstances 객체실행이시작되어야하는예약된파이프라인시작후기간입니다. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 기간 정수 203

211 SqlActivity 선택필드설명슬롯유형 maximumretries 장애시재시도최대횟수정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 'lateaftertimeout' 에의해지정된파이프라인의예약된시작이후기간이내에객체가아직예약되지않았거나완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" 출력 출력데이터의위치입니다. 이는스크립트내에서의참조 ( 에 : #output.tablename) 및출력데이터노드에서의 'createtablesql' 설정에의한출력테이블생성목적에만유효합니다. SQL 쿼리의출력은출력데이터노드에기록되지않습니다. 참조객체, 예 : "output": "ref":"mydatanodeid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" pipelineloguri precondition 대기열 reportprogresstimeout 파이프라인의로그를업로드할 S3 URI( 예 : 's3:// BucketName/Key/') 입니다. 또는사전조건을정의합니다. 모든사전조건이충족되기전까지데이터노드에 "READY" 가표시되지않습니다. [Amazon Redshift 만해당 ] Amazon Redshift 에서쿼리그룹설정에해당하며, 이것을사용하여쿼리내위치에따라동시실행활동을할당하고우선순위를정할수있습니다. Amazon Redshift 는동시연결수를 15 로제한합니다. 자세한내용은 Amazon Redshift 데이터베이스개발자안내서의대기열에쿼리할당을참조하십시오. 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 참조객체. 예 : "precondition": "ref":"mypreconditionid" 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 204

212 SqlActivity 선택필드설명슬롯유형 scheduletype 일정유형을사용하여파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 값은 cron, ondemand 및 timeseries 입니다. timeseries 일정조정은각간격이종료될때인스턴스일정이지정됩니다. cron 일정조정은각간격이시작될때인스턴스일정이지정됩니다. ondemand 일정을사용하면활성화될때마다한번씩파이프라인을실행할수있습니다. 이경우다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. ondemand 일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 scheduletype 이어야합니다. ondemand 파이프라인을사용하려면후속실행마다 ActivatePipeline 작업을호출합니다. 열거 scriptargument 스크립트에사용되는변수의목록입니다. 아니면표현식을스크립트영역에직접입력할수도있습니다. 스크립트가 Amazon S3에저장되는경우에는 scriptargument 에대한복수값지정이도움이됩니다. 예 : #format(@scheduledstarttime, "YY-MM-DD HH:MM:SS"\n#format(plusPeriod(@scheduledStartTime, "1 day"), "YY-MM-DD HH:MM:SS" 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace 이객체가실패한경우의오류스택트레이스입니다. 205

213 리소스 이객체의실행이완료된시간입니다. DateTime EMR 기반활동시도시에만사용할수있는하둡작업로그 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간 객체의일정시작시간 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 리소스 다음은 AWS Data Pipeline 리소스객체입니다. 객체 Ec2Resource (p. 207) 206

214 Ec2Resource EmrCluster (p. 212) HttpProxy (p. 229) Ec2Resource 파이프라인활동에의해정의된작업을수행하는 Amazon EC2 인스턴스입니다. 인스턴스를지정하지않을경우 AWS Data Pipeline 이생성하는기본 Amazon EC2 인스턴스에대한자세한내용은 AWS 리전별기본 Amazon EC2 인스턴스 (p. 3) 단원을참조하십시오. 예제 EC2-Classic 다음예제객체는일부옵션필드가설정된 EC2-Classic 또는기본 VPC 에서 EC2 인스턴스를시작합니다. "id" : "MyEC2Resource", "type" : "Ec2Resource", "actionontaskfailure" : "terminate", "actiononresourcefailure" : "retryall", "maximumretries" : "1", "instancetype" : "m1.medium", "securitygroups" : [ "test-group", "default" ], "keypair" : "my-key-pair" EC2-VPC 다음예제객체는일부옵션필드가설정된기본이아닌 VPC 에서 EC2 인스턴스를시작합니다. "id" : "MyEC2Resource", "type" : "Ec2Resource", "actionontaskfailure" : "terminate", "actiononresourcefailure" : "retryall", "maximumretries" : "1", "instancetype" : "m1.medium", "securitygroupids" : [ "sg ", "sg " ], "subnetid": "subnet ", "associatepublicipaddress": "true", "keypair" : "my-key-pair" 구문 필수필드설명슬롯유형 resourcerole Amazon EC2 인스턴스가액세스할수있는리소스를제어하는 IAM 역할입니다. 207

215 Ec2Resource 필수필드설명슬롯유형 역할 AWS Data Pipeline 이 EC2 인스턴스를생성할때사용하는 IAM 역할입니다. 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면사용자가다른객체로일정참조를지정해야합니다. 사용자가객체에서일정을명확히설정하여 ( 예 : "schedule": "ref": "DefaultSchedule" 지정 ) 하여이요건을충족할수있습니다. 대부분의경우에서는모든객체가상속할수있도록일정참조를기본파이프라인객체에두는것이좋습니다. 또는파이프라인에일정트리가있는경우 ( 마스터일정안의일정 ) 사용자가일정참조가있는부모객체를생성할수있습니다. 선택형일정구성예제에대한자세한내용은 dp-object-schedule.html 단원을참조하십시오. 참조객체. 예 : "schedule": "ref":"myscheduleid" 선택필드설명슬롯유형 actiononresourcefailure 이리소스의리소스실패후취한조치입니다. 유효값은 "retryall" 과 "retrynone" 입니다. actionontaskfailure 이리소스의작업실패후취한조치입니다. 유효값은 "continue" 또는 "terminate" 입니다. associatepublicipaddress 인터페이스로퍼블릭 IP 주소를할당할지여부를나타냅니다. 인스턴스가 EC2-Classic 또는기본 VPC 에있는경우의기본값은 true 입니다. 그외의기본값은 false 입니다. 부울 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 기간 availabilityzone Amazon EC2 인스턴스를시작할가용영역입니다. failureandrerunmode httpproxy imageid 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 클라이언트가 AWS 서비스에연결할때사용할프록시호스트입니다. 인스턴스에사용할 AMI 의 ID 입니다. 기본적으로 AWS Data Pipeline 은 PV AMI 가상화유형을사용합니다. 사용되는특정 AMI ID 는다음과같이리전에기반합니다. us-east-1: ami-05355a6c us-west-1: ami-3ffed17a 열거 참조객체. 예 : "httpproxy": "ref":"myhttpproxyid" 208

216 Ec2Resource 선택필드 설명 슬롯유형 us-west-2: ami-0358ce33 eu-west-1: ami-c7c0d6b3 ap-southeast-1: ami-fade91a8 ap-southeast-2: ami-d16bfbeb ap-northeast-1: ami-39b23d38 sa-east-1: ami f eu-cental-1: ami-b43503a9 지정된 instancetype 가 PV AMI 를지원하지않을경우에는 (Amazon Linux AMI Instance Type Matrix 참조 ) HVM AMI 의 ID 를지정하십시오. 안그러면오류가발생합니다. AMI 유형에관한자세한내용은 Linux 인스턴스용 Amazon EC2 사용설명서의 Linux AMI 가상화유형및 Linux AMI 찾기를참조하십시오. inittimeout 리소스가시작되기전까지의대기시간입니다. 기간 instancecount 사용되지않음. 정수 instancetype 시작할 EC2 인스턴스의유형입니다. keypair lateaftertimeout maxactiveinstances 키페어이름. 키쌍을지정하지않고 EC2 인스턴스를시작하면인스턴스에로그온되지않습니다. 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 기간 정수 maximumretries 장애시최대재시도횟수. 정수 mininstancecount 사용되지않음. 정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체가성공하면실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" parent 슬롯을상속해올현재객체의상위객체입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" pipelineloguri 파이프라인의로그를업로드할 Amazon S3 URI( 예 : 's3://bucketname/key/') 입니다. 209

217 Ec2Resource 선택필드설명슬롯유형 region EC2 인스턴스가실행되어야할리전의코드입니다. 기본적으로인스턴스는파이프라인과동일한리전에서실행됩니다. 종속데이터세트와동일한리전에서인스턴스를실행할수있습니다. 열거 reportprogresstimeout 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 runasuser TaskRunner 를실행할사용자. runson 이객체에서는이필드가허용되지않습니다. 참조객체. 예 : "runson": "ref":"myresourceid" scheduletype securitygroupids securitygroups spotbidprice subnetid terminateafter 일정유형을사용하여파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 시계열스타일일정조정에서는인스턴스일정이각간격이종료될때로지정되고, Cron 스타일일정조정에서는인스턴스일정이각간격이시작될때로지정됩니다. 온디맨드일정을사용하면파이프라인을활성화될때한번씩실행할수있습니다. 그러므로다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. 온디맨드일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 schuletype 이어야합니다. 온디맨드파이프라인을사용하려면이후실행할때마다 ActivatePipeline 작업을호출하면됩니다. 값은 cron, ondemand 및 timeseries 입니다. 리소스풀의인스턴스에대해사용할하나이상의 Amazon EC2 보안그룹의 ID 입니다. 리소스풀의인스턴스에대해사용할하나이상의 Amazon EC2 보안그룹입니다. 스팟인스턴스의시간당최대금액 ( 달러 ) 이며, 0 초과 미만의십진수값입니다. 인스턴스를시작할 Amazon EC2 서브넷의 ID 입니다. 이숫자만큼의시간이지난뒤리소스를종료합니다. 열거기간 useondemandonlastattempt 스팟인스턴스를마지막으로요청할때스팟인스턴스가아니라온디맨드인스턴스를요청합니다. 이렇게하면이전의시도가모두실패했어도마지막시도가중단되지않습니다. 부울 workergroup 이객체에서는이필드가허용되지않습니다. 210

218 Ec2Resource 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog Amazon EMR 활동을시도할때만사용할수있는단계로그. errorid 이객체가실패한경우의오류 ID 입니다. errormessage 이객체가실패한경우의오류메시지입니다. errorstacktrace 이객체의실행이완료된시간입니다. DateTime Amazon EMR 활동을시도할때사용할수있는하둡작업로그. 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간 객체의일정시작시간 상태이객체의상태입니다. 211

219 EmrCluster 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 수명주기상객체의위치. 구성요소객체가인스턴스객체를트리거하고, 인스턴스객체는시도객체를실행합니다. EmrCluster Amazon EMR 클러스터의구성을나타냅니다. 이객체는 EmrActivity (p. 159) 를통해클러스터를시작합니다. 목차 예 (p. 213) 구문 (p. 222) 참고항목 (p. 229) 스케줄러 스케줄러는 Hadoop 클러스터에서리소스할당및작업우선순위를지정하는방법을제공합니다. 관리자또는사용자는사용자및애플리케이션의다양한클래스에대한스케줄러를선택할수있습니다. 스케줄러는대기열을사용하여사용자및애플리케이션에리소스를할당할수있습니다. 클러스터를생성할때이러한대기열을설정합니다. 그런다음특정작업유형및사용자에우선순위를설정할수있습니다. 이렇게하면클러스터리소스를효과적으로사용할수있으며둘이상의사용자가클러스터에작업을제출할수있습니다. 세가지유형의스케줄러를사용할수있습니다. FairScheduler 일정기간동안리소스를일정하게예약하는스케줄러입니다. CapacityScheduler 대기열을사용하여클러스터관리자가다양한우선순위및리소스할당대기열에사용자를할당할수있는스케줄러입니다. 기본스케줄러 사이트를구성할수있는클러스터에사용되는스케줄러입니다. Amazon EMR 2.x, 3.x vs. 4.x 플랫폼 AWS Data Pipeline 은해당 EmrCluster 객체에대해 releaselabel 필드의사용이필요한릴리스레이블 emr 또는그이상버전을기반으로하는 Amazon EMR 클러스터를지원합니다. 대신이전플랫폼인 AMI 릴리스에서는 amiversion 필드를사용합니다. 릴리스레이블을사용하여자체관리형 EmrCluster 객체를사용중인경우에는최신 Task Runner 를사용합니다. 작업실행기에대한정보는 Task Runner 작업 (p. 271) 를참조하십시오. 모든 Amazon EMR 구성분류에대한속성값을구성할수있습니다. 자세한내용은 Amazon EMR 릴리스안내서의애플리케이션구성, 그리고 the section called EmrConfiguration (p. 266) 및 the section called 속성 (p. 269) 객체참조를참조하십시오. 212

220 EmrCluster Amazon EMR 권한 사용자지정 IAM 역할을생성하는경우, 작업을수행하기위해클러스터에필요한최소권한을신중하게고려하십시오. Amazon S3 에있는파일또는 Amazon RDS, Amazon Redshift 또는 DynamoDB 에있는데이터등필수리소스에권한을부여해야합니다. visibletoallusers 를 false 로설정하려면역할에적절한해당권한이있어야합니다. DataPipelineDefaultRole 에는해당권한이없음을참조하십시오. EmrCluster 객체역할인 DataPipelineDefaultRole 역할및 DefaultDataPipelineResourceRole 의조합을제공하거나이를위해직접역할을생성해야합니다. 예 다음은이객체유형의예제입니다. 목차 hadoopversion 을사용하여 Amazon EMR 클러스터시작 (p. 213) 릴리스레이블이 emr-4.x 이상인 Amazon EMR 클러스터를시작합니다. (p. 213) Amazon EMR 클러스터에추가소프트웨어설치 (p. 214) 3.x 릴리스에서서버측암호화를비활성화 (p. 214) 4.x 릴리스에서서버측암호화를비활성화 (p. 215) Hadoop KMS ACL 을구성하고 HDFS 에서암호화영역생성 (p. 215) 사용자지정 IAM 역할을지정 (p. 216) 자바용 AWS SDK 에서 EmrCluster 리소스사용 (p. 217) 프라이빗서브넷에서 Amazon EMR 클러스터구성 (p. 218) 클러스터노드에 EBS 볼륨연결 (p. 220) hadoopversion 을사용하여 Amazon EMR 클러스터시작 Example 다음예제는 AMI 버전 1.0 및 Hadoop 을사용하여 Amazon EMR 클러스터를시작합니다. "id" : "MyEmrCluster", "type" : "EmrCluster", "hadoopversion" : "0.20", "keypair" : "my-key-pair", "masterinstancetype" : "m3.xlarge", "coreinstancetype" : "m3.xlarge", "coreinstancecount" : "10", "taskinstancetype" : "m3.xlarge", "taskinstancecount": "10", "bootstrapaction" : ["s3://region.elasticmapreduce/bootstrap-actions/configurehadoop,arg1,arg2,arg3","s3://region.elasticmapreduce/bootstrap-actions/configure-hadoop/ configure-other-stuff,arg1,arg2"] 릴리스레이블이 emr-4.x 이상인 Amazon EMR 클러스터를시작합니다. Example 다음예제는최신 releaselabel 필드를사용하여 Amazon EMR 클러스터를시작합니다. 213

221 EmrCluster "id" : "MyEmrCluster", "type" : "EmrCluster", "keypair" : "my-key-pair", "masterinstancetype" : "m3.xlarge", "coreinstancetype" : "m3.xlarge", "coreinstancecount" : "10", "taskinstancetype" : "m3.xlarge", "taskinstancecount": "10", "releaselabel": "emr-4.1.0", "applications": ["spark", "hive", "pig"], "configuration": "ref":"myconfiguration" Amazon EMR 클러스터에추가소프트웨어설치 Example EmrCluster 는 Amazon EMR 클러스터에타사소프트웨어를설치하는 supportedproducts 필드를제공합니다 ( 예 : MapR 과같은 Hadoop 의사용자지정배포설치 ). 타사소프트웨어의쉼표로분리된인수목록에대한읽기및실행을허용합니다. 다음예제는 EmrCluster 의 supportedproducts 필드를사용하여설치된 Karmasphere Analytics 로사용자지정 MapR M3 에디션클러스터를생성하고이클러스터에서 EmrActivity 객체를실행하는방법을보여줍니다. "id": "MyEmrActivity", "type": "EmrActivity", "schedule": "ref": "ResourcePeriod" "runson": "ref": "MyEmrCluster" "poststepcommand": "echo Ending job >> /mnt/var/log/stepcommand.txt", "prestepcommand": "echo Starting job > /mnt/var/log/stepcommand.txt", "step": "/home/hadoop/contrib/streaming/hadoop-streaming.jar,-input,s3n:// elasticmapreduce/samples/wordcount/input,-output, \ hdfs:///output32113/,-mapper,s3n://elasticmapreduce/samples/wordcount/ wordsplitter.py,-reducer,aggregate" "id": "MyEmrCluster", "type": "EmrCluster", "schedule": "ref": "ResourcePeriod" "supportedproducts": ["mapr,--edition,m3,--version,1.2,--key1,value1","karmasphereenterprise-utility"], "masterinstancetype": "m3.xlarge", "taskinstancetype": "m3.xlarge" 3.x 릴리스에서서버측암호화를비활성화 Example AWS Data Pipeline 에서생성한하둡버전 2.x 의 EmrCluster 작업은기본적으로서버측암호화를활성화합니다. 서버측암호화를비활성화하려면클러스터객체정의에서부트스트랩작업을지정해야합니다. 다음예제에서는서버측암호화가비활성화된 EmrCluster 활동을만듭니다. "id":"nosseemrcluster", "type":"emrcluster", "hadoopversion":"2.x", "keypair":"my-key-pair", "masterinstancetype":"m3.xlarge", "coreinstancetype":"m3.large", 214

222 EmrCluster "coreinstancecount":"10", "taskinstancetype":"m3.large", "taskinstancecount":"10", "bootstrapaction":["s3://region.elasticmapreduce/bootstrap-actions/configure-hadoop,-e, fs.s3.enableserversideencryption=false"] 4.x 릴리스에서서버측암호화를비활성화 Example EmrConfiguration 객체를사용하여서버측암호화를비활성화해야합니다. 다음예제에서는서버측암호화가비활성화된 EmrCluster 활동을만듭니다. "name": "ReleaseLabelCluster", "releaselabel": "emr-4.1.0", "applications": ["spark", "hive", "pig"], "id": "myresourceid", "type": "EmrCluster", "configuration": "ref": "disablesse" "name": "disablesse", "id": "disablesse", "type": "EmrConfiguration", "classification": "emrfs-site", "property": [ "ref": "enableserversideencryption" ] "name": "enableserversideencryption", "id": "enableserversideencryption", "type": "Property", "key": "fs.s3.enableserversideencryption", "value": "false" Hadoop KMS ACL 을구성하고 HDFS 에서암호화영역생성 Example 다음객체는 Hadoop KMS 에대한 ACL 을생성하고 HDFS 에서암호화영역과해당암호화키를생성합니다. "name": "kmsacls", "id": "kmsacls", "type": "EmrConfiguration", "classification": "hadoop-kms-acls", "property": [ "ref":"kmsblacklist" "ref":"kmsacl" ] "name": "hdfsencryptionzone", 215

223 EmrCluster "id": "hdfsencryptionzone", "type": "EmrConfiguration", "classification": "hdfs-encryption-zones", "property": [ "ref":"hdfspath1" "ref":"hdfspath2" ] "name": "kmsblacklist", "id": "kmsblacklist", "type": "Property", "key": "hadoop.kms.blacklist.create", "value": "foo,mybanneduser" "name": "kmsacl", "id": "kmsacl", "type": "Property", "key": "hadoop.kms.acl.rollover", "value": "myalloweduser" "name": "hdfspath1", "id": "hdfspath1", "type": "Property", "key": "/myhdfspath1", "value": "path1_key" "name": "hdfspath2", "id": "hdfspath2", "type": "Property", "key": "/myhdfspath2", "value": "path2_key" 사용자지정 IAM 역할을지정 Example 기본적으로 AWS Data Pipeline 은 Amazon EMR 서비스역할로 DataPipelineDefaultRole 과 Amazon EC2 인스턴스프로파일로 DataPipelineDefaultResourceRole 을전달하여사용자대신리소스를생성합니다. 혹은사용자지정 Amazon EMR 서비스역할과인스턴스프로파일을생성하여사용할수있습니다. AWS Data Pipeline 에는사용자지정역할을사용하여클러스터를생성할수있는충분한권한이있어야하며, AWS Data Pipeline 을신뢰할수있는앤터티로추가해야합니다. 다음예시객체는 Amazon EMR 클러스터에대한사용자지정역할을지정합니다. "id":"myemrcluster", "type":"emrcluster", "hadoopversion":"2.x", "keypair":"my-key-pair", "masterinstancetype":"m3.xlarge", "coreinstancetype":"m3.large", "coreinstancecount":"10", "taskinstancetype":"m3.large", "taskinstancecount":"10", "role":"emrservicerole", "resourcerole":"emrinstanceprofile" 216

224 EmrCluster 자바용 AWS SDK 에서 EmrCluster 리소스사용 Example 다음예제에서는 EmrCluster 및 EmrActivity 를사용하여 Amazon EMR 4.x 클러스터를생성해 Java SDK 를사용하는 Spark 단계를실행하는방법을알아봅니다. public class datapipelineemr4 public static void main(string[] args) AWSCredentials credentials = null; credentials = new ProfileCredentialsProvider("/path/to/ AwsCredentials.properties","default").getCredentials(); DataPipelineClient dp = new DataPipelineClient(credentials); CreatePipelineRequest createpipeline = new CreatePipelineRequest().withName("EMR4SDK").withUniqueId("unique"); CreatePipelineResult createpipelineresult = dp.createpipeline(createpipeline); String pipelineid = createpipelineresult.getpipelineid(); PipelineObject emrcluster = new PipelineObject().withName("EmrClusterObj").withId("EmrClusterObj").withFields( new Field().withKey("releaseLabel").withStringValue("emr-4.1.0"), new Field().withKey("coreInstanceCount").withStringValue("3"), new Field().withKey("applications").withStringValue("spark"), new Field().withKey("applications").withStringValue("Presto-Sandbox"), new Field().withKey("type").withStringValue("EmrCluster"), new Field().withKey("keyPair").withStringValue("myKeyName"), new Field().withKey("masterInstanceType").withStringValue("m3.xlarge"), new Field().withKey("coreInstanceType").withStringValue("m3.xlarge") ); PipelineObject emractivity = new PipelineObject().withName("EmrActivityObj").withId("EmrActivityObj").withFields( new Field().withKey("step").withStringValue("command-runner.jar,spark-submit,-- executor-memory,1g,--class,org.apache.spark.examples.sparkpi,/usr/lib/spark/lib/sparkexamples.jar,10"), new Field().withKey("runsOn").withRefValue("EmrClusterObj"), new Field().withKey("type").withStringValue("EmrActivity") ); PipelineObject schedule = new PipelineObject().withName("Every 15 Minutes").withId("DefaultSchedule").withFields( new Field().withKey("type").withStringValue("Schedule"), new Field().withKey("period").withStringValue("15 Minutes"), new Field().withKey("startAt").withStringValue("FIRST_ACTIVATION_DATE_TIME") ); PipelineObject defaultobject = new PipelineObject().withName("Default").withId("Default").withFields( new Field().withKey("failureAndRerunMode").withStringValue("CASCADE"), new Field().withKey("schedule").withRefValue("DefaultSchedule"), new Field().withKey("resourceRole").withStringValue("DataPipelineDefaultResourceRole"), new Field().withKey("role").withStringValue("DataPipelineDefaultRole"), new Field().withKey("pipelineLogUri").withStringValue("s3://myLogUri"), new Field().withKey("scheduleType").withStringValue("cron") ); 217

225 EmrCluster List<PipelineObject> pipelineobjects = new ArrayList<PipelineObject>(); pipelineobjects.add(emractivity); pipelineobjects.add(emrcluster); pipelineobjects.add(defaultobject); pipelineobjects.add(schedule); PutPipelineDefinitionRequest putpipelinedefintion = new PutPipelineDefinitionRequest().withPipelineId(pipelineId).withPipelineObjects(pipelineObjects); PutPipelineDefinitionResult putpipelineresult = dp.putpipelinedefinition(putpipelinedefintion); System.out.println(putPipelineResult); ActivatePipelineRequest activatepipelinereq = new ActivatePipelineRequest().withPipelineId(pipelineId); ActivatePipelineResult activatepipelineres = dp.activatepipeline(activatepipelinereq); System.out.println(activatePipelineRes); System.out.println(pipelineId); 프라이빗서브넷에서 Amazon EMR 클러스터구성 Example 이예제는클러스터를 VPC 의프라이빗서브넷에서실행하는구성을포함합니다. 자세한내용은 Amazon EMR 관리안내서의 Amazon EMR 클러스터를 VPC 에서시작을참조하십시오. 이구성은선택사항입니다. EmrCluster 객체를사용하는모든파이프라인에서이구성을사용할수있습니다. 프라이빗서브넷에서 Amazon EMR 클러스터를실행하려면 EmrCluster 구성에서 SubnetId, emrmanagedmastersecuritygroupid, emrmanagedslavesecuritygroupid 및 ServiceAccessSecurityGroupId 를지정합니다. "objects": [ "output": "ref": "S3BackupLocation" "input": "ref": "DDBSourceTable" "maximumretries": "2", "name": "TableBackupActivity", "step": "s3://dynamodb-emr-#myddbregion/emr-ddb-storage-handler/2.1.0/emrddb jar,org.apache.hadoop.dynamodb.tools.dynamodbexport,#output.directorypath#input.tablename "id": "TableBackupActivity", "runson": "ref": "EmrClusterForBackup" "type": "EmrActivity", "resizeclusterbeforerunning": "false" "readthroughputpercent": "#myddbreadthroughputratio", "name": "DDBSourceTable", "id": "DDBSourceTable", "type": "DynamoDBDataNode", 218

226 EmrCluster "tablename": "#myddbtablename" "directorypath": 'YYYY-MM-dd-HH-mmss')", "name": "S3BackupLocation", "id": "S3BackupLocation", "type": "S3DataNode" "name": "EmrClusterForBackup", "coreinstancecount": "1", "taskinstancecount": "1", "taskinstancetype": "m4.xlarge", "coreinstancetype": "m4.xlarge", "releaselabel": "emr-4.7.0", "masterinstancetype": "m4.xlarge", "id": "EmrClusterForBackup", "subnetid": "#mysubnetid", "emrmanagedmastersecuritygroupid": "#mymastersecuritygroup", "emrmanagedslavesecuritygroupid": "#myslavesecuritygroup", "serviceaccesssecuritygroupid": "#myserviceaccesssecuritygroup", "region": "#myddbregion", "type": "EmrCluster", "keypair": "user-key-pair" "failureandrerunmode": "CASCADE", "resourcerole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineloguri": "#mypipelineloguri", "scheduletype": "ONDEMAND", "name": "Default", "id": "Default" ], "parameters": [ "description": "Output S3 folder", "id": "myoutputs3loc", "type": "AWS::S3::ObjectKey" "description": "Source DynamoDB table name", "id": "myddbtablename", "type": "String" "default": "0.25", "watermark": "Enter value between ", "description": "DynamoDB read throughput ratio", "id": "myddbreadthroughputratio", "type": "Double" "default": "us-east-1", "watermark": "us-east-1", "description": "Region of the DynamoDB table", "id": "myddbregion", "type": "String" ], "values": "myddbregion": "us-east-1", "myddbtablename": "ddb_table", "myddbreadthroughputratio": "0.25", 219

227 EmrCluster "myoutputs3loc": "s3://s3_path", "mysubnetid": "subnet_id", "myserviceaccesssecuritygroup": "service access security group", "myslavesecuritygroup": "slave security group", "mymastersecuritygroup": "master security group", "mypipelineloguri": "s3://s3_path" 클러스터노드에 EBS 볼륨연결 Example EBS 볼륨을파이프라인내에서 EMR 클러스터의노드유형하나에연결할수있습니다. EBS 볼륨을노드에연결하려면 EmrCluster 구성에서 coreebsconfiguration, masterebsconfiguration 및 TaskEbsConfiguration 을사용합니다. 이 Amazon EMR 클러스터예제에는마스터, 작업및코어노드에대해 Amazon EBS 볼륨이사용됩니다. 자세한내용은 Amazon EMR 관리안내서의 Amazon EMR 의 Amazon EBS 볼륨을참조하십시오. 이러한구성은선택사항입니다. EmrCluster 객체를사용하는모든파이프라인에서이러한구성을사용할수있습니다. 파이프라인에서 EmrCluster 객체구성을클릭하고 Master EBS Configuration( 마스터 EBS 구성 ), Core EBS Configuration( 코어 EBS 구성 ) 또는 Task EBS Configuration( 작업 EBS 구성 ) 중하나를선택한후, 다음예제와비슷한구성세부정보를입력합니다. "objects": [ "output": "ref": "S3BackupLocation" "input": "ref": "DDBSourceTable" "maximumretries": "2", "name": "TableBackupActivity", "step": "s3://dynamodb-emr-#myddbregion/emr-ddb-storage-handler/2.1.0/emrddb jar,org.apache.hadoop.dynamodb.tools.dynamodbexport,#output.directorypath#input.tablename "id": "TableBackupActivity", "runson": "ref": "EmrClusterForBackup" "type": "EmrActivity", "resizeclusterbeforerunning": "false" "readthroughputpercent": "#myddbreadthroughputratio", "name": "DDBSourceTable", "id": "DDBSourceTable", "type": "DynamoDBDataNode", "tablename": "#myddbtablename" "directorypath": "#myoutputs3loc/#format(@scheduledstarttime, 'YYYY-MM-dd-HH-mmss')", "name": "S3BackupLocation", "id": "S3BackupLocation", "type": "S3DataNode" "name": "EmrClusterForBackup", 220

228 EmrCluster "coreinstancecount": "1", "taskinstancecount": "1", "taskinstancetype": "m4.xlarge", "coreinstancetype": "m4.xlarge", "releaselabel": "emr-4.7.0", "masterinstancetype": "m4.xlarge", "id": "EmrClusterForBackup", "subnetid": "#mysubnetid", "emrmanagedmastersecuritygroupid": "#mymastersecuritygroup", "emrmanagedslavesecuritygroupid": "#myslavesecuritygroup", "region": "#myddbregion", "type": "EmrCluster", "coreebsconfiguration": "ref": "EBSConfiguration" "masterebsconfiguration": "ref": "EBSConfiguration" "taskebsconfiguration": "ref": "EBSConfiguration" "keypair": "user-key-pair" "name": "EBSConfiguration", "id": "EBSConfiguration", "ebsoptimized": "true", "ebsblockdeviceconfig" : [ "ref": "EbsBlockDeviceConfig" ], "type": "EbsConfiguration" "name": "EbsBlockDeviceConfig", "id": "EbsBlockDeviceConfig", "type": "EbsBlockDeviceConfig", "volumesperinstance" : "2", "volumespecification" : "ref": "VolumeSpecification" "name": "VolumeSpecification", "id": "VolumeSpecification", "type": "VolumeSpecification", "sizeingb": "500", "volumetype": "io1", "iops": "1000" "failureandrerunmode": "CASCADE", "resourcerole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineloguri": "#mypipelineloguri", "scheduletype": "ONDEMAND", "name": "Default", "id": "Default" ], "parameters": [ "description": "Output S3 folder", "id": "myoutputs3loc", "type": "AWS::S3::ObjectKey" 221

229 EmrCluster "description": "Source DynamoDB table name", "id": "myddbtablename", "type": "String" "default": "0.25", "watermark": "Enter value between ", "description": "DynamoDB read throughput ratio", "id": "myddbreadthroughputratio", "type": "Double" "default": "us-east-1", "watermark": "us-east-1", "description": "Region of the DynamoDB table", "id": "myddbregion", "type": "String" ], "values": "myddbregion": "us-east-1", "myddbtablename": "ddb_table", "myddbreadthroughputratio": "0.25", "myoutputs3loc": "s3://s3_path", "mysubnetid": "subnet_id", "myslavesecuritygroup": "slave security group", "mymastersecuritygroup": "master security group", "mypipelineloguri": "s3://s3_path" 구문 액체호출필드설명슬롯유형 schedule 이객체는예약간격을실행할때호출됩니다. 이객체의종속실행순서를설정하려면다른객체로일정참조를지정합니다. 사용자가객체에서일정을명확히설정하여 ( 예 : "schedule": "ref": "DefaultSchedule" 지정 ) 하여이요건을충족할수있습니다. 대부분의경우에서는모든객체가상속할수있도록일정참조를기본파이프라인객체에두는것이좋습니다. 또는파이프라인에일정트리가있는경우 ( 마스터일정안의일정 ) 사용자가일정참조가있는부모객체를생성할수있습니다. 선택형일정구성예제에대한자세한내용은 dpobject-schedule.html 단원을참조하십시오. 참조객체, 예 : "schedule": "ref":"myscheduleid" 선택필드설명슬롯유형 actiononresourcefailure 이리소스의리소스실패후취한조치입니다. 유효값은지정시간동안클러스터의모든작업을재시도하는 "retryall" 과 "retrynone" 입니다. actionontaskfailure 이리소스의작업실패후취한조치입니다. 유효값은클러스터를종료하지않는 "continue" 와 "terminate" 입니다. 222

230 EmrCluster 선택필드설명슬롯유형 additionalmastersecuritygroupids EMR 클러스터의추가마스터보안그룹의식별자로, sg-01xxxx6a 형식을따릅니다. 자세한내용은 Amazon EMR 관리안내서의 Amazon EMR 추가보안그룹을참조하십시오. additionalslavesecuritygroupids EMR 클러스터의추가슬레이브보안그룹의식별자로, sg-01xxxx6a 형식을따릅니다. amiversion 애플리케이션 클러스터노드를설치할때 Amazon EMR 이사용하는 Amazon 머신이미지 (AMI) 버전입니다. 자세한내용은 Amazon EMR 관리안내서단원을참조하십시오. 쉼표로구분된인수가있는클러스터에설치하는애플리케이션입니다. 기본적으로 Hive 및 Pig 가설치됩니다. 이파라미터는 Amazon EMR 버전 4.0 이상에만적용됩니다. attemptstatus 원격활동에서가장최근에보고한상태입니다. attempttimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 기간 availabilityzone 클러스터를실행할가용영역입니다. bootstrapaction 구성 coreinstancebidprice 클러스터가시작될때실행할작업입니다. 쉼표로구분된인수를지정할수있습니다. 최대 255 개까지여러작업을지정하려면여러 bootstrapaction 필드를추가합니다. 기본동작은부트스트랩작업이없는클러스터를시작하는것입니다. Amazon EMR 클러스터의구성입니다. 이파라미터는 Amazon EMR 버전 4.0 이상에만적용됩니다. 스팟인스턴스의시간당최대달러금액이며, 0 초과 미만의십진수값입니다. 이값을설정하면 Amazon EMR 클러스터코어노드의스팟인스턴스가활성화됩니다. coreinstancecount 와함께사용해야합니다. 참조객체, 예 :"configuration": "ref":"myemrconfigurationid" coreinstancecount 클러스터에사용할코어노드의수입니다. 정수 coreinstancetype coregroupconfiguration 코어노드에사용할 Amazon EC2 인스턴스의유형입니다. Amazon EMR 클러스터에대해지원되는 Amazon EC2 인스턴스 (p. 5) 단원을참조하십시오. Amazon EMR 클러스터코어인스턴스그룹의구성입니다. 이파라미터는 Amazon EMR 버전 4.0 이상에만적용됩니다. 참조객체, 예 : configuration : ref : myemrconfigurationid 223

231 EmrCluster 선택필드설명슬롯유형 coreebsconfiguration EbsBlockDeviceConfig Amazon EMR 클러스터의코어그룹에서각코어노드에연결될 Amazon EBS 볼륨의구성입니다. 자세한내용은 Linux 인스턴스용 Amazon EC2 사용설명서의 EBS 최적화를지원하는인스턴스유형을참조하십시오. 인스턴스그룹과연결된요청한 Amazon EBS 블록디바이스의구성입니다. 인스턴스그룹의각인스턴스와연결될지정된개수의볼륨을포함합니다. volumesperinstance 및 volumespecification 을포함합니다. 여기서, volumesperinstance 는인스턴스그룹의각인스턴스와연결될특정볼륨구성이포함된 EBS 볼륨수입니다. volumespecification 은 Amazon EMR 클러스터의 EC2 인스턴스에연결된 EBS 볼륨에대해요청될기비바이트 (GiB) 의볼륨유형, IOPS 및크기같은 Amazon EBS 볼륨사양입니다. 참조객체, 예 : coreebsconfiguration : ref : myebsconfiguration 참조객체, 예 : EbsBlockDeviceConfig : ref : myebsblockdeviceconfig emrmanagedmastersecuritygroupid Amazon EMR 클러스터의마스터보안그룹식별자로, sg-01xxxx6a 형식을따릅니다. 자세한내용은 Amazon EMR 관리안내서의보안그룹구성을참조하십시오. emrmanagedslavesecuritygroupid Amazon EMR 클러스터의슬레이브보안그룹식별자로, sg-01xxxx6a 형식을따릅니다. enabledebugging failureandrerunmode hadoopschedulertype httpproxy Amazon EMR 클러스터에서디버깅을활성화합니다. 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 클러스터의스케줄러유형입니다. 유효한형식은 PARALLEL_FAIR_SCHEDULING, PARALLEL_CAPACITY_SCHEDULING, 및 DEFAULT_SCHEDULER 입니다. 클라이언트가 AWS 서비스에연결할때사용할프록시호스트입니다. 열거 열거 참조객체. 예 : "httpproxy": "ref":"myhttpproxyid" inittimeout 리소스가시작되기전까지의대기시간입니다. 기간 keypair lateaftertimeout Amazon EMR 클러스터의마스터노드에로그인할때사용하는 Amazon EC2 키페어입니다. 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 기간 masterinstancebidprice 스팟인스턴스의최대달러금액이며, 0 초과 미만의십진수값입니다. 이값을설정하면 Amazon EMR 클러스터마스터노드의스팟인스턴스가활성화됩니다. 224

232 EmrCluster 선택필드설명슬롯유형 masterinstancetype 마스터노드에사용할 Amazon EC2 인스턴스의유형입니다. Amazon EMR 클러스터에대해지원되는 Amazon EC2 인스턴스 (p. 5) 단원을참조하십시오. mastergroupconfigurationamazon EMR 클러스터마스터인스턴스그룹의구성입니다. 이파라미터는 Amazon EMR 버전 4.0 이상에만적용됩니다. 참조객체, 예 : configuration : ref : myemrconfigurationid masterebsconfiguration maxactiveinstances Amazon EMR 클러스터의마스터그룹에서각마스터노드에연결될 Amazon EBS 볼륨의구성입니다. 자세한내용은 Linux 인스턴스용 Amazon EC2 사용설명서의 EBS 최적화를지원하는인스턴스유형을참조하십시오. 구성요소의동시활성인스턴스최대수입니다. 재실행은활성인스턴스의수에포함되지않습니다. 참조객체, 예 : masterebsconfiguration : ref : myebsconfiguration 정수 maximumretries 장애시재시도최대횟수. 정수 onfail 현재객체에장애가있을때실행할작업입니다. 참조객체, 예 :"onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나여전히완료되지않은경우에트리거해야하는작업입니다. 참조객체, 예 :"onlateaction": "ref":"myactionid" onsuccess 현재객체가성공하면실행할작업입니다. 참조객체, 예 :"onsuccess": "ref":"myactionid" parent 슬롯을상속해올현재객체의상위객체입니다. 참조객체, 예 :"parent": "ref":"mybaseobjectid" pipelineloguri 파이프라인의로그를업로드할 Amazon S3 URI( 예 : 's3://bucketname/key/') 입니다. region Amazon EMR 클러스터가실행되어야할리전의코드입니다. 기본적으로이클러스터는파이프라인과동일한리전에서실행됩니다. 종속데이터세트와동일한리전에서클러스터를실행할수있습니다. 열거 releaselabel EMR 클러스터용릴리스레이블. reportprogresstimeout resourcerole 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. AWS Data Pipeline 이 Amazon EMR 클러스터를생성할때사용하는 IAM 역할입니다. 기본역할은 DataPipelineDefaultRole 입니다. 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 225

233 EmrCluster 선택필드설명슬롯유형 역할 EC2 노드를생성하기위해 Amazon EMR 로전달되는 IAM 역할입니다. runson 이객체에서는이필드가허용되지않습니다. 참조객체, 예 :"runson": "ref":"myresourceid" serviceaccesssecuritygroupid Amazon EMR 클러스터의서비스액세스보안그룹의식별자입니다.. sg-01xxxx6a 형식을따릅니다. 예 : sg-1234abcd. scheduletype subnetid supportedproducts 일정유형을사용하여파이프라인정의에있는객체의일정을간격시작시점으로또는종료시점으로지정할수있습니다. 값은 cron, ondemand 및 timeseries 입니다. timeseries 일정조정은각간격이종료될때인스턴스일정이지정됩니다. cron 일정조정은각간격이시작될때인스턴스일정이지정됩니다. ondemand 일정을사용하면활성화될때마다한번씩파이프라인을실행할수있습니다. 그러므로다시실행하기위해파이프라인을복제하거나다시생성할필요가없습니다. ondemand 일정을사용하려면기본객체에서지정해야하며, 이것이파이프라인의객체에지정된유일한 scheduletype 이어야합니다. ondemand 파이프라인을사용하려면후속실행마다 ActivatePipeline 작업을호출합니다. Amazon EMR 클러스터를시작할서브넷의식별자입니다. Amazon EMR 클러스터에타사소프트웨어를설치하는파라미터입니다 ( 예 : 타사하둡배포버전설치 ). 열거 taskinstancebidprice 스팟인스턴스의최대달러금액입니다. 0~20.00 사이의십진수값을지정합니다. 이값을설정하면 Amazon EMR 클러스터작업노드의스팟인스턴스가활성화됩니다. taskinstancecount taskinstancetype taskgroupconfiguration taskebsconfiguration Amazon EMR 클러스터에사용할작업노드의수입니다. 작업노드에사용할 Amazon EC2 인스턴스의유형입니다. Amazon EMR 클러스터작업인스턴스그룹의구성입니다. 이파라미터는 Amazon EMR 버전 4.0 이상에만적용됩니다. Amazon EMR 클러스터의작업그룹에서각작업노드에연결될 Amazon EBS 볼륨의구성입니다. 자세한내용은 Linux 인스턴스용 Amazon EC2 사용설명서의 EBS 최적화를지원하는인스턴스유형을참조하십시오. 정수 참조객체, 예 : configuration : ref : myemrconfigurationid 참조객체, 예 : taskebsconfiguration : ref : myebsconfiguration terminateafter 이여러시간이후에리소스를종료합니다. 정수 226

234 EmrCluster 선택필드설명슬롯유형 VolumeSpecification Amazon EMR 클러스터의 Amazon EC2 인스턴스에연결된 Amazon EBS 볼륨에대해요청될기비바이트 (GiB) 의볼륨유형, IOPS 및크기같은 Amazon EBS 볼륨사양입니다. 이노드는코어, 마스터또는작업노드일수있습니다. VolumeSpecification 에는다음이포함됩니다. iops() 정수. Amazon EBS 볼륨이지원하는초당 I/O 작업수 (IOPS) 입니다. 예 : 자세한내용은 Linux 인스턴스용 Amazon EC2 사용설명서의 EBS I/O 특성을참조하십시오. sizeingb() 정수. 기비바이트 (GiB) 단위의 Amazon EBS 볼륨크기입니다. 예 : 500. 사용할수있는볼륨유형및하드드라이브크기의조합에대한자세한내용은 Linux 인스턴스용 Amazon EC2 사용설명서의 EBS 볼륨유형을참조하십시오. volumettype. Amazon EBS 볼륨유형. 예 : gp2. 지원되는볼륨유형에는 gp2, io1, st1, sc1 등이있습니다. 자세한내용은 Linux 인스턴스용 Amazon EC2 사용설명서의 EBS 볼륨유형을참조하십시오. 참조객체, 예 : VolumeSpecification : ref : myvolumespecification useondemandonlastattempt 리소스를마지막으로요청할때스팟인스턴스가아니라온디맨드인스턴스를요청합니다. 이렇게하면이전의시도가모두실패했어도마지막시도가중단되지않습니다. 부울 workergroup 이객체에서허용되지않는필드. 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog Amazon EMR 활동을시도할때만사용할수있는단계로그. errorid 이객체가실패한경우의오류 ID 입니다. errormessage 이객체가실패한경우의오류메시지입니다. 227

235 EmrCluster 실행시간필드설명슬롯유형 errorstacktrace 이객체의실행이완료된시간입니다. DateTime Amazon EMR 활동을시도할때사용할수있는하둡작업로그. 종료상태에도달한마지막인스턴스객체의 상태가마지막으로업데이트된시간입니다. DateTime hostname 이객체가마지막으로비활성화된시간입니다. 실행이완료된최근실행시간입니다. 실행이예약된최근실행시간입니다. 다음으로예약된실행시간입니다. DateTime reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간. 객체의일정시작시간. 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 수명주기상객체의위치. 구성요소객체가인스턴스객체를트리거하고, 인스턴스객체는시도객체를실행합니다. 228

236 HttpProxy 참고항목 EmrActivity (p. 159) HttpProxy HttpProxy 로자체프록시를구성하고이를통해 Task Runner 에서 AWS Data Pipeline 서비스에액세스할수있습니다. 이정보를사용하여실행중인 Task Runner 를구성할필요가없습니다. TaskRunner 의 HttpProxy 예제 다음파이프라인정의는 HttpProxy 객체를보여줍니다. "objects": [ "schedule": "ref": "Once" "pipelineloguri": "s3://mydploguri/path", "name": "Default", "id": "Default" "name": "test_proxy", "hostname": "hostname", "port": "port", "username": "username", "*password": "password", "windowsdomain": "windowsdomain", "type": "HttpProxy", "id": "test_proxy", "name": "ShellCommand", "id": "ShellCommand", "runson": "ref": "Resource" "type": "ShellCommandActivity", "command": "echo 'hello world' " "period": "1 day", "startdatetime": " T00:00:00", "name": "Once", "id": "Once", "enddatetime": " T00:00:00", "type": "Schedule" "role": "datapipelinerole", "httpproxy": "ref": "test_proxy" "actiononresourcefailure": "retrynone", "maximumretries": "0", "type": "Ec2Resource", "terminateafter": "10 minutes", "resourcerole": "resourcerole", "name": "Resource", 229

237 사전조건 "actionontaskfailure": "terminate", "securitygroups": "securitygroups", "keypair": "keypair", "id": "Resource", "region": "us-east-1" ], "parameters": [] 구문 필수필드설명슬롯유형 hostname port 클라이언트가 AWS 서비스에연결할때사용할프록시의호스트. 클라이언트가 AWS 서비스에연결할때사용할프록시호스트의포트. 선택필드설명슬롯유형 parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" * 암호프록시비밀번호. s3noproxy Amazon S3 에연결할때 HTTP 프록시비활성화 Boolean 사용자이름프록시의사용자이름입니다. windowsdomain NTLM 프록시의 Windows 도메인이름입니다. windowsworkgroup NTLM 프록시의 Windows 작업그룹이름입니다. 객체와함께생성된파이프라인버전입니다. 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 사전조건 다음은 AWS Data Pipeline 사전조건객체입니다. 230

238 DynamoDBDataExists 객체 DynamoDBDataExists (p. 231) DynamoDBTableExists (p. 233) Exists (p. 235) S3KeyExists (p. 238) S3PrefixNotEmpty (p. 240) ShellCommandPrecondition (p. 243) DynamoDBDataExists DynamoDB 테이블에데이터가존재하는지확인하는사전조건입니다. 구문 필수필드설명슬롯유형 역할사전조건을실행할때사용할역할을지정합니다. tablename 점검할 DynamoDB 테이블입니다. 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout failureandrerunmode lateaftertimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 기간 열거 기간 maximumretries 장애시재시도최대횟수정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" preconditiontimeout 아직충족되지않은사전조건이 ' 실패 ' 로표시되기시작하는기간 기간 231

239 DynamoDBDataExists 선택필드설명슬롯유형 reportprogresstimeout 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" currentretrycount 이번시도에서사전조건을시도한횟수 emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace hadoopjoblog hostname 이객체가실패한경우의오류스택트레이스입니다. EMR 기반활동시도시에만사용할수있는하둡작업로그 작업시도를선택한클라이언트의호스트이름입니다. lastretrytime 이번시도안에서사전조건을시도한마지막횟수 node 이사전조건이실행중인노드 참조객체. 예 : "node": "ref":"myrunnableobjectid" reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간. 객체의일정시작시간. 상태 객체와함께생성된파이프라인버전입니다. 232

240 DynamoDBTableExists 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. DynamoDBTableExists DynamoDB 테이블이존재하는지확인하는사전조건입니다. 구문 필수필드설명슬롯유형 역할사전조건을실행할때사용할역할을지정합니다. tablename 점검할 DynamoDB 테이블입니다. 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout failureandrerunmode lateaftertimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 기간 열거 기간 maximumretries 장애시재시도최대횟수정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" 233

241 DynamoDBTableExists 선택필드설명슬롯유형 onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" preconditiontimeout reportprogresstimeout 아직충족되지않은사전조건이 ' 실패 ' 로표시되기시작하는기간 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 기간 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" currentretrycount 이번시도에서사전조건을시도한횟수 emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace hadoopjoblog hostname 이객체가실패한경우의오류스택트레이스입니다. EMR 기반활동시도시에만사용할수있는하둡작업로그 작업시도를선택한클라이언트의호스트이름입니다. lastretrytime 이번시도안에서사전조건을시도한마지막횟수 노드 이사전조건이실행중인노드 참조객체. 예 : "node": "ref":"myrunnableobjectid" 234

242 Exists 실행시간필드설명슬롯유형 reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간 객체의일정시작시간 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. Exists 데이터노드객체가존재하는지확인합니다. Note 예 대신에시스템이관리하는사전조건을사용할것을권장합니다. 자세한정보는사전조건 (p. 10) 단원을참조하십시오. 다음은이객체유형의예제입니다. InputData 객체는이 Ready 객체뿐아니라동일한파이프라인정의파일에서정의하려는다른객체를참조합니다. CopyPeriod 는 Schedule 객체입니다. "id" : "InputData", "type" : "S3DataNode", "schedule" : "ref" : "CopyPeriod" "filepath" : "s3://example-bucket/inputdata/#@scheduledstarttime.format('yyyy-mm-ddhh:mm').csv", "precondition" : "ref" : "Ready" "id" : "Ready", "type" : "Exists" 235

243 Exists 구문 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout failureandrerunmode lateaftertimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 기간 열거 기간 maximumretries 장애시재시도최대횟수정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" preconditiontimeout reportprogresstimeout 아직충족되지않은사전조건이 ' 실패 ' 로표시되기시작하는기간 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 기간 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 입니다. 236

244 Exists 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace hadoopjoblog hostname 이객체가실패한경우의오류스택트레이스입니다. EMR 기반활동시도시에만사용할수있는하둡작업로그 작업시도를선택한클라이언트의호스트이름입니다. 노드 이사전조건이실행중인노드. 참조객체. 예 : "node": "ref":"myrunnableobjectid" reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간. 객체의일정시작시간. 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 참고항목 ShellCommandPrecondition (p. 243) 237

245 S3KeyExists S3KeyExists Amazon S3 데이터노드에키가존재하는지확인합니다. 예 다음은이객체유형의예제입니다. s3key 파라미터가참조하는키인 s3://mybucket/mykey 가존재하면사전조건이트리거됩니다. "id" : "InputReady", "type" : "S3KeyExists", "role" : "test-role", "s3key" : "s3://mybucket/mykey" 첫번째파이프라인이종료되기를기다리는두번째파이프라인에서 S3KeyExists 를사전조건으로사용할수도있습니다. 그렇게하려면다음을수행하십시오. 1. 첫번째파이프라인의완료가끝날때 Amazon S3 에파일을씁니다. 2. 두번째파이프라인에서 S3KeyExists 사전조건을생성합니다. 구문 필수필드설명슬롯유형 역할사전조건을실행할때사용할역할을지정합니다. s3key Amazon S3 키입니다. 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout failureandrerunmode lateaftertimeout 한번더원격작업을완료하기전의제한시간입니다. 이시간을설정하면시작후설정된시간내에완료되지않는원격활동이다시시도됩니다. 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 기간 열거 기간 maximumretries 장애시시작되는최대시도횟수입니다. 정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" 238

246 S3KeyExists 선택필드설명슬롯유형 onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" preconditiontimeout reportprogresstimeout 아직충족되지않은사전조건이 ' 실패 ' 로표시되기시작하는기간. 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이것이설정되면지정기간동안진행상황을보고하지않는원격활동은중단된것으로간주되어재시도될수있습니다. 기간 기간 retrydelay 두번의연속시도사이의제한시간간격입니다. 기간 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" currentretrycount 이번시도에서사전조건을시도한횟수 emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace hadoopjoblog hostname 이객체가실패한경우의오류스택트레이스입니다. EMR 기반활동시도시에만사용할수있는하둡작업로그 작업시도를선택한클라이언트의호스트이름입니다. lastretrytime 이번시도안에서사전조건을시도한마지막횟수 노드 이사전조건이실행중인노드 참조객체. 예 : "node": "ref":"myrunnableobjectid" 239

247 S3PrefixNotEmpty 실행시간필드설명슬롯유형 reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간 객체의일정시작시간 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 참고항목 ShellCommandPrecondition (p. 243) S3PrefixNotEmpty 지정된접두사 (URI 로표시됨 ) 가있는 Amazon S3 객체가존재하는지확인하는사전조건입니다. 예 다음은필수, 선택및표현식필드를사용하는이객체유형의에입니다. "id" : "InputReady", "type" : "S3PrefixNotEmpty", "role" : "test-role", "s3prefix" : "#node.filepath" 구문 필수필드설명슬롯유형 역할사전조건을실행할때사용할역할을지정합니다. 240

248 S3PrefixNotEmpty 필수필드설명슬롯유형 s3prefix 객체의존재여부를확인하는 Amazon S3 접두사입니다. 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout failureandrerunmode lateaftertimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 기간 열거 기간 maximumretries 장애시재시도최대횟수정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" preconditiontimeout reportprogresstimeout 아직충족되지않은사전조건이 ' 실패 ' 로표시되기시작하는기간 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 기간 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime 241

249 S3PrefixNotEmpty 실행시간필드설명슬롯유형 cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" currentretrycount 이번시도에서사전조건을시도한횟수 emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace hadoopjoblog hostname 이객체가실패한경우의오류스택트레이스입니다. EMR 기반활동시도시에만사용할수있는하둡작업로그 작업시도를선택한클라이언트의호스트이름입니다. lastretrytime 이번시도안에서사전조건을시도한마지막횟수 노드 이사전조건이실행중인노드. 참조객체. 예 : "node": "ref":"myrunnableobjectid" reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간. 객체의일정시작시간. 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 242

250 ShellCommandPrecondition 참고항목 ShellCommandPrecondition (p. 243) ShellCommandPrecondition 사전조건으로실행할수있는 Unix/Linux 셸명령입니다. 예 다음은이객체유형의예제입니다. "id" : "VerifyDataReadiness", "type" : "ShellCommandPrecondition", "command" : "perl check-data-ready.pl" 구문 필수그룹 ( 다음중하나를제공해야함 ) 명령 scripturi 설명 실행할명령입니다. 이값및연결된파라미터는 Task Runner 를실행중인환경에서작동해야합니다. 파일을다운로드하여셸명령으로실행할 Amazon S3 URI 경로입니다. 단하나의 scripturi 또는 command 필드만지정합니다. scripturi 는파라미터를사용할수없으며, command 를사용합니다. 슬롯유형 선택필드설명슬롯유형 attemptstatus 원격활동에서가장최근에보고된상태입니다. attempttimeout failureandrerunmode lateaftertimeout 원격작업완료의제한시간입니다. 이필드를설정하면설정된시작시간이내에완료되지않는원격활동을재시도할수있습니다. 종속요소에장애가있거나재시도될때의소비자노드거동을설명합니다. 객체가시작되어야하는파이프라인시작후경과시간입니다. 일정유형이 ondemand 로설정되지않은경우에만발생합니다. 기간 열거 기간 maximumretries 장애시재시도최대횟수정수 onfail 현재객체장애시실행할작업입니다. 참조객체. 예 : "onfail": "ref":"myactionid" 243

251 ShellCommandPrecondition 선택필드설명슬롯유형 onlateaction 객체가아직예약되지않았거나아직완료되지않은경우에트리거되어야하는작업입니다. 참조객체. 예 : "onlateaction": "ref":"myactionid" onsuccess 현재객체성공시실행할작업입니다. 참조객체. 예 : "onsuccess": "ref":"myactionid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" preconditiontimeout reportprogresstimeout 아직충족되지않은사전조건이 ' 실패 ' 로표시되기시작하는기간 원격작업에서 reportprogress 를연속으로호출하는제한시간입니다. 이필드를설정하면지정된기간동안진행상황을보고하지않는원격활동은중단된것으로간주하고재시도할수있습니다. 기간 기간 retrydelay 두번의재시도사이의제한시간간격입니다. 기간 scriptargument 셸스크립트로전달될인수 stderr stdout 명령에서리디렉션된시스템오류메시지를수신하는 Amazon S3 경로입니다. runson 필드를사용할경우에는활동을실행할리소스가임시적이므로 Amazon S3 경로가되어야합니다. 그러나 workergroup 필드를지정할경우에는로컬파일경로가허용됩니다. 명령에서리디렉션된출력을수신하는 Amazon S3 경로입니다. runson 필드를사용할경우에는활동을실행할리소스가임시적이므로 Amazon S3 경로가되어야합니다. 그러나 workergroup 필드를지정할경우에는로컬파일경로가허용됩니다. 현재예약되어있는활성인스턴스객체의목록입니다. 참조객체. 예 : "activeinstances": 이객체의실행이완료된시간입니다. 이객체의실행이시작된시간입니다. DateTime cancellationreason 이객체가취소된경우의 cancellationreason 객체실패가발생한종속체인에대한설명입니다. 참조객체. 예 : "cascadefailedon": "ref":"myrunnableobjectid" emrsteplog EMR 활동시도시에만사용할수있는 EMR 단계로그 244

252 데이터베이스 실행시간필드설명슬롯유형 errorid 이객체가실패한경우의 errorid 입니다. errormessage 이객체가실패한경우의 errormessage 입니다. errorstacktrace hadoopjoblog hostname 이객체가실패한경우의오류스택트레이스입니다. EMR 기반활동시도시에만사용할수있는하둡작업로그 작업시도를선택한클라이언트의호스트이름입니다. 노드 이사전조건이실행중인노드 참조객체. 예 : "node": "ref":"myrunnableobjectid" reportprogresstime 원격활동에서진행상황을보고한가장최근시간입니다. 객체의일정종료시간 객체의일정시작시간 상태 이객체가대기중인종속요소목록에대한설명입니다. 참조객체. 예 : "waitingon": "ref":"myrunnableobjectid" 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 참고항목 ShellCommandActivity (p. 197) Exists (p. 235) 데이터베이스 다음은 AWS Data Pipeline 데이터베이스객체입니다. 객체 JdbcDatabase (p. 246) 245

253 JdbcDatabase RdsDatabase (p. 247) RedshiftDatabase (p. 248) JdbcDatabase JDBC 데이터베이스를정의합니다. 예 다음은이객체유형의예제입니다. "id" : "MyJdbcDatabase", "type" : "JdbcDatabase", "connectionstring" : "jdbc:redshift://hostname:portnumber/dbname", "jdbcdriverclass" : "com.amazon.redshift.jdbc41.driver", "jdbcdriverjaruri" : "s3://redshift-downloads/drivers/redshiftjdbc jar", "username" : "user_name", "*password" : "my_password" 구문 필수필드설명슬롯유형 connectionstring 데이터베이스에액세스할 JDBC 연결입니다. jdbcdriverclass JDBC 연결전에로드할드라이버클래스입니다. * 암호제공할비밀번호. 사용자이름데이터베이스에연결할때제공하는사용자이름. 선택필드설명슬롯유형 databasename 연결할논리데이터베이스의이름 jdbcdriverjaruri jdbcproperties 데이터베이스연결에사용되는 JDBC 드라이버 JAR 파일의 Amazon S3 내위치입니다. AWS Data Pipeline 은이 JAR 파일을읽을수있는권한이있어야합니다. 이데이터베이스의 JDBC 연결에서속성으로설정될 A=B 형식쌍. parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" 객체와함께생성된파이프라인버전입니다. 246

254 RdsDatabase 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. RdsDatabase Amazon RDS 데이터베이스를정의합니다. 예 다음은이객체유형의예제입니다. "id" : "MyRdsDatabase", "type" : "RdsDatabase", "region" : "us-east-1", "username" : "user_name", "*password" : "my_password", "rdsinstanceid" : "my_db_instance_identifier" Oracle 엔진의경우 jdbcdriverjaruri 필드가필수적이며다음드라이버를지정할수있습니다. SQL Server 엔진의경우 jdbcdriverjaruri 필드가필수적이며다음드라이버를지정할수있습니다. displaylang=en&id=11774 MySQL 및 PostgreSQL 엔진의경우 jdbcdriverjaruri 필드는선택사항입니다. 구문 필수필드 설명 슬롯유형 * 암호 제공할비밀번호. rdsinstanceid DB 인스턴스의식별자입니다. 사용자이름 데이터베이스에연결할때제공하는사용자이름. 선택필드설명슬롯유형 databasename 연결할논리데이터베이스의이름 jdbcdriverjaruri 데이터베이스연결에사용되는 JDBC 드라이버 JAR 파일의 Amazon S3 내위치입니다. AWS Data Pipeline 은이 JAR 파일을읽을수있는권한이있어야합니다. MySQL 및 PostgreSQL 엔진은이필드 247

255 RedshiftDatabase 선택필드설명슬롯유형 가지정되지않은경우기본드라이버로사용되지만이필드를사용하여기본값을다시지정할수있습니다. Oracle 및 SQL Server 엔진은이필드가필수필드입니다. jdbcproperties 이데이터베이스의 JDBC 연결에서속성으로설정될 A=B 형식쌍. parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" region 데이터베이스가존재하는리전의코드입니다. 예 : us-east-1. 객체와함께생성된파이프라인버전입니다. 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. RedshiftDatabase Amazon Redshift 데이터베이스를정의합니다. RedshiftDatabase 는파이프라인에서사용되는데이터베이스의속성을나타냅니다. 예 다음은이객체유형의예제입니다. "id" : "MyRedshiftDatabase", "type" : "RedshiftDatabase", "clusterid" : "myredshiftclusterid", "username" : "user_name", "*password" : "my_password", "databasename" : "database_name" 기본적으로객체는 clusterid 필드가필요한 Postgres 드라이버를사용합니다. Amazon Redshift 드라이버를사용하려면 connectionstring 필드에 Amazon Redshift 콘솔에서 "jdbc:redshift:" 으로시작하는 Amazon Redshift 데이터베이스연결을대신지정하십시오. 248

256 RedshiftDatabase 구문 필수필드설명슬롯유형 * 암호제공할비밀번호. 사용자이름데이터베이스에연결할때제공하는사용자이름. 필수그룹 ( 다음중하나를제공해야함 ) clusterid connectionstring 설명 Amazon Redshift 클러스터가생성될때사용자가제공한식별자입니다. 예를들어, Amazon Redshift 클러스터의엔드포인트가 mydb.example.useast-1.redshift.amazonaws.com 일경우에정확한식별자는 mydb 입니다. Amazon Redshift 콘솔에서는클러스터식별자또는클러스터이름에서이값을가져올수있습니다. 파이프라인과다른계정이소유한 Amazon Redshift 인스턴스에연결할 JDBC 엔드포인트입니다. connectionstring 및 clusterid 를둘다지정할수없습니다. 슬롯유형 선택필드설명슬롯유형 databasename 연결할논리데이터베이스의이름. jdbcproperties 이데이터베이스의 JDBC 연결에서속성으로설정될 A=B 형식페어. parent 슬롯을상속해올현재객체의상위객체입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" region 데이터베이스가존재하는리전의코드입니다. 예 : us-east-1. 열거 객체와함께생성된파이프라인버전입니다. 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 249

257 데이터형식 데이터형식 다음은 AWS Data Pipeline 데이터형식객체입니다. 객체 CSV 데이터형식 (p. 250) 사용자지정데이터형식 (p. 251) DynamoDBDataFormat (p. 252) DynamoDBExportDataFormat (p. 254) RegEx 데이터형식 (p. 256) TSV 데이터형식 (p. 257) CSV 데이터형식 열구분기호가쉼표이고레코드구분기호가줄바꿈문자인위치의쉼표로구분된데이터형식입니다. 예 다음은이객체유형의예제입니다. "id" : "MyOutputDataType", "type" : "CSV", "column" : [ "Name STRING", "Score INT", "DateOfBirth TIMESTAMP" ] 구문 선택필드설명슬롯유형 name escapechar 이데이터노드가설명하는데이터의필드별로지정된데이터형식이있는열이름입니다. 예 : 호스트이름 STRING 값이여러개인경우에는스페이스로분리된열이름과데이터형식을사용합니다. 파서에게다음문자를무시하라고지시하는문자 ( 예 : "\") 입니다. parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" 객체와함께생성된파이프라인버전입니다. 250

258 사용자지정데이터형식 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 사용자지정데이터형식 특정열구분기호, 레코드구분기호및이스케이프문자의조합으로정의되는사용자정의데이터형식입니다. 예 다음은이객체유형의예제입니다. "id" : "MyOutputDataType", "type" : "Custom", "columnseparator" : ",", "recordseparator" : "\n", "column" : [ "Name STRING", "Score INT", "DateOfBirth TIMESTAMP" ] 구문 필수필드설명슬롯유형 columnseparator 데이터파일에서열끝을나타내는문자입니다. 선택필드설명슬롯유형 name 이데이터노드가설명하는데이터의필드별로지정된데이터형식이있는열이름입니다. 예 : 호스트이름 STRING 값이여러개인경우에는스페이스로분리된열이름과데이터형식을사용합니다. parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" recordseparator 데이터파일에서행의끝을나타내는문자입니다 ( 예 : "\n"). 단일문자만지원됩니다. 251

259 DynamoDBDataFormat 객체와함께생성된파이프라인버전입니다. 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. DynamoDBDataFormat DynamoDB 테이블에스키마를적용하여 Hive 쿼리를통해액세스할수있습니다. DynamoDBDataFormat 은 HiveActivity 객체와 DynamoDBDataNode 입력및출력과함께사용됩니다. DynamoDBDataFormat 에서는 Hive 쿼리의모든열을지정해야합니다. Hive 쿼리의특정열을얼마나유연하게지정하거나 Amazon S3 지원에대한내용은 DynamoDBExportDataFormat (p. 254) 을참조하십시오. 예 Note DynamoDB Boolean 유형은 Hive Boolean 유형에매핑하지않습니다. 그러나 0 또는 1 의 DynamoDB 정수값을 Hive Boolean 유형에매핑할수있습니다. 다음예제에서는 DynamoDBDataFormat 을사용하여스키마를 DynamoDBDataNode 입력에할당하는방법을보여주고명명된열을사용해 HiveActivity 객체가데이터를액세스하고 DynamoDBDataNode 출력에데이터를복사합니다. "objects": [ "id" : "Exists.1", "name" : "Exists.1", "type" : "Exists" "id" : "DataFormat.1", "name" : "DataFormat.1", "type" : "DynamoDBDataFormat", "column" : [ "hash STRING", "range STRING" ] "id" : "DynamoDBDataNode.1", "name" : "DynamoDBDataNode.1", "type" : "DynamoDBDataNode", "tablename" : "$INPUT_TABLE_NAME", "schedule" : "ref" : "ResourcePeriod" "dataformat" : "ref" : "DataFormat.1" 252

260 DynamoDBDataFormat "id" : "DynamoDBDataNode.2", "name" : "DynamoDBDataNode.2", "type" : "DynamoDBDataNode", "tablename" : "$OUTPUT_TABLE_NAME", "schedule" : "ref" : "ResourcePeriod" "dataformat" : "ref" : "DataFormat.1" "id" : "EmrCluster.1", "name" : "EmrCluster.1", "type" : "EmrCluster", "schedule" : "ref" : "ResourcePeriod" "masterinstancetype" : "m1.small", "keypair" : "$KEYPAIR" "id" : "HiveActivity.1", "name" : "HiveActivity.1", "type" : "HiveActivity", "input" : "ref" : "DynamoDBDataNode.1" "output" : "ref" : "DynamoDBDataNode.2" "schedule" : "ref" : "ResourcePeriod" "runson" : "ref" : "EmrCluster.1" "hivescript" : "insert overwrite table $output1 select * from $input1 ;" "id" : "ResourcePeriod", "name" : "ResourcePeriod", "type" : "Schedule", "period" : "1 day", "startdatetime" : " T00:00:00", "enddatetime" : " T00:00:00" ] 구문 선택필드설명슬롯유형 name 이데이터노드가설명하는데이터의필드별로지정된데이터형식이있는열이름입니다. 예, hostname STRING. 예 : 여러값의경우, 스페이스로분리된열이름과데이터형식을사용합니다. parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" 파이프라인버전에서객체를생성하는데사용합니다. 오류잘못형성된객체를설명하는오류입니다. 253

261 DynamoDBExportDataFormat 이객체가속하는파이프라인의 ID 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. DynamoDBExportDataFormat DynamoDB 테이블에스키마를적용하여 Hive 쿼리를통해액세스할수있습니다. HiveCopyActivity 객체와 DynamoDBDataNode 또는 S3DataNode 입력및출력에 DynamoDBExportDataFormat 을사용합니다. DynamoDBExportDataFormat 에는다음장점이있습니다. DynamoDB 와 Amazon S3 을모두지원 Hive 쿼리의특정열로데이터를필터링할수있음 스파스스키마가있는경우에도 DynamoDB 의모든속성을내보냄 예 Note DynamoDB Boolean 유형은 Hive Boolean 유형에매핑하지않습니다. 그러나 0 또는 1 의 DynamoDB 정수값을 Hive Boolean 유형에매핑할수있습니다. 다음예제에서는타임스탬프에기반하여필터링을하는동안 HiveCopyActivity 와 DynamoDBExportDataFormat 을사용하여하나의 DynamoDBDataNode 에서다른로데이터를복사하는방법을보여줍니다. "objects": [ "id" : "DataFormat.1", "name" : "DataFormat.1", "type" : "DynamoDBExportDataFormat", "column" : "timestamp BIGINT" "id" : "DataFormat.2", "name" : "DataFormat.2", "type" : "DynamoDBExportDataFormat" "id" : "DynamoDBDataNode.1", "name" : "DynamoDBDataNode.1", "type" : "DynamoDBDataNode", "tablename" : "item_mapped_table_restore_temp", "schedule" : "ref" : "ResourcePeriod" "dataformat" : "ref" : "DataFormat.1" "id" : "DynamoDBDataNode.2", "name" : "DynamoDBDataNode.2", "type" : "DynamoDBDataNode", "tablename" : "restore_table", "region" : "us_west_1", "schedule" : "ref" : "ResourcePeriod" 254

262 DynamoDBExportDataFormat "dataformat" : "ref" : "DataFormat.2" "id" : "EmrCluster.1", "name" : "EmrCluster.1", "type" : "EmrCluster", "schedule" : "ref" : "ResourcePeriod" "masterinstancetype" : "m1.xlarge", "coreinstancecount" : "4" "id" : "HiveTransform.1", "name" : "Hive Copy Transform.1", "type" : "HiveCopyActivity", "input" : "ref" : "DynamoDBDataNode.1" "output" : "ref" : "DynamoDBDataNode.2" "schedule" : "ref" : "ResourcePeriod" "runson" : "ref" : "EmrCluster.1" "filtersql" : "`timestamp` > unix_timestamp(\"#@scheduledstarttime\", \"yyyy-mmdd't'hh:mm:ss\")" "id" : "ResourcePeriod", "name" : "ResourcePeriod", "type" : "Schedule", "period" : "1 Hour", "startdatetime" : " T00:00:00", "enddatetime" : " T01:00:00" ] 구문 선택필드설명슬롯유형 name 이데이터노드가설명하는데이터의필드별로지정된데이터형식이있는열이름입니다. 예 : 호스트이름 STRING parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" 객체와함께생성된파이프라인버전입니다. 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 255

263 RegEx 데이터형식 RegEx 데이터형식 정규식에의해정의된사용자지정데이터형식입니다. 예 다음은이객체유형의예제입니다. "id" : "MyInputDataType", "type" : "RegEx", "inputregex" : "([^ ]*) ([^ ]*) ([^ ]*) (- \\[[^\\]]*\\]) ([^ \"]* \"[^\"]*\") (- [0-9]*) (- [0-9]*)(?: ([^ \"]* \"[^\"]*\") ([^ \"]* \"[^\"]*\"))?", "outputformat" : "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s", "column" : [ "host STRING", "identity STRING", "user STRING", "time STRING", "request STRING", "status STRING", "size STRING", "referer STRING", "agent STRING" ] 구문 선택필드설명슬롯유형 name 이데이터노드가설명하는데이터의필드별로지정된데이터형식이있는열이름입니다. 예 : 호스트이름 STRING 값이여러개인경우에는스페이스로분리된열이름과데이터형식을사용합니다. inputregex S3 입력파일의구문을분석할정규식입니다. inputregex 를사용하여파일에서상대적으로비정형데이터의열을검색합니다. outputformat inputregex 로검색하고, Java 포맷터구문을사용하여 %1$s %2$s 로참조되는열필드입니다. parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" 객체와함께생성된파이프라인버전입니다. 이객체가속하는파이프라인의 ID 256

264 TSV 데이터형식 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. TSV 데이터형식 열구분기호가탭문자이고레코드구분기호가줄바꿈문자인위치의쉼표로구분된데이터형식입니다. 예 다음은이객체유형의예제입니다. "id" : "MyOutputDataType", "type" : "TSV", "column" : [ "Name STRING", "Score INT", "DateOfBirth TIMESTAMP" ] 구문 선택필드설명슬롯유형 name columnseparator escapechar 이데이터노드에의해설명된데이터의열이름과데이터형식입니다. 예를들어, "Name STRING" 은데이터형식 STRING 필드에서 Name 로명명된열을가리킵니다. 쉼표로구분되는별도의복수열이름및데이터형식페어 ( 예참조 ) 입니다. 한열의필드를다음열의필드와분리하는문자입니다. 기본값은 '\t' 입니다. 파서에게다음문자를무시하라고지시하는문자 ( 예 : "\") 입니다. parent 슬롯을상속해올현재객체의상위객체입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" recordseparator 레코드를분리하는문자입니다. 기본값은 '\n' 입니다. 객체와함께생성된파이프라인버전입니다. 오류잘못형성된객체를설명하는오류. 257

265 Actions 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. Actions 다음은 AWS Data Pipeline 작업객체입니다. 객체 SnsAlarm (p. 258) Terminate (p. 259) SnsAlarm 활동이실패하거나성공적으로끝나면 Amazon SNS 알림메시지를전송합니다. 예 다음은이객체유형의예제입니다. node.input 및 node.output 값은해당 onsuccess 필드에서이객체를참조하는데이터노드또는활동에서나옵니다. "id" : "SuccessNotify", "name" : "SuccessNotify", "type" : "SnsAlarm", "topicarn" : "arn:aws:sns:us-east-1:28619example:exampletopic", "subject" : "COPY SUCCESS: #node.@scheduledstarttime", "message" : "Files were copied from #node.input to #node.output." 구문 필수필드설명슬롯유형 message Amazon SNS 알림본문입니다. 역할 Amazon SNS 경보를생성할때사용하는 IAM 역할입니다. subject Amazon SNS 알림메시지의제목줄입니다. topicarn 메시지의대상 Amazon SNS 주제 ARN 입니다. 선택필드설명슬롯유형 parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" 258

266 Terminate 실행시간필드설명슬롯유형 node 이작업이실행중인노드. 참조객체. 예 : "node": 객체와함께생성된파이프라인버전입니다. 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. Terminate 대기중이거나완료되지않은활동, 리소스또는데이터노드의취소를트리거하는작업입니다. lateaftertimeout 값으로시작하지않는경우 AWS Data Pipeline 이활동, 리소스또는데이터노드를 CANCELLED 상태로둡니다. onsuccess, OnFail 또는 onlateaction 리소스를포함하는작업은종료할수없습니다. 예 다음은이객체유형의예제입니다. 이예제에서 MyActivity 의 onlateaction 필드는작업 DefaultAction1 에대한참조를포함합니다. onlateaction 에대한작업을제공하는경우 lateaftertimeout 값을제공하여활동이만료되었다고간주된파이프라인의예약된시작이후경과한기간도표시해야합니다. "name" : "MyActivity", "id" : "DefaultActivity1", "schedule" : "ref" : "MySchedule" "runson" : "ref" : "MyEmrCluster" "lateaftertimeout" : "1 Hours", "type" : "EmrActivity", "onlateaction" : "ref" : "DefaultAction1" "step" : [ "s3://mybucket/mypath/mystep.jar,firstarg,secondarg", "s3://mybucket/mypath/myotherstep.jar,anotherarg" ] "name" : "TerminateTasks", "id" : "DefaultAction1", "type" : "Terminate" 259

267 일정 구문 선택필드설명슬롯유형 parent 슬롯을상속해올현재객체의상위객체입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" 실행시간필드설명슬롯유형 node 이작업이실행중인노드. 참조객체. 예 : "node": 객체와함께생성된파이프라인버전입니다. 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 일정 예약된이벤트의타이밍을정의합니다 ( 예 : 활동실행시점 ). 예 Note 일정시작시간이과거인경우에는 AWS Data Pipeline 이파이프라인을채우고지정된시작시간에즉시시작되는일정을시작합니다. 테스트 / 개발의경우상대적으로짧은간격을사용합니다. 그렇지않으면 AWS Data Pipeline 이해당간격에대한파이프라인의모든실행을대기열에넣고예약합니다. 파이프라인구성요소 scheduledstarttime 이하루전보다앞설경우 AWS Data Pipeline 이파이프라인활성화를차단하여실수로채워지는것을방지합니다. 다음은이객체유형의예제입니다. 이예제에서는매시간 :00:00 시에시작되고 :00:00 시에종료되는일정을정의합니다. 처음기간은 :00:00 시에종료됩니다. "id" : "Hourly", "type" : "Schedule", "period" : "1 hours", "startdatetime" : " T00:00:00", "enddatetime" : " T00:00:00" 다음파이프라인은 FIRST_ACTIVATION_DATE_TIME 에시작하고 :00:00 시까지매시간실행됩니다. 260

268 예 "id": "SchedulePeriod", "name": "SchedulePeriod", "startat": "FIRST_ACTIVATION_DATE_TIME", "period": "1 hours", "type": "Schedule", "enddatetime": " T22:00:00" 다음파이프라인은 FIRST_ACTIVATION_DATE_TIME 에시작하고매시간실행되어세번작동한후에완료됩니다. "id": "SchedulePeriod", "name": "SchedulePeriod", "startat": "FIRST_ACTIVATION_DATE_TIME", "period": "1 hours", "type": "Schedule", "occurrences": "3" 다음파이프라인은 :00:00 에시작하고매시간실행되어세번작동한후에종료됩니다. "id": "SchedulePeriod", "name": "SchedulePeriod", "startdatetime": " T22:00:00", "period": "1 hours", "type": "Schedule", "occurrences": "3" 기본객체를사용하는온디맨드 "name": "Default", "resourcerole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduletype": "ondemand" 명시적일정객체를사용하는온디맨드 "name": "Default", "resourcerole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "scheduletype": "ondemand" "name": "DefaultSchedule", "type": "Schedule", "id": "DefaultSchedule", "period": "ONDEMAND_PERIOD", "startat": "ONDEMAND_ACTIVATION_TIME" 다음예제에서는기본객체에서일정을상속하는방법, 해당객체에대해명시적으로일정을설정하는방법, 상위참조에서일정을지정하는방법을보여줍니다. 기본객체에서상속된일정 261

269 예 "objects": [ "id": "Default", "failureandrerunmode":"cascade", "resourcerole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineloguri": "s3://mylogsbucket", "scheduletype": "cron", "schedule": "ref": "DefaultSchedule" "type": "Schedule", "id": "DefaultSchedule", "occurrences": "1", "period": "1 Day", "startat": "FIRST_ACTIVATION_DATE_TIME" "id": "A_Fresh_NewEC2Instance", "type": "Ec2Resource", "terminateafter": "1 Hour" "id": "ShellCommandActivity_HelloWorld", "runson": "ref": "A_Fresh_NewEC2Instance" "type": "ShellCommandActivity", "command": "echo 'Hello World!'" ] 객체에서의명시적일정 "objects": [ "id": "Default", "failureandrerunmode":"cascade", "resourcerole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineloguri": "s3://mylogsbucket", "scheduletype": "cron" "type": "Schedule", "id": "DefaultSchedule", "occurrences": "1", "period": "1 Day", "startat": "FIRST_ACTIVATION_DATE_TIME" "id": "A_Fresh_NewEC2Instance", "type": "Ec2Resource", "terminateafter": "1 Hour" "id": "ShellCommandActivity_HelloWorld", "runson": 262

270 예 ] "ref": "A_Fresh_NewEC2Instance" "schedule": "ref": "DefaultSchedule" "type": "ShellCommandActivity", "command": "echo 'Hello World!'" 상위참조의일정 "objects": [ "id": "Default", "failureandrerunmode":"cascade", "resourcerole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineloguri": "s3://mylogsbucket", "scheduletype": "cron" "id": "parent1", "schedule": "ref": "DefaultSchedule" "type": "Schedule", "id": "DefaultSchedule", "occurrences": "1", "period": "1 Day", "startat": "FIRST_ACTIVATION_DATE_TIME" "id": "A_Fresh_NewEC2Instance", "type": "Ec2Resource", "terminateafter": "1 Hour" "id": "ShellCommandActivity_HelloWorld", "runson": "ref": "A_Fresh_NewEC2Instance" "parent": "ref": "parent1" "type": "ShellCommandActivity", "command": "echo 'Hello World!'" ] 263

271 구문 구문 필수필드설명슬롯유형 period 파이프라인을실행해야하는빈도입니다. 형식은 "N [ 분 시 일 주 월 ]" 이며, 여기서 N 은시간지정자중하나가뒤에붙는숫자입니다. 예를들어, "15 분 " 은 15 분마다파이프라인을실행합니다. 최소기간은 15 분이며, 최대기간은 3 년입니다. 기간 필수그룹 ( 다음중하나를제공해야함 ) startat 설명 예약된파이프라인실행을시작하는날짜와시간입니다. 유효값은 FIRST_ACTIVATION_DATE_TIME 이며, 이것은온디맨드파이프라인생성을위해사용되지않습니다. 슬롯유형 열거 startdatetime 예약실행이시작되는날짜및시간입니다. startdatetime 또는 startat 중하나만사용해야합니다. DateTime 선택필드설명슬롯유형 enddatetime 예약실행이종료되는날짜및시간입니다. startdatetime 또는 startat 값이후의날짜와시간이어야합니다. 기본행동은파이프라인이종료될때까지실행을예약하는것입니다. occurrences 활성화된파이프라인을실행하는횟수입니다. occurrences 를 enddatetime 과함께사용할수없습니다. DateTime 정수 parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" 객체와함께생성된파이프라인버전입니다. 시스템필드 설명 오류 객체생성시간입니다. 이객체가속하는파이프라인의 ID 264

272 유틸리티 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 유틸리티 다음유틸리티객체는다른파이프라인객체를구성합니다. 항목 ShellScriptConfig (p. 265) EmrConfiguration (p. 266) 속성 (p. 269) ShellScriptConfig 활동을사용하여 preactivitytaskconfig 및 postactivitytaskconfig 에대한셸스크립트를실행합니다. 이객체는 HadoopActivity (p. 164), HiveActivity (p. 170), HiveCopyActivity (p. 175) 및 PigActivity (p. 181) 에사용할수있습니다. 스크립트에대해인수목록과 S3 URI 를지정합니다. 예 인수를사용하는 ShellScriptConfig: "id" : "ShellScriptConfig_1, "name" : prescript, "type" : "ShellScriptConfig", "scripturi": s3://my-bucket/shell-cleanup.sh, "scriptargument" : ["arg1","arg2"] 구문 이객체에는다음필드가포함됩니다. 선택필드설명슬롯유형 parent 슬롯을상속해올현재객체의상위객체입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" scriptargument shell 스크립트와함께사용할인수목록입니다. scripturi 다운로드하여실행해야하는 Amazon S3 내스크립트 URI 입니다. 객체와함께생성된파이프라인버전입니다. 265

273 EmrConfiguration 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. EmrConfiguration EmrConfiguration 객체는릴리스 또는이상버전을사용하는 EMR 클러스터에사용되는구성입니다. 구성 ( 목록 ) 은 RunJobFlow API 를호출하는파라미터입니다. Amazon EMR 의구성 API 에는분류및속성이사용됩니다. AWS Data Pipeline 은해당속성객체와함께 EmrConfiguration 을사용하여파이프라인실행에서시작된 EMR 클러스터에서 Hadoop, Hive, Spark 또는 Pig 등의 EmrCluster (p. 212) 애플리케이션을구성합니다. 구성은새로운클러스터로변경될수있기때문에기존리소스에 EmrConfiguration 객체를제공할수없습니다. 자세한내용은를참조하십시오. 예 다음구성객체는 core-site.xml 으로 io.file.buffer.size 및 fs.s3.block.size 속성을설정합니다. [ ] "classification":"core-site", "properties": "io.file.buffer.size": "4096", "fs.s3.block.size": " " 해당파이프라인객체정의는 property 필드의속성객체목록및 EmrConfiguration 객체를사용합니다. "objects": [ "name": "ReleaseLabelCluster", "releaselabel": "emr-4.1.0", "applications": ["spark", "hive", "pig"], "id": "ResourceId_I1mCc", "type": "EmrCluster", "configuration": "ref": "coresite" "name": "coresite", "id": "coresite", "type": "EmrConfiguration", "classification": "core-site", "property": [ "ref": "io-file-buffer-size" "ref": "fs-s3-block-size" 266

274 EmrConfiguration ] ] "name": "io-file-buffer-size", "id": "io-file-buffer-size", "type": "Property", "key": "io.file.buffer.size", "value": "4096" "name": "fs-s3-block-size", "id": "fs-s3-block-size", "type": "Property", "key": "fs.s3.block.size", "value": " " 다음예제는 hadoop-env 분류를사용하여 Hadoop 환경을설정하도록사용된중첩구성입니다. [ ] "classification": "hadoop-env", "properties": "configurations": [ "classification": "export", "properties": "YARN_PROXYSERVER_HEAPSIZE": "2396" ] 다음은이구성을사용하는해당파이프라인정의객체입니다. "objects": [ "name": "ReleaseLabelCluster", "releaselabel": "emr-4.0.0", "applications": ["spark", "hive", "pig"], "id": "ResourceId_I1mCc", "type": "EmrCluster", "configuration": "ref": "hadoop-env" "name": "hadoop-env", "id": "hadoop-env", "type": "EmrConfiguration", "classification": "hadoop-env", "configuration": "ref": "export" "name": "export", "id": "export", "type": "EmrConfiguration", 267

275 EmrConfiguration ] "classification": "export", "property": "ref": "yarn-proxyserver-heapsize" "name": "yarn-proxyserver-heapsize", "id": "yarn-proxyserver-heapsize", "type": "Property", "key": "YARN_PROXYSERVER_HEAPSIZE", "value": "2396" 구문 이객체에는다음필드가포함됩니다. 필수필드설명슬롯유형 분류구성에대한분류입니다. 선택필드설명슬롯유형 구성 이구성의하위구성입니다. 참조객체. 예 : "configuration": "ref":"myemrconfigurationid" parent 슬롯을상속할현재객체의부모입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" property 구성속성입니다. 참조객체. 예 : "property": "ref":"mypropertyid" 객체와함께생성된파이프라인버전입니다. 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 참고항목 EmrCluster (p. 212) 268

276 속성 속성 (p. 269) Amazon EMR 릴리즈가이드 속성 EmrConfiguration 객체에서사용할단일키값속성입니다. 예 다음파이프라인정의는 EmrConfiguration 객체및 launch an EmrCluster 를시작하는해당속성객체를보여줍니다. "objects": [ "name": "ReleaseLabelCluster", "releaselabel": "emr-4.1.0", "applications": ["spark", "hive", "pig"], "id": "ResourceId_I1mCc", "type": "EmrCluster", "configuration": "ref": "coresite" "name": "coresite", "id": "coresite", "type": "EmrConfiguration", "classification": "core-site", "property": [ "ref": "io-file-buffer-size" "ref": "fs-s3-block-size" ] "name": "io-file-buffer-size", "id": "io-file-buffer-size", "type": "Property", "key": "io.file.buffer.size", "value": "4096" "name": "fs-s3-block-size", "id": "fs-s3-block-size", "type": "Property", "key": "fs.s3.block.size", "value": " " ] 구문 이객체에는다음필드가포함됩니다. 269

277 속성 필수필드설명슬롯유형 키키 USD 상당 USD 상당 선택필드설명슬롯유형 parent 슬롯을상속해올현재객체의상위객체입니다. 참조객체. 예 : "parent": "ref":"mybaseobjectid" 객체와함께생성된파이프라인버전입니다. 이객체가속하는파이프라인의 객체의타원무늬는수명주기내위치를나타냅니다. Component Objects 는 Attempt Objects 를실행하는 Instance Objects 를야기합니다. 참고항목 EmrCluster (p. 212) EmrConfiguration (p. 266) Amazon EMR 릴리즈가이드 270

278 AWS Data Pipeline 관리리소스의 Task Runner Task Runner 작업 Task Runner 는예약작업의 AWS Data Pipeline 을폴링하고이것을 Amazon EC2 인스턴스, Amazon EMR 클러스터또는기타컴퓨팅리소스에서실행하여상태를보고하는작업에이전트애플리케이션입니다. 애플리케이션에따라다음을선택할수있습니다. AWS Data Pipeline 을사용하여하나이상의 Task Runner 애플리케이션을설치하고관리할수있습니다. 파이프라인이활성화되면활동 runson 필드가참조하는기본 Ec2Instance 또는 EmrCluster 객체가자동으로생성됩니다. AWS Data Pipeline 은 EC2 인스턴스또는 EMR 클러스터의마스터노드에 Task Runner 를설치하는일을관리합니다. 이패턴으로 AWS Data Pipeline 은대부분의인스턴스또는클러스터를관리할수있습니다. 사용자가관리하는리소스에서파이프라인전부또는일부를실행합니다. 잠재적리소스에는장시간실행되는 Amazon EC2 인스턴스, Amazon EMR 클러스터또는물리적서버가포함됩니다. AWS Data Pipeline 웹서비스와통신이가능한거의모든곳에서작업실행기 (Task Runner 또는사용자가소유한장치의사용자지정작업에이전트 ) 를설치할수있습니다. 이패턴으로사용되는리소스와그관리방식을거의완벽하게제어한다고가정할때, Task Runner 를수동으로설치하여구성해야합니다. 그럴려면 Task Runner 를사용하여기존리소스에서작업실행 (p. 273) 의설명대로이단원에나오는절차를사용하십시오. AWS Data Pipeline 관리리소스의 Task Runner 리소스를 AWS Data Pipeline 이시작하고관리하면웹서비스에서자동으로해당리소스에 Task Runner 를설치하여파이프라인에서작업을처리합니다. 활동객체의 runson 필드용전산리소스 (Amazon EC2 인스턴스또는 Amazon EMR 클러스터 ) 를지정합니다. AWS Data Pipeline 이이리소스를시작할때해당리소스에 Task Runner 를설치하고그 runson 필드가이리소스로설정된모든활동객체를처리하도록구성합니다. AWS Data Pipeline 이리소스를종료하면 Task Runner 로그가 Amazon S3 위치에게시된후에종료됩니다. 271

279 AWS Data Pipeline 관리리소스의 Task Runner 예를들어, 파이프라인에서 EmrActivity 를사용할경우 runson 필드에서 EmrCluster 리소스를지정합니다. AWS Data Pipeline 은이활동을처리할때 Amazon EMR 클러스터를시작하고 Task Runner 를마스터노드에설치합니다. 그러면이 Task Runner 는그 runson 필드가 EmrCluster 객체로설정된활동의작업을처리합니다. 다음파이프라인정의발췌부분은두객체사이의이관계를설명합니다. "id" : "MyEmrActivity", "name" : "Work to perform on my data", "type" : "EmrActivity", "runson" : "ref" : "MyEmrCluster" "prestepcommand" : "scp remotefiles localfiles", "step" : "s3://mybucket/mypath/mystep.jar,firstarg,secondarg", "step" : "s3://mybucket/mypath/myotherstep.jar,anotherarg", "poststepcommand" : "scp localfiles remotefiles", "input" : "ref" : "MyS3Input" "output" : "ref" : "MyS3Output" "id" : "MyEmrCluster", "name" : "EMR cluster to perform the work", "type" : "EmrCluster", "hadoopversion" : "0.20", "keypair" : "mykeypair", "masterinstancetype" : "m1.xlarge", "coreinstancetype" : "m1.small", "coreinstancecount" : "10", "taskinstancetype" : "m1.small", "taskinstancecount": "10", "bootstrapaction" : "s3://elasticmapreduce/libs/ba/configure-hadoop,arg1,arg2,arg3", "bootstrapaction" : "s3://elasticmapreduce/libs/ba/configure-other-stuff,arg1,arg2" 272

280 Task Runner 를사용하여기존리소스에서작업실행 이활동실행에대한정보와예제는 EmrActivity (p. 159) 단원을참조하십시오. 파이프라인에여러 AWS Data Pipeline 관리리소스가있으면 Task Runner 가각리소스에설치되고처리할작업의 AWS Data Pipeline 을모두폴링합니다. Task Runner 를사용하여기존리소스에서작업실행 Amazon EC2 인스턴스나물리적서버또는워크스테이션같이사용자가관리하는전산리소스에 Task Runner 를설치할수있습니다. Task Runner 는 AWS Data Pipeline 웹서비스와통신이가능하다면호환되는하드웨어나운영체제어디에나설치할수있습니다. 이방식은예를들어, AWS Data Pipeline 을사용하여조직의방화벽안에저장되어있는데이터를처리할때유용할수있습니다. Task Runner 를로컬네트워크의서버에설치하면로컬데이터베이스에안전하게액세스한후에실행할다음작업의 AWS Data Pipeline 을폴링할수있습니다. AWS Data Pipeline 이처리를종료하거나파이프라인을삭제할때 Task Runner 인스턴스는수동으로종료하기전까지전산리소스에서계속실행됩니다. 파이프라인실행이완료된후에도 Task Runner 로그는유지됩니다. 사용자가관리하는리소스에서 Task Runner 를사용하려면먼저 Task Runner 를다운로드한후에이단원의절차에따라전산리소스에설치해야합니다. Note Task Runner 는 Linux, UNIX 또는 macos 에만설치할수있습니다. Windows 운영체제에서는 Task Runner 가지원되지않습니다. 처리해야하는파이프라인활동에설치한 Task Runner 를연결하려면 workergroup 필드를객체에추가하고, 해당작업자그룹값에폴링하도록 Task Runner 를구성합니다. Task Runner JAR 파일을실행할때작업자그룹을파라미터 ( 예 : --workergroup=wg-12345) 로전달하여구성합니다. 273

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

Amazon EBS (Elastic Block Storage) Amazon EC2 Local Instance Store (Ephemeral Volumes) Amazon S3 (Simple Storage Service) / Glacier Elastic File Syste (EFS) Storage Gateway AWS Import/Export 1 Instance

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

vRealize Automation용 VMware Remote Console - VMware

vRealize Automation용 VMware Remote Console - VMware vrealize Automation 용 VMware Remote Console VMware Remote Console 9.0 이문서는새버전으로교체되기전까지나열된각제품버전및모든이후버전을지원합니다. 이문서에대한최신버전을확인하려면 http://www.vmware.com/kr/support/pubs 를참조하십시오. KO-002230-00 vrealize Automation

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

IRISCard Anywhere 5

IRISCard Anywhere 5 이 빠른 사용자 가이드는 IRISCard Anywhere 5 및 IRISCard Corporate 5 스캐너의 설치와 시작을 도와 드립니다. 이 스캐너와 함께 제공되는 소프트웨어는: - Cardiris Pro 5 및 Cardiris Corporate 5 for CRM (Windows 용) - Cardiris Pro 4 (Mac OS 용) Cardiris 의

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

MF Driver Installation Guide

MF Driver Installation Guide Korean MF 드라이버 설치설명서 사용자 소프트웨어 CD-ROM... 드라이버 및 소프트웨어 정보...1 지원되는 운영 체제...1 MF 드라이버 및 MF Toolbox 설치... [쉬운 설치]를 사용한 설치...2 [사용자 정의 설치]를 사용한 설치...10 USB 케이블 연결(USB를 이용해 연결하는 경우만)...20 설치 결과 확인...21 온라인

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

슬라이드 1

슬라이드 1 Tadpole for DB 1. 도구개요 2. 설치및실행 4. 활용예제 1. 도구개요 도구명 소개 Tadpole for DB Tools (sites.google.com/site/tadpolefordb/) 웹기반의데이터베이스를관리하는도구 Database 스키마및데이터관리 라이선스 LGPL (Lesser General Public License) 특징 주요기능

More information

AWS Toolkit for JetBrains IDEs - 사용 설명서

AWS Toolkit for JetBrains IDEs - 사용 설명서 AWS Toolkit for JetBrains IDEs 사용설명서 AWS Toolkit for JetBrains IDEs: 사용설명서 Copyright 2019 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not

More information

System Recovery 사용자 매뉴얼

System Recovery 사용자 매뉴얼 Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.

More information

RHEV 2.2 인증서 만료 확인 및 갱신

RHEV 2.2 인증서 만료 확인 및 갱신 2018/09/28 03:56 1/2 목차... 1 인증서 확인... 1 인증서 종류와 확인... 4 RHEVM CA... 5 FQDN 개인 인증서... 5 레드햇 인증서 - 코드 서명 인증서... 6 호스트 인증... 7 참고사항... 8 관련링크... 8 AllThatLinux! - http://allthatlinux.com/dokuwiki/ rhev_2.2_

More information

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO Windows 7 설치및 PCIE RAID 설정정보 DK173 초판 11월 2016 A. Windows 7 및 USB 드라이버설치 칩셋사양에따라 Windows 7 설치중에 USB 키보드 / 마우스를사용하려면시스템에서 USB 드라이버를사전로드해야합니다. 이절에서는 USB 드라이버사전로드방법과 Windows 7 설치방법에대해서설명합니다. 방법 1: SATA ODD

More information

2 노드

2 노드 2019/05/03 17:01 1/5 2 노드 2 노드 소개 노드를사용하여계층적분산모니터링을구축할수있습니다. 각노드는Zabbix 서버자체이며, 각각이놓인위치모니터링을담당합니다 Zabbix는. 분산설정은최대 1000 개의노드를지원합니다. 노드의설정을사용하는장점은다음과같습니다. 일부지역에걸친대규모네트워크에서여러수준의모니터링계층을구축합니다. 계층에서하노드는마스터노드에전송합니다.

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

Studuino소프트웨어 설치

Studuino소프트웨어 설치 Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

Operating Instructions

Operating Instructions 작동지침 Mopria 설명서 안전하고올바른사용을위해기기를사용하기전에 " 안전정보 " 를읽으십시오. 목차 소개...2 기호의의미... 2 고지사항...2 준비...3 같은네트워크에서기기와 Android 기기연결하기...3 기기설정확인하기... 3 1. Mopria 인쇄사용하기 Mopria 인쇄서비스소개...5 Android 기기설정하기... 6 인쇄...7

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

MF3010 MF Driver Installation Guide

MF3010 MF Driver Installation Guide 한국어 MF 드라이버설치설명서 사용자소프트웨어 CD-ROM................................................ 1.................................................................... 1..............................................................................

More information

1

1 1 2 3 4 5 6 b b t P A S M T U s 7 m P P 8 t P A S M T U s 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Chapter 1 29 1 2 3 4 18 17 16 15 5 6 7 8 9 14 13 12 11 10 1 2 3 4 5 9 10 11 12 13 14 15

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

arcplan Enterprise 6 Charting Facelifts

arcplan Enterprise 6 Charting Facelifts SQL Server Analysis Services Tip 잘레시아 Copyright c 2010 Zalesia Co., Ltd. Agenda I II SSAS Non-Aggregatable 측정값처리 Copyright c 2010 Zalesia Co., Ltd. 2 Copyright c 2010 Zalesia Co., Ltd. 3 STEP1: Sales 큐브를위해데이터를미리준비한다.

More information

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

NTD36HD Manual

NTD36HD Manual Upnp 사용 D7 은 UPNP 를지원하여 D7 의네크워크에연결된 UPNP 기기에별다른설정없이연결하여, 유무선으로네트워크상의연결된 UPNP 기기의콘텐츠를재생할수있습니다. TV 화면의 브라우저, UPNP 를선택하면연결가능한 UPNP 기기가표시됩니다. 주의 - UPNP 기능사용시연결된 UPNP 기기의성능에따라서재생되지않는콘텐츠가있을수있습니다. NFS 사용 D7

More information

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 사용자매뉴얼 JetFlash Vault 100 ( 버전 1.0) 1 목차 1. 시스템요구사항... 3 2. 암호및힌트설정 ( 윈도우 )... 3 3. JetFlash Vault 시작하기 ( 윈도우 )... 7 4. JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 찾아보기... 10 JetFlash

More information

gcloud storage 사용자가이드 1 / 17

gcloud storage 사용자가이드 1 / 17 gcloud storage 사용자가이드 1 / 17 문서버전및이력 버전 일자 이력사항 1.0 2016.12.30 신규작성 1.1 2017.01.19 gcloud storage 소개업데이트 1.2 2017.03.17 Container 공개설정업데이트 1.3 2017.06.28 CDN 서비스연동추가 2 / 17 목차 1. GCLOUD STORAGE 소개... 4

More information

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : ios 3.0 이상 - 콘텐츠형식 : MP4 (H264,AAC ), MP3 * 디바이스별해상도,

More information

Office 365, FastTrack 4 FastTrack. Tony Striefel FastTrack FastTrack

Office 365, FastTrack 4 FastTrack. Tony Striefel FastTrack FastTrack FastTrack 1 Office 365, FastTrack 4 FastTrack. Tony Striefel FastTrack FastTrack 5 11 2 FASTTRACK 소개 디지털 혁신은 여기서 시작합니다. Microsoft FastTrack은 Microsoft 클라우드를 사용하여 고객이 신속하게 비즈니스 가치를 실현하도록 돕는 고객 성공 서비스입니다.

More information

User Guide

User Guide HP ThinUpdate 관리자 설명서 Copyright 2016 HP Development Company, L.P. Windows는 미국 및/또는 기타 국가에서 Microsoft Corporation의 등록 상표 또는 상표입 니다. 기밀 컴퓨터 소프트웨어. 소유, 사용 또는 복사 에 필요한 유효한 사용권을 HP로부터 취득했 습니다. FAR 12.211 및

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

희망브리지

희망브리지 Building Your First Amazon VPC V3.5 2016.10 Index 01. Overview 02. Create the base VPC 03. Launch EC2 instances 04. Manually create public & private subnet 05. Launch a bastion windows host 06. Connect

More information

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P Duplicator 는기본적으로원본하드디스크를빠르게복사본하드디스크에복사하는기능을하는것입니다.. 복사본 하드디스크가원본하드디스크와똑같게하는것을목적으로하는것이어서저용량에서고용량으로복사시몇 가지문제점이발생할수있습니다. 하드디스크는사용하려면, 디스크초기화를한후에포맷을해야사용가능합니다. Windows PC는 MBR과 GPT 2 개중에 1개로초기화합니다. -Windows

More information

1) 인증서만들기 ssl]# cat >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1) 인증서만들기 ssl]# cat   >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키 Lighttpd ( 멀티도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 1) 인증서만들기 [root@localhost ssl]# cat www.ucert.co.kr.key www.ucert.co.kr.crt >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat

More information

VPN.hwp

VPN.hwp Linksys VPN Router RV042&RV082 VPN Router 용 VPN 터널설정 한국어사용자설명서 V1.0 Table of Content 1 Gateway to Gateway 설정... 1 STEP 1 - Gateway to Gateway 터널생성하기... 1 STEP 2 - 터널정보입력하기... 1 STEP 3 - Gateway to Gateway

More information

1. 무선 이미지 유틸리티 설명 1-1. 기능 이 Wireless Image Utility 는 안드로이드용 응용 프로그램입니다. 안드로이드 태블릿 또는 안드로이드 스마트폰에서 사용할 수 있습니다. 안드로이드 기기에 저장된 파일을 프로젝터로 무선 전송 컴퓨터에서 USB

1. 무선 이미지 유틸리티 설명 1-1. 기능 이 Wireless Image Utility 는 안드로이드용 응용 프로그램입니다. 안드로이드 태블릿 또는 안드로이드 스마트폰에서 사용할 수 있습니다. 안드로이드 기기에 저장된 파일을 프로젝터로 무선 전송 컴퓨터에서 USB 무선 이미지 유틸리티 버전 1.1 NEC 프로젝터용 안드로이드 응용 프로그램 무선 이미지 유틸리티 작동 설명서 NEC's Image 목차 1. 무선 이미지 유틸리티 설명...2 1-1. 기능...2 1-2. 작동 조건...5 1-3. 작동 순서...6 2. 안드로이드 기기에 Wireless Image Utility 설치...6 3. 안드로이드 기기에 투사할

More information

Cloud Friendly System Architecture

Cloud Friendly System Architecture -Service Clients Administrator 1. -Service 구성도 : ( 좌측참고 ) LB(LoadBlancer) 2. -Service 개요 ucloud Virtual Router F/W Monitoring 개념 특징 적용가능분야 Server, WAS, DB 로구성되어 web service 를클라우드환경에서제공하기위한 service architecture

More information

ThinkVantage Fingerprint Software

ThinkVantage Fingerprint Software ThinkVantage 지문 인식 소프트웨어 First Edition (August 2005) Copyright Lenovo 2005. Portions Copyright International Business Machines Corporation 2005. All rights reserved. U.S. GOVERNMENT USERS RESTRICTED RIGHTS:

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

Amazon Stores

Amazon Stores Amazon Stores User Guide Version: KR1.0 Effective Date: April 1 st 2017 1 Introduction 이안내서는 Amazon Store 가무엇인지와당신의브랜드의 Amazon Store 를계획, 구축및확장하는방법에대해설명합니다. Amazon Stores 는브랜드가단일또는다중페이지매장을만들어브랜드와제품라인을선보일수있는무료셀프서비스입니다.

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 (https://www.kisarbl.or.kr) < 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 Ⅰ. 개요 실시간스팸차단리스트 (RBL) 는메일서버를운영하는누구나손쉽게효과적으로스팸수신을차단하는데이용할수있도록한국인터넷진흥원 (KISA)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Spider For MySQL 실전사용기 피망플러스유닛최윤묵 Spider For MySQL Data Sharding By Spider Storage Engine http://spiderformysql.com/ 성능 8 만 / 분 X 4 대 32 만 / 분 많은 DB 중에왜 spider 를? Source: 클라우드컴퓨팅구 선택의기로 Consistency RDBMS

More information

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집 Modern Modern www.office.com ( ) 892 5 : 1577-9700 : http://www.microsoft.com/korea Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL:   E-M Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: http://www.olivetech.co.kr E-Mail: tech@olivetech.co.kr TEL: 031-726-4217 FAX: 031-726-4219

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

PathEye 공식 블로그 다운로드 받으세요!!   지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye Mobile Ver. 0.71b 2009. 3. 17 By PathEye 공식 블로그 다운로드 받으세요!! http://blog.patheye.com 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye 설치 1/3 최종 배포 버전을 다 운로드 받습니다. 다운로드된 파일은 CAB 파일입니다. CAB 파일에는

More information

슬라이드 1

슬라이드 1 전자정부개발프레임워크 1 일차실습 LAB 개발환경 - 1 - 실습목차 LAB 1-1 프로젝트생성실습 LAB 1-2 Code Generation 실습 LAB 1-3 DBIO 실습 ( 별첨 ) LAB 1-4 공통컴포넌트생성및조립도구실습 LAB 1-5 템플릿프로젝트생성실습 - 2 - LAB 1-1 프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new

More information

슬라이드 1

슬라이드 1 - 1 - 전자정부모바일표준프레임워크실습 LAB 개발환경 실습목차 LAB 1-1 모바일프로젝트생성실습 LAB 1-2 모바일사이트템플릿프로젝트생성실습 LAB 1-3 모바일공통컴포넌트생성및조립도구실습 - 2 - LAB 1-1 모바일프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new Mobile Project 메뉴를선택한다.

More information

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with

More information

제 2 장 기본 사용법

제 2 장  기본 사용법 LS Studio 1. 시작하기 1.1 특징 XG5000 에서는 XP-Builder, DriveView7 등의소프트웨어와의통합된개발환경을제공합니다. 통합된 개발환경에서는모든프로젝트파일을 XG5000 에서통합관리합니다. XP-Builder 통합프로젝트를사용함으로써 PLC 에서사용할변수목록을 CSV 파일로내보내기또는불러오기하는번거로움없이바로사용할수있습니다. 또한

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

메뉴얼41페이지-2

메뉴얼41페이지-2 데이터 기반 맞춤형 성장관리 솔루션 스마트빌 플러스 은행계좌등록 은행계좌를 조회하여 등록합니다. 신용카드등록 신용카드를 조회하여 등록합니다. 금융정보 자동수집을 위하여 인증서이름, 아이디, 비밀번호를 등록합니다. 통합 자동 수집 금융정보 통합 자동수집을 실행합니다 은행계좌등록 은행계좌를 조회하여 등록합니다. 신용카드등록 신용카드를 조회하여

More information

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다 공유기사용환경에서 MNC-V100 환경설정하기 다음설명은 AnyGate GW-400A (Http://www.anygate.co.kr) 를사용하는네트워크환경에서 MNC-V100 을연결하여사용하는법을설명합니다. 공유기내부네트워크환경설정공유기를사용하는환경에서공유기의설정을아래그림과같이설정하시면 MNC-V100의설정을변경하지않아도모비캠과연결할수있습니다. ( 공유기의환경을변경하기어려운경우에는

More information

PowerPoint Template

PowerPoint Template 설치및실행방법 Jaewoo Shim Jun. 4. 2018 Contents SQL 인젝션이란 WebGoat 설치방법 실습 과제 2 SQL 인젝션이란 데이터베이스와연동된웹서버에입력값을전달시악의적동작을수행하는쿼리문을삽입하여공격을수행 SELECT * FROM users WHERE id= $_POST[ id ] AND pw= $_POST[ pw ] Internet

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

Windows Server 8

Windows Server 8 Windows Server 8 Configuring a Highly Available iscsi Target 본문서에서는, 공유저장소를사용하여클러스터를구축하고, 구축된클러스터에 iscsi high-availability 인스턴스를생성합니다. 이러한환경에서, 클러스터 failover 동안에어플리케이션 IO 가중단없이지속적으로사용가능한지확인합니다. 이동철부장 2012-03-05

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

문서 템플릿

문서 템플릿 HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

Microsoft Word - release note-VRRP_Korean.doc

Microsoft Word - release note-VRRP_Korean.doc VRRP (Virtual Router Redundancy Protocol) 기능추가 Category S/W Release Version Date General 7.01 22 Dec. 2003 Function Description VRRP 는여러대의라우터를그룹으로묶어하나의가상 IP 어드레스를부여해마스터로지정된라우터장애시 VRRP 그룹내의백업라우터가마스터로자동전환되는프로토콜입니다.

More information

1) 인증서만들기 ssl]# cat >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1) 인증서만들기 ssl]# cat   >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키 Lighttpd ( 단일도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 1) 인증서만들기 [root@localhost ssl]# cat www.ucert.co.kr.key www.ucert.co.kr.crt >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat

More information

Slide 1

Slide 1 Acronis TrueImage 사용법 효과적인백업 / 복구솔루션 설치가이드목차 1. ACRONIS TRUEIMAGE 설치하기 ----------------------------- 3 2. 백업및복구방법 -------------------------------------------------- 10 3. OS 부팅없이복구하기 ------------------------------------------

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 IDIS Mobile ios 사용설명서 Powered by 사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다.

More information

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - Armjtag_문서1.doc ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor

More information

Cisco FirePOWER 호환성 가이드

Cisco FirePOWER 호환성 가이드 Cisco 호환성가이드 Cisco 호환성 이문서에서는 Cisco 소프트웨어와하드웨어의호환성및요건을다룹니다. 추가 릴리스또는제품정보는다음을참조하십시오. 설명서로드맵 : http://www.cisco.com/c/en/us/td/docs/security/firesight/ roadmap/firesight-roadmap.html Cisco ASA 호환성가이드 : http://www.cisco.com/c/en/us/td/docs/security/asa/compatibility/

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1 디지털 사진 프린터 P-S100 프린터 드라이버 설치 가이드 사용하는 컴퓨터에 따라 제공된 프린터 드라이버를 설치합니다. 설치 절차 에 대한 자세한 내용은 CD-ROM의 Readme 파일을 참조하십시오. 작동 환경 Windows 호환 모델: IBM PC/AT 및 호환품 운영 체제: Windows 98 SE/Me/2000/XP (Windows 98 SE/Me/2000/XP

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint 웹 연동 기술.pptx 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우

More information

슬라이드 1

슬라이드 1 CCS v4 사용자안내서 CCSv4 사용자용예제따라하기안내 0. CCS v4.x 사용자 - 준비사항 예제에사용된 CCS 버전은 V4..3 버전이며, CCS 버전에따라메뉴화면이조금다를수있습니다. 예제실습전준비하기 처음시작하기예제모음집 CD 를 PC 의 CD-ROM 드라이브에삽입합니다. 아래안내에따라, 예제소스와헤더파일들을 PC 에설치합니다. CD 드라이브 \SW\TIDCS\TIDCS_DSP80x.exe

More information

MVVM 패턴의 이해

MVVM 패턴의 이해 Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Tablespace On-Offline 테이블스페이스 온라인/오프라인 2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가

More information

로거 자료실

로거 자료실 redirection 매뉴얼 ( 개발자용 ) V1.5 Copyright 2002-2014 BizSpring Inc. All Rights Reserved. 본문서에대한저작권은 비즈스프링 에있습니다. - 1 - 목차 01 HTTP 표준 redirect 사용... 3 1.1 HTTP 표준 redirect 예시... 3 1.2 redirect 현상이여러번일어날경우예시...

More information

ActFax 4.31 Local Privilege Escalation Exploit

ActFax 4.31 Local Privilege Escalation Exploit NSHC 2013. 05. 23 악성코드 분석 보고서 [ Ransomware 악성코드 ] 사용자의 컴퓨터를 강제로 잠그고 돈을 요구하는 형태의 공격이 기승을 부리고 있 습니다. 이러한 형태의 공격에 이용되는 악성코드는 Ransomware로 불리는 악성코 드 입니다. 한번 감염 시 치료절차가 복잡하며, 보고서 작성 시점을 기준으로 지속 적인 피해자가 발생되고

More information

open-api.md 2/14/2019 Deflow Open Api 1. 목록 (GET) /v1/order/list - 주문내역조회 (GET) /v1/order/complete/list - 거래내역조회 (POST) /v1/order/cancel - 주문취소 (GET)

open-api.md 2/14/2019 Deflow Open Api 1. 목록 (GET) /v1/order/list - 주문내역조회 (GET) /v1/order/complete/list - 거래내역조회 (POST) /v1/order/cancel - 주문취소 (GET) Deflow Open Api 1. 목록 (GET) /v1/order/list - 주문내역조회 (GET) /v1/order/complete/list - 거래내역조회 (POST) /v1/order/cancel - 주문취소 (GET) /v1/market/list - 마켓조회 (POST) /v1/order/create - 주문생성 (GET) /v1/market/chart

More information

Acronis® Backup & Recovery™ 10 Server for Linux

Acronis® Backup & Recovery™ 10 Server for Linux Acrnis Backup & Recvery 10 Server fr Linux 빠른시작안내서 본문서에서는 Acrnis Backup & Recvery 10 Server fr Linux 를설치및시작하는방법에대해설명합니다. 1. 지원되는운영체제 Linux 커널 2.4.18 이상 (2.6.x 커널포함 ) 및 glibc 2.3.2 이상 다음을포함한다양한 Linux 배포판

More information

thesis

thesis ( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype

More information

PowerPoint Template

PowerPoint Template 16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

MF5900 Series MF Driver Installation Guide

MF5900 Series MF Driver Installation Guide 한국어 MF 드라이버설치설명서 사용자소프트웨어 CD-ROM................................................ 1.................................................................... 1..............................................................................

More information

TOOLS Software Installation Guide

TOOLS Software Installation Guide Steinberg TOOLS 소프트웨어설치안내서 정보 이소프트웨어및설치안내서는 Yamaha Corporation 이독점저작권을가지고있습니다. 제조사의사전동의없이어떠한방법으로든전체또는부분적으로소프트웨어를복사하거나이설치안내서를복제하는것은명백히금지됩니다. Steinberg/Yamaha 는소프트웨어및문서자료사용에관하여어떠한대변또는보증을하지않으며, 이설치안내서및소프트웨어사용결과에대하여책임있는것으로간주될수없습니다.

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

More information

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아 LG U+ SMS/MMS 통합클라이언트 LG U+ SMS/MMS Client Simple Install Manual LG U+ SMS/MMS 통합클라이언트 - 1 - 간단설치매뉴얼 1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml

More information

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W Research & Technique Apache Tomcat RCE 취약점 (CVE-2019-0232) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE-2019-0232 취약점은 Windows 시스템의 Apache Tomcat 서버에서 enablecmdlinearguments

More information

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

var answer = confirm( 확인이나취소를누르세요.); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write( 확인을눌렀습니다.); else { document.write( 취소를눌렀습니다.); 자바스크립트 (JavaScript) - HTML 은사용자에게인터페이스 (interface) 를제공하는언어 - 자바스크립트는서버로데이터를전송하지않고서할수있는데이터처리를수행한다. - 자바스크립트는 HTML 나 JSP 에서작성할수있고 ( 내부스크립트 ), 별도의파일로도작성이가능하다 ( 외 부스크립트 ). - 내부스크립트 - 외부스크립트

More information