본문 바로가기
728x90

전체 글230

[OpenSearch] index template (인덱스 템플릿) 인덱스 템플릿은 주로 설정이 동일한 복수의 인덱스를 만들 때 사용한다. 로그 인덱스를 만든다고 가정해 보자. 한개의 인덱스에 모든 로그 데이터를 넣어주면 어떻게 될까? 초반에 데이터가 적을때는 괜찮겠지만 결국 나중에는 폭-팔-⭐️ 할 것이라는걸 모두 알고 있기 때문에, 로그 인덱스의 경우 대부분 일별 혹은 월별로 인덱스를 생성해줄 것이다. curation-log-20230405, curation-log-20230406, curation-log-20230407, ... 로그의 경우 같은 사전을 사용하고 같은 tokenizer 및 analyzer 를 사용하며 색인하는 필드 역시 동일할 것이다. 그렇다면 일마다 동일한 settings 와 mappings 를 넣어 로그 인덱스를 생성해줘야 할까? 다행히 Ope.. 2023. 4. 6.
[Node.js] ECS Fargate Datadog APM 심기 Datadog? 개발자라면 Datadog 를 한번쯤은 들어봤을 것이다. Datadog 란 서버, 데이터베이스, 클라우드 서비스 등에 대한 다양한 모니터링 서비스를 제공하는 클라우드 모니터링 애플리케이션이다. AWS, Azure 등의 클라우드 컴퓨팅 플랫폼과의 통합 기능을 제공하고 있으며, 에이전트의 확장 기능을 통해 데이터베이스와 캐시 스토어 등 다양한 애플리케이션에 대한 추가적인 메트릭 수집과 모니터링을 지원한다. 또한 알람, 대시보드, 로그 수집, APM, 네트워크 트래픽 모니터링, 엔드포인트 모니터링 등을 지원하는 종합 모니터링 서비스로 확장해나가고 있다. APM? Application Performance Management 의 약자로, 말 그대로 실시간 데이터를 사용해 애플리케이션의 성능을 관리.. 2023. 4. 1.
[Nest.js] 버전 별로 스웨거 관리 이번에 앱 리뉴얼로 인해 API 도 버전 분리를 하기로 결정했다. Header 에 버전을 추가하여 구분하기로 했는데 문제는 스웨거였다. JAVA 나 .NET 에서는 스웨거 버저닝 싱크 프로세스가 잘되어 있는데, Nest 에서는... https://github.com/nestjs/swagger/issues/1810 우리와 같은 Needs 를 가진 사람들이 많으나, Nest 공식 사이트에선 답이 없는데... (열일해라 Nest...⭐️) 이 방법 저 방법 시도해보다가, 결국 아래와 같은 방법으로 해결했다. TypeScript 개발자 모두 화이팅...! 1. 버전 별로 Controller, Service, Module 을 분리한다. ▷ 폴더구조 ├── src │ ├── common │ │ └── control.. 2023. 1. 11.
[Node.js] OpenSearch Node.js 클라이언트 AWS OpenSearch 의 경우 Node.js 에서 사용할 만한 라이브러리가 없어서 http 클라이언트를 이용하여 요청을 날렸었는데, 드디어 사용할 만한 라이브러리가 나왔다. $ npm install @opensearch-project/opensearch AWS 에 API 요청을 보낼 땐 AWS 가 발신자를 식별할 수 있도록 서명해야 한다. 보안을 위해 대부분의 요청은 AWS 보안 자격 증명을 사용하여 서명되는데, 이를 위해 JavaScript 용 SDK 버전3의 credential-provider-node 모듈을 이용하여 자격 증명을 찾고, 그 후 API 요청에 서명해주기 위해 aws4 를 호출해줘야 한다. 따라서 아래 2개의 패키지도 다운로드 해준다. $ npm install @aws-sdk/cr.. 2022. 12. 20.
[ElasticSearch] _cat API 를 이용한 ES 모니터링 E-커머스에서 검색은 아주 중요하다. 그렇기 때문에 ElasticSearch 의 상태를 모니터링하는 일 역시 중요한데, ES 에서 제공해주는 _cat API 를 이용하면 좀 더 쉽게 체크할 수 있다. _cat API 중에서도 자주 사용되는 것만 추려봤다. 1. 클러스터에 속한 노드들의 상태 확인 GET _cat/nodes ?v 옵션을 붙이면 해당 항목의 필드명 확인이 가능하다. GET _cat/nodes?v heap.percent: 사용중인 heap memory percentage ram.percent: 사용중인 memory percentage cpu: 사용중인 CPU percentage load_1m,5m,15m: 사용중인 load average 값 node.role: 노드의 role (m - mast.. 2022. 12. 19.
[CloudWatch] AWS Chatbot 을 이용하여 Slack 에 메시지 전송하기 AWS 리소스 모니터링은 중요하다. 직접 콘솔에 로그인하여 보는 방법도 있지만, 잠깐 까먹었을 때 꼭 위기가 발생하기 마련이다. CloudWatch 에서 설정해준 경보가 발생했을 경우 팀 내에서 사용하고 있는 메신저로 오류를 알려 주면, 다른 사람과 공유가 빠르게 될 수 있고 그만큼 오류 캐치도 빨라질 것이다. Lambda 를 이용하여 슬랙에서 제공해 주는 API 라이브러리를 이용하거나 axios 를 이용하는 등 코드에 직접 심는 방법도 있겠지만, 웹훅을 이용하여 Slack 에 메시지 전송하기 https://yonikim.tistory.com/98 https://yonikim.tistory.com/99 AWS Chatbot 을 이용하면 더 간단하게 구성할 수 있었다. AWS Chatbot > [새 클라이.. 2022. 12. 14.
728x90
반응형