

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

# Edge Manager 다운로드 및 설정
<a name="edge-getting-started-step4"></a>

Edge Manager 에이전트는 엣지 디바이스용 추론 엔진입니다. 에이전트를 사용하면 엣지 디바이스에 로드된 모델로 예측을 수행할 수 있습니다. 또한 에이전트는 모델 지표를 수집하고 특정 간격으로 데이터를 캡처합니다.



이 섹션에서는 에이전트로 디바이스를 설정해 보겠습니다. 그러려면 우선 릴리스 버킷의 릴리스 아티팩트와 서명 루트 인증서를 머신에 로컬로 복사해야 합니다. 릴리스 아티팩트를 압축 해제한 후 Amazon S3에 업로드합니다. 다음으로 에이전트의 구성 파일을 정의하고 저장합니다. 복사 및 붙여넣기할 템플릿이 제공됩니다. 마지막으로 릴리스 아티팩트, 구성 파일, 자격 증명을 디바이스에 복사합니다.

1. **SageMaker Edge Manager 에이전트를 다운로드합니다.**

   지원되는 운영 체제에 따라 에이전트는 바이너리 형식으로 릴리스됩니다. 이 예제는 Linux 운영 체제를 사용하고 ARM64 아키텍처를 사용하는 Jetson Nano에서 추론을 실행합니다. 디바이스 지원 운영 체제 및 아키텍처에 대한 자세한 정보는 [지원되는 디바이스, 칩 아키텍처, 시스템](neo-supported-devices-edge-devices.md)에서 확인하세요.

   us-west-2 리전의 SageMaker Edge Manager 릴리스 버킷에서 최신 버전 바이너리를 가져옵니다.

   ```
   !aws s3 ls s3://sagemaker-edge-release-store-us-west-2-linux-armv8/Releases/ | sort -r
   ```

   그러면 버전 기준으로 정렬된 릴리스 아티팩트가 반환됩니다.

   ```
                              PRE 1.20210512.96da6cc/
                              PRE 1.20210305.a4bc999/
                              PRE 1.20201218.81f481f/
                              PRE 1.20201207.02d0e97/
   ```

   버전 형식은 `<MAJOR_VERSION>.<YYYY-MM-DD>.<SHA-7>`입니다. 세 가지 구성 요소로 구성되어 있습니다.
   + `<MAJOR_VERSION>`: 릴리스 버전. 릴리스 버전은 현재 `1`(으)로 설정되어 있습니다.
   + `<YYYY-MM-DD>`: 아티팩트 릴리스의 타임스탬프.
   + <SHA-7>: 릴리스가 빌드된 리포지토리 커밋 ID.

   압축된 TAR 파일을 로컬로 복사하거나 디바이스에 직접 복사. 다음 예제에서 이 문서가 릴리스된 시점의 최신 릴리스 아티팩트를 복사하는 방법을 알아봅시다.

   ```
   !aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-x64/Releases/1.20201218.81f481f/1.20201218.81f481f.tgz ./
   ```

   아티팩트가 있으면 압축된 TAR 파일의 압축을 풉니다. 다음은 TAR 파일의 압축을 풀고 `agent_demo` 디렉토리에 저장합니다.

   ```
   !mkdir agent_demo
   !tar -xvzf 1.20201218.81f481f.tgz -C ./agent_demo
   ```

   Amazon S3 버킷에 에이전트 릴리스 아티팩트를 업로드합니다. 다음 코드 예제에서는 `agent_demo`에 있는 콘텐츠를 복사하여 `agent_demo` Amazon S3 버킷에 있는 디렉터리에 업로드합니다.

   ```
   !aws s3 cp --recursive ./agent_demo s3://{bucket}/agent_demo
   ```

   또한 릴리스 버킷의 서명 루트 인증서도 필요합니다.

   ```
   !aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-x64/Certificates/us-west-2/us-west-2.pem ./
   ```

   Amazon S3 버킷에 서명 루트 인증서를 업로드합니다.

   ```
   !aws s3 cp us-west-2.pem s3://{bucket}/authorization-files/
   ```

1. **SageMaker Edge Manager 에이전트 구성 파일을 정의합니다.**

   먼저 에이전트 구성 파일을 다음과 같이 정의합니다.

   ```
   sagemaker_edge_config = {
       "sagemaker_edge_core_device_name": {{"device_name"}},
       "sagemaker_edge_core_device_fleet_name": {{"device_fleet_name"}},
       "sagemaker_edge_core_capture_data_buffer_size": 30,
       "sagemaker_edge_core_capture_data_push_period_seconds": 4,
       "sagemaker_edge_core_folder_prefix": "demo_capture",
       "sagemaker_edge_core_region": "us-west-2",
       "sagemaker_edge_core_root_certs_path": "/agent_demo/certificates",
       "sagemaker_edge_provider_aws_ca_cert_file": "/agent_demo/iot-credentials/AmazonRootCA1.pem",
       "sagemaker_edge_provider_aws_cert_file": "/agent_demo/iot-credentials/device.pem.crt",
       "sagemaker_edge_provider_aws_cert_pk_file": "/agent_demo/iot-credentials/private.pem.key",
       "sagemaker_edge_provider_aws_iot_cred_endpoint": {{"endpoint"}},
       "sagemaker_edge_provider_provider": "Aws",
       "sagemaker_edge_provider_s3_bucket_name": bucket,
       "sagemaker_edge_core_capture_data_destination": "Cloud"
   }
   ```

   다음을 바꿉니다.
   + `"device_name"`을(를) 디바이스 이름으로(이 문자열은 이전 단계에서 `device_name` 변수에 저장).
   + `"device_fleet_name`을(를) 디바이스 플릿 이름으로(이 문자열은 이전 단계에서 `device_fleet_name` 변수에 저장).
   + `"endpoint"` 자격 증명 공급자에 대한 AWS 계정별 엔드포인트를 사용합니다(이 문자열은 라는 변수의 이전 단계에서 저장됨`endpoint`).

   그런 다음 JSON 파일로 저장합니다.

   ```
   edge_config_file = open("sagemaker_edge_config.json", "w")
   json.dump(sagemaker_edge_config, edge_config_file, indent = 6)
   edge_config_file.close()
   ```

   Amazon S3 버킷에 구성 파일을 업로드합니다.

   ```
   !aws s3 cp sagemaker_edge_config.json s3://{bucket}/
   ```

1. **릴리스 아티팩트, 구성 파일, 자격 증명을 디바이스에 복사합니다.**

   다음 지침은 엣지 디바이스에 적용됩니다.
**참고**  
먼저 엣지 디바이스 AWS CLI 에 Python AWS SDK for Python (Boto3), 및를 설치해야 합니다.

   디바이스에서 터미널을 엽니다. 릴리스 아티팩트, 자격 증명, 구성 파일을 저장할 폴더를 생성합니다.

   ```
   mkdir agent_demo
   cd agent_demo
   ```

   Amazon S3 버킷에 저장한 릴리스 아티팩트 콘텐츠를 디바이스에 복사합니다.

   ```
   # Copy release artifacts 
   aws s3 cp s3://{{<bucket-name>}}/{{agent_demo}}/ ./ --recursive
   ```

   (릴리스 아티팩트 콘텐츠는 이전 단계에서 `agent_demo` 디렉터리에 저장.) `<bucket-name>`, `agent_demo`을(를) 각각 Amazon S3 버킷 이름과 릴리스 아티팩트 파일 경로로 바꿉니다.

   `/bin` 디렉터리로 이동하여 바이너리 파일을 실행 가능하게 만듭니다.

   ```
   cd bin
   
   chmod +x sagemaker_edge_agent_binary
   chmod +x sagemaker_edge_agent_client_example
   
   cd agent_demo
   ```

   자격 AWS IoT 증명을 저장할 디렉터리를 만들고 Amazon S3 버킷에서 엣지 디바이스로 자격 증명을 복사합니다( 변수에 정의한 것과 동일한을 사용합니다`bucket`.

   ```
   mkdir iot-credentials
   cd iot-credentials
   
   aws s3 cp s3://{{<bucket-name>}}/authorization-files/AmazonRootCA1.pem ./
   aws s3 cp s3://{{<bucket-name>}}/authorization-files/device.pem.crt ./
   aws s3 cp s3://{{<bucket-name>}}/authorization-files/private.pem.key ./
   
   cd ../
   ```

   모델 서명 루트 인증서를 저장할 디렉터리를 만듭니다.

   ```
   mkdir certificates
   
   cd certificates
   
   aws s3 cp s3://{{<bucket-name>}}/authorization-files/us-west-2.pem ./
   
   cd agent_demo
   ```

   구성 파일을 디바이스에 복사합니다.

   ```
   #Download config file from S3
   aws s3 cp s3://{{<bucket-name>}}/sagemaker_edge_config.json ./
   
   cd agent_demo
   ```

   엣지 디바이스의 `agent_demo` 디렉터리는 다음과 비슷한 형태가 됩니다.

   ```
   ├──agent_demo
   |    ├── bin
   |        ├── sagemaker_edge_agent_binary
   |        └── sagemaker_edge_agent_client_example
   |    ├── sagemaker_edge_config.json
   |    ├── certificates
   |        └──us-west-2.pem
   |    ├── iot-credentials
   |        ├── AmazonRootCA1.pem
   |        ├── device.pem.crt
   |        └── private.pem.key
   |    ├── docs
   |        ├── api
   |        └── examples
   |    ├── ATTRIBUTIONS.txt
   |    ├── LICENSE.txt  
   |    └── RELEASE_NOTES.md
   ```