

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

# 자습서: 지속 가능한 상태를 사용하는 Managed Service for Apache Flink 애플리케이션으로 Studio 노트북 배포
<a name="example-notebook-deploy"></a>

다음 자습서에서는 지속 가능한 상태의 Apache Flink 애플리케이션용 관리 서비스로 Studio 노트북을 배포하는 방법을 보여줍니다.

**Topics**
+ [사전 조건 완료](#example-notebook-durable-setup)
+ [를 사용하여 내구성 있는 상태의 애플리케이션 배포 AWS Management Console](#example-notebook-deploy-console)
+ [를 사용하여 내구성 있는 상태의 애플리케이션 배포 AWS CLI](#example-notebook-deploy-cli)

## 사전 조건 완료
<a name="example-notebook-durable-setup"></a>

Kinesis Data Streams 또는 Amazon MSK를 사용하여 [자습서: Managed Service for Apache Flink에서 Studio 노트북 생성](example-notebook.md)에 따라 새 Studio 노트북을 생성하세요. Studio 노트북의 이름을 `ExampleTestDeploy`(으)로 지정하세요.

## 를 사용하여 내구성 있는 상태의 애플리케이션 배포 AWS Management Console
<a name="example-notebook-deploy-console"></a>

1. 콘솔의 **애플리케이션 코드 위치(*선택 사항*)**에 패키지 코드를 저장할 S3 버킷 위치를 추가합니다. 이렇게 하면 단계를 통해 노트북에서 직접 애플리케이션을 배포하고 실행할 수 있습니다.

1. Amazon S3 버킷을 읽고 쓰는 데 사용하는 역할을 활성화하고 Managed Service for Apache Flink 애플리케이션을 시작하는 데 필요한 권한을 애플리케이션 역할에 추가합니다.
   + AmazonS3FullAccess
   + Amazonmanaged-flinkFullAccess
   + 해당하는 경우 소스, 대상 및 VPC에 액세스할 수 있습니다. 자세한 설명은 [Studio 노트북의 IAM 권한 검토](how-zeppelin-iam.md) 섹션을 참조하세요.

1. 다음 예제 코드를 사용하세요.

   ```
   %flink.ssql(type=update) 
   CREATE TABLE exampleoutput (
     'ticket' VARCHAR,
     'price' DOUBLE
   )
   WITH (
     'connector' = 'kinesis',
     'stream' = 'ExampleOutputStream',
     'aws.region' = 'us-east-1',
     'scan.stream.initpos' = 'LATEST',
     'format' = 'json'
   );
   
   INSERT INTO exampleoutput SELECT ticker, price FROM exampleinputstream
   ```

1. 이번 기능 출시와 함께 노트북의 각 노트 오른쪽 상단 모서리에 노트북 이름과 함께 새로운 드롭다운이 표시됩니다. 다음을 수행할 수 있습니다.
   +  AWS Management Console에서 Studio 노트북 설정을 볼 수 있습니다.
   + Zeppelin Note를 빌드하고 Amazon S3로 내보내세요. 이때 애플리케이션 이름을 입력하고 **빌드 및 내보내기**를 선택합니다. 내보내기가 완료되면 알림을 받게 됩니다.
   + 필요한 경우 Amazon S3의 실행 파일에서 추가 테스트를 보고 실행할 수 있습니다.
   + 빌드가 완료되면 지속 가능한 상태 및 자동 크기 조정 기능을 갖춘 Kinesis 스트리밍 애플리케이션으로 코드를 배포할 수 있습니다.
   + 드롭다운을 사용하여 **Zeppelin Note를 Kinesis 스트리밍 애플리케이션으로 배포**를 선택합니다. 애플리케이션 이름을 검토하고 ** AWS 콘솔을 통해 배포**를 선택합니다.
   + 그러면 Managed Service for Apache Flink 애플리케이션을 생성하는 AWS Management Console 페이지로 이동합니다. 참고로 애플리케이션 이름, 병렬 처리, 코드 위치, 기본 Glue DB, VPC (해당하는 경우) 및 IAM 역할이 미리 입력되어 있습니다. IAM 역할에 소스 및 대상에 필요한 권한이 있는지 확인하세요. 안정적인 애플리케이션 상태 관리를 위해 스냅샷은 기본적으로 활성화됩니다.
   + **애플리케이션 생성**을 선택합니다.
   + 설정 **구성** 및 수정을 선택한 다음 **Run**을 선택하여 스트리밍 애플리케이션을 시작할 수 있습니다.

## 를 사용하여 내구성 있는 상태의 애플리케이션 배포 AWS CLI
<a name="example-notebook-deploy-cli"></a>

를 사용하여 애플리케이션을 배포하려면 Beta 2 정보와 함께 제공된 서비스 모델을 AWS CLI 사용하도록를 업데이트 AWS CLI해야 합니다. 업데이트된 서비스 모델을 사용하는 방법에 대한 자세한 내용은 [사전 조건 완료사전 조건 완료](example-notebook.md#example-notebook-setup) 섹션을 참조하세요.

다음 예제 코드에서는 새 Studio 노트북을 생성합니다.

```
aws kinesisanalyticsv2 create-application \
     --application-name <app-name> \
     --runtime-environment ZEPPELIN-FLINK-3_0 \
     --application-mode INTERACTIVE \
     --service-execution-role <iam-role>
     --application-configuration '{ 
       "ZeppelinApplicationConfiguration": { 
         "CatalogConfiguration": { 
           "GlueDataCatalogConfiguration": { 
             "DatabaseARN": "arn:aws:glue:us-east-1:<account>:database/<glue-database-name>" 
           } 
         } 
       },
       "FlinkApplicationConfiguration": {
         "ParallelismConfiguration": {
           "ConfigurationType": "CUSTOM",
           "Parallelism": 4,
           "ParallelismPerKPU": 4
         }
       },
       "DeployAsApplicationConfiguration": {
            "S3ContentLocation": { 
               "BucketARN": "arn:aws:s3:::<s3bucket>",
               "BasePath": "/something/"
            }
        },
       "VpcConfigurations": [
         {
           "SecurityGroupIds": [
             "<security-group>"
           ],
           "SubnetIds": [
             "<subnet-1>",
             "<subnet-2>"
           ]
         }
       ]
     }' \
     --region us-east-1
```

다음 코드 예제에서는 Studio 노트북을 시작합니다.

```
aws kinesisanalyticsv2 start-application \
    --application-name <app-name> \
    --region us-east-1 \
    --no-verify-ssl
```

다음 코드는 애플리케이션의 Apache Zeppelin 노트북 페이지의 URL을 반환합니다.

```
aws kinesisanalyticsv2 create-application-presigned-url \
    --application-name <app-name> \
    --url-type ZEPPELIN_UI_URL \

    --region us-east-1 \
    --no-verify-ssl
```