기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
디바이스 통신 프로토콜
AWS IoT CoreMQTT 및 MQTT를 사용하는 장치 및 클라이언트 지원WebSocket메시지를 게시하고 구독하기 위한 보안 (WSS) 프로토콜과 HTTPS 프로토콜을 사용하여 메시지를 게시하는 장치 및 클라이언트 모든 프로토콜은 IPv4 및 IPv6을 지원합니다. 이 섹션에서는 디바이스 및 클라이언트에 대한 다양한 연결 옵션에 대해 설명합니다.
TLS 1.2 및 TLS 1.3
AWS IoT Core사용TLS
AWS IoT Device SDK는 MQTT 및 MQTT over WSS를 지원하고 클라이언트 연결의 보안 요구 사항을 지원합니다. 클라이언트를 AWS IoT에 연결하기 위해 AWS IoT Device SDK를 사용하는 것이 좋습니다.
프로토콜, 포트 매핑 및 인증
디바이스 또는 클라이언트가 디바이스 엔드포인트를 사용하여 메시지 브로커에 연결하는 방법은 사용하는 프로토콜에 따라 다릅니다. 다음 표에는 AWS IoT 디바이스 엔드포인트가 지원하는 프로토콜과 이들이 사용하는 인증 방법 및 포트가 나열되어 있습니다.
프로토콜, 인증 및 포트 매핑 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
프로토콜 | 지원되는 작업 | 인증 | 포트 | ALPN 프로토콜 이름 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
매트 커버WebSocket |
게시, 구독 | 서명 버전 4 | 443 |
해당 사항 없음 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
매트 커버WebSocket |
게시, 구독 | 사용자 지정 인증 | 443 |
해당 사항 없음 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT |
게시, 구독 |
X.509 클라이언트 인증서 |
443† |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT | 게시, 구독 | X.509 클라이언트 인증서 | 8883 | 해당 사항 없음 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT |
게시, 구독 |
사용자 지정 인증 |
443† |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS |
게시 전용 |
서명 버전 4 |
443 |
해당 사항 없음 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS |
게시 전용 |
X.509 클라이언트 인증서 |
443† |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS | 게시 전용 | X.509 클라이언트 인증서 | 8443 | 해당 사항 없음 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS | 게시 전용 | 사용자 지정 인증 | 443 | 해당 사항 없음 |
애플리케이션 계층 프로토콜 협상(ALPN)
†포트 443에서 X.509 클라이언트 인증서 인증을 통해 연결하는 클라이언트는 다음을 구현해야 합니다.애플리케이션 계층 프로토콜 협상 (ALPN)ClientHello
메시지.
포트 443에서는IoT: 데이터-ATS엔드포인트는 ALPN을 지원합니다x-amzn-http-caHTTP, 하지만IoT:채용 정보엔드포인트는 그렇지 않습니다.
ALPN을 사용하는 포트 843 HTTPS 및 포트 443 MQTT에서x-amzn-mqtt-ca,사용자 지정 인증사용할 수 없습니다.
클라이언트는 AWS 계정의 디바이스 엔드포인트에 연결합니다. 계정의 디바이스 엔드포인트를 찾는 방법에 대한 자세한 내용은 AWS IoT 디바이스 데이터 및 서비스 엔드포인트 섹션을 참조하세요.
참고
AWS SDK에는 전체 URL이 필요하지 않습니다. 다음과 같은 엔드포인트 호스트 이름만 필요합니다.pubsub.py
에 대한 샘플AWS IoT파이썬용 디바이스 SDK 켜짐GitHub
AWS IoT Core 연결 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
프로토콜 |
엔드포인트 또는 URL |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT over WSS |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS |
|
디바이스 통신을 위한 프로토콜 선택
디바이스 엔드포인트를 통한 대부분의 IoT 디바이스 통신에 대해 대부분의 경우 MQTT 또는 MQTT over WSS 프로토콜 사용하지만 디바이스 엔드포인트에서는 HTTPS도 지원합니다. 다음 표는 AWS IoT Core에서 디바이스 통신을 위해 두 프로토콜을 사용하는 방법을 비교합니다.
AWS IoT디바이스 프로토콜side-by-side | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
특징 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
게시/구독 지원 |
게시 및 구독 |
게시 전용 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDK 지원 |
AWS Device SDK는 MQTT 및 WSS 프로토콜을 지원합니다. |
SDK를 지원하지 않지만 언어별 메서드를 사용하여 HTTPS 요청을 할 수 있습니다. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
서비스 품질 지원 |
QoS는 값이 0 또는 1일 수 있는 쿼리 문자열 파라미터 ?qos=qos 를 전달하여 지원됩니다. 이 쿼리 문자열을 추가하여 원하는 QoS 값으로 메시지를 게시할 수 있습니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
디바이스가 오프라인 상태일 때 누락된 메시지를 받을 수 있음 | 예 | 아니요 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
예 |
아니요 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
디바이스 연결 해제 감지 |
예 |
아니요 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
통신 보안 |
예. 프로토콜, 포트 매핑 및 인증 섹션을 참조하세요. |
예. 프로토콜, 포트 매핑 및 인증 섹션을 참조하세요. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
주제 정의 |
정의된 애플리케이션 |
정의된 애플리케이션 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
메시지 데이터 형식 |
정의된 애플리케이션 |
정의된 애플리케이션 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
프로토콜 오버헤드 | 낮음 | 높음 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
전력 소비 | 낮음 | 높음 |
연결 지속 시간 제한
HTTPS 연결이 요청을 수신하고 응답하는 데 걸리는 시간보다 오래 지속되지 않을 수 있습니다.
MQTT 연결 지속 시간은 사용하는 인증 기능에 따라 다릅니다. 다음 표에는 각 기능에 이상적인 조건에서 최대 연결 지속 시간이 나열되어 있습니다.
인증 기능별 MQTT 연결 지속 시간 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
특징 |
최대 지속 시간* |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
X.509 클라이언트 인증서 |
1~2주 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
사용자 지정 인증 |
1~2주 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
서명 버전 4 |
최대 24시간 |
* 보장되지 않음
X.509 인증서 및 사용자 정의 인증을 사용하면 연결 지속 시간에 엄격한 제한이 없지만 몇 분 정도로 짧을 수 있습니다. 연결 중단은 다양한 이유로 발생할 수 있습니다. 다음 목록에는 가장 일반적인 이유 중 일부가 나와 있습니다.
Wi-Fi 가용성 중단
인터넷 서비스 제공업체(ISP) 연결 중단
서비스 패치
서비스 배포
서비스 자동 크기 조정
사용할 수 없는 서비스 호스트
로드 밸런서 문제 및 업데이트
클라이언트 측 오류
디바이스는 연결 해제를 감지하고 다시 연결하기 위한 전략을 구현해야 합니다. 연결 해제 이벤트 및 처리 방법에 대한 자세한 내용은 수명 주기 이벤트에서 연결/연결 해제 이벤트 섹션을 참조하세요.