기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS IoT Greengrass Core 소프트웨어 구성
AWS IoT Greengrass Core 소프트웨어는 소프트웨어를 구성하는 데 사용할 수 있는 옵션을 제공합니다. 배포를 생성하여 각 AWS IoT Greengrass 코어 장치에서 Core 소프트웨어를 구성할 수 있습니다.
주제
Greengrass 핵 구성 요소 배포하기
AWS IoT Greengrass 는 Greengrass AWS IoT Greengrass 코어 장치에 배포할 수 있는 구성 요소로서 Core 소프트웨어를 제공합니다. 배포를 생성하여 여러 Greengrass 코어 디바이스에 동일한 구성을 적용할 수 있습니다. 자세한 내용은 그린그래스 핵 및 AWS IoT Greengrass코어 소프트웨어 (OTA) 업데이트 단원을 참조하세요.
Greengrass 핵을 시스템 서비스로 구성
다음을 수행하려면 기기의 init 시스템에서 AWS IoT Greengrass Core 소프트웨어를 시스템 서비스로 구성해야 합니다.
-
기기가 부팅되면 AWS IoT Greengrass Core 소프트웨어를 시작합니다. 대량의 장치를 관리하는 경우 이 방법을 사용하는 것이 좋습니다.
-
플러그인 구성 요소를 설치하고 실행합니다. AWS제공되는 몇 가지 구성 요소는 Greengrass 핵과 직접 인터페이스할 수 있는 플러그인 구성 요소입니다. 구성 요소 유형에 대한 자세한 정보는 구성 요소 유형을(를) 참조하십시오.
-
코어 기기의 AWS IoT Greengrass Core 소프트웨어에 업데이트를 적용 over-the-air (OTA) 하십시오. 자세한 내용은 AWS IoT Greengrass코어 소프트웨어 (OTA) 업데이트 단원을 참조하십시오.
-
배포에서 AWS IoT Greengrass 구성 요소를 새 버전으로 업데이트하거나 특정 구성 매개 변수를 업데이트할 때 구성 요소가 Core 소프트웨어 또는 코어 장치를 다시 시작할 수 있도록 합니다. 자세한 내용은 부트스트랩 수명 주기 단계를 참조하십시오.
중요
Windows 코어 장치에서는 AWS IoT Greengrass Core 소프트웨어를 시스템 서비스로 설정해야 합니다.
Nucleus를 시스템 서비스로 구성 (Linux)
리눅스 기기는 initd, systemd, Systemd 및 SystemV와 같은 다양한 초기화 시스템을 지원합니다. AWS IoT Greengrass Core 소프트웨어를 설치할 때 --setup-system-service true
인수를 사용하여 Nucleus를 시스템 서비스로 시작하고 장치 부팅 시 시작되도록 구성합니다. 설치 프로그램은 AWS IoT Greengrass Core 소프트웨어를 systemd의 시스템 서비스로 구성합니다.
Nucleus가 시스템 서비스로 실행되도록 수동으로 구성할 수도 있습니다. 다음은 systemd를 위한 서비스 파일의 예입니다.
[Unit] Description=Greengrass Core [Service] Type=simple PIDFile=
/alts/loader.pid RemainAfterExit=no Restart=on-failure RestartSec=10 ExecStart=/bin/sh
/greengrass/v2
/alts/current/distro/bin/loader [Install] WantedBy=multi-user.target
/greengrass/v2
시스템 서비스를 구성한 후 다음 명령을 실행하여 부팅 시 장치 시작을 구성하고 AWS IoT Greengrass Core 소프트웨어를 시작 또는 중지할 수 있습니다.
-
서비스 상태를 확인하려면 (systemd)
sudo systemctl status greengrass.service
-
장치 부팅 시 Nucleus가 시작되도록 하기 위함입니다.
sudo systemctl enable greengrass.service
-
장치 부팅 시 핵이 시작되지 않도록 하기 위함입니다.
sudo systemctl disable greengrass.service
-
AWS IoT Greengrass Core 소프트웨어를 시작하려면
sudo systemctl start greengrass.service
-
AWS IoT Greengrass Core 소프트웨어를 중지하려면
sudo systemctl stop greengrass.service
Nucleus를 시스템 서비스로 구성 (Windows)
AWS IoT Greengrass Core 소프트웨어를 설치할 때 --setup-system-service true
인수를 사용하여 Nucleus를 Windows 서비스로 시작하고 장치 부팅 시 시작되도록 구성합니다.
서비스를 구성한 후 다음 명령을 실행하여 부팅 시 디바이스 시작 및 AWS IoT Greengrass Core 소프트웨어 시작 또는 중지를 구성할 수 있습니다. 이러한 명령을 실행하려면 명령 프롬프트를 실행하거나 관리자 PowerShell 권한으로 실행해야 합니다.
옵션으로 메모리 할당을 제어하세요. JVM
메모리가 제한된 AWS IoT Greengrass 기기에서 실행하는 경우 Java virtual machine (JVM) 옵션을 사용하여 최대 힙 크기, 가비지 컬렉션 모드 및 AWS IoT Greengrass 코어 소프트웨어에서 사용하는 메모리 양을 제어하는 컴파일러 옵션을 제어할 수 있습니다. 의 힙 크기에 따라 가비지 컬렉션이
요구 사항에 따라 메모리 할당을 줄이거나 최소 메모리 할당으로 AWS IoT Greengrass Core 소프트웨어를 실행할 수 있습니다.
메모리 할당 감소
메모리 할당을 줄인 상태에서 AWS IoT Greengrass Core 소프트웨어를 실행하려면 다음 예제 구성 병합 업데이트를 사용하여 nucleus 구성에서 JVM 옵션을 설정하는 것이 좋습니다.
{ "jvmOptions": "-XX:+UseSerialGC -XX:TieredStopAtLevel=1" }
최소 메모리 할당
최소 메모리 할당으로 AWS IoT Greengrass Core 소프트웨어를 실행하려면 다음 예제 구성 병합 업데이트를 사용하여 nucleus 구성에서 JVM 옵션을 설정하는 것이 좋습니다.
{ "jvmOptions": "-Xmx32m -XX:+UseSerialGC -Xint" }
중요
메모리 할당을 최소화한 상태에서 AWS IoT Greengrass Core 소프트웨어를 실행하면 메모리를 적게 사용할 때 더 많은 처리 작업이 JVM 수행되므로 사양이 낮은 시스템에서 성능에 상당한 영향을 미칠 수 있습니다. 메모리와 성능 요구 사항의 균형을 맞출 수 있도록 옵션을 조정하는 것이 좋습니다.
이 예제 구성 병합 업데이트는 다음 JVM 옵션을 사용합니다.
-XX:+UseSerialGC
-
JVM힙 스페이스에 직렬 가비지 컬렉션을 사용하도록 지정합니다. 직렬 가비지 컬렉터는 속도가 느리지만 다른 JVM 가비지 컬렉션 구현보다 메모리를 덜 사용합니다.
-XX:TieredStopAtLevel=1
-
Java just-in-time (JIT) JVM 컴파일러를 한 번 사용하도록 지시합니다. JIT컴파일된 코드는 기기 메모리의 공간을 사용하므로 컴파일러를 두 번 이상 사용하면 단일 JIT 컴파일보다 더 많은 메모리를 소비합니다.
-Xmx
NN
m-
최대 JVM 힙 크기를 설정합니다.
중요
최대 힙 크기를 너무 낮게 설정하면 성능이 저하되거나 오류가 발생할 수 있습니다. out-of-memory 옵션으로 최대 크기를 설정하기 전에 현재 힙 사용량을 측정하는 것이 좋습니다.
-Xmx
NN
m-XX:NativeMemoryTracking=detail
JVM옵션을 사용하여 JVM 구성하십시오. 그런 다음 jcmdUtility의 VM.native_memory
명령 요청을 사용하여 현재 힙 사용량을 측정합니다.힙 측정이 옵션이 아닌 경우 시작
-Xmx64m
값으로 사용하여 힙 크기를 64MB로 제한하십시오. 그런 다음 최대 힙 크기를 단계적으로 줄일 수 있습니다. 메모리 할당을 최소화하려면 시작-Xmx32m
값으로 사용하여 힙 크기를 32MB로 제한하십시오.실제 요구 사항에 따라
-Xmx
값을 늘리거나 줄일 수 있지만 최대 힙 크기를 16MB 미만으로 설정하지 않는 것이 좋습니다. 필요한 JVM 힙 크기는 코어 기기에 배포된 플러그인 구성 요소에 따라 시간이 지남에 따라 달라질 수도 있습니다. 최대 힙 크기가 환경에 비해 너무 작으면 메모리 부족으로 인해 AWS IoT Greengrass Core 소프트웨어에서 예상치 못한 오류가 발생할 수 있습니다. 메모리 부족으로 인해 성능이 저하되거나 오류가 발생하는 경우 정상 작동이 확인된 설정으로 되돌리십시오. 예를 들어 일반적인 커밋된 힙 크기가 다음과 같으면 힙41428KB
사용량을 약간 제한하는-Xmx40m
데 사용하십시오. -Xint
-
just-in-time () JIT 컴파일러를 JVM 사용하지 않도록 지시합니다. 대신 는 해석된 JVM 전용 모드로 실행됩니다. 이 모드는 컴파일된 코드를 실행하는 것보다 느립니다 (저사양 시스템에 배포하는 경우 20배 느림). 하지만 JIT 컴파일된 코드는 메모리 공간을 전혀 사용하지 않습니다.
구성 병합 업데이트 만들기에 대한 자세한 내용은 을 참조하십시오. 구성 요소 구성 업데이트
구성 요소를 실행하는 사용자를 구성하십시오.
AWS IoT Greengrass Core 소프트웨어는 소프트웨어를 실행하는 사용자와는 다른 시스템 사용자 및 그룹으로 구성 요소 프로세스를 실행할 수 있습니다. 이렇게 하면 AWS IoT Greengrass 코어 장치에서 실행되는 구성 요소에 해당 권한을 부여하지 않고도 루트 또는 관리자 권한으로 Core 소프트웨어를 실행할 수 있으므로 보안이 향상됩니다.
다음 표에는 지정한 사용자로 AWS IoT Greengrass Core 소프트웨어가 실행할 수 있는 구성 요소 유형이 나와 있습니다. 자세한 내용은 구성 요소 유형 단원을 참조하십시오.
구성 요소 유형 | 구성 요소 사용자 구성 |
---|---|
뉴클리어스 |
|
플러그인 |
|
제네릭 |
|
Lambda (비컨테이너식) |
|
람다 (컨테이너식) |
|
배포 구성에서 구성 요소 사용자를 지정하려면 먼저 구성 요소 사용자를 만들어야 합니다. Windows 기반 장치에서는 계정의 자격 증명 관리자 인스턴스에 사용자의 사용자 이름과 암호도 저장해야 합니다. LocalSystem 자세한 내용은 Windows 장치에서 구성 요소 사용자 설정 단원을 참조하십시오.
Linux 기반 장치에서 구성 요소 사용자를 구성할 때 선택적으로 그룹을 지정할 수도 있습니다. 다음과 같은 형식으로 사용자와 그룹을 콜론 (:
) 으로 구분하여 지정합니다.
그룹을 지정하지 않으면 AWS IoT Greengrass Core 소프트웨어는 기본적으로 사용자의 기본 그룹을 사용합니다. 이름 또는 ID를 사용하여 사용자와 그룹을 식별할 수 있습니다.user
:group
Linux 기반 장치에서는 존재하지 않는 시스템 사용자 (알 수 없는 사용자라고도 함) 로 구성 요소를 실행하여 보안을 강화할 수도 있습니다. Linux 프로세스는 동일한 사용자가 실행하는 다른 모든 프로세스에 신호를 보낼 수 있습니다. 알 수 없는 사용자는 다른 프로세스를 실행하지 않으므로 구성 요소를 알 수 없는 사용자로 실행하여 구성 요소가 코어 장치의 다른 구성 요소에 신호를 보내는 것을 방지할 수 있습니다. 알 수 없는 사용자로 구성 요소를 실행하려면 코어 장치에 없는 사용자 ID를 지정하십시오. 존재하지 않는 그룹 ID를 알 수 없는 그룹으로 실행하도록 지정할 수도 있습니다.
각 구성 요소 및 각 코어 장치에 대해 사용자를 구성할 수 있습니다.
-
구성 요소 구성
해당 구성 요소별 사용자와 함께 실행되도록 각 구성 요소를 구성할 수 있습니다. 배포를 만들 때 해당 구성 요소
runWith
구성의 각 구성 요소에 대해 사용자를 지정할 수 있습니다. AWS IoT Greengrass Core 소프트웨어는 구성 요소를 구성한 경우 지정된 사용자로 구성 요소를 실행합니다. 그렇지 않으면 기본적으로 코어 장치용으로 구성한 기본 사용자로 구성 요소를 실행합니다. 배포 구성에서 구성 요소 사용자를 지정하는 방법에 대한 자세한 내용은 의 runWith구성 매개 변수를 참조하십시오. 배포 만들기 -
코어 디바이스의 기본 사용자 구성
AWS IoT Greengrass Core 소프트웨어가 구성 요소를 실행하는 데 사용하는 기본 사용자를 구성할 수 있습니다. AWS IoT Greengrass Core 소프트웨어는 구성 요소를 실행할 때 해당 구성 요소에 사용자를 지정했는지 확인하고 이를 사용하여 구성 요소를 실행합니다. 구성 요소가 사용자를 지정하지 않는 경우 AWS IoT Greengrass Core 소프트웨어는 코어 장치용으로 구성한 기본 사용자로 구성 요소를 실행합니다. 자세한 내용은 기본 구성 요소 사용자 구성 단원을 참조하십시오.
참고
Windows 기반 장치에서는 구성 요소를 실행할 기본 사용자를 최소 한 명 이상 지정해야 합니다.
Linux 기반 장치에서 구성 요소를 실행하도록 사용자를 구성하지 않는 경우 다음 고려 사항이 적용됩니다.
-
AWS IoT Greengrass Core 소프트웨어를 루트로 실행하면 소프트웨어가 구성 요소를 실행하지 않습니다. 루트로 실행하는 경우 구성 요소를 실행할 기본 사용자를 지정해야 합니다.
-
루트 사용자가 아닌 사용자로 AWS IoT Greengrass Core 소프트웨어를 실행하는 경우 소프트웨어는 해당 사용자로 구성 요소를 실행합니다.
Windows 장치에서 구성 요소 사용자 설정
Windows 기반 장치에서 구성 요소 사용자를 설정하려면
-
장치의 LocalSystem 계정에서 구성 요소 사용자를 생성합니다.
net user /add
component-user
password
-
Microsoft의 PsExec 유틸리티를
사용하여 구성 요소 사용자의 사용자 이름과 암호를 LocalSystem 계정의 자격 증명 관리자 인스턴스에 저장합니다. psexec -s cmd /c cmdkey /generic:
component-user
/user:component-user
/pass:password
참고
Windows 기반 장치에서는 LocalSystem 계정이 Greengrass nucleus를 실행하므로 PsExec 유틸리티를 사용하여 구성 요소 사용자 정보를 계정에 저장해야 합니다. LocalSystem 자격 증명 관리자 애플리케이션을 사용하면 계정 대신 현재 로그온한 사용자의 Windows 계정에 이 정보가 저장됩니다. LocalSystem
기본 구성 요소 사용자 구성
배포를 사용하여 코어 디바이스의 기본 사용자를 구성할 수 있습니다. 이 배포에서는 nucleus 구성 요소 구성을 업데이트합니다.
참고
--component-default-user
옵션을 사용하여 AWS IoT Greengrass Core 소프트웨어를 설치할 때 기본 사용자를 설정할 수도 있습니다. 자세한 내용은 AWS IoT Greengrass 코어 소프트웨어 설치 단원을 참조하십시오.
구성 aws.greengrass.Nucleus
요소에 대한 다음 구성 업데이트를 지정하는 배포를 생성합니다.
다음 예에서는 기본 사용자 및 ggc_group
기본 그룹으로 구성된 ggc_user
Linux 기반 장치에 대한 배포를 정의합니다. merge
구성 업데이트에는 직렬화된 개체가 필요합니다. JSON
{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"posixUser\":\"ggc_user:ggc_group\"}}" } } } }
구성 요소에 대한 시스템 리소스 제한을 구성합니다.
참고
이 기능은 Greengrass 핵 구성 요소 v2.4.0 이상에서 사용할 수 있습니다. AWS IoT Greengrass 현재 Windows 코어 디바이스에서는 이 기능을 지원하지 않습니다.
각 구성 요소의 프로세스가 코어 장치에서 사용할 수 있는 최대 용량 CPU 및 RAM 사용량을 구성할 수 있습니다.
다음 표에는 시스템 리소스 제한을 지원하는 구성 요소 유형이 나와 있습니다. 자세한 내용은 구성 요소 유형 단원을 참조하십시오.
구성 요소 유형 | 시스템 리소스 제한을 구성합니다. |
---|---|
뉴클리어스 |
|
플러그인 |
|
제네릭 |
|
Lambda (비컨테이너식) |
|
람다 (컨테이너식) |
|
중요
Docker 컨테이너에서 AWS IoT Greengrass Core 소프트웨어를 실행할 때는 시스템 리소스 제한이 지원되지 않습니다.
각 구성 요소 및 각 코어 장치에 대한 시스템 리소스 제한을 구성할 수 있습니다.
-
구성 요소 구성
해당 구성 요소에만 적용되는 시스템 리소스 제한으로 각 구성 요소를 구성할 수 있습니다. 배포를 만들 때 배포의 각 구성 요소에 대한 시스템 리소스 제한을 지정할 수 있습니다. 구성 요소가 시스템 리소스 제한을 지원하는 경우 AWS IoT Greengrass Core 소프트웨어는 구성 요소의 프로세스에 제한을 적용합니다. 구성 요소에 대한 시스템 리소스 제한을 지정하지 않으면 AWS IoT Greengrass 코어 소프트웨어는 사용자가 코어 장치에 구성한 모든 기본값을 사용합니다. 자세한 내용은 배포 만들기 단원을 참조하십시오.
-
코어 디바이스의 기본값을 구성합니다.
AWS IoT Greengrass Core 소프트웨어가 이러한 제한을 지원하는 구성 요소에 적용하는 기본 시스템 리소스 제한을 구성할 수 있습니다. AWS IoT Greengrass Core 소프트웨어는 구성 요소를 실행할 때 해당 구성 요소에 지정된 시스템 리소스 제한을 적용합니다. 해당 구성 요소가 시스템 리소스 제한을 지정하지 않는 경우 AWS IoT Greengrass Core 소프트웨어는 사용자가 코어 장치에 구성한 기본 시스템 리소스 제한을 적용합니다. 기본 시스템 리소스 제한을 지정하지 않으면 AWS IoT Greengrass Core 소프트웨어는 기본적으로 시스템 리소스 제한을 적용하지 않습니다. 자세한 내용은 기본 시스템 리소스 제한을 구성합니다. 단원을 참조하십시오.
기본 시스템 리소스 제한을 구성합니다.
Greengrass nucleus 구성 요소를 배포하여 코어 디바이스의 기본 시스템 리소스 제한을 구성할 수 있습니다. 기본 시스템 리소스 제한을 구성하려면 구성 요소에 대한 다음 구성 업데이트를 지정하는 배포를 생성하십시오. aws.greengrass.Nucleus
{ "runWithDefault": { "systemResourceLimits": { "cpu":
cpuTimeLimit
, "memory":memoryLimitInKb
} } }
다음 예시에서는 CPU 시간 제한을 CPU 4코어가 있는 기기의 50% 사용량에 해당하는 시간으로 구성하는 배포를 정의합니다. 2
또한 이 예시에서는 메모리 사용량을 100MB로 구성합니다.
{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"systemResourceLimits\":\"cpus\":2,\"memory\":102400}}}" } } } }
포트 443에서 또는 네트워크 프록시를 통해 연결
AWS IoT Greengrass 핵심 장치는 TLS 클라이언트 인증과 함께 MQTT 메시징 프로토콜을 AWS IoT Core 사용하여 통신합니다. 일반적으로 MQTT TLS 오버는 포트 8883을 사용합니다. 그러나 보안 조치로 제한적인 환경에서는 인바운드 및 아웃바운드 트래픽을 작은 범위의 포트로 제한할 수 있습니다. TCP 예를 들어 기업 방화벽은 트래픽용 포트 443을 열지만 HTTPS 트래픽용 포트 8883과 같이 덜 일반적인 프로토콜에 사용되는 다른 포트는 닫을 수 있습니다. MQTT 다른 제한적인 환경에서는 인터넷에 연결하기 전에 모든 트래픽이 프록시를 통과해야 할 수도 있습니다.
참고
Greengrass 핵 구성 요소 v2.0.3 및 이전 버전을 실행하는 Greengrass 코어 디바이스는 포트 8443을 사용하여 데이터 플레인 엔드포인트에 연결합니다. AWS IoT Greengrass 이러한 디바이스는 포트 8443에서 이 엔드포인트에 연결할 수 있어야 합니다. 자세한 내용은 프록시 또는 방화벽을 통한 장치 트래픽 허용 단원을 참조하십시오.
이러한 시나리오에서 통신을 활성화하기 위해 다음과 같은 구성 옵션을 AWS IoT Greengrass 제공합니다.
-
MQTT포트 443을 통한 통신. 네트워크에서 포트 443에 대한 연결을 허용하는 경우 트래픽에 기본 포트 8883 대신 포트 MQTT 443을 사용하도록 Greengrass 코어 디바이스를 구성할 수 있습니다. 이는 포트 443으로 직접 연결되거나 네트워크 프록시 서버를 통해 연결되는 것일 수 있습니다. 인증서 기반 클라이언트 인증을 사용하는 기본 구성과 달리 포트 443에서는 MQTT 인증에 장치 서비스 역할을 사용합니다.
자세한 내용은 포트 MQTT 443을 통해 구성 단원을 참조하십시오.
-
HTTPS포트 443을 통한 통신. AWS IoT Greengrass Core 소프트웨어는 기본적으로 포트 8443을 통해 HTTPS 트래픽을 전송하지만 포트 443을 사용하도록 구성할 수 있습니다. AWS IoT Greengrass 응용 프로그램 계층 프로토콜 네트워크
(ALPN) TLS 확장을 사용하여 이 연결을 활성화합니다. 기본 구성과 마찬가지로 포트 443에서는 인증서 기반 클라이언트 인증을 사용합니다. HTTPS 중요
포트 443을 통한 HTTPS 통신을 ALPN 사용하고 활성화하려면 코어 디바이스에서 Java 8 업데이트 252 이상을 실행해야 합니다. Java 버전 9 이상의 모든 업데이트도 지원합니다. ALPN
자세한 내용은 포트 443을 통해 구성합니다HTTPS. 단원을 참조하십시오.
-
네트워크 프록시를 통한 연결. Greengrass 코어 장치에 연결하기 위한 중개자 역할을 하도록 네트워크 프록시 서버를 구성할 수 있습니다. AWS IoT Greengrass HTTP및 HTTPS 프록시에 대한 기본 인증을 지원합니다.
프록시를 사용하려면 Greengrass 코어 디바이스에서 Greengrass nucleus v2.5.0 이상을 실행해야 합니다. HTTPS
AWS IoT Greengrass Core 소프트웨어는,, 및 환경 변수를 통해 프록시 구성을 구성 요소에 전달합니다.
ALL_PROXY
HTTP_PROXY
HTTPS_PROXY
NO_PROXY
구성 요소가 프록시를 통해 연결하려면 이러한 설정을 사용해야 합니다. 구성 요소는 일반적으로 이러한 환경 변수를 기본적으로 사용하여 연결하는 공용 라이브러리 (예: boto3URL, c, pythonrequests
패키지) 를 사용합니다. 구성 요소가 이러한 환경 변수도 지정하는 경우 해당 변수를 재정의하지 AWS IoT Greengrass 않습니다.자세한 내용은 네트워크 프록시 구성 단원을 참조하십시오.
포트 MQTT 443을 통해 구성
기존 코어 장치의 포트 443을 MQTT 통해 구성하거나 새 코어 장치에 AWS IoT Greengrass Core 소프트웨어를 설치할 때 구성할 수 있습니다.
기존 코어 MQTT 장치에 포트 443을 통해 구성합니다.
배포를 사용하여 단일 코어 장치 또는 코어 장치 그룹에서 포트 443을 MQTT 통해 구성할 수 있습니다. 이 배포에서는 nucleus 구성 요소 구성을 업데이트합니다. 구성을 업데이트하면 Nucleus가 다시 시작됩니다. mqtt
포트 443을 MQTT 통해 구성하려면 구성 요소에 대한 다음 구성 업데이트를 지정하는 배포를 생성하십시오. aws.greengrass.Nucleus
{ "mqtt": { "port": 443 } }
다음 예시에서는 포트 443을 MQTT 통해 구성하는 배포를 정의합니다. merge
구성 업데이트에는 직렬화된 객체가 필요합니다. JSON
{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"mqtt\":{\"port\":443}}" } } } }
설치 중에 포트 443을 MQTT 통해 구성합니다.
AWS IoT Greengrass 코어 장치에 Core 소프트웨어를 설치할 때 포트 443을 MQTT 통해 구성할 수 있습니다. --init-config
설치 프로그램 인수를 사용하여 포트 443을 MQTT 통해 구성합니다. 수동 프로비저닝, 플릿 프로비저닝 또는 사용자 지정 프로비저닝으로 설치할 때 이 인수를 지정할 수 있습니다.
포트 443을 통해 구성합니다HTTPS.
이 기능을 사용하려면 그린그래스 핵 v2.0.4 이상이 필요합니다.
기존 코어 장치에서 포트 443을 HTTPS 통해 구성하거나 새 코어 장치에 AWS IoT Greengrass Core 소프트웨어를 설치할 때 구성할 수 있습니다.
기존 코어 HTTPS 장치에 포트 443을 통해 구성합니다.
배포를 사용하여 단일 코어 장치 또는 코어 장치 그룹에서 포트 443을 HTTPS 통해 구성할 수 있습니다. 이 배포에서는 nucleus 구성 요소 구성을 업데이트합니다.
포트 443을 HTTPS 통해 구성하려면 구성 요소에 대한 다음 구성 업데이트를 지정하는 배포를 생성하십시오. aws.greengrass.Nucleus
{ "greengrassDataPlanePort": 443 }
다음 예시에서는 포트 443을 HTTPS 통해 구성하는 배포를 정의합니다. merge
구성 업데이트에는 직렬화된 객체가 필요합니다. JSON
{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"greengrassDataPlanePort\":443}" } } } }
설치 중에 포트 443을 HTTPS 통해 구성합니다.
AWS IoT Greengrass 코어 장치에 Core 소프트웨어를 설치할 때 포트 443을 HTTPS 통해 구성할 수 있습니다. --init-config
설치 프로그램 인수를 사용하여 포트 443을 HTTPS 통해 구성합니다. 수동 프로비저닝, 플릿 프로비저닝 또는 사용자 지정 프로비저닝으로 설치할 때 이 인수를 지정할 수 있습니다.
네트워크 프록시 구성
이 섹션의 절차에 따라 Greengrass 코어 장치가 HTTP 또는 HTTPS 네트워크 프록시를 통해 인터넷에 연결되도록 구성하십시오. 코어 디바이스가 사용하는 엔드포인트 및 포트에 대한 자세한 내용은 을 참조하십시오. 프록시 또는 방화벽을 통한 장치 트래픽 허용
중요
코어 디바이스에서 v2.4.0 이전의 Greengrass nucleus 버전을 실행하는 경우, 디바이스의 역할은 네트워크 프록시를 사용할 수 있는 다음 권한을 허용해야 합니다.
-
iot:Connect
-
iot:Publish
-
iot:Receive
-
iot:Subscribe
이는 디바이스가 토큰 교환 서비스의 AWS 자격 증명을 사용하여 연결을 인증하기 때문에 필요합니다. MQTT AWS IoT장치는 에서 배포를 수신하고 설치하는 MQTT 데 AWS 클라우드사용하므로 역할에 이러한 권한을 정의하지 않으면 장치가 작동하지 않습니다. 기기는 일반적으로 X.509 인증서를 사용하여 MQTT 연결을 인증하지만, 프록시를 사용할 때는 이를 인증할 수 없습니다.
장치 역할을 구성하는 방법에 대한 자세한 내용은 을 참조하십시오. 핵심 장치가 서비스와 상호 작용할 AWS 수 있도록 권한 부여
주제
기존 코어 디바이스에 네트워크 프록시를 구성합니다.
배포를 사용하여 단일 코어 장치 또는 코어 장치 그룹에 네트워크 프록시를 구성할 수 있습니다. 이 배포에서는 nucleus 구성 요소 구성을 업데이트합니다. 구성을 업데이트하면 Nucleus가 다시 시작됩니다. networkProxy
네트워크 프록시를 구성하려면 다음 구성 업데이트를 병합하는 aws.greengrass.Nucleus 구성 요소에 대한 배포를 생성하십시오. 이 구성 업데이트에는 networkProxy 개체가 포함되어 있습니다.
{ "networkProxy": { "noProxyAddresses": "http://192.168.0.1,www.example.com", "proxy": { "url": "https://my-proxy-server:1100" } } }
다음 예제는 네트워크 프록시를 구성하는 배포를 정의합니다. merge
구성 업데이트에는 JSON 직렬화된 개체가 필요합니다.
{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"networkProxy\":{\"noProxyAddresses\":\"http://192.168.0.1,www.example.com\",\"proxy\":{\"url\":\"https://my-proxy-server:1100\",\"username\":\"Mary_Major\",\"password\":\"pass@word1357\"}}}" } } } }
설치 중에 네트워크 프록시를 구성하십시오.
AWS IoT Greengrass 코어 디바이스에 Core 소프트웨어를 설치할 때 네트워크 프록시를 구성할 수 있습니다. --init-config
installer 인수를 사용하여 네트워크 프록시를 구성합니다. 수동 프로비저닝, 플릿 프로비저닝 또는 사용자 지정 프로비저닝으로 설치할 때 이 인수를 지정할 수 있습니다.
코어 디바이스가 프록시를 신뢰할 수 있도록 하세요. HTTPS
HTTPS프록시를 사용하도록 코어 장치를 구성할 때는 코어 장치에 프록시 서버 인증서 체인을 추가하여 HTTPS 프록시를 신뢰할 수 있도록 해야 합니다. 그렇지 않으면 코어 장치가 프록시를 통해 트래픽을 라우팅하려고 할 때 오류가 발생할 수 있습니다. 프록시 서버 CA 인증서를 코어 디바이스의 Amazon 루트 CA 인증서 파일에 추가합니다.
코어 디바이스가 HTTPS 프록시를 신뢰할 수 있도록 하려면
-
코어 디바이스에서 Amazon 루트 CA 인증서 파일을 찾으십시오.
-
자동 프로비저닝으로 AWS IoT Greengrass Core 소프트웨어를 설치한 경우 Amazon 루트 CA 인증서 파일은 에 있습니다.
/rootCA.pem/greengrass/v2
-
수동 또는 플릿 프로비저닝으로 AWS IoT Greengrass Core 소프트웨어를 설치한 경우 Amazon 루트 CA 인증서 파일이 에 있을 수 있습니다.
/AmazonRootCA1.pem/greengrass/v2
Amazon 루트 CA 인증서가 이러한 위치에 없는 경우
system.rootCaPath
속성을 확인하여 위치를 찾으십시오.
/config/effectiveConfig.yaml/greengrass/v2
-
-
프록시 서버 CA 인증서 파일의 내용을 Amazon 루트 CA 인증서 파일에 추가합니다.
다음 예는 Amazon 루트 CA 인증서 파일에 추가된 프록시 서버 CA 인증서를 보여줍니다.
-----BEGIN CERTIFICATE----- MIIEFTCCAv2gAwIQWgIVAMHSAzWG/5YVRYtRQOxXUTEpHuEmApzGCSqGSIb3DQEK \nCwUAhuL9MQswCQwJVUzEPMAVUzEYMBYGA1UECgwP1hem9uLmNvbSBJbmMuMRww
... content of proxy CA certificate ...
+vHIRlt0e5JAm5\noTIZGoFbK82A0/nO7f/t5PSIDAim9V3Gc3pSXxCCAQoFYnui GaPUlGk1gCE84a0X\n7Rp/lND/PuMZ/s8YjlkY2NmYmNjMCAXDTE5MTEyN2cM216 gJMIADggEPADf2/m45hzEXAMPLE= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDQTCCAimgF6AwIBAgITBmyfz/5mjAo54vB4ikPmljZKyjANJmApzyMZFo6qBg ADA5MQswCQYDVQQGEwJVUzEPMA0tMVT8QtPHRh8jrdkGA1UEChMGDV3QQDExBBKW... content of root CA certificate ...
o/ufQJQWUCyziar1hem9uMRkwFwYVPSHCb2XV4cdFyQzR1KldZwgJcIQ6XUDgHaa 5MsI+yMRQ+hDaXJiobldXgjUka642M4UwtBV8oK2xJNDd2ZhwLnoQdeXeGADKkpy rqXRfKoQnoZsG4q5WTP46EXAMPLE -----END CERTIFICATE-----
networkProxy 객체
networkProxy
객체를 사용하여 네트워크 프록시 관련 정보를 지정합니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
noProxyAddresses
-
(선택 사항) 프록시에서 제외되는 IP 주소 또는 호스트 이름을 쉼표로 구분한 목록입니다.
proxy
-
연결할 프록시. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
url
-
프록시 서버 형식의
scheme://userinfo@host:port
파일입니다. URL-
scheme
— 구성표는http
또는 이어야 합니다https
.중요
프록시를 사용하려면 Greengrass 코어 디바이스에서 Greengrass nucleus v2.5.0 이상을 실행해야 합니다. HTTPS
프록시를 구성하는 경우 HTTPS 프록시 서버 CA 인증서를 코어 디바이스의 Amazon 루트 CA 인증서에 추가해야 합니다. 자세한 내용은 코어 디바이스가 프록시를 신뢰할 수 있도록 하세요. HTTPS 단원을 참조하십시오.
-
userinfo
— (선택 사항) 사용자 이름 및 암호 정보. 에서 이 정보를 지정하는 경우 Greengrass 코어 디바이스는 및 필드를 무시합니다.url
username
password
-
host
— 프록시 서버의 호스트 이름 또는 IP 주소. -
port
— (선택 사항) 포트 번호입니다. 포트를 지정하지 않으면 Greengrass 코어 기기는 다음과 같은 기본값을 사용합니다.-
http
— 80 -
https
— 443
-
-
username
-
(선택 사항) 프록시 서버를 인증하는 사용자 이름.
password
-
(선택 사항) 프록시 서버를 인증하는 암호.
사설 CA에서 서명한 장치 인증서를 사용하십시오.
사용자 지정 사설 인증 기관 (CA) 을 사용하는 경우 Greengrass greengrassDataPlaneEndpoint
nucleus를 '로 설정해야 합니다. iotdata
설치 또는 설치 중에 installer 인수를 --init-config 사용하여 이 옵션을 설정할 수 있습니다.
기기가 연결되는 Greengrass 데이터 플레인 엔드포인트를 사용자 지정할 수 있습니다. 이 구성 옵션을 iotdata
설정하여 Greengrass 데이터 플레인 엔드포인트를 IoT 데이터 엔드포인트와 동일한 엔드포인트로 설정할 수 있습니다. 이 엔드포인트는 에서 지정할 수 있습니다. iotDataEndpoint
MQTT타임아웃 및 캐시 설정을 구성합니다.
AWS IoT Greengrass 환경에서 구성 요소는 MQTT 통신에 사용할 수 있습니다. AWS IoT Core AWS IoT Greengrass Core 소프트웨어는 구성 요소의 MQTT 메시지를 관리합니다. 코어 장치와의 연결이 끊어지면 소프트웨어가 MQTT 메시지를 캐시하여 나중에 연결이 복원되면 다시 시도합니다. AWS 클라우드메시지 제한 시간 및 캐시 크기와 같은 설정을 구성할 수 있습니다. 자세한 내용은 Greengrass 핵 mqtt.spooler 구성 요소의 mqtt
및 구성 매개 변수를 참조하십시오.
AWS IoT Core 메시지 브로커에 서비스 할당량을 부과합니다. MQTT 이러한 할당량은 코어 장치와 간에 전송하는 메시지에 적용될 수 있습니다. AWS IoT Core자세한 내용은 의 AWS IoT Core 메시지 브로커 서비스 할당량을 참조하십시오. AWS 일반 참조