

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS-키네시스스트림-접착제 작업
<a name="aws-kinesisstreams-gluejob"></a>

![](http://docs.aws.amazon.com/ko_kr/solutions/latest/constructs/images/experimental.png)


 모든 클래스는 활발히 개발 중이며 향후 버전에서 이전 버전과 호환되지 않는 변경 또는 제거 될 수 있습니다. 이들은 적용되지 않습니다[의미 체계 버전](https://semver.org/)모델을 선택합니다. 즉, 이 패키지를 사용할 수도 있지만 이 패키지의 최신 버전으로 업그레이드할 때 소스 코드를 업데이트해야 할 수도 있습니다.

**참고:** 적절한 기능을 보장하려면 프로젝트의 AWS 솔루션 구성 패키지와 AWS CDK 패키지가 동일한 버전이어야 합니다.


|  **언어**  |  **패키지**  | 
| --- | --- | 
|  ![](http://docs.aws.amazon.com/ko_kr/solutions/latest/constructs/images/python.png) Python  |  aws\_solutions\_constructs.aws\_kinesis\_streams\_gluejob  | 
|  ![](http://docs.aws.amazon.com/ko_kr/solutions/latest/constructs/images/typescript.png) 타이프 스크립트  |  @aws-solutions-constructs/aws-kinesisstreams-gluejob  | 
|  ![](http://docs.aws.amazon.com/ko_kr/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.kinesisstreamsgluejob  | 

## Overview
<a name="overview-40"></a>

 이 AWS 솔루션 구성 요소는 Amazon Kinesis 데이터 스트림을 배포하고 상호 작용 및 보안을 위해 적절한 리소스/속성을 사용하여 사용자 지정 ETL 변환을 수행하도록 AWS Glue Job 구성합니다. 또한 AWS Glue Job 용 Python 스크립트를 업로드할 수 있는 Amazon S3 버킷을 생성합니다.

 다음은 TypeScript 터의 최소 배포 가능한 패턴 정의입니다.

```
import * as glue from '@aws-cdk/aws-glue';
import * as s3assets from '@aws-cdk/aws-s3-assets';
import { KinesisstreamsToGluejob } from '@aws-solutions-constructs/aws-kinesisstreams-gluejob';

const fieldSchema: glue.CfnTable.ColumnProperty[] = [
    {
        name: 'id',
        type: 'int',
        comment: 'Identifier for the record',
    },
    {
        name: 'name',
        type: 'string',
        comment: 'Name for the record',
    },
    {
        name: 'address',
        type: 'string',
        comment: 'Address for the record',
    },
    {
        name: 'value',
        type: 'int',
        comment: 'Value for the record',
    },
];

const customEtlJob = new KinesisstreamsToGluejob(this, 'CustomETL', {
    glueJobProps: {
        command: {
            name: 'gluestreaming',
            pythonVersion: '3',
            scriptLocation: new s3assets.Asset(this, 'ScriptLocation', {
                path: `${__dirname}/../etl/transform.py`,
            }).s3ObjectUrl,
        },
    },
    fieldSchema: fieldSchema,
});
```

## Initializer
<a name="initializer-40"></a>

```
new KinesisstreamsToGluejob(scope: Construct, id: string, props: KinesisstreamsToGluejobProps);
```

 *파라미터* 
+  scope[https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html) 
+  id`string` 
+  props[`KinesisstreamsToGluejobProps`](#pattern-construct-props-40) 

## 소품 패턴 구성
<a name="pattern-construct-props-40"></a>


|  **이름**  |  **유형**  |  **설명**  | 
| --- | --- | --- | 
|  키네시스스트림프롭스? |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.StreamProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.StreamProps.html)  |  Amazon Kinesis 데이터 스트림의 기본 소품을 무시하기 위한 사용자 제공 소품 (선택 사항)  | 
|  기존스트리모브? |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html)  |  Kinesis 스트림의 기존 인스턴스. 이 인스턴스와kinesisStreamProps오류가 발생합니다. | 
|  글루조프롭스? |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnJobProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnJobProps.html)  |  AWS Glub 작업에 대한 기본 소품을 재정의하는 사용자 제공 소품입니다. | 
|  기존 글루 작업? |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnJob.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnJob.html)  |  AWS Glue le Job 의 기존 인스턴스로, 이 인스턴스와glueJobProps오류가 발생합니다. | 
|  기존 데이터베이스? |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnDatabase.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnDatabase.html)  |  이 구문과 함께 사용할 기존 AWS Glue b 데이터베이스 이것이 설정되면databaseProps이 값은 무시됩니다. | 
|  데이터베이스Props? |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnDatabaseProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnDatabaseProps.html)  |  AWS Glub 데이터베이스를 생성하는 데 사용되는 기본 소품을 재정의하는 사용자 제공 소품입니다. | 
|  기존 테이블? |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTable.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTable.html)  |  AWS Glue 테이블의 기존 인스턴스입니다. 이것이 설정되면tableProps및fieldSchema이 매개 변수는 무시됩니다. | 
|  테이블소품? |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTableProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTableProps.html)  |  AWS Glub 테이블을 생성하는 데 사용되는 기본 소품을 재정의하는 사용자 제공 소품입니다. | 
|  필드스키마? |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTable.ColumnProperty.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTable.ColumnProperty.html)  |  AWS Glue le 테이블을 생성하기 위한 사용자 제공 스키마 구조 | 
|  데이터 저장소 출력  |  [https://github.com/awslabs/aws-solutions-constructs/blob/3fd15e984943fe295690d8b0654d77157ffda8e3/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-gluejob/README.md#sinkdatastoreprops](https://github.com/awslabs/aws-solutions-constructs/blob/3fd15e984943fe295690d8b0654d77157ffda8e3/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-gluejob/README.md#sinkdatastoreprops)  |  AWS Glue b 작업의 출력을 저장하는 Amazon S3 버킷에 대한 사용자가 제공한 소품입니다. 현재 Amazon S3 만 출력 데이터스토어 유형으로 지원합니다. | 

## SinkDataStoreProps
<a name="sink-properties-40"></a>


|  **이름**  |  **유형**  |  **설명**  | 
| --- | --- | --- | 
|  기존3출력 버킷? |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  데이터를 기록해야하는 S3 버킷의 기존 인스턴스입니다. 이 두 가지를 모두 제공outputBucketProps오류가 발생합니다. | 
|  출력버킷소품  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)  |  AWS Glue e의 출력을 저장하는 데 사용되는 Amazon S3 버킷을 만들 수 있는 사용자 제공 버킷 속성입니다. | 
|  데이터스토어 유형  |  [https://github.com/awslabs/aws-solutions-constructs/blob/3fd15e984943fe295690d8b0654d77157ffda8e3/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-gluejob/README.md#sinkstoretype](https://github.com/awslabs/aws-solutions-constructs/blob/3fd15e984943fe295690d8b0654d77157ffda8e3/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-gluejob/README.md#sinkstoretype)  |  싱크 데이터 저장소 유형입니다. | 

## SinkStoreType
<a name="sink-type-40"></a>

S3, DynamoDB, DocumentDB, RDS 또는 Redshift 포함할 수 있는 데이터 저장소 유형의 열거입니다. 현재 구문 구현은 S3 만 지원하지만 나중에 다른 출력 유형을 추가 할 수 있습니다.


|  **이름**  |  **유형**  |  **설명**  | 
| --- | --- | --- | 
|  S3  |  string  |  S3 스토리지 유형  | 

## 기본 설정
<a name="default-settings-40"></a>

 재정의없이이 패턴을 즉시 구현하면 다음과 같은 기본값이 설정됩니다.

### Amazon Kinesis Streams
<a name="w23aab9d115c29b5"></a>
+  Amazon Kinesis 데이터 스트림에 대한 최소 권한 액세스 IAM 역할을 구성합니다.
+  AWS 관리형 KMS 키를 사용하여 Amazon Kinesis 스트림에 대한 서버 측 암호화를 활성화합니다.
+  아마존 Kinesis 스트림에 대한 모범 사례 아마존 CloudWatch 경보를 배포합니다.

### GGlue y Job
<a name="w23aab9d115c29b7"></a>
+  CloudWatch, Job 북마크 및 S3에 대한 암호화를 구성하는 AWS Glue 보안 구성을 생성합니다. CloudWatch 및 Job 북마크는 AWS AWS Glue 서비스용으로 생성된 AWS 관리형 KMS 키를 사용하여 암호화됩니다. S3 버킷은 SSE-S3 암호화 모드로 구성됩니다.
+  Amazon Kinesis Data Streams es에서 AWS Glue e가 읽을 수 있도록 허용하는 서비스 역할 정책을 구성합니다.

### GGlue e데이터베이스
<a name="w23aab9d115c29b9"></a>
+  AWS Glue 데이터베이스를 생성합니다. AWS Glue 테이블이 데이터베이스에 추가됩니다. 이 표에서는 Amazon Kinesis 데이터 스트림에서 버퍼링된 레코드에 대한 스키마를 정의합니다.

### GGlue e테이블
<a name="w23aab9d115c29c11"></a>
+  AWS Glue 테이블을 만듭니다. 테이블 스키마 정의는 Amazon Kinesis 데이터 스트림에서 버퍼링된 레코드의 JSON 구조를 기반으로 합니다.

### IAM 역할
<a name="w23aab9d115c29c13"></a>
+  1) Amazon S3 버킷 위치에서 ETL 스크립트를 읽고, 2) Amazon Kinesis 데이터 스트림에서 레코드를 읽고, 3) Amazon Glue 루 작업을 실행할 수 있는 권한을 가진 작업 실행 역할입니다.

### Output S3 Bucket
<a name="w23aab9d115c29c15"></a>
+  ETL 변환의 출력을 저장할 Amazon S3 버킷입니다. 이 버킷은 생성된 AWS Glue b 작업에 인수로 전달되므로 ETL 스크립트에서 데이터를 쓸 수 있습니다.

## Architecture
<a name="architecture-40"></a>

![](http://docs.aws.amazon.com/ko_kr/solutions/latest/constructs/images/aws-kinesisstreams-gluejob.png)


## GitHub
<a name="github-40"></a>


<table>
<thead>
  <tr><th colspan="2"> 이 패턴의 코드를 보려면 문제 및 끌어오기 요청을 작성/조회하는 등의 작업을 수행합니다. </th></tr>
</thead>
<tbody>
  <tr><td> ![](http://docs.aws.amazon.com/ko_kr/solutions/latest/constructs/images/GitHub-Mark-32px.png) </td><td> [@aws -솔루션 - 구성/AWS - 키네시스스트림-접착제 작업](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-gluejob) </td></tr>
</tbody>
</table>
