• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    해결됨

CloudSearch 와 OpenSearch 는 디비에 연결이 안돼나요?

24.04.08 06:32 작성 24.04.08 06:33 수정 조회수 90

1

 

질문을 한 배경

CloudSearch 와 OpenSearch 는 디비의 특정 컬럼과 연결이 가능한가요(postgres sql 을 사용중입니다.)

 

질문내용 :

CloudSearch 와 OpenSearch 를 디비에 연결하는 방법을 알고 싶습니다


환경:

디비는 아마 aws (ec2)에서 도커로 포스트그리스를 세팅한 다음에 스프링이랑 같은 ec2 에 배포할 생각입니다.

아키텍처:

간단한 쇼핑물을 생각해 주시면 감사하겠습니다.


ec2 에 다넣고 aop 로 해결하기

(강의를 보고 제가 만들고 싶은것)

[OpenSearch]<-스프링에서 요청--[(ec2) spring- {redis,postgres }]


1)스프링 + OpenSearch 로 해당부분 insert 나 delect 발생시 AOP 에서 OpenSearch로 요청을 보내어 OpenSearch 데이터와 디비 데이터를 동기화합니다.

 

단점) 데이터가 일관성 있게 완벽하게 연동하기 힘들것 같습니다.


디비를 따로두고 람다에서 가져와서 OpenSearch에 넣기

(강의 내용보고 생각한 내용)

[프론트]<--[(ec2) spring]-[(ec2)redis,postgres ]->[람다]->[OpenSearch]

2) select * form 테이블 ;

을하여서 특정 테이블과 OpenSearch 전체 테이블을 들고와서 비교하여 넣기

 

단점) 비용이 많이들것 같습니다.


혹시 디비 연결 플로그인 같은게 있나요?

(원하는 내용)

[(ec2)redis,postgres ]->[디비연결 플러그인]->[OpenSearch]

혹시 제가 이상한 생각을 한것이며, 위와같이 간단하게 연결이 가능한가요 ㅠㅠ


혹시 3가지 아키텍처중에서 아시는것 있으면 알려주실수 있을까요 ㅜㅜ

답변 2

·

답변을 작성해보세요.

1

자세한답변감사합니다 !

0

오 항상 그런 고민들을 다들 하는 것 같습니다.
제가 이해한게 맞는지는 모르겠지만 1,2,3번 모두 구현은 가능한 것으로 보입니다.
3번은 좀 더 알아보셔야할 것 같습니다.

 

다양한 방법이 있고 말씀해주신 1,2번 방법은 좋은 방법이라고 생각합니다.

저는 개인적으로는 lambda를 좋아하기에 2번 방법을 선호합니다.

결국 Opensearch 에서 REST API 형식으로 제공하기에 원하시는 구현은 가능할 것으로 생각합니다.

특정 칼럼을 업데이트하는게 아니라 특정 칼럼을 업데이트하는 API 를 만들어서 구현한다는 생각으로 만드시는게 원하시는 구현에 가는 길이지 않을까 생각합니다.

 

3번 방법같은 경우 다음과 같은 PGSync 라는게 도움이 될 것 같습니다.
Elasticsearch 자료긴 하지만 Opensearch쪽도 비슷한게 있을거라 생각합니다.

https://medium.com/@emreceylan/how-to-sync-postgresql-data-to-elasticsearch-572af15845ad