본문 바로가기

전체 글110

ECS-ElasticWatch-OpenSearch 계기 사내 서비스에서 로그를 확인할 때 elasticWatch로 확인하고 있었다. 특정 로그를 확인하기 위해 검색을 하면 find 하는 시간이 상당 시간이 걸린다. 로그 인사이트로 확인을 하면 조회가 빨리 되지만 쿼리를 짜기 위해 로그 인사이트 쿼리를 공부해야 한다. 이러한 점들에서 디버깅하는데 시간이 오래걸리고 트래킹 추척이 비효율적이라서 AWS OpenSearch service를 도입하기로 했다. 과정 OpenSearch 도메인 생성 -> ElasticWatch 로그 그룹 선택 -> 구독 필터 선택 -> Opensearch 선택 -> 로그 형식 취향에 맞게 선택후 패턴 지정하고 스트리밍 시작 알아야 될 사항 Lambda 로 OpenSearch에 로그를 넣어주기 때문에 역할(IAM) 생성 필요 생성한 .. 2022. 5. 19.
ProtoBuf 란 ? ProtoBuf grpc에서 idl로 사용한다. 구글에서 개발한 오픈소스로 공개한, 직렬화 데이터 구조이다. Protocolbuf는 서버와 클라이언트에서 매우 빠르게 직렬화 한다. 바이너리로 직렬화된 메시지를 교환하므로 텍스트 기반의 Json이나 Xml에 비해 크기가 작다. 또한 현재 사용하는 대부분의 언어를 지원하고 있다. C++, JS, Go, Java, Python 등을 지원하고 있다. 이러한 데이터 주고받을 명세를 정하기 위해 .proto라는 파일을 작성한다. 직렬화: 데이터를 네트워크로 전송하기 위해 바이너리 스트림 형태로 저장하는 행위이다. 기본구조 syntax : proto 버전, default proto2 package : 여기에 정의된 패키지로 stub 이 생성된다. service : 실.. 2022. 5. 5.
HTTP2 란 ? HTTP2 Hypertext Transfer Protocol Version 2 2015년 IETF에 의해 공식적으로 발표된 HTTP/1.1(기존 표준)의 차기 버전이다. IETF: Internet Engineering Task Force, 국제 인터넷 표준화 기구를 의미하며, 인터넷의 운영, 관리, 개발에 대해 협의하고 프로토콜과 구조적인 사안들을 분석하는 인터넷 표준화 작업기구 평문을 사용하는 HTTP/1.* 프로토콜과 달리, HTTP/2에서는 바이너리 포맷으로 인코딩 된 Message, Frame 으로 구성된다. Stream: 구성된 연결 내에서 전달되는 바이트의 양방향 흐름, 하나 이상의 메시지가 전달 가능하다 Message: 논리적 요청 또는 응답 메시지에 매핑되는 프레임의 전체 시퀀스이다. Fr.. 2022. 5. 3.
RPC 란? RPC RPC(Remote Procedure call)이란 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 리모트의 함수나 프로시저를 실행할 수 있게 해주는 프로세스 간 통신이다 즉, 위치에 상관없이 RPC를 통해 개발자는 위치에 상관없이 원하는 함수를 사용할 수 있다. IPC(inter-process-communication) 프로세스 간 통신을 위한 방법 중 하나이다. 일반적 으로는 프로세스는 자신의 주소 공간 안에 존재하는 함수만 호출하여 실행 가능하다. 하지만, RPC를 이용하면 다른 주소 공간에서 동작하는 프로세스의 함수를 실행할 수 있게 된다. 프로시저와 함수? 함수는 인풋에 대비한 아웃풋의 발생을 목적으로 한다. 프로시저는 결과 값에 집중하기 보단 '명령 단위가 수행하는 절차'를 목적.. 2022. 5. 1.
Batch vs Scheduler ( 배치와 스케쥴러 차이) Batch 사용자와의 상호 작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것을 의미한다. 정기 배치 일, 주, 월과 같이 정해진 기간에 정기적으로 수행 이벤트성 배치 특정 조건을 설정해두고 조건이 충족될 때만 수행 On-Demand 배치 사용자 요청 시 수행 배치 프로그램(Batch Program)이 갖추어야 하는 필수 요소 대용량 데이터 대량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리가 가능해야 한다. 자동화 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입 없이 수행되어야 한다. 견고성 잘못된 데이터나 데이터 중복 등의 상황으로 중단되는 일 없이 수행되어야 한다. 안정성/신뢰성 오류가 발생하면 오류의 발생 위치, 시간 등을 추적할 수 있어야 한다. 성능.. 2022. 4. 23.
Release-note.title 에 따라 배포 분기처리하기 [ GItHub Action ] 계기 한 repo 에서 해외 서비스 국내서비스 를 모노레포 식으로 가져갈려고한다. 그러면서 생기는 문제점이 현재 release-note 를 작성하면 production 에 배포 되는데 해외 국내 둘다 배포 된다. 현 문제를 해결하기 위해 docs, 구글링을 하며 검토를 해보았다. 그 결과 release-note.title 을 특정 조건으로 분기처리를 해야겠다고 마음먹었다. 하지만 이렇게만 해놓으면 누군가가 title을 깜밖하고 안적을수도있는 휴먼적인 err 가 날 수 가있다. 이러한 상황을 조금이라도 해결하기위해 release-note template 을 구현하면 좋겠다고 생각하였다. Flow 1. master 에 push || merge 시 release-note 초안생성 2. git action ym.. 2022. 4. 10.