기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
디바이스 통신 프로토콜
AWS IoT Core 및 MQTT over WebSocket Secure (WSS) 프로토콜을 사용하여 메시지를 게시하고 구독하는 장치 및 클라이언트와 HTTPS 프로토콜을 사용하여 메시지를 게시하는 장치 및 클라이언트를 지원합니다. MQTT 모든 프로토콜은 IPv4 및 을 지원합니다IPv6. 이 섹션에서는 디바이스 및 클라이언트에 대한 다양한 연결 옵션에 대해 설명합니다.
TLS1.2 및 TLS 1.3
AWS IoT Core TLS
클라이언트 연결의 보안 요구 사항 지원 WSS 및 지원. AWS IoT 디바이스 SDKs MQTT MQTT 클라이언트를 AWS IoT에 연결하기 위해 AWS IoT 디바이스 SDKs를 사용하는 것이 좋습니다.
프로토콜, 포트 매핑 및 인증
디바이스 또는 클라이언트가 디바이스 엔드포인트를 사용하여 메시지 브로커에 연결하는 방법은 사용하는 프로토콜에 따라 다릅니다. 다음 표에는 AWS IoT 장치 엔드포인트에서 지원하는 프로토콜과 사용하는 인증 방법 및 포트가 나열되어 있습니다.
프로토콜, 인증 및 포트 매핑 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
프로토콜 | 지원되는 작업 | 인증 | Port | ALPN프로토콜 이름 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT오버 WebSocket |
게시, 구독 | 서명 버전 4 | 443 |
N/A |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT위에 WebSocket |
게시, 구독 | 사용자 지정 인증 | 443 |
N/A |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT |
게시, 구독 |
X.509 클라이언트 인증서 |
443† |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT | 게시, 구독 | X.509 클라이언트 인증서 | 8883 | N/A | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT |
게시, 구독 |
사용자 지정 인증 |
443† |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS |
게시 전용 |
서명 버전 4 |
443 |
N/A |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS |
게시 전용 |
X.509 클라이언트 인증서 |
443† |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS | 게시 전용 | X.509 클라이언트 인증서 | 8443 | N/A | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS | 게시 전용 | 사용자 지정 인증 | 443 | N/A |
애플리케이션 계층 프로토콜 협상 (ALPN)
† X.509 클라이언트 인증서 인증을 사용하여 포트 443에 연결하는 클라이언트는 응용 프로그램 계층 프로토콜 협상 (ALPN)ClientHello
포트 443에서 ATSIoT:Data-엔드포인트는 지원하지만 IoT:Jobs 엔드포인트는 지원하지 ALPN x-amzn-http-ca HTTP 않습니다.
포트 HTTPS 8443과 포트 MQTT 443을 사용하는 경우 사용자 지정 인증을 사용할 수 없습니다. ALPN x-amzn-mqtt-ca
클라이언트는 해당 장치 AWS 계정엔드포인트에 연결합니다. 계정의 디바이스 엔드포인트를 찾는 방법에 대한 자세한 내용은 AWS IoT 장치 데이터 및 서비스 엔드포인트 섹션을 참조하세요.
참고
AWS SDKs전체가 URL 필요하지는 않습니다. AWS IoT Device SDK for GitHub Python의 pubsub.py
샘플과
연결 대상 AWS IoT Core | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
프로토콜 |
엔드포인트 또는 URL |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT오버 WSS |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS |
|
디바이스 통신을 위한 프로토콜 선택
디바이스 엔드포인트를 통한 대부분의 IoT 디바이스 통신의 경우 MQTT 또는 MQTT 오버 WSS 프로토콜을 사용하는 것이 좋지만 디바이스 엔드포인트도 지원합니다. HTTPS 다음 표에서는 장치 통신에 두 프로토콜을 AWS IoT Core 사용하는 방법을 비교합니다.
AWS IoT 디바이스 프로토콜 side-by-side | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
기능 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
게시/구독 지원 |
게시 및 구독 |
게시 전용 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SDK지원 |
AWS 장치 SDKs 지원 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) 연결 중단
-
서비스 패치
-
서비스 배포
-
서비스 Auto Scaling
-
사용할 수 없는 서비스 호스트
-
로드 밸런서 문제 및 업데이트
-
클라이언트 측 오류
디바이스는 연결 해제를 감지하고 다시 연결하기 위한 전략을 구현해야 합니다. 연결 해제 이벤트 및 처리 방법에 대한 자세한 내용은 수명 주기 이벤트에서 연결/연결 해제 이벤트 섹션을 참조하세요.