관리 메뉴

밤 늦게까지 여는 카페

[AWS IoT Core] Basic Ingest - 비싼 메시지 전송 비용 절약하는 방법 본문

aws

[AWS IoT Core] Basic Ingest - 비싼 메시지 전송 비용 절약하는 방법

Jㅐ둥이 2025. 4. 15. 00:06

안녕하세요. 오늘은 AWS IoT Core 메시지 전송 비용을 절감할 수 있는 Basic Ingest 기능을 소개해드리려고 합니다.

 

1. AWS IoT Core 상당히 비싼 서비스…

AWS IoT Core 서비스를 사용해보신 분들은 많이 느끼셨겠지만 AWS IoT Core는 굉장히 비싼 서비스입니다.

 

일반적으로 인터넷 => AWS 서비스로는 요금이 부과되지 않습니다.

하지만 AWS IoT Core로 전송하는 메시지 100만 개당 1.2달러가 부과됩니다.

AWS 데이터 전송 비용
AWS IoT Core 메시지 전송 비용

 

처음에는 100만개면 충분하다고 생각했지만

실시간 데이터 전송에 AWS IoT Core를 사용해 보니 메시지 “100만” 개가 많은 편이 아닙니다.

 

Thing 1개가 1초에 메시지 1개를 전송한다면 1시간에 3,600개 * 하루 24시간 * 한 달 30일 = 2,592,000개의 메시지를 1달 동안 전송하게 됩니다.

계산해 보면 1달에 약 3.11달러를 메시지 전송 비용으로 사용하게 됩니다.

여기에 더해서 Rule Engine을 사용하면 0.47달러를 더해줘야 합니다.

  • 메시지 100만 개당 0.18달러

AWS IoT Core 규칙 엔진 비용

 

총 3.58달러가 Thing 1 개당 지출되는 상황은 유쾌하지 않습니다… 😂

비용 문제 때문에 다른 서비스를 사용해볼까도 싶었지만 IoT 환경에 적절한 MQTT 프로토콜을 지원해 주고

완전 관리형 서비스라는 점에서 대체제를 찾기가 굉장히 어려웠습니다 크흑…


2. Basic Ingest - 규칙을 즉시 실행하여 메시지 전송 비용을 절약하자!

 

이 상황에 아주 적합한 비용 절약 방법이 바로 Basic Ingest였습니다.
Basic Ingest는 $aws/rules/rule_name로 데이터를 전송하면 바로 규칙이 실행시켜 주는 기능입니다.

즉, Thing => AWS IoT Core => Rule Engine에서 Thing => AWS IoT Core 로의 전송 비용을 내지 않고 Rule Engine 기능을 사용할 수 있습니다.
Thing 1개당 3.58달러의 비용에서 87%를 차지하는 3.11달러를 절약할 수 있는 것입니다!

메시지 pub/sub 비용을 절감시켜준다는 Basic Ingest 기능 설명

 


단, $aws/rules/rule_name 토픽을 구독할 수는 없습니다.

만약 RuleEngine만 사용하는 것이 아니라 데이터를 구독하고 있다면 Basic Ingest 기능을 사용하기 부적절합니다.

  • 아쉽게도 저희는 AWS IoT Core으로 발행되는 데이터를 구독 중인 서비스가 있어서 Basic Ingest 기능을 사용할 수 없었습니다.

P.S. 그 외의 비용 절감 방안들

 

메시지 전송 비용을 줄이기 위해서

1) 데이터를 모아서 전송하는 배치 방식

2) Thing이 유휴(IDLE) 상태일 때는 메시지 전송 주기를 늘리는 방식

3) AWS IoT Core 대체 서비스 사용

들을 고민해 봤습니다.

1안은 실시간 정보 교환이 필요했기에 적용할 수 없었고

3안은 작업 우선순위 상 밀리게 되었습니다.

아쉽게도 저희 서비스에 적용된 것은 2안뿐이었습니다.

 

하지만 3안은 개인적으로 시도해보고 싶습니다.
팀원분이 알려주셨던 EMQX라는 오픈소스가 있는데 기능적으로는 AWS IoT Core를 대체할 수 있는 서비스로 보이더라고요!

emqx 서비스 홈페이지


물론 인프라 관리 비용은 증가하겠지만… 과연!

 

🎁다른 AWS IoT Core 관련 포스팅들 🎁

반응형