쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

AWS IoT Greengrass 코어 소프트웨어 구성

포커스 모드
AWS IoT Greengrass 코어 소프트웨어 구성 - AWS IoT Greengrass

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

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

AWS IoT Greengrass 코어 소프트웨어는 소프트웨어를 구성하는 데 사용할 수 있는 옵션을 제공합니다. 배포를 생성하여 각 AWS IoT Greengrass 코어 디바이스에서 코어 소프트웨어를 구성할 수 있습니다.

Greengrass nucleus 구성 요소 배포

AWS IoT Greengrass 는 Greengrass AWS IoT Greengrass 코어 디바이스에 배포할 수 있는 구성 요소로 코어 소프트웨어를 제공합니다. 배포를 생성하여 여러 Greengrass 코어 디바이스에 동일한 구성을 적용할 수 있습니다. 자세한 내용은 Greengrass nucleusAWS IoT Greengrass 코어 소프트웨어(OTA) 업데이트 단원을 참조하세요.

Greengrass nucleus를 시스템 서비스로 구성

다음을 수행하려면 AWS IoT Greengrass Core 소프트웨어를 디바이스의 init 시스템에서 시스템 서비스로 구성해야 합니다.

  • 디바이스가 부팅되면 AWS IoT Greengrass 코어 소프트웨어를 시작합니다. 대규모 디바이스 플릿을 관리하는 경우에 좋습니다.

  • 플러그인 구성 요소를 설치하고 실행합니다. 여러 AWS제공 구성 요소는 플러그인 구성 요소로, 이를 통해 Greengrass 핵과 직접 인터페이스할 수 있습니다. 구성 요소 유형에 대한 자세한 정보는 구성 요소 유형을(를) 참조하십시오.

  • 코어 디바이스의 AWS IoT Greengrass 코어 소프트웨어에 (OTA) 업데이트를 적용합니다 over-the-air. 자세한 내용은 AWS IoT Greengrass 코어 소프트웨어(OTA) 업데이트 단원을 참조하십시오.

  • 배포가 구성 요소를 새 버전으로 업데이트하거나 특정 구성 파라미터를 업데이트할 때 구성 요소가 AWS IoT Greengrass 코어 소프트웨어 또는 코어 디바이스를 다시 시작하도록 활성화합니다. 자세한 내용은 부트스트랩 수명 주기 단계를 참조하세요.

중요

Windows 코어 디바이스에서는 AWS IoT Greengrass 코어 소프트웨어를 시스템 서비스로 설정해야 합니다.

nucleus를 시스템 서비스로 구성(Linux)

Linux 디바이스에서는 다양한 init 시스템이 지원됩니다(예: initd, systemd, SystemV). AWS IoT Greengrass 코어 소프트웨어를 설치할 때 --setup-system-service true 인수를 사용하여 핵을 시스템 서비스로 시작하고 디바이스가 부팅될 때 시작하도록 구성합니다. 설치 관리자는 AWS IoT Greengrass Core 소프트웨어를 시스템화된의 시스템 서비스로 구성합니다.

시스템 서비스로 실행되도록 nucleus를 수동으로 구성할 수도 있습니다. 다음은 systemd를 위한 서비스 파일의 예입니다.

[Unit] Description=Greengrass Core [Service] Type=simple PIDFile=/greengrass/v2/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

시스템 서비스를 구성한 후 다음 명령을 실행하여 부팅 시 디바이스 시작을 구성하고 AWS IoT Greengrass 코어 소프트웨어를 시작하거나 중지할 수 있습니다.

  • 서비스 상태를 확인하려면(systemd)

    sudo systemctl status greengrass.service
  • 디바이스가 부팅될 때 시작되도록 nucleus를 활성화하는 방법입니다.

    sudo systemctl enable greengrass.service
  • 디바이스가 부팅될 때 nucleus 시작을 중지하는 방법입니다.

    sudo systemctl disable greengrass.service
  • AWS IoT Greengrass 코어 소프트웨어를 시작합니다.

    sudo systemctl start greengrass.service
  • AWS IoT Greengrass 코어 소프트웨어를 중지합니다.

    sudo systemctl stop greengrass.service

nucleus를 시스템 서비스로 구성(Windows)

AWS IoT Greengrass 코어 소프트웨어를 설치할 때 --setup-system-service true 인수를 사용하여 핵을 Windows 서비스로 시작하고 디바이스가 부팅될 때 시작하도록 구성합니다.

서비스를 구성한 후 다음 명령을 실행하여 부팅 시 디바이스 시작을 구성하고 AWS IoT Greengrass 코어 소프트웨어를 시작하거나 중지할 수 있습니다. 이러한 명령을 실행하려면 명령 프롬프트 또는를 관리자 PowerShell 로 실행해야 합니다.

Windows Command Prompt (CMD)
  • 서비스 상태를 확인하려면

    sc query "greengrass"
  • 디바이스가 부팅될 때 시작되도록 nucleus를 활성화하는 방법입니다.

    sc config "greengrass" start=auto
  • 디바이스가 부팅될 때 nucleus 시작을 중지하는 방법입니다.

    sc config "greengrass" start=disabled
  • AWS IoT Greengrass 코어 소프트웨어를 시작합니다.

    sc start "greengrass"
  • AWS IoT Greengrass 코어 소프트웨어를 중지합니다.

    sc stop "greengrass"
    참고

    Windows 디바이스에서 AWS IoT Greengrass Core 소프트웨어는 Greengrass 구성 요소 프로세스를 종료하는 동안이 종료 신호를 무시합니다. 이 명령을 실행할 때 AWS IoT Greengrass Core 소프트웨어가 종료 신호를 무시하는 경우 몇 초 정도 기다렸다가 다시 시도하세요.

PowerShell
  • 서비스 상태를 확인하려면

    Get-Service -Name "greengrass"
  • 디바이스가 부팅될 때 시작되도록 nucleus를 활성화하는 방법입니다.

    Set-Service -Name "greengrass" -Status stopped -StartupType automatic
  • 디바이스가 부팅될 때 nucleus 시작을 중지하는 방법입니다.

    Set-Service -Name "greengrass" -Status stopped -StartupType disabled
  • AWS IoT Greengrass 코어 소프트웨어를 시작합니다.

    Start-Service -Name "greengrass"
  • AWS IoT Greengrass 코어 소프트웨어를 중지합니다.

    Stop-Service -Name "greengrass"
    참고

    Windows 디바이스에서 AWS IoT Greengrass Core 소프트웨어는 Greengrass 구성 요소 프로세스를 종료하는 동안이 종료 신호를 무시합니다. 이 명령을 실행할 때 AWS IoT Greengrass Core 소프트웨어가 종료 신호를 무시하는 경우 몇 초 정도 기다렸다가 다시 시도하세요.

  • 서비스 상태를 확인하려면

    sc query "greengrass"
  • 디바이스가 부팅될 때 시작되도록 nucleus를 활성화하는 방법입니다.

    sc config "greengrass" start=auto
  • 디바이스가 부팅될 때 nucleus 시작을 중지하는 방법입니다.

    sc config "greengrass" start=disabled
  • AWS IoT Greengrass 코어 소프트웨어를 시작합니다.

    sc start "greengrass"
  • AWS IoT Greengrass 코어 소프트웨어를 중지합니다.

    sc stop "greengrass"
    참고

    Windows 디바이스에서 AWS IoT Greengrass Core 소프트웨어는 Greengrass 구성 요소 프로세스를 종료하는 동안이 종료 신호를 무시합니다. 이 명령을 실행할 때 AWS IoT Greengrass Core 소프트웨어가 종료 신호를 무시하는 경우 몇 초 정도 기다렸다가 다시 시도하세요.

JVM 옵션으로 메모리 할당 제어

메모리가 제한된 디바이스 AWS IoT Greengrass 에서를 실행하는 경우 Java 가상 머신(JVM) 옵션을 사용하여 AWS IoT Greengrass 코어 소프트웨어가 사용하는 메모리의 양을 제어하는 최대 힙 크기, 가비지 수집 모드 및 컴파일러 옵션을 제어할 수 있습니다. 의 힙 크기에 따라 가비지 수집이 발생하기 전 또는 애플리케이션의 메모리 부족 전에 애플리케이션이 사용할 수 있는 메모리 용량이 JVM 결정됩니다. 최대 힙 크기는 과중한 활동 중에 힙을 확장할 때가 할당JVM할 수 있는 최대 메모리 양을 지정합니다.

메모리 할당을 제어하려면 새 배포를 생성하거나 핵 구성 요소가 포함된 기존 배포를 수정하고 핵 구성 요소 구성jvmOptions 구성 파라미터에 JVM 옵션을 지정합니다.

요구 사항에 따라 메모리 할당을 줄이거나 최소 메모리 할당으로 AWS IoT Greengrass Core 소프트웨어를 실행할 수 있습니다.

줄어든 메모리 할당

메모리 할당이 줄어든 AWS IoT Greengrass Core 소프트웨어를 실행하려면 다음 예제 구성 병합 업데이트를 사용하여 핵 구성에서 JVM 옵션을 설정하는 것이 좋습니다.

{ "jvmOptions": "-XX:+UseSerialGC -XX:TieredStopAtLevel=1" }
최소 메모리 할당

최소 메모리 할당으로 AWS IoT Greengrass Core 소프트웨어를 실행하려면 다음 예제 구성 병합 업데이트를 사용하여 핵 구성에서 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파일러를 두 번 이상 사용하면 단일 컴파일보다 더 많은 메모리를 소비합니다.

-XmxNNm

최대 JVM 힙 크기를 설정합니다.

중요

최대 힙 크기를 너무 낮게 설정하면 성능이 느려지거나 out-of-memory 오류가 발생할 수 있습니다. -XmxNNm 옵션으로 최대 크기를 설정하기 전에 현재 힙 사용량을 측정하는 것이 좋습니다. -XX:NativeMemoryTracking=detail JVM 옵션을 JVM 사용하여를 구성합니다. 그런 다음에 jcmd 유틸리티 내의 VM.native_memory 명령 요청을 사용하여 현재 힙 사용량을 측정합니다.

힙 측정이 옵션이 아니라면 -Xmx64m을 시작 값으로 사용하여 힙 크기를 64MB로 제한합니다. 그런 다음에는 최대 힙 크기를 점진적으로 줄일 수 있습니다. 최소 메모리 할당의 경우 -Xmx32m을 시작 값으로 사용하여 힙 크기를 32MB로 제한합니다.

실제 요구 사항에 따라 -Xmx 값을 늘리거나 줄일 수 있지만, 최대 힙 크기를 16MB 미만으로 설정하지 않는 것이 좋습니다. 필요한 JVM 힙 크기는 코어 디바이스에 배포된 플러그인 구성 요소에 따라 시간이 지남에 따라 달라질 수 있습니다. 최대 힙 크기가 환경에 비해 너무 낮으면 메모리 부족으로 인해 AWS IoT Greengrass 코어 소프트웨어에 예기치 않은 오류가 발생할 수 있습니다. 부족한 메모리 때문에 성능이 느려지거나 오류가 발생하면 알려진 좋은 설정으로 되돌립니다. 예를 들어, 일반적인 커밋 힙 크기가 41428KB라면 -Xmx40m을 사용하여 힙 사용량을 약간 제한합니다.

-Xint

(JIT) 컴파일러를 just-in-time 사용하지 JVM 않도록에 지시합니다. 대신는 해석 전용 모드로 JVM 실행됩니다. 이 모드는 JIT컴파일된 코드를 실행하는 것보다 느립니다(로우엔드 시스템의 배포의 경우 20배 느림). 하지만 컴파일된 코드는 메모리의 공간을 사용하지 않습니다.

구성 병합 파일 업데이트 생성에 대한 자세한 내용은 구성 요소 구성 업데이트 단원을 참조하세요.

구성 요소를 실행하는 사용자 구성

AWS IoT Greengrass 코어 소프트웨어는 시스템 사용자로 구성 요소 프로세스를 실행하고 소프트웨어를 실행하는 그룹과 다른 그룹을 실행할 수 있습니다. 이렇게 하면 AWS IoT Greengrass 코어 디바이스에서 실행되는 구성 요소에 대한 권한을 부여하지 않고도 코어 소프트웨어를 루트 또는 관리자 사용자로 실행할 수 있으므로 보안이 향상됩니다.

다음 표는 사용자가 지정한 사용자로 AWS IoT Greengrass Core 소프트웨어가 실행할 수 있는 구성 요소 유형을 나타냅니다. 자세한 내용은 구성 요소 유형 단원을 참조하십시오.

구성 요소 유형 구성 요소 사용자 구성

nucleus

아니요

플러그인

아니요

일반

Lambda(컨테이너화되지 않았음)

Lambda(컨테이너화되었음)

배포 구성에서 구성 요소 사용자를 지정하려면 먼저 구성 요소 사용자를 생성해야 합니다. Windows 기반 디바이스에서는 계정의 자격 증명 관리자 인스턴스에 사용자의 사용자 이름과 암호도 저장해야 합니다 LocalSystem . 자세한 내용은 Windows 디바이스의 구성 요소 사용자 설정 단원을 참조하십시오.

Linux 기반 디바이스에서 구성 요소 사용자를 구성할 때 선택적으로 그룹을 지정할 수도 있습니다. user:group 형식으로 사용자와 그룹을 콜론(:)으로 구분하여 지정합니다. 그룹을 지정하지 않으면 AWS IoT Greengrass 코어 소프트웨어는 기본적으로 사용자의 기본 그룹으로 설정됩니다. 이름 또는 ID를 사용하여 사용자와 그룹을 식별할 수 있습니다.

Linux 기반 디바이스에서는 알 수 없는 사용자라고도 하는 존재하지 않는 시스템 사용자로 구성 요소를 실행하여 보안을 강화할 수도 있습니다. Linux 프로세스에서는 동일한 사용자가 실행하는 다른 프로세스에 신호를 보낼 수 있습니다. 알 수 없는 사용자는 다른 프로세스를 실행하지 않으므로 알 수 없는 사용자로 구성 요소를 실행하여 구성 요소에서 코어 디바이스의 다른 구성 요소에 신호를 보내지 못하도록 할 수 있습니다. 알 수 없는 사용자로 구성 요소를 실행하려면 코어 디바이스에 존재하지 않는 사용자 ID를 지정합니다. 알 수 없는 그룹으로 실행되도록 존재하지 않는 그룹 ID를 지정할 수도 있습니다.

구성 요소와 코어 디바이스마다 사용자를 구성할 수 있습니다.

  • 구성 요소에 대해 구성

    각 구성 요소를 해당 구성 요소에 지정된 사용자를 통해 실행되도록 구성할 수 있습니다. 배포를 생성할 때 해당 구성 요소에 대한 runWith 구성에서 구성 요소마다 사용자를 지정할 수 있습니다. AWS IoT Greengrass 코어 소프트웨어는 구성한 경우 구성 요소를 지정된 사용자로 실행합니다. 그렇지 않으면 코어 디바이스에 대해 구성하는 기본 사용자로 구성 요소가 실행되도록 기본적으로 설정됩니다. 배포 구성에서 구성 요소 사용자를 지정하는 방법에 대한 자세한 내용은 배포 만들기runWith 구성 파라미터를 참조하세요.

  • 코어 디바이스의 기본 사용자 구성

    AWS IoT Greengrass 코어 소프트웨어가 구성 요소를 실행하는 데 사용하는 기본 사용자를 구성할 수 있습니다. AWS IoT Greengrass 코어 소프트웨어가 구성 요소를 실행할 때 해당 구성 요소에 사용자를 지정했는지 확인하고 이를 사용하여 구성 요소를 실행합니다. 구성 요소가 사용자를 지정하지 않으면 AWS IoT Greengrass 코어 소프트웨어는 구성 요소를 코어 디바이스에 대해 구성한 기본 사용자로 실행합니다. 자세한 내용은 기본 구성 요소 사용자 구성 단원을 참조하십시오.

참고

Windows 기반 디바이스에서는 구성 요소를 실행할 기본 사용자를 하나 이상 지정해야 합니다.

Linux 기반 디바이스에서는 구성 요소를 실행할 사용자를 구성하지 않으면 다음 고려 사항이 적용됩니다.

  • AWS IoT Greengrass 코어 소프트웨어를 루트로 실행하면 소프트웨어가 구성 요소를 실행하지 않습니다. 루트로 실행하는 경우 구성 요소를 실행할 기본 사용자를 지정해야 합니다.

  • AWS IoT Greengrass Core 소프트웨어를 루트가 아닌 사용자로 실행하면 소프트웨어가 해당 사용자로 구성 요소를 실행합니다.

Windows 디바이스의 구성 요소 사용자 설정

Windows 기반 디바이스의 구성 요소 사용자 설정 방법
  1. 디바이스의 LocalSystem 계정에 구성 요소 사용자를 생성합니다.

    net user /add component-user password
  2. Microsoft의 PsExec 유틸리티를 사용하여 LocalSystem 계정의 Credential Manager 인스턴스에 구성 요소 사용자의 사용자 이름과 암호를 저장합니다.

    psexec -s cmd /c cmdkey /generic:component-user /user:component-user /pass:password
    참고

    Windows 기반 디바이스에서 LocalSystem 계정은 Greengrass 핵을 실행하며 유틸리티를 사용하여 구성 요소 사용자 정보를 LocalSystem 계정에 PsExec 저장해야 합니다. Credential Manager 애플리케이션을 사용하면이 정보가 계정 대신 LocalSystem 현재 로그인한 사용자의 Windows 계정에 저장됩니다.

기본 구성 요소 사용자 구성

배포를 사용하여 코어 디바이스의 기본 사용자를 구성할 수 있습니다. 이 배포에서는 nucleus 구성 요소 구성을 업데이트합니다.

참고

--component-default-user 옵션을 사용하여 AWS IoT Greengrass Core 소프트웨어를 설치할 때 기본 사용자를 설정할 수도 있습니다. 자세한 내용은 AWS IoT Greengrass 코어 소프트웨어 설치 단원을 참조하십시오.

aws.greengrass.Nucleus 구성 요소에 대해 다음 구성 업데이트가 지정되는 배포를 생성합니다.

Linux
{ "runWithDefault": { "posixUser": "ggc_user:ggc_group" } }
Windows
{ "runWithDefault": { "windowsUser": "ggc_user" } }
참고

지정한 사용자가 있어야 하며,이 사용자의 사용자 이름과 암호는 Windows 디바이스 계정의 자격 증명 관리자 인스턴스 LocalSystem 에 저장되어야 합니다. 자세한 내용은 Windows 디바이스의 구성 요소 사용자 설정 단원을 참조하십시오.

{ "runWithDefault": { "posixUser": "ggc_user:ggc_group" } }

다음 예제에서는 ggc_user는 기본 사용자, ggc_group은 기본 그룹으로 구성되는 Linux 기반 디바이스에 대한 배포가 정의됩니다. merge 구성 업데이트에는 직렬화된 JSON 객체가 필요합니다.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.14.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"posixUser\":\"ggc_user:ggc_group\"}}" } } } }

구성 요소에 대한 시스템 리소스 제한 구성

참고

이 기능은 Greengrass nucleus 구성 요소의 v2.4.0 이상에서 사용할 수 있습니다. AWS IoT Greengrass 는 현재 Windows 코어 디바이스에서이 기능을 지원하지 않습니다.

각 구성 요소의 프로세스가 코어 디바이스에서 사용할 수 있는 최대 양CPU과 RAM 사용량을 구성할 수 있습니다.

시스템 리소스 제한이 지원되는 구성 요소의 유형이 다음 표에 나와 있습니다. 자세한 내용은 구성 요소 유형 단원을 참조하십시오.

구성 요소 유형 시스템 리소스 제한 구성

nucleus

아니요

플러그인

아니요

일반

Lambda(컨테이너화되지 않았음)

Lambda(컨테이너화되었음)

아니요

중요

Docker 컨테이너에서 AWS IoT Greengrass Core 소프트웨어를 실행할 때는 시스템 리소스 제한이 지원되지 않습니다.

구성 요소와 코어 디바이스마다 시스템 리소스 제한을 구성할 수 있습니다.

  • 구성 요소에 대해 구성

    해당 구성 요소에 지정된 시스템 리소스 제한으로 각 구성 요소를 구성할 수 있습니다. 배포를 생성할 때 배포의 각 구성 요소에 대한 시스템 리소스 제한을 지정할 수 있습니다. 구성 요소에서 시스템 리소스 제한이 지원되면 AWS IoT Greengrass 코어 소프트웨어에서는 구성 요소의 프로세스에 제한이 적용됩니다. 구성 요소에 시스템 리소스 제한을 지정하지 않으면 AWS IoT Greengrass 코어 소프트웨어는 코어 디바이스에 대해 구성한 기본값을 사용합니다. 자세한 내용은 배포 만들기 단원을 참조하십시오.

  • 코어 디바이스의 기본값 구성

    AWS IoT Greengrass Core 소프트웨어가 이러한 제한을 지원하는 구성 요소에 적용하는 기본 시스템 리소스 제한을 구성할 수 있습니다. AWS IoT Greengrass 코어 소프트웨어가 구성 요소를 실행할 때 해당 구성 요소에 대해 지정한 시스템 리소스 제한이 적용됩니다. 해당 구성 요소가 시스템 리소스 제한을 지정하지 않으면 AWS IoT Greengrass 코어 소프트웨어는 코어 디바이스에 대해 구성한 기본 시스템 리소스 제한을 적용합니다. 기본 시스템 리소스 제한을 지정하지 않으면 AWS IoT Greengrass Core 소프트웨어는 기본적으로 시스템 리소스 제한을 적용하지 않습니다. 자세한 내용은 기본 시스템 리소스 제한 구성 단원을 참조하십시오.

기본 시스템 리소스 제한 구성

Greengrass nucleus 구성 요소를 배포하여 코어 디바이스에 대한 기본 시스템 리소스 제한을 구성할 수 있습니다. 기본 시스템 리소스 제한을 구성하려면 aws.greengrass.Nucleus 구성 요소에 다음 구성 업데이트가 지정되는 배포를 생성합니다.

{ "runWithDefault": { "systemResourceLimits": { "cpu": cpuTimeLimit, "memory": memoryLimitInKb } } }

다음 예제에서는 로 CPU 시간 제한을 구성하는 배포를 정의합니다. 2이는 CPU 코어가 4개인 디바이스에서 50% 사용량에 해당합니다. 이 예제에서는 메모리 사용량을 100MB로 구성합니다.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.14.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"systemResourceLimits\":\"cpus\":2,\"memory\":102400}}}" } } } }

포트 443에서 또는 네트워크 프록시를 통해 연결

AWS IoT Greengrass 코어 디바이스는 TLS 클라이언트 인증과 함께 MQTT 메시징 프로토콜을 AWS IoT Core 사용하여와 통신합니다. 규칙에 따라 MQTT는 포트 8883을 TLS 사용합니다. 그러나 보안 조치로서 제한적인 환경은 작은 범위의 TCP 포트로 인바운드 및 아웃바운드 트래픽을 제한할 수 있습니다. 예를 들어 기업 방화벽은 HTTPS 트래픽에 대해 포트 443을 열 수 있지만 MQTT 트래픽에 대해 포트 8883과 같이 덜 일반적인 프로토콜에 사용되는 다른 포트를 닫을 수 있습니다. 다른 제한적 환경에서는 모든 트래픽이 인터넷 연결 전에 프록시를 경유해야 할 수도 있습니다.

참고

Greengrass 핵 구성 요소 v2.0.3 이하를 실행하는 Greengrass 코어 디바이스는 포트 8443을 사용하여 AWS IoT Greengrass 데이터 영역 엔드포인트에 연결합니다. 이러한 디바이스에서는 포트 8443에서 이 엔드포인트에 연결할 수 있어야 합니다. 자세한 내용은 프록시 또는 방화벽을 통해 디바이스 트래픽 허용 단원을 참조하십시오.

이러한 시나리오에서 통신을 활성화하려면에서 다음 구성 옵션을 AWS IoT Greengrass 제공합니다.

  • MQTT 포트 443을 통한 통신. 네트워크에서 포트 443에 대한 연결을 허용하는 경우 기본 포트 8883 대신 MQTT 트래픽에 포트 443을 사용하도록 Greengrass 코어 디바이스를 구성할 수 있습니다. 이는 포트 443으로 직접 연결되거나 네트워크 프록시 서버를 통해 연결되는 것일 수 있습니다. 인증서 기반 클라이언트 인증을 사용하는 기본 구성과 달리 포트 443MQTT에서는 인증에 디바이스 서비스 역할을 사용합니다.

    자세한 내용은 포트 443을 MQTT 통해 구성 단원을 참조하십시오.

  • HTTPS 포트 443을 통한 통신. AWS IoT Greengrass 코어 소프트웨어는 기본적으로 포트 8443을 통해 HTTPS 트래픽을 전송하지만 포트 443을 사용하도록 구성할 수 있습니다.는 Application Layer Protocol Network(ALPN) TLS 확장을 AWS IoT Greengrass 사용하여이 연결을 활성화합니다. 기본 구성과 마찬가지로 포트 443HTTPS에서는 인증서 기반 클라이언트 인증을 사용합니다.

    중요

    포트 443을 통한 HTTPS 통신을 사용하고 ALPN 활성화하려면 코어 디바이스가 Java 8 업데이트 252 이상을 실행해야 합니다. Java 버전 9 이상의 모든 업데이트는 도 지원합니다ALPN.

    자세한 내용은 포트 443을 HTTPS 통해 구성 단원을 참조하십시오.

  • 네트워크 프록시를 통한 연결. Greengrass 코어 디바이스에 연결하기 위한 중개자 역할을 하도록 네트워크 프록시 서버를 구성할 수 있습니다.는 HTTP 및 HTTPS 프록시에 대한 기본 인증을 AWS IoT Greengrass 지원합니다.

    Greengrass 코어 디바이스는 HTTPS 프록시를 사용하려면 Greengrass nucleus v2.5.0 이상을 실행해야 합니다.

    AWS IoT Greengrass 코어 소프트웨어는 ALL_PROXY, HTTP_PROXYHTTPS_PROXY, 및 NO_PROXY 환경 변수를 통해 프록시 구성을 구성 요소에 전달합니다. 프록시를 통해 연결되려면 구성 요소에서 이러한 설정이 사용되어야 합니다 구성 요소는 일반적으로 이러한 환경 변수를 기본적으로 사용하여 연결하는 일반적인 라이브러리(예: boto3URL, c 및 python requests 패키지)를 사용합니다. 구성 요소에서 이러한 환경 변수도 지정되는 경우 AWS IoT Greengrass 에서 재정의되지 않습니다.

    자세한 내용은 네트워크 프록시 구성 단원을 참조하십시오.

포트 443을 MQTT 통해 구성

기존 코어 디바이스의 포트 443을 MQTT 통해 또는 새 코어 디바이스에 AWS IoT Greengrass 코어 소프트웨어를 설치할 때를 구성할 수 있습니다.

기존 코어 디바이스에서 포트 443을 MQTT 통해 구성

배포를 사용하여 단일 코어 디바이스 또는 코어 디바이스 그룹의 포트 443을 MQTT 통해를 구성할 수 있습니다. 이 배포에서는 nucleus 구성 요소 구성을 업데이트합니다. mqtt 구성을 업데이트하면 nucleus가 다시 시작됩니다.

포트 443을 MQTT 통해를 구성하려면 aws.greengrass.Nucleus 구성 요소에 대해 다음 구성 업데이트를 지정하는 배포를 생성합니다.

{ "mqtt": { "port": 443 } }

다음 예제에서는 포트 443을 MQTT 통해를 구성하는 배포를 정의합니다. merge 구성 업데이트에는 직렬화된 JSON 객체가 필요합니다.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.14.0", "configurationUpdate": { "merge": "{\"mqtt\":{\"port\":443}}" } } } }

설치 중 포트 443을 MQTT 통해 구성

코어 디바이스에 AWS IoT Greengrass 코어 소프트웨어를 설치할 때 포트 443을 MQTT 통해를 구성할 수 있습니다. --init-config 설치 관리자 인수를 사용하여 포트 443을 MQTT 통해를 구성합니다. 수동 프로비저닝, 플릿 프로비저닝 또는 사용자 지정 프로비저닝으로 설치할 때 이 인수를 지정할 수 있습니다.

포트 443을 HTTPS 통해 구성

이 특성에는 Greengrass nucleus v2.0.4 이상이 필요합니다.

기존 코어 디바이스의 포트 443을 HTTPS 통해 또는 새 코어 디바이스에 AWS IoT Greengrass 코어 소프트웨어를 설치할 때를 구성할 수 있습니다.

기존 코어 디바이스의 포트 443을 HTTPS 통해 구성

배포를 사용하여 단일 코어 디바이스 또는 코어 디바이스 그룹의 포트 443을 HTTPS 통해를 구성할 수 있습니다. 이 배포에서는 nucleus 구성 요소 구성을 업데이트합니다.

포트 443을 HTTPS 통해를 구성하려면 aws.greengrass.Nucleus 구성 요소에 대해 다음 구성 업데이트를 지정하는 배포를 생성합니다.

{ "greengrassDataPlanePort": 443 }

다음 예제에서는 포트 443을 HTTPS 통해를 구성하는 배포를 정의합니다. merge 구성 업데이트에는 직렬화된 JSON 객체가 필요합니다.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.14.0", "configurationUpdate": { "merge": "{\"greengrassDataPlanePort\":443}" } } } }

설치 중 포트 443을 HTTPS 통해 구성

코어 디바이스에 AWS IoT Greengrass 코어 소프트웨어를 설치할 때 포트 443을 HTTPS 통해를 구성할 수 있습니다. --init-config 설치 관리자 인수를 사용하여 포트 443을 HTTPS 통해를 구성합니다. 수동 프로비저닝, 플릿 프로비저닝 또는 사용자 지정 프로비저닝으로 설치할 때 이 인수를 지정할 수 있습니다.

네트워크 프록시 구성

이 섹션의 절차에 따라 HTTP 또는 HTTPS 네트워크 프록시를 통해 인터넷에 연결하도록 Greengrass 코어 디바이스를 구성합니다. 코어 디바이스에서 사용되는 엔드포인트 및 포트에 대한 자세한 내용은 프록시 또는 방화벽을 통해 디바이스 트래픽 허용 단원을 참조하세요.

중요

코어 디바이스에서 v2.4.0 이전 버전의 Greengrass nucleus가 실행되는 경우 네트워크 프록시를 사용하려면 다음 권한이 디바이스의 역할에서 허용되어야 합니다.

  • iot:Connect

  • iot:Publish

  • iot:Receive

  • iot:Subscribe

이는 디바이스가 토큰 교환 서비스의 AWS 자격 증명을 사용하여 MQTT 연결을 인증하기 때문에 필요합니다 AWS IoT. 디바이스는 MQTT를 사용하여에서 배포를 수신하고 설치 AWS 클라우드하므로 역할에 대한 이러한 권한을 정의하지 않으면 디바이스가 작동하지 않습니다. 디바이스는 일반적으로 X.509 인증서를 사용하여 MQTT 연결을 인증하지만 프록시를 사용할 때는 인증할 수 없습니다.

디바이스 역할을 구성하는 방법에 대한 자세한 내용은 코어 디바이스에 AWS 서비스와 상호 작용 권한 부여 단원을 참조하세요.

기존 코어 디바이스에서 네트워크 프록시 구성

배포를 사용하여 단일 코어 디바이스 또는 코어 디바이스 그룹에서 네트워크 프록시를 구성할 수 있습니다. 이 배포에서는 nucleus 구성 요소 구성을 업데이트합니다. networkProxy 구성을 업데이트하면 nucleus가 다시 시작됩니다.

네트워크 프록시를 구성하려면 다음 구성 업데이트가 병합되는 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.14.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 코어 소프트웨어를 설치할 때 네트워크 프록시를 구성할 수 있습니다. --init-config 설치 프로그램 인수를 사용하여 네트워크 프록시를 구성합니다. 수동 프로비저닝, 플릿 프로비저닝 또는 사용자 지정 프로비저닝으로 설치할 때 이 인수를 지정할 수 있습니다.

코어 디바이스가 HTTPS 프록시를 신뢰하도록 활성화

HTTPS 프록시를 사용하도록 코어 디바이스를 구성할 때 프록시를 신뢰할 수 있도록 코어 디바이스의에 HTTPS 프록시 서버 인증서 체인을 추가해야 합니다. 그렇지 않으면 코어 디바이스에서 프록시를 통해 트래픽을 라우팅하려고 할 때 오류가 발생할 수 있습니다. 코어 디바이스의 Amazon 루트 CA 인증서 파일에 프록시 서버 CA 인증서를 추가합니다.

코어 디바이스가 HTTPS 프록시를 신뢰하도록 하려면
  1. 코어 디바이스에서 Amazon 루트 CA 인증서 파일을 찾습니다.

    • 자동 프로비저닝과 함께 AWS IoT Greengrass 코어 소프트웨어를 설치한 경우 Amazon 루트 CA 인증서 파일이에 있습니다/greengrass/v2/rootCA.pem.

    • 수동 또는 플릿 프로비저닝과 함께 AWS IoT Greengrass 코어 소프트웨어를 설치한 경우 Amazon 루트 CA 인증서 파일이에 있을 수 있습니다/greengrass/v2/AmazonRootCA1.pem.

    Amazon 루트 CA 인증서가 이러한 위치에 없는 경우 /greengrass/v2/config/effectiveConfig.yaml에서 system.rootCaPath 속성을 확인하여 해당 위치를 찾습니다.

  2. Amazon 루트 CA 인증서 파일에 프록시 서버 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

형식URL의 프록시 서버의 입니다scheme://userinfo@host:port.

  • scheme - 체계로, http 또는 https여야 합니다.

    중요

    Greengrass 코어 디바이스는 HTTPS 프록시를 사용하려면 Greengrass nucleus v2.5.0 이상을 실행해야 합니다.

    HTTPS 프록시를 구성하는 경우 코어 디바이스의 Amazon 루트 CA 인증서에 프록시 서버 CA 인증서를 추가해야 합니다. 자세한 내용은 코어 디바이스가 HTTPS 프록시를 신뢰하도록 활성화 단원을 참조하십시오.

  • userinfo - (선택 사항) 사용자 이름 및 암호 정보입니다. url에서 이 정보를 지정하면 Greengrass 코어 디바이스에서는 usernamepassword 필드를 무시합니다.

  • host - 프록시 서버의 호스트 이름 또는 IP 주소입니다.

  • port – (선택 사항) 포트 번호입니다. 포트를 지정하지 않으면 Greengrass 코어 디바이스에서는 다음 기본값이 사용됩니다.

    • http – 80

    • https – 443

username

(선택 사항) 프록시 서버를 인증하는 사용자 이름입니다.

password

(선택 사항) 프록시 서버를 인증하는 암호입니다.

프라이빗 CA에서 서명한 디바이스 인증서 사용

사용자 지정 프라이빗 인증 기관(CA)을 사용하는 경우 Greengrass nucleus의 greengrassDataPlaneEndpointiotdata로 설정해야 합니다. --init-config 설치 프로그램 인수를 사용하여 배포 또는 설치 중에 이 옵션을 설정할 수 있습니다.

디바이스가 연결되는 Greengrass 데이터 플레인 엔드포인트를 사용자 지정할 수 있습니다. 이 구성 옵션을 iotdata로 설정하여 iotDataEndpoint를 통해 지정할 수 있는 IoT 데이터 엔드포인트와 동일한 엔드포인트로 Greengrass 데이터 플레인 엔드포인트를 설정할 수 있습니다.

제한 MQTT 시간 및 캐시 설정 구성

AWS IoT Greengrass 환경에서 구성 요소는를 사용하여와 통신MQTT할 수 있습니다 AWS IoT Core. AWS IoT Greengrass Core 소프트웨어는 구성 요소에 대한 MQTT 메시지를 관리합니다. 코어 디바이스가에 대한 연결이 끊어지면 AWS 클라우드소프트웨어는 나중에 연결이 복원될 때 다시 시도하기 위해 MQTT 메시지를 캐싱합니다. 메시지 제한 시간 및 캐시 크기와 같은 설정을 구성할 수 있습니다. 자세한 내용은 Greengrass nucleus 구성 요소mqttmqtt.spooler 구성 파라미터를 참조하세요.

AWS IoT Core 는 MQTT 메시지 브로커에 서비스 할당량을 부과합니다. 이러한 할당량은 코어 디바이스와 AWS IoT Core간에 보내는 메시지에 적용될 수 있습니다. 자세한 내용은 AWS 일반 참조AWS IoT Core 메시지 브로커 서비스 할당량을 참조하세요.

IPv6 네트워크에서 Greengrass Nucleus 구성

Greengrass Nucleus는 Greengrass를 AWS IoT Core 통해와 대화합니다. APIs Greengrass는 IPv6 듀얼 스택 환경에서 APIs 지원합니다.

에 대해 듀얼 스택 엔드포인트를 활성화하려면IPv6:

  • 시스템 속성 aws.useDualstackEndpoint=true, 및를 java.net.preferIPv6Addresses=true에 추가 jvmOptions

  • s3EndpointTypeDUALSTACK로 설정합니다.

배포 중에이 옵션을 설정하거나 --init-config 설치 관리자 인수로 수동으로 프로비저닝합니다. 자세한 내용은 Amazon S3 듀얼 스택 엔드포인트 사용을 참조하세요.

예 배포 코드:
{ "jvmOptions": "-Daws.useDualstackEndpoint=true", "s3EndpointType":"DUALSTACK" }
config.yaml 수동 프로비저닝을 통해:
--- system: ... services: aws.greengrass.Nucleus: ... configuration: ... jvmOptions: "-Daws.useDualstackEndpoint=true -Djava.net.preferIPv6Addresses=true" s3EndpointType: "DUALSTACK"
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.