다음을 통해 공유


연결이 끊긴 디바이스 업데이트에 대한 지원 이해하기(미리 보기)

IoT Edge 디바이스용 MCC(Microsoft Connected Cache) 모듈을 사용하면 게이트웨이 뒤에서 연결이 끊긴 디바이스에 대한 디바이스 업데이트 기능을 사용할 수 있습니다. 투명 게이트웨이 시나리오에서는 하나 이상의 디바이스가 Azure IoT 허브와의 연결을 유지하는 단일 게이트웨이 디바이스를 통하여 메시지를 보낼 수 있습니다. 이러한 경우 자식 디바이스에 인터넷이 연결되어 있지 않거나 인터넷에서 콘텐츠를 다운로드할 수 없는 상태일 수 있습니다. MCC 모듈은 Device Update for IoT Hub 고객에게 지능형 네트워크 내 캐시 기능을 제공합니다. 캐시는 IoT Edge 게이트웨이(다운스트림 IoT 디바이스라고도 함) 뒤에서 Linux OS 기반 디바이스에 대해 이미지 기반 및 패키지 기반 업데이트를 사용하도록 설정합니다. 또한 캐시는 업데이트에 사용되는 대역폭을 줄이는 데 도움이 됩니다.

참고 항목

이 정보는 프로덕션 환경에서 초기 테스트 및 사용에 사용할 수 있는 미리 보기 기능과 관련이 있습니다. 이 기능은 완전히 지원되지만 아직 활성 개발 중이며 일반 공급될 때까지 상당한 변경 내용을 받을 수 있습니다.

IoT Edge 게이트웨이에 익숙하지 않은 경우 IoT Edge 디바이스를 게이트웨이로 사용하는 방법에 대해 자세히 알아보세요.

Microsoft 연결된 캐시란?

Microsoft 연결된 캐시는 Device Update for IoT Hub에 대해 게시되는 콘텐츠를 위한 지능형 투명 캐시로, 패키지 리포지토리 같은 기타 원본으로부터의 캐시 콘텐츠에 대하여서도 사용자 지정이 가능합니다. Microsoft 연결된 캐시는 콜드 캐시로 배달 최적화 클라이언트가 요청하는 정확한 파일 범위에 대한 클라이언트 요청으로 인하여 준비되며 콘텐츠를 미리 시드하지 않습니다. 다음 다이어그램 및 단계별 설명에서는 Microsoft 연결된 캐시가 디바이스 업데이트 인프라에서 작동하는 방식을 설명합니다.

참고 항목

이 흐름에서는 IoT Edge 게이트웨이가 인터넷에 연결되어 있다고 가정합니다. 다운스트림 IoT Edge 게이트웨이(중첩된 에지) 시나리오에서 CDN(Content Delivery Network)은 부모 IoT Edge 게이트웨이에서 호스트된 MCC라고 간주할 수 있습니다.

Diagram that demonstrates how the Microsoft Connected Cache module enables disconnected device update.

  1. Microsoft 연결된 캐시는 온-프레미스 게이트웨이 서버에 IoT Edge 모듈로서 배포됩니다.

  2. Device Update for IoT Hub 클라이언트는 IoT 리프 디바이스 또는 IoT Edge 자식 디바이스용 config.toml에 설정된 parent_hostname에 대한 디바이스 연결 문자열의 GatewayHostName 특성을 사용하여 Microsoft 연결된 캐시에서 콘텐츠를 다운로드하도록 구성됩니다.

  3. Device Update for IoT Hub 클라이언트는 Device Update 서비스에서 다운로드 명령을 수신하고 CDN 대신 Microsoft 연결된 캐시에서 콘텐츠 업데이트를 요청합니다. Microsoft 연결된 캐시는 기본적으로 HTTP 포트 80에서 수신 대기하고, 배달 최적화 클라이언트는 포트 80에서 콘텐츠를 요청하므로 부모가 이 포트에서 수신 대기하도록 구성해야 합니다. 현재는 HTTP 프로토콜만 지원합니다.

  4. Microsoft 연결된 캐시 서버는 CDN에서 콘텐츠를 다운로드하고 디스크에 저장한 로컬 캐시를 시드하며 콘텐츠를 Device Update 클라이언트에 전달합니다.

    참고 항목

    패키지 기반 업데이트를 사용하는 경우, 관리자가 Microsoft 연결된 캐시 서버를 필요한 패키지 호스트 이름으로 구성합니다.

  5. 동일한 업데이트 콘텐츠에 대한 다른 Device Update 클라이언트에서 오는 후속 요청은 캐시를 통하여 전달되며 Microsoft 연결된 캐시는 동일한 콘텐츠에 대하여서는 CDN에 요청하지 않습니다.

부모/자식 호스팅 시나리오를 통한 IIoT(산업용 IoT) 지원

IIoT(산업용 IoT) 시나리오에는 최상위 수준만 인터넷에 액세스할 수 있는 여러 수준의 IoT Edge 게이트웨이가 포함되는 경우가 많습니다. 이 시나리오에서 각 게이트웨이는 부모 게이트웨이에서 업데이트 콘텐츠를 요청하도록 구성된 Microsoft 연결된 캐시 서비스를 호스트합니다.

자식(또는 다운스트림) IoT Edge 게이트웨이가 부모 게이트웨이에서 업데이트 콘텐츠를 요청하는 경우 이 요청은 인터넷에 액세스할 수 있는 Microsoft 연결된 캐시 서버를 호스트하는 최상위 IoT Edge 게이트웨이에 도달하기 전에 필요한 수만큼의 수준에 대해 반복됩니다. 인터넷이 연결된 서버에서 콘텐츠는 원래 그 콘텐츠를 요청하였던 자식 IoT Edge 게이트웨이로 그 콘텐츠가 반환될 때 CDN의 요청을 받습니다. 콘텐츠는 모든 수준에서 디스크에 저장됩니다.

미리 보기 액세스 요청

Microsoft 연결된 캐시 IoT Edge 모듈은 Device Update for IoT Hub를 사용하여 솔루션을 배포하는 고객들을 위해 미리 보기로 릴리스되었습니다. 초대를 통하여 미리 보기에 액세스합니다. Device Update for IoT Hub를 위한 Microsoft 연결된 캐시 미리 보기에 액세스를 요청하고, 해당 모듈에 액세스하고 싶으면 요청된 정보를 제공합니다.

Microsoft 연결된 캐시 모듈 구성

Microsoft 연결된 캐시는 Azure IoT Edge 게이트웨이에 IoT Edge 모듈로 배포됩니다. 다른 IoT Edge 모듈과 마찬가지로 환경 변수 및 컨테이너 만들기 옵션은 MCC 모듈을 구성하는 데 사용됩니다. 본 섹션에서는 IoT Hub용 디바이스 업데이트를 통해 사용할 MCC 모듈을 성공적으로 배포하는 데 필요한 환경 변수 및 컨테이너 생성 옵션을 정의합니다.

다른 모듈이나 서비스 상호 작용이 통신을 위해 MCC 모듈의 이름에 의존하지 않기 때문에 Microsoft 연결된 캐시 모듈에 대한 명명 요구 사항은 없습니다. 또한 Microsoft 연결된 캐시 서버의 부모-자식 관계는 이 모듈 이름에 의존하지 않고 IoT Edge 게이트웨이의 FQDN 또는 IP 주소에 의존합니다.

모듈 환경 변수

Microsoft 연결된 캐시 모듈 환경 변수는 기본 모듈 ID 정보 및 기능적 모듈 설정을 컨테이너에 전달하는 데 사용됩니다.

변수 이름 값 형식 설명
CUSTOMER_ID Azure 구독 ID GUID 필수

이 값은 전송 최적화 서비스에 대한 캐시 노드의 보안 인증을 제공하는 고객의 ID입니다.
CACHE_NODE_ID 캐시 노드 ID GUID 필수

전송 최적화 서비스에 대해 MCC 노드를 고유하게 식별합니다.
CUSTOMER_KEY 고객 키 GUID 필수

이 값은 전송 최적화 서비스에 대한 캐시 노드의 보안 인증을 제공하는 고객의 키입니다.
STORAGE_N_SIZE_GB(여기서 N은 캐시 드라이브) 정수 필수

콘텐츠를 캐시할 드라이브를 최대 9개까지 지정하고 각 캐시 드라이브의 콘텐츠에 할당할 최대 공간(GB)을 지정합니다. 드라이브 번호는 컨테이너 만들기 옵션 MicrosoftConnectedCacheN 값에 지정된 캐시 드라이브 바인딩 값과 일치해야 합니다.

예:
STORAGE_1_SIZE_GB = 150
STORAGE_2_SIZE_GB = 50

캐시의 최소 크기는 10GB입니다.
UPSTREAM_HOST FQDN/IP 옵션

이 값은 연결된 캐시 노드가 인터넷에서 연결 끊기된 경우 프록시 역할을 하는 업스트림 MCC 노드를 지정할 수 있습니다. 이 설정은 중첩 IoT 시나리오를 지원하는 데 사용됩니다.

참고: MCC는 http 기본 포트 80에서 수신 대기합니다.
UPSTREAM_PROXY FQDN/IP:PORT 옵션

아웃바운드 인터넷 프록시입니다. 이 값은 ISA 95 네트워크의 OT DMZ 프록시일 수도 있습니다.
CACHEABLE_CUSTOM_N_HOST HOST/IP
FQDN
옵션

사용자 지정 패키지 리포지토리를 지원하는 데 필요합니다. 리포지토리는 로컬로 호스팅될 수도 있고 인터넷으로 호스팅될 수도 있습니다. 구성할 수 있는 사용자 지정 호스트의 수는 무제한입니다.

예:
이름 = CACHEABLE_CUSTOM_1_HOST 값 = packages.foo.com
이름 = CACHEABLE_CUSTOM_2_HOST 값 = packages.bar.com
CACHEABLE_CUSTOM_N_CANONICAL Alias 옵션

사용자 지정 패키지 리포지토리를 지원하는 데 필요합니다. 이 값은 별칭으로 사용될 수 있으며 캐시 서버에서 다른 DNS 이름을 참조하는 데 사용됩니다. 예를 들어, 리포지토리 콘텐츠 호스트 이름은 packages.foo.com일 수 있지만 다른 지역의 경우 westuscdn.packages.foo.com 및 eastuscdn.packages.foo.com과 같이 호스트 이름에 추가되는 추가 접두사가 있을 수 있습니다. 정식 별칭을 설정하면 동일한 호스트에서 오는 콘텐츠에 대해 콘텐츠가 복제되지 않지만 다른 CDN 원본에서 콘텐츠가 복제되지 않도록 할 수 있습니다. 정식 값의 형식은 중요하지 않지만 호스트에 대해 고유해야 합니다. 해당 값을 호스트 값에 일치시켜 설정하는 것이 가장 쉬운 방법입니다.

이전 사용자 지정 호스트 예제를 기준으로 하는 예제:
이름 = CACHEABLE_CUSTOM_1_CANONICAL 값 = foopackages
이름 = CACHEABLE_CUSTOM_2_CANONICAL 값 = packages.bar.com
IS_SUMMARY_PUBLIC True 또는 False 옵션

로컬 네트워크나 인터넷에서 요약 보고서를 볼 수 있습니다. true로 설정된 경우 요약 보고서를 보려면 API 키(이후 설명)를 사용해야 합니다.
IS_SUMMARY_ACCESS_UNRESTRICTED True 또는 False 옵션

네트워크의 모든 디바이스에서 API 키를 사용하지 않고 로컬 네트워크 또는 인터넷에서 요약 보고서를 볼 수 있습니다. 브라우저를 통해 캐시 서버 요약 데이터 보기에 대한 액세스를 잠그지 않으려는 경우 사용합니다.

모듈 컨테이너 만들기 옵션

컨테이너 만들기 옵션은 Microsoft 연결된 캐시 모듈에서 사용하는 스토리지 및 포트와 관련된 설정을 제어합니다.

샘플 컨테이너 만들기 옵션:

{
    "HostConfig": {
        "Binds": [
            "/microsoftConnectedCache1/:/nginx/cache1/"
        ],
        "PortBindings": {
            "8081/tcp": [
                {
                    "HostPort": "80"
                }
            ],
            "5000/tcp": [
                {
                    "HostPort": "5100"
                }
            ]
        }
    }
}

다음 섹션에서는 MCC 모듈을 배포하는 데 사용되는 필수 컨테이너 만들기 변수를 나열합니다.

HostConfig

HostConfig 매개 변수는 컨테이너 스토리지 위치를 디스크의 스토리지 위치에 매핑하는 데 필요합니다. 최대 9개의 위치를 지정할 수 있습니다.

참고 항목

드라이브 번호는 환경 변수 STORAGE_N_SIZE_GB 값인 /MicrosoftConnectedCache*N*/:/nginx/cache*N*/에 지정된 캐시 드라이브 바인딩 값과 일치해야 합니다.

PortBindings

PortBindings 매개 변수는 컨테이너 포트를 호스트 디바이스의 포트에 매핑합니다.

첫 번째 포트 바인딩은 MCC가 콘텐츠 요청을 수신하는 외부 컴퓨터 HTTP 포트를 지정합니다. 기본 HostPort는 포트 80이며 ADU 클라이언트에서 현재 포트 80에 대해 요청할 때 다른 포트는 동시에 지원하지 않습니다. TCP 포트 8081은 내부 컨테이너 포트로 MCC가 수신 대기할 수는 있지만 변경할 수는 없습니다.

두 번째 포트 바인딩은 컨테이너가 호스트 포트 5000에서 수신 대기하지 않도록 합니다. Microsoft 연결된 캐시 모듈에는 .NET Core 서비스가 있어서 캐싱 엔진이 다양한 용도로 사용합니다. 레지스트리 프록시 모듈이 이미 호스트 포트 5000을 수신 대기하고 있으므로 중첩된 에지를 지원하기 위해 HostPort를 5000으로 설정하지 않아야 합니다.

Microsoft 연결된 캐시 요약 보고서

현재는 요약 보고서를 통해서만 고객이 IoT Edge 게이트웨이에 배포된 Microsoft 연결된 캐시 인스턴스 관련 캐싱 데이터를 볼 수 있습니다. 보고서는 15초 간격으로 생성되며 여기에는 시기별 평균 통계 및 해당 모듈의 수명주기 동안 집계된 통계가 포함됩니다. 보고서에서 제공하는 주요 통계는 다음과 같습니다.

  • hitBytes - 캐시에서 직접 도착한 바이트 합계입니다.
  • missBytes - Microsoft 연결된 캐시가 캐시 확인을 위해 CDN에서 다운로드해야 했던 바이트 합계입니다.
  • eggressBytes - hitBytes 및 missBytes의 합계이자 클라이언트에게 전달된 전체 바이트 수입니다.
  • hitRatioBytes - hitBytes에 대한 egressBytes 비율입니다. 예를 들어 한 기간에 전달된 eggressBytes의 100%가 hitBytes와 같으면 이 값은 1이 됩니다.

요약 보고서는 http://<IoT Edge gateway>:5001/summary에서 볼 수 있습니다. <IoT Edge 게이트웨이>를 MCC 모듈을 호스팅하는 IoT Edge 게이트웨이의 IP 주소 또는 호스트 이름으로 바꿉니다.

다음 단계

단일 게이트웨이 또는 중첩 및 산업용 IoT 게이트웨이에서 Microsoft 연결된 캐시를 구현하는 방법을 알아봅니다.