

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

# Amazon Kinesis Video Streams Edge 에이전트를에 배포 AWS IoT Greengrass
<a name="gs-edge-gg"></a>

 

이 섹션에서는 Amazon Kinesis Video Streams를 함께 사용하기 위한 포괄적인 가이드를 제공합니다 AWS IoT Greengrass. 이러한 서비스를 결합하면 엣지 디바이스에서 클라우드로 비디오를 효율적으로 스트리밍하여 IoT, 감시 등의 다양한 애플리케이션을 지원할 수 있습니다.

다음에 대한 자세한 정보를 확인할 수 있습니다.
+ 개발 환경 설정
+ Kinesis 비디오 스트림 생성
+ Lambda 함수 생성 및 패키징
+ Kinesis Video Streams 코어 디바이스 구성
+ 코어 디바이스에 배포
+ 스트림 확인

다음 단계에 따라 Amazon Kinesis Video Streams Edge 에이전트를에 배포 AWS IoT Greengrass 하여 IP 카메라에서 미디어를 레코딩하고 업로드합니다.

**Topics**
+ [Ubuntu Amazon EC2 인스턴스 생성](gs-ubuntu.md)
+ [디바이스에서 AWS IoT Greengrass V2 코어 디바이스 설정](gs-setup-gg.md)
+ [IP 카메라 RTSP URLs에 대한 Amazon Kinesis Video Streams 및 AWS Secrets Manager 리소스 생성](gs-create-resources.md)
+ [토큰 교환 서비스(TES) 역할에 권한 추가](gs-add-permissions.md)
+ [디바이스에 AWS IoT Greengrass Secret Manager 구성 요소 설치](gs-install-secrets-manager.md)
+ [디바이스에 Amazon Kinesis Video Streams Edge Agent AWS IoT Greengrass 구성 요소 배포](gs-deploy-edge.md)
+ [디바이스에 AWS IoT Greengrass 로그 관리자 구성 요소 설치](gs-publish-edge.md)

# Ubuntu Amazon EC2 인스턴스 생성
<a name="gs-ubuntu"></a>

Ubuntu Amazon EC2 인스턴스를 생성하려면 다음을 수행합니다.

**Ubuntu Amazon EC2 인스턴스 생성**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) Amazon EC2 콘솔을 엽니다.

   적절한 리전이 선택되어 있는지 확인합니다.

1. **인스턴스 시작**을 선택합니다.

   다음 작업을 완료합니다.
   + **이름** - 인스턴스의 이름을 입력합니다.
   + **애플리케이션 및 OS 이미지(Amazon 머신 이미지)** - **Ubuntu**를 선택합니다.
   + **인스턴스 유형** - **t2.large**를 선택합니다.
   + **키 페어 로그인** - 자체 키 페어를 생성합니다.
   + **네트워크 설정** - 기본값을 유지합니다.
   + **스토리지 구성** - 볼륨을 256GiB로 늘립니다.
   + **고급 설정** - 기본값을 유지합니다.

1. 인스턴스와 SSH를 시작합니다.

   해결 방법:

   1. 왼쪽 탐색 창에서 **인스턴스**를 선택한 다음 인스턴스 ID를 선택합니다.

   1. 오른쪽 상단에서 **연결을** 선택합니다.

   1. **SSH 클라이언트**를 선택하고 화면의 지침을 따릅니다.

   1. 터미널을 열고 다운로드한 `.pem` 파일(예: )로 이동합니다`~/Downloads`.

   1. 이 절차를 처음 따르면 “호스트(...)의 신뢰성을 설정할 수 없습니다.”라는 메시지가 표시됩니다. **yes**를 입력합니다.

1. 시스템 라이브러리를 설치하여 Amazon Kinesis Video Streams Edge 에이전트를 인스턴스에 빌드합니다.

   ```
   wget -O- https://apt.corretto.aws/corretto.key | sudo apt-key add - 
   sudo add-apt-repository 'deb https://apt.corretto.aws stable main'
   
   sudo apt-get update
   
   sudo apt-get install -y gcc libssl-dev libcurl4-openssl-dev liblog4cplus-dev \
   libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
   gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad \
   gstreamer1.0-plugins-good gstreamer1.0-tools \
   unzip java-11-amazon-corretto-jdk maven
   ```
**중요**  
일부 서비스를 다시 시작해야 한다는 화면이 표시되면 Enter 키를 눌러 **확인을** 선택합니다.

   자세한 내용은 [https://docs.aws.amazon.com//corretto/latest/corretto-11-ug/generic-linux-install.html](https://docs.aws.amazon.com//corretto/latest/corretto-11-ug/generic-linux-install.html) 참조하세요.

# 디바이스에서 AWS IoT Greengrass V2 코어 디바이스 설정
<a name="gs-setup-gg"></a>

다음 절차에 따라 Amazon EC2 인스턴스에 AWS IoT Greengrass 코어 nucleus 소프트웨어를 설치합니다.

**AWS IoT Greengrass 코어 디바이스 설정**

1.  AWS Management Console[https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/) 로그인합니다.

   적절한 리전이 선택되어 있는지 확인합니다.

1. 왼쪽 탐색 창에서 **Greengrass 디바이스**, **코어 디바이스**를 선택합니다.

1. **코어 디바이스 1개 설정을** 선택합니다.

1. 화면의 단계를 완료합니다.
   + **1단계: Greengrass 코어 디바이스를 등록**합니다. 디바이스의 이름을 입력합니다.
   + **2단계: 사물 그룹에 추가하여 지속적 배포를 적용합니다**. **그룹 없음을** 선택합니다.
   + **3단계: Greengrass Core 소프트웨어를 설치합니다**. **Linux**를 선택합니다.
     + **3.1단계: 디바이스에 Java 설치**

       Java는의 일부로 설치됩니다[Ubuntu Amazon EC2 인스턴스 생성](gs-ubuntu.md). 아직 Java가 설치되지 않은 경우 해당 단계로 돌아갑니다.
     + **3.2단계: 디바이스에 AWS 자격 증명 복사**

       `bash/zsh` 옵션을 열고 Amazon EC2 인스턴스에 내보내기 명령을 붙여 넣습니다.
     + **3.3단계: 설치 프로그램 실행**

       1. Ubuntu Amazon EC2 인스턴스에서 **설치 관리자 다운로드** 및 **설치 관리자 실행** 명령을 복사하여 실행합니다.
**참고**  
설치 **관리자 실행** 명령은 이전 단계에서 선택한 이름을 기반으로 자동으로 업데이트됩니다.

       1. 생성된 토큰 교환 서비스(TES) 역할을 기록해 둡니다. 나중에 필요합니다.
**참고**  
기본적으로 생성된 역할은 **GreengrassV2TokenExchangeRole**이라고 합니다.

# IP 카메라 RTSP URLs에 대한 Amazon Kinesis Video Streams 및 AWS Secrets Manager 리소스 생성
<a name="gs-create-resources"></a>

다음 절차에 따라에 필요한 스트림과 보안 암호를 생성합니다 AWS Secrets Manager. 정책에 생성된 리소스의 ARNs이 필요하므로이 단계를 먼저 수행합니다.

## Amazon Kinesis Video Streams 생성
<a name="gs-create-kvs"></a>

 AWS Management Console AWS CLI또는 API를 사용하여 Amazon Kinesis Video Streams를 생성합니다.

에서 [Amazon Kinesis Video Streams 콘솔](https://console.aws.amazon.com/kinesisvideo/home/)을 AWS Management Console엽니다. 왼쪽 탐색 창에서 **비디오 스트림**을 선택합니다.

자세한 내용은 [Amazon Kinesis 비디오 스트림 생성](gs-createstream.md) 단원을 참조하십시오.

## 에서 보안 암호 생성 AWS Secrets Manager
<a name="gs-create-secrets"></a>

에서 [AWS Secrets Manager 콘솔](https://console.aws.amazon.com/secretsmanager/landing)을 AWS Management Console엽니다. 왼쪽 탐색 창에서 **보안 암호를** 선택합니다.

적절한 리전이 선택되어 있는지 확인합니다.

1. **새 보안 암호 저장**을 선택합니다.

   1. **1단계: 보안 암호 유형 선택**
      + **다른 유형의 보안 암호(Other type of secrets)**를 선택합니다.
      + **키/값 페어** 섹션에서 키-값 페어를 추가합니다.

        **키**: `MediaURI`
**참고**  
키는 여야 합니다`MediaURI`. 대/소문자를 구분합니다. 잘못 입력하면 애플리케이션이 작동하지 않습니다.

        **값**: `Your MediaURI`.  
**Example**  

        **예:** `rtsp://<YourCameraIPAddress>:<YourCameraRTSPPort>/YourCameraMediaURI`.

   1. **2단계: 보안 암호를 구성합니다**. 이 보안 암호에 이름을 지정합니다. 원하는 대로 이름을 지정합니다.

   1. **3단계: 교체 구성 - 선택 사항**. **다음**을 선택합니다.

   1. **4단계: 검토**. **저장(Store)**을 선택합니다.

1. 보안 암호가 즉시 표시되지 않으면 새로 고침 버튼을 선택합니다.

   보안 암호의 이름을 선택합니다. **보안 암호 ARN**을 기록해 둡니다.

1. 스트리밍하려는 각 MediaURI에 대해이 프로세스를 반복합니다.

**참고**  
 AWS 네트워크는 일부 퍼블릭 RTSP 소스를 차단합니다. Amazon EC2 인스턴스 내에서 또는 VPN에 연결된 상태에서 비관리형를 실행하는 경우 이러한에 액세스할 수 없습니다.  
카메라 RTSP URL은 h.264 형식으로 비디오를 스트리밍해야 합니다. 조각 지속 시간은에 언급된 제한을 초과해서는 안 됩니다[생산자 SDK 할당량](limits.md#producer-sdk-limits).  
Amazon Kinesis Video Streams Edge Agent는 비디오만 지원합니다.
를 실행`gst-discoverer-1.0 Your RtspUrl`하여 디바이스에서 카메라에 연결할 수 있는지 확인합니다.

생성한 모든 스트림 및 보안 암호에 대한 ARNs을 저장합니다. 다음 단계에 필요합니다.

# 토큰 교환 서비스(TES) 역할에 권한 추가
<a name="gs-add-permissions"></a>

보안 암호를 볼 수 있는 권한을 맡는 디바이스에 토큰 교환 서비스(TES) 역할을 부여합니다. 이는 구성 요소가 올바르게 작동하는 데 필요합니다 AWS Secrets Manager AWS IoT Greengrass .

**TES 역할에 권한 추가**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **역할을** 선택하고 프로세스 초기에 생성한 TES 역할을 검색합니다.

1. **권한 추가** 드롭다운에서 **정책 연결을** 선택합니다.

1. **정책 생성**을 선택합니다.

1. 아래로 스크롤하여 **편집**을 선택합니다.

1. 정책 편집기에서 **JSON**을 선택하고 정책을 편집합니다.

   정책을 다음으로 바꿉니다.
**참고**  
`arn:aws:kinesisvideo:*:*:stream/streamName1/*` 및 `arn:aws:kinesisvideo:*:*:stream/streamName2/*`를 이전 단계에서 생성한 스트림의 ARNs으로 바꿉니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kinesisvideo:ListStreams"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kinesisvideo:DescribeStream",
                   "kinesisvideo:PutMedia",
                   "kinesisvideo:TagStream",
                   "kinesisvideo:GetDataEndpoint"
               ],
               "Resource": [
                   "arn:aws:kinesisvideo:*:*:stream/streamName1/*",
                   "arn:aws:kinesisvideo:*:*:stream/streamName2/*"
               ]
           }
       ]
   }
   ```

------

1. **Add tags(태그 추가)** 페이지에서 **Next: Review(다음: 검토)**를 선택합니다.

1. 정책 이름을 지정한 다음 **정책 생성을** 선택합니다.

   정책 이름의 예는 **KvsEdgeAccessPolicy**입니다.

1. 탭을 닫고 정책을 TES 역할에 연결하는 탭으로 돌아갑니다.

   새로 고침 버튼을 선택한 다음 새로 생성된 정책을 검색합니다.

   확인란을 선택하고 **정책 연결을** 선택합니다.

   다음 화면에**는 정책이 역할에 성공적으로 연결되었다는 메모가 표시됩니다.**

1. 이번에는 보안 암호에 대해 다른 정책을 생성하고 연결합니다.

   정책을 다음으로 바꿉니다.
**참고**  
를에서 생성한 MediaURI 보안 암호가 포함된 ARNs`arn:aws:secretsmanager:*:*:secret:*`으로 바꿉니다[IP 카메라 RTSP URLs에 대한 Amazon Kinesis Video Streams 및 AWS Secrets Manager 리소스 생성](gs-create-resources.md).

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": [
                   "arn:aws:secretsmanager:*:*:secret:*",
                   "arn:aws:secretsmanager:*:*:secret:*"
               ]
           }
       ]
   }
   ```

------

1. 이번에는 지표에 대해 Amazon CloudWatch 다른 정책을 생성하고 연결합니다. 정책을 다음으로 바꿉니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "cloudwatch:PutMetricData"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

------

# 디바이스에 AWS IoT Greengrass Secret Manager 구성 요소 설치
<a name="gs-install-secrets-manager"></a>

Amazon Kinesis Video Streams Edge 에이전트를 사용하려면 디바이스에 AWS IoT Greengrass Secret Manager 구성 요소를 먼저 설치해야 합니다.

**Secret Manager 구성 요소 설치**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/) AWS IoT Core 콘솔을 엽니다. 적절한 리전이 선택되어 있는지 확인합니다.

1. 왼쪽 탐색 창에서 **Greengrass 디바이스**, **배포를** 선택합니다.

   에서 생성한 것과 동일한 대상의 배포를 선택합니다[디바이스에서 AWS IoT Greengrass V2 코어 디바이스 설정](gs-setup-gg.md).

1. 오른쪽 상단의 **작업** 드롭다운에서 **수정**을 선택합니다.

   표시되는 팝업에서 **배포 수정을** 선택합니다.

1. 다음 섹션을 완료합니다.
   + **1단계: 대상을 지정합니다**. **다음**을 선택합니다.
   + **2단계: 구성 요소를 선택합니다**.
     + **aws.greengrass.Cli** 구성 요소가 선택되어 있는지 확인합니다. 이 구성 요소를 제거하지 마십시오.
     + **선택한 구성 요소만 표시** 스위치를 전환하고 **aws.greengrass.SecretManager**를 검색합니다.
     + **aws.greengrass.SecretManager** 옆의 확인란을 선택한 **후 다음을** 선택합니다.
   + **3단계: 구성 요소를 구성합니다**. AWS IoT Greengrass 환경 내에서 보안 암호를 다운로드하도록 AWS IoT Greengrass Secret Manager 구성 요소를 구성합니다.

     **aws.greengrass.SecretManager** 구성 요소를 선택한 다음 **구성 요소 구성을** 선택합니다.

     표시되는 화면에서 병합할 구성 상자의 AWS Secrets Manager ARNs을 업데이트합니다. **** 
**참고**  
를에서 생성한 보안 암호의 ARNs`arn:aws:secretsmanager:*:*:secret:*`으로 바꿉니다[IP 카메라 RTSP URLs에 대한 Amazon Kinesis Video Streams 및 AWS Secrets Manager 리소스 생성](gs-create-resources.md).

     ```
     {
      "cloudSecrets": [
           {
             "arn": "arn:aws:secretsmanager:*:*:secret:*"
           },
           {
             "arn": "arn:aws:secretsmanager:*:*:secret:*"
           }
         ]
     }
     ```
**참고**  
`cloudSecrets`는 키가 인 객체 목록입니다`arn`. 자세한 내용은 AWS IoT Greengrass Version 2 개발자 안내서의 [Secret Manager 구성](https://docs.aws.amazon.com//greengrass/v2/developerguide/secret-manager-component.html#secret-manager-component-configuration) 섹션을 참조하세요.

     완료되면 **확인을** 선택한 **후 다음을** 선택합니다.
   + **4단계: 고급 설정을 구성합니다**. **다음**을 선택합니다.
   + **5단계: 검토**. **배포**를 선택합니다.

1.  AWS Secrets Manager 구성 요소와 권한이 올바르게 설치되었는지 확인합니다.

   Ubuntu Amazon EC2 인스턴스에서 `sudo /greengrass/v2/bin/greengrass-cli component details --name aws.greengrass.SecretManager`를 입력하여 구성 요소가 업데이트된 구성을 수신했는지 확인합니다.

1.  AWS IoT Greengrass 코어 로그를 검사합니다.

   유형 `sudo less /greengrass/v2/logs/greengrass.log`

   배포 오류를 검토합니다.

   오류가 있는 경우 배포를 수정하여 `aws.greengrass.SecretManager` 구성 요소를 제거합니다.

   `sudo service greengrass restart`를 입력하여 AWS IoT Greengrass 코어 서비스를 다시 시작합니다.

   배포 오류가 누락된 권한과 관련된 경우 [토큰 교환 서비스(TES) 역할에 권한 추가](gs-add-permissions.md) 섹션을 검토하여 TES 역할에 적절한 권한이 있는지 확인합니다. 그런 다음이 섹션을 반복합니다.

1. ** AWS IoT Greengrass Secret Manager 구성 요소의 보안 암호 업데이트**
**중요**  
 AWS IoT Greengrass Secret Manager 구성 요소는 배포가 업데이트된 경우에만 암호를 가져오고 캐시합니다.

    AWS IoT Greengrass Secret Manager 구성 요소의 보안 암호를 업데이트하려면 이전 1\$16단계를 따르고 다음과 같이 변경합니다.

   **3단계: 구성 요소를 구성합니다**. AWS IoT Greengrass 환경 내에서 보안 암호를 다운로드하도록 AWS IoT Greengrass Secret Manager 구성 요소를 구성합니다.

   **aws.greengrass.SecretManager** 구성 요소를 선택한 다음 **구성 요소 구성을** 선택합니다.

   표시되는 화면에서 경로 `[""]` 재설정 상자에 붙여넣고 **병합할 구성** 상자에서 AWS Secrets Manager ARNs을 업데이트합니다. **** 

   자세한 내용은 [업데이트 재설정](https://docs.aws.amazon.com//greengrass/v2/developerguide/update-component-configurations.html#reset-configuration-update)을 참조하세요.

# 디바이스에 Amazon Kinesis Video Streams Edge Agent AWS IoT Greengrass 구성 요소 배포
<a name="gs-deploy-edge"></a>

디바이스에 Amazon Kinesis Video Streams Edge Agent AWS IoT Greengrass 구성 요소를 배포하려면 다음을 수행합니다.

**구성 요소 배포**

1. 제공된 링크를 사용하여 `tar` 파일을 다운로드합니다.

   Amazon Kinesis Video Streams Edge 에이전트 관심 양식을 작성한 경우 이메일에서 다운로드 링크를 확인하세요. 양식을 작성하지 않은 경우 [여기에서](https://pages.awscloud.com/GLOBAL-launch-DL-KVS-Edge-2023-learn.html) 작성하세요.

1. 체크섬을 확인합니다.

1. 디바이스에서 바이너리와 jar을 추출합니다.

   유형: `tar -xvf kvs-edge-agent.tar.gz`.

   추출 후 폴더 구조는 다음과 같습니다.

   ```
   kvs-edge-agent/LICENSE
   kvs-edge-agent/THIRD-PARTY-LICENSES
   kvs-edge-agent/pom.xml
   kvs-edge-agent/KvsEdgeComponent
   kvs-edge-agent/KvsEdgeComponent/recipes
   kvs-edge-agent/KvsEdgeComponent/recipes/recipe.yaml
   kvs-edge-agent/KvsEdgeComponent/artifacts
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/edge_log_config                   
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/kvs-edge-agent.jar
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/libgstkvssink.so
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/libIngestorPipelineJNI.so
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/lib
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/lib/libcproducer.so
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/lib/libKinesisVideoProducer.so
   ```
**참고**  
릴리스 폴더 이름은 최신 바이너리 릴리스 번호를 반영하는 방식으로 설정해야 합니다. 예를 들어 1.0.0 릴리스의 폴더 이름은 1.0.0으로 설정됩니다.

1. 종속성 jar을 빌드합니다.
**참고**  
kvs-edge-agent.tar.gz에 포함된 jar에는 종속성이 없습니다. 다음 단계에 따라 해당 라이브러리를 빌드합니다.

   가 포함된 `kvs-edge-agent` 폴더로 이동합니다`pom.xml`.

   유형 `mvn clean package`

   그러면에서 Amazon Kinesis Video Streams Edge 에이전트에 필요한 종속성이 포함된 jar 파일이 생성됩니다`kvs-edge-agent/target/libs.jar`.

1. 구성 요소의 아티팩트가 포함된 폴더에 libs.jar를 배치합니다.

   유형 `mv ./target/libs.jar ./KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/`

1. **선택 사항**. 속성을 구성합니다. Amazon Kinesis Video Streams Edge 에이전트는 모드에서 다음 환경 변수를 허용합니다. AWS IoT Greengrass     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/kinesisvideostreams/latest/dg/gs-deploy-edge.html)

   실행 스크립트를 `kvs-edge-agent/KvsEdgeComponent/recipes/recipe.yaml` 열고 수정하여 위의 환경 변수 중 하나를 추가합니다.
**중요**  
수정된 실행 스크립트에 **탭** 문자가 포함되어 있지 않은지 확인합니다. AWS IoT Greengrass 코어 소프트웨어는 레시피를 읽을 수 없습니다.

1. Amazon Kinesis Video Streams Edge 에이전트 AWS IoT Greengrass 구성 요소를 배포합니다.

   유형: 

   ```
   sudo /greengrass/v2/bin/greengrass-cli deployment create \
     --recipeDir <download location>/kvs-edge-agent/KvsEdgeComponent/recipes/ \
     --artifactDir <download location>/kvs-edge-agent/KvsEdgeComponent/artifacts/ \
     --merge "aws.kinesisvideo.KvsEdgeComponent=EdgeAgentVersion"
   ```

   자세한 내용은 *AWS IoT Greengrass Version 2 개발자 안내서*의 다음 섹션을 참조하세요.
   + [AWS IoT Greengrass CLI 명령](https://docs.aws.amazon.com//greengrass/v2/developerguide/gg-cli-reference.html)
   + [디바이스에 AWS IoT Greengrass 구성 요소 배포](https://docs.aws.amazon.com//greengrass/v2/developerguide/manage-deployments.html)

1. 를 사용하여 애플리케이션에 구성을 전송합니다 AWS CLI.

   1. 새 파일을 생성합니다`example-edge-configuration.json`.

      다음 코드를 파일에 붙여 넣습니다. 이는 매일 오전 9:00:00부터 오후 4:59:59까지( AWS IoT 디바이스의 시스템 시간에 따라)를 기록하는 샘플 구성입니다. 또한 매일 오후 7시부터 오후 9시 59분 59초까지 기록된 미디어를 업로드합니다.

      자세한 내용은 [StartEdgeConfigurationUpdate](API_StartEdgeConfigurationUpdate.md) 단원을 참조하십시오.

      ```
      {
          "StreamARN": "arn:aws:kinesisvideo:your-region:your-account-id:stream/your-stream/0123456789012",
          "EdgeConfig": {
              "HubDeviceArn": "arn:aws:iot:your-region:your-account-id:thing/kvs-edge-agent-demo",
              "RecorderConfig": {
                  "MediaSourceConfig": {
                      "MediaUriSecretArn": "arn:aws:secretsmanager:your-region:your-account-id:secret:your-secret-dRbHJQ",
                      "MediaUriType": "RTSP_URI"
                  },
                  "ScheduleConfig": {
                      "ScheduleExpression": "0 0 9,10,11,12,13,14,15,16 ? * * *",
                      "DurationInSeconds": 3599
                  }
              },
              "UploaderConfig": {
                  "ScheduleConfig": {
                      "ScheduleExpression": "0 0 19,20,21 ? * * *",
                      "DurationInSeconds": 3599
                  }
              },
              "DeletionConfig": {
                  "EdgeRetentionInHours": 15,
                  "LocalSizeConfig": {
                    "MaxLocalMediaSizeInMB": 2800,
                    "StrategyOnFullSize": "DELETE_OLDEST_MEDIA"
                  },
                  "DeleteAfterUpload": true
              }
          }
      }
      ```

   1. 에 다음을 입력하여 파일을 Amazon Kinesis Video Streams Edge 에이전트로 AWS CLI 전송합니다.

      ```
      aws kinesisvideo start-edge-configuration-update --cli-input-json "file://example-edge-configuration.json"
      ```

1. Amazon Kinesis Video Streams Edge 에이전트의 각 스트림에 대해 이전 단계를 반복합니다.

# 디바이스에 AWS IoT Greengrass 로그 관리자 구성 요소 설치
<a name="gs-publish-edge"></a>

**참고**  
[CloudWatch 할당량에 유의하세요](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html).

다음 절차에 따라 로그 관리자 구성 요소를 사용하여 CloudWatch에 자동으로 업로드하도록 Amazon Kinesis Video Streams Edge 에이전트 AWS IoT Greengrass 로그를 구성합니다. 이 단계는 선택 사항입니다.

**AWS IoT Greengrass 로그 관리자 구성 요소 설치**

1.  AWS IoT Greengrass 디바이스 역할에 [적절한 권한이](https://docs.aws.amazon.com//greengrass/v2/developerguide/log-manager-component.html#log-manager-component-requirements) 있는지 확인합니다.

   1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

   1. 왼쪽 탐색 창에서 **역할을** 클릭합니다.

   1. 에서 생성된 TES 역할의 이름을 선택합니다[디바이스에서 AWS IoT Greengrass V2 코어 디바이스 설정](gs-setup-gg.md). 필요한 경우 검색 창을 사용합니다.

   1. `GreengrassV2TokenExchangeRoleAccess` 정책을 선택합니다.

   1. JSON 탭을 선택하고 정책이 다음과 같은지 확인합니다.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "logs:CreateLogGroup",
                      "logs:CreateLogStream",
                      "logs:PutLogEvents",
                      "logs:DescribeLogStreams",
                      "s3:GetBucketLocation"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. `GreengrassV2TokenExchangeRoleAccess` 정책이 존재하지 않거나 일부 필수 권한이 누락된 경우 이러한 권한이 있는 새 IAM 정책을 생성하고에서 생성된 TES 역할에 연결합니다[디바이스에서 AWS IoT Greengrass V2 코어 디바이스 설정](gs-setup-gg.md).

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/) AWS IoT Core 콘솔을 엽니다. 적절한 리전이 선택되어 있는지 확인합니다.

1. 왼쪽 탐색 창에서 **Greengrass 디바이스**, **배포를** 선택합니다.

   에서 생성한 것과 동일한 대상의 배포를 선택합니다[디바이스에서 AWS IoT Greengrass V2 코어 디바이스 설정](gs-setup-gg.md).

1. 오른쪽 상단 모서리에서 **작업을** 선택한 다음 **수정을** 선택합니다.

   표시되는 팝업에서 **배포 수정을** 선택합니다.

1. 다음 섹션을 완료합니다.

   1. **1단계: 대상을 지정합니다.** **다음**을 선택합니다.

   1. **2단계: 구성 요소를 선택합니다.**

      1. **aws.greengrass.Cli** 구성 요소와 **aws.greengrass.SecretManager** 구성 요소가 여전히 선택되어 있는지 확인합니다.
**중요**  
이러한 구성 요소를 제거하지 마십시오.

      1. **선택한 구성 요소만 표시** 스위치를 전환하고 **aws.greengrass.LogManager를** 검색합니다.

      1. **aws.greengrass.LogManager** 옆의 상자를 선택한 **후 다음을** 선택합니다.

   1. **3단계: 구성 요소를 구성합니다.** Amazon Kinesis Video Streams Edge 에이전트에서 생성된 AWS IoT Greengrass 로그를 업로드하도록 로그 관리자 구성 요소를 구성합니다.

      **aws.greengrass.LogManager** 구성 요소를 선택한 다음 **구성 요소 구성을** 선택합니다.

      표시되는 화면에서 **병합할 구성** 상자에 다음 로그 관리자 구성을 붙여 넣습니다.

      ```
      {
          "logsUploaderConfiguration": {
              "componentLogsConfigurationMap": {
                  "aws.kinesisvideo.KvsEdgeComponent/java_kvs.log": {
                      "diskSpaceLimit": "100",
                      "diskSpaceLimitUnit": "MB",
                      "logFileDirectoryPath": "/greengrass/v2/work/aws.kinesisvideo.KvsEdgeComponent/log",
                      "logFileRegex": "java_kvs.log\\w*"
                  },
                  "aws.kinesisvideo.KvsEdgeComponent/cpp_kvs_edge.log": {
                      "diskSpaceLimit": "100",
                      "diskSpaceLimitUnit": "MB",
                      "logFileDirectoryPath": "/greengrass/v2/work/aws.kinesisvideo.KvsEdgeComponent/log",
                      "logFileRegex": "cpp_kvs_edge.log\\w*"
                  },
                  "aws.kinesisvideo.KvsEdgeComponent/cpp_kvssink.log": {
                      "diskSpaceLimit": "100",
                      "diskSpaceLimitUnit": "MB",
                      "logFileDirectoryPath": "/greengrass/v2/work/aws.kinesisvideo.KvsEdgeComponent/log",
                      "logFileRegex": "cpp_kvssink.log\\w*"
                  },
                  "aws.kinesisvideo.KvsEdgeComponent/cpp_kvs_streams.log": {
                      "diskSpaceLimit": "100",
                      "diskSpaceLimitUnit": "MB",
                      "logFileDirectoryPath": "/greengrass/v2/work/aws.kinesisvideo.KvsEdgeComponent/log",
                      "logFileRegex": "cpp_kvs_streams.log\\w*"
                  }
              }
          },
          "periodicUploadIntervalSec": "1"
      }
      ```
**중요**  
이전 구성`logFileDirectoryPath`의는 기본 로깅 출력 위치가 사용된다고 가정합니다.
**참고**  
로그 관리자 구성의 각 파라미터에 대한 자세한 내용은 AWS IoT Greengrass Version 2 개발자 안내서의 [로그 관리자](https://docs.aws.amazon.com//greengrass/v2/developerguide/log-manager-component.html#log-manager-component-configuration) 섹션을 참조하세요.

      완료되면 **확인을** 선택한 **후 다음을** 선택합니다.

   1. **4단계: 고급 설정을 구성합니다.** **다음**을 선택합니다.

   1. **5단계: 검토.** **배포**를 선택합니다.

1.  AWS 로그 관리자 구성 요소 및 권한이 올바르게 설치되었는지 확인합니다.

1. Ubuntu Amazon EC2 인스턴스에서 `sudo /greengrass/v2/bin/greengrass-cli component details --name aws.greengrass.LogManager`를 입력하여 구성 요소가 업데이트된 구성을 수신했는지 확인합니다.

1.  AWS IoT Greengrass 코어 로그를 검사합니다.

   유형 `sudo less /greengrass/v2/logs/greengrass.log`

   배포 오류를 검토합니다.

   오류가 있는 경우 배포를 수정하여 `aws.greengrass.LogManager` 구성 요소를 제거합니다.

   `sudo service greengrass restart`를 입력하여 AWS IoT Greengrass 코어 서비스를 다시 시작합니다.

   배포 오류가 누락된 권한과 관련된 경우를 검토하여 TES 역할에 적절한 권한이 있는지 [토큰 교환 서비스(TES) 역할에 권한 추가](gs-add-permissions.md) 확인합니다. 그런 다음이 섹션을 반복합니다.