Realtime broadcasting with Laravel and NuxtJS (4/4)

한동안 여러가지 프로젝트 작업들을 동시에 진행하는 상황이였기 때문에, 온갖 개인적인 SNS 활동과 블로깅을 완전히 멈춘지 꽤 오랜 시간이 지난 것 같다. 이번 주제글에 대한 결론을 작성하지 못했기 때문에 그동안에 작업 경험들을 근간으로 생각들을 정리해 본다. 세부 디테일을 정리하기 보단 insight 를 공유하고자 한다.

일단, 초기에 실시간 동적 변경을 위한 브로드캐스팅 기능에 포커스가 채팅기능으로 옮겨갔기 때문에, Laravel Echo 를 채팅구현에 이용할 수 있을까하는 고민을 해봤으나, 해당 패키지가 타게팅을 하는 유즈케이스가 채팅에 포커스를 두고 있다는 단점이다. Echo 는 일반적인 알림 기능이나 UI 변경시 사용하기 적합한 패키지이다. 또한 Flutter 를 사용하는 경우 아직 완벽한 package 가 없다는 단점도 존재한다.

호미로 밭을 갈 수 도 있겠으나, 보다 use-case 에 적합한 dedicated solution 을 사용하는 것이 상식적인 판단이란 말이다. 그리하여 커스텀 solution 을 직접 구현하기로 하였는데, AWS 을 사용하는 관계로, NodeJS 와 아래의 인프라를 사용하여 auto-scaling 이 가능한 채팅 서비스를 구축했고, 읽은 않은 메시지 push message 발송은 SQS 로 payload 를 전달하여, Laravel app 에서 SNS 을 이용하여 발송시키도록 했다.

  • DynamoDB
  • SQS
  • ECS/Fargate
  • ALB
  • ElastiCache
  • ACM

다음번엔 실제 운영중인 데이팅앱의 AWS 인프라 배포를 콘솔로 진행한 내용을 정리해보겠다.

Leave a Reply