Lambda에 RDS연결 시, Iot Core MQTT client에 데이터 전송 오류

0

AWS 문서를 이용해서 Iot Core를 세팅했습니다. 그리고 문서에 Lambda를 이용해서 파싱하는 내용이 있어서 이를 그대로 구현했습니다. 그래서 문제없이 Lambda를 이용해서 데이터를 파싱합니다. 그리고 파싱된 데이터를 Iot Core MQTT client에 전송합니다.

파싱된 데이터를 RDS에 저장하고 싶어서 Lambda에 RDS를 연결하기 위해 VPC세팅을 했습니다. 그런데 이후 문제가 발생합니다. RDS에 파싱된 데이터가 잘 들어오는데 Iot Core MQTT client에 데이터가 안 들어옵니다.

원인은 VPC라고 판단하는데 VPC를 어떻게 세팅해야할지 모르겠습니다.

2개 답변
0

안녕하세요.

MQTT 클라이언트는 EC2입니까?
Lambda에서 MQTT 클라이언트에 연결하고 있나요?
MQTT 클라이언트의 보안 그룹에서 Lambda의 연결을 허용하도록 설정했는지 확인해 보세요.

VPC에 연결된 Lambda에서 Iot Core에 연결하려면 NAT Gateway가 필요할 것이라고 생각합니다.
https://repost.aws/knowledge-center/internet-access-lambda-function

profile picture
전문가
답변함 2달 전
  • EC2가 아닙니다. Iot Core에 들어가면, MQTT test client가 있습니다. 여기서 Iot 데이터를 볼 수 있습니다.

    RDS를 연결하기전, Lambda를 이용해서 MQTT test client에 파싱된 데이터를 전달했습니다. 하지만, RDS를 연결하고나서 MQTT test client에 파싱된 데이터가 안 들어옵니다.

    한번, NAT Gateway를 사용해보겠습니다.

  • VPC에 연결된 Lambda에서 IoT Core MQTT 테스트 클라이언트에 연결하려면 NAT Gateway를 사용하여 AWS의 퍼블릭 엔드포인트에 연결할 수 있어야 합니다.

0

안녕하세요. Lambda 의 역할이 MQTT로 메시지를 publish 하는 것인가요? RDS로 데이터를 입력하는 것인가요?

AWS IoT 의 Rules 기능을 이용하면 특정 MQTT Topic 으로 들어온 데이터를 DynamoDB 등으로 바로 라우팅할 수 있습니다. 클라이언트에서 직접 DB에 넣지 않아도 됩니다. https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/iot-ddb-rule.html

AWS IoT Core 엔드포인트는 MQTT 브로커로 동작하여 Topic 에 publish/subscribe 를 제공하며, Client나 control 를 원하는 단말에서는 동일한 엔드포인트에 연결하여 topic에 흘러가는 값을 가져가거나, 위에 언급한 IoT Rules 를 통해 다른 AWS 서비스로 데이터를 전달하여 기타 작업을 수행합니다. 사용하시려는 작업이 어떻게 흘러가는 flow인지 다시 확인해 보시기 바랍니다.

froguin
답변함 2달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인