| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- docker
- Til
- MAPF
- amazon ecs
- terraform
- 지표
- PostgreSQL
- 청첩장 모임
- 생성 패턴
- 티스토리챌린지
- Go-lang
- AWS 비용 절감
- leetcode
- 디자인 패턴
- 구조 패턴
- Rust
- 회고
- 오블완
- 신혼 여행
- 14일 공부
- github
- 실용주의 프로그래머
- AWS
- study
- 논문 정리
- DevOps
- 커머스
- ssh
- 경로 계획 알고리즘
- Playwright
- Today
- Total
밤 늦게까지 여는 카페
[AWS IoT Core] 파이썬 SDK는 MQTT 통신에 443 포트를 기본값으로 사용하고 있었습니다! 본문
안녕하세요. 이제야 여름이 끝나가는 것 같습니다.
전국적으로 비가 엄청 많이 내리고 있는데 비가 그친 이후에는 더위가 많이 사라질 것이라고 하니 다행입니다 ㅎㅎ
이번에는 AWS IoT Core의 Python SDK가 MQTT 프로토콜을 이용할 때, 기본적으로 443 포트를 사용하는 것을 알게된 사실을 기록하려고 합니다.
AWS 서비스들이 어떤 IP, 포트를 사용하는지 조사하다가 알게 된 사실이었는데 꽤나 충격적(?)이었습니다 ㅋㅋㅋ
1. AWS IoT Core MQTT 프로토콜에 사용되는 포트
AWS IoT Core 서비스의 공식 문서를 보면 MQTT 프로토콜에는 443 포트와 8883 포트를 사용된다는 것을 알 수 있습니다.

그런데 443과 8883 포트 중 어떤 포트를 우선시해서 사용한다는 언급은 없어서
MQTT 프로토콜이 기본적으로 사용하는 8883 포트가 사용될 것이라고 생각했습니다.


2. 하지만 선택은 코드가 한다! - 직접 확인하기 전까지 추측하지 않기 ㅜㅠ
그런데 AWS IoT Core 파이썬 SDK를 보니 443 포트가 기본으로 사용된다고 적혀 있는 것입니다!

와... SDK에 대놓고 적혀있었는데 이걸 몰랐습니다...
그런데 미심쩍은 부분이 있는 것이 시스템이 ALPN을 지원하는 경우에 443 포트를 사용한다고 하더라고요.
Default port is 443 if system supports ALPN or websockets are being used. Otherwise, default port is 8883.
ALPN을 지원하는지 어떻게 확인해야 할지 몰라
netstat 명령어를 이용해서 확인해보니 실제로 443 포트를 사용하는 것을 볼 수 있었습니다...!

다음 순서로 프로세스가 연결하고 있는 엔드포인트, 포트를 확인할 수 있었습니다.
1. ps -aux | grep {프로세스 이름} 명령어를 이용해서 AWS IoT Core SDK를 이용하고 있는 프로세스의 PID를 확인합니다.
2. netstat -tunp | grep {1에서 확인한 PID} 명령어를 이용해서 어떤 엔드포인트, 포트로 연결했는지 확인할 수 있습니다.
'aws' 카테고리의 다른 글
| AWS Lambda python3.8 런타임 지원 종료로 인한 런타임 변경 작업기 - 고마워요 AWS SAM CLI! (0) | 2024.10.13 |
|---|---|
| Amazon ECR에서 태그 없는 이미지들 제거하기 - 용량만 축내고 있는 이미지들 없애버리죠! (1) | 2024.10.05 |
| AWS 서비스 IP 범위 확인하는 방법 (0) | 2024.09.08 |
| AWS PostgresQL 12 버전 표준 지원 종료 예정으로 인한 DB 인스턴스 12.7 => 16.1 업그레이드 후기 (1) | 2024.09.08 |
| AWS Redis 클러스터, DB 인스턴스 가용 영역 변경 작업기 - 가용 영역 통일해서 데이터 통신 비용 절약하자! (0) | 2024.09.06 |