기존글에 이어서 작성
https://heeyodev.tistory.com/1
IoT 인프라 개선
현재 근무하는 회사의 인프라는 다음과 같이 구축되어있다 지금의 구조가 된 이유는 인터넷이 끊겼을 때를 대비하여, 각각 Local DB를 두고, 연동을 하는 방식으로 사용을 하고 있다. 여기서 문제
heeyodev.tistory.com
이제 인터넷을 끊길것을 대비해서 Edge마다 DB 인스턴스를 다 돌리고 있는 상황인데,
이러면 문제가
- Sync 깨지는 문제 발생
- 발생 안한다고 하는데 과연 발생이 안하는걸까 아니면 발생해도 모르는걸까 싶긴 하다만..
- 1(Remote):1(Local)로만 Sync 되도록 되어있는 프로그램의 구조
- 확장 불가능
- Remote DB의 변경사항을 확인하기 위해서 지속적으로 SELECT 날리는.. 상황
- 관리 어려운 문제 -> 새로운 클라이언트 위해서 사람이 붙어서 DB 셋업을 해줘야한다
이런 문제를 보고 화가나서..
아래처럼 엔드포인트 한개만 두자고 제안을 해봤지만

잘 작동하는데~ 식으로 얘기가 나와서
더 늦어지면 Legacy 쳐내다가 죽어날 것이고, 회사도 힘들고 개발자도 Legacy 동산은 노잼이라 떠나갈 것이다.
그리고 확장 하려고 하면 개발 기간은 2배이상 걸릴 것이다~ 기술 부채 쳐내고 새 구조로 개선 가야한다.
시전해서 극적 타결
AWS IoT 관련 자료 조사를 해보았고, 이를 시범 도입을 해보기로 결정, Proof of conecpt을 시작해 볼 계획이다.
AWS IoT를 사용하기로 한 이유는
- MQTT(중요) / REST API 베이스로 AWS IoT와 통신
- 특히 MQTT는 Auto scailing이 돼서 내가 신경 쓸 것이 없다.
- Device Alert 관련 기능들도 있고
- IoT 룰 엔진에서 특정 MQTT 메세지를 받으면 DB에 저장한다던가, 문자를 날린다던가 하는식으로 연계 가능
- Grafana 연동도 보다 빠르게 adopt할 수 있을 것 같아서.
- 관리에 대한 걱정이 많아서
- 완전 관리형 DB 등에 대해서도 자료를 보여드렸고
- 보안에 관련된 이슈
- 차피 지금 구조 갈아 엎어야하는데 나도 클라우드좀 써보자 하는 마음이 50% 이상
- 좋은건데 웨 안써?

아무튼 이 구조개선을 하게 된 가장 큰 이유중 하나인 DB에 대한 이야기를 좀 더 해봐야한다.
지금 구조는 위에서 말한 것 처럼 하나의 Remote DB가 있다.
그리고 각 Client 별 Local DB가 Remote와 상시 세션을 연결하는 식으로 구현이 되어있다.

이 구조를 AWS IoT Core와 Amplify 같은 기능을 사용해서 개선을 해볼 생각을 가지고있다.

오프라인이 걱정이면 이걸 웨 안써
버전관리랑 conflict resolve도 지가 알아서 해준다는데..

어떤식으로 연동이 되는건지 아직 자세하기 모르기에 공부를 하고나서 자세하게 적어볼 계획이다.
전체적인 AWS 서비스가 어떤게 있는지 다시 한번 공부를 해봐야 할 것 같다.
그래야 대충이라도 레이아웃 견적을 뽑아볼테니까..
https://docs.amplify.aws/lib/pubsub/getting-started/q/platform/js/#aws-iot
https://docs.amplify.aws/lib/pubsub/getting-started/q/platform/js/#aws-iot
docs.amplify.aws
아 재밌겠다
'개발 > AWS' 카테고리의 다른 글
| IoT 인프라 개선(3) - Offline-first Database 서비스 선정 - AWS DataStore (0) | 2022.06.16 |
|---|---|
| Cloud guru에 가입했다. (0) | 2022.06.10 |
| AWS IoT 장치 프로비저닝(2) - Fleet Provisioning (0) | 2022.06.09 |
| AWS IoT 장치 프로비저닝(1) - JITP/JITR/MAR (0) | 2022.06.09 |
| IoT 인프라 개선 (0) | 2022.05.22 |