강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

Victor Choi님의 프로필 이미지
Victor Choi

작성한 질문수

코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드

21강에 스케줄 트리거 사용

해결된 질문

작성

·

35

0

안녕하세요

n8n을 heroku에 설치해서 강의를 듣고 있습니다.

여기에 redis를 일정용량 무료로 제공을 해줘서

연결해서 테스트를 하니 잘 되는데요

그런데 n8n에서 스케줄 트리거를 써서 redis를

몇초마다 계속 조회하는건 비용이 많이들지

않을까요?

디스코드는 트리거 지원을 안하는게 아쉽네요.

 

답변 2

1

남박사님의 프로필 이미지
남박사
지식공유자

안녕하세요.

일단 말씀하신데로 redis는 비용을 지불하면서 쓰기에는 바람직하지 않습니다. Redis를 쓰는 가장 큰 이유중 하나는 빠르고 가볍기 때문에 부담없이 쓰는건데 여기서 요금이 발생하면 큰 메리트가 없습니다. 조금 귀찮아지긴 하겠지만 Redis 말고도 여러 종류의 데이터베이스가 있고 다른 데이터베이스를 쓴다던가 아니면 직접 파일에 작성하는 방법 등, 여러 대안이 있습니다.

물론 어떤 서비스를 사용하던 동작하면 장땡이긴 하지만 좀 더 엄밀히 짚어보면 Heroku 같은 PaaS 형 서비스는 n8n 같은 AI Agent 서비스에는 조금 어울리지 않긴 합니다. 물론 외부 API 위주로 사용하면 문제 될게 없긴 하지만 말씀하신것 처럼 비용이 드는 문제들이 있고, 기능의 확장성에 제한을 받기 때문에 어느정도 심도 있게 Agent 서비스를 운영하려면 도커가 완벽하게 구동되는 환경을 추천드리는 이유입니다. 공부를 하던 실무를 하던 도커에 기존 서비스(Redis를 포함하는 도커 구동가능한 수천개의 서비스들) 를 운영하거나 내가 직접 API 서버를 만들어 도커로 구동시킬 수 있는 환경이 Agent의 능력을 좌우할 수 있기 때문에 그렇습니다.

그렇다면 Redis를 쓰지 않고 해당 기능을 구현하는 한가지 아이디어를 말씀드리자면 Redis에 저장하는 정보를 n8n이 구동중인 내부의 리눅스 시스템에 직접 파일로 기록하고 그 파일을 읽어오는 방식으로 구현할 수도 있습니다.

 

n8n에서 제공하는 execute command 노드를 활용하면 리눅스 명령을 다음과 같이 직접 사용할 수 있습니다.

echo "내용" >> /tmp/test.txt

그러면 위에서와 같이 "내용" 을 시스템 경로의 /tmp/test.txt 라는 파일에 저장합니다. 그럼 반대로 이렇게 저장된 내용을 읽어올때는 다음과 같이,

 

tail -n 1 /tmp/test.txt

tail 명령을 사용하여 /tmp/test.txt 파일의 내용에서 맨 마지막 줄 1 줄을 읽어오게 할 수 있습니다.

 

이를 응용하시면 Redis를 쓰지 않고도 간단하게 그리고 비슷하게 구현하실 수 있습니다. 그리고 n8n이 디스코드 트리거를 제공하지 않긴 하지만 사실 n8n에서 제공하는 트리거보다 내가 직접 구현하는게 실제 서비스를 운영하기엔 더 안정적이긴 합니다. 예를 들어 n8n에서 텔레그램 트리거를 제공하긴 하지만 저 같은 경우는 직접 API를 사용해서 트리거를 구현해서 사용하기도 합니다. 이 텔레그램 트리거 직접 구현하기 내용은 곧 추가 강의로 올라갈 예정이며 여기서는 Redis 대신 직접 파일을 핸들링 하는 내용으로 구성되었으니 몇일내로 강의가 올라가면 해당 내용을 참조해보시는것도 좋을듯 합니다. (참고로 월요일쯤 올릴 예정입니다.)

 

궁금하신 부분에 도움이 되셨길 바라며, 더 궁금하신 내용이 있으시면 언제든 주저말고 질문 주시기 바랍니다.

 

Victor Choi님의 프로필 이미지
Victor Choi
질문자

아~ 넵 감사합니다!

강의 올라오면 참고하겠습니다.

0

안녕하세요, 인프런 AI 인턴입니다. Victor Choi님.

n8n을 Heroku에 설치하여 Redis와 연동하여 테스트하고 계신 것에 대해 도움을 드리겠습니다. 우선, 스케줄 트리거를 사용하여 Redis를 주기적으로 조회하는 방식이 비용 문제에 어떻게 영향을 줄 수 있는지 설명드리겠습니다.

  1. 스케줄 트리거와 비용:

    • 스케줄 트리거는 특정 주기로 작업을 실행하는 방식인데, 너무 짧은 주기로 설정하게 되면, API 요청이나 데이터베이스 조회 빈도가 높아져 비용 상승의 요인이 될 수 있습니다. 특히, Heroku 무료 플랜의 경우, 일정 사용량 초과 시 요금이 부과될 수도 있습니다.
    • 사용하지 않는 시간에는 트리거를 비활성화하거나, 조회 간격을 늘려 적절히 조정하는 것이 좋습니다. 예를 들어, 초 단위가 아닌 분이나 시간 단위로 트리거를 설정하면 부하를 줄일 수 있습니다.
  2. 디스코드 트리거 관련:

    • 디스코드의 기본 트리거 기능을 제공하지 않는 점은 아쉬운 부분입니다. 이 경우, 웹훅(Webhook) 기능을 활용하거나, 디스코드 API를 수동으로 호출하여 상태 변화를 감지하는 방법을 고려할 수 있습니다.
    • n8n에서 커스텀 스크립트를 작성하여 디스코드와의 연동을 강화하는 것도 하나의 방법입니다.

아래 링크들은 유사한 설정과 문제를 다룬 커뮤니티 질문들로, Victor님께도 도움이 되실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Victor Choi님의 프로필 이미지
Victor Choi

작성한 질문수

질문하기