Node.js로 multi threading, multi processing을 필요로하는 작업을 진행하게 되었다. Node.js에서 multi threading을 위해서는 worker_thread(node version 10부터 사용가능)를 사용한다. Multi processing을 위해서는 child_process 또는 cluster를 사용한다. process를 단순하게 병렬로 실행하는 것은 child_process로 가능하고, 로드밸런싱과 포트 공유가 필요하다면 cluster를 사용하는 것이 좋다. multi threading과 multi processing 중 선택 multi threading, multi processing을 사용하여 모두 구현은 가능하지만 두가지의 장단점이 다르기 때문에 요구사항..
VPC내에 ES를 사용하고 있다. VPC내 ES로 접근하기 위해서는 ssh tunneling을 사용하거나 proxy 서버를 구성하여 접근 해야한다. ES를 보고서를 작성할 때만 사용하고 있어서 많은 설정이 필요 없는 ssh tunneling으로 사용하고 있었다. 하지만 점점 사용 빈도가 늘어나면서 매번 tunneling을 하는 것이 귀찮아졌다. kibana에 개발자가 아닌 사람이 접속할 상황이 생기고 점점 tunneling을 관리하기가 어려워졌다. Amazon Cognito 인증으로 Kibana에 액세스하기 위해 SSH 터널 사용 위의 그림 처럼 tunneling을 사지 않고 proxy 서버를 통해 traffic이 VPC 내부에 있는 ES로 접근할 수 있도록 구성했다. ES에 접근 시 cognito의 l..
Python을 사용하여 행동 로그를 분석하고 있다. 스크립트를 작성하여 필요할 때마다 실행하여 분석 데이터를 수집하였다. 로그 데이터를 분석을 시작하니 정말 다양한 요구사항이 있었다. 이러한 요구사항에 따라 script를 작성하다보니 script가 많아졌고 많은 script를 관리해야하는 문제가 생겼다. 또한, script간의 순서가 생기면서 workflow를 정의하고 관리하는 일이 많아졌다. AWS에서 airflow를 관리형 서비스로 출시했다는 소식을 듣게 되었다. AWS의 관리형 airflow를 사용하면 좋지만 현재 python script를 관리의 목적 및 분석 workflow구성을 위해서만 사용하고 있어서 필요할 때마다 airflow를 local 환경에서 실행하여 사용하기로 했다. script를 ..
tagging을 사용하여 S3 lifecycle을 적용하는 방법과 고려해야할 사항들을 정리한다. lifecycle을 사용하여 특정 날짜나 기간을 기준으로 삭제 또는 스토리지 class변경이 가능하다. S3 스토리지 class 종류는 다양하다. 종류에 따라 용도가 다르고 비용도 달라 알맞은 스토리지 class를 사용해야한다. S3 스토리지 class 종류 S3 Standard 짧은 지연 시간 및 높은 처리량 성능 자주 액세스하는 데이터를 위해 높은 내구성, 가용성 및 성능을 갖춘 객체 스토리지 S3 Intelligent-Tiering 성능 영향 또는 운영 오버헤드 없이 가장 비용 효과적인 액세스 계층으로 데이터를 자동으로 이동하여 비용을 최적화하기 위해 설계 S3 Standard-IA(S3 Standard..
VPC내부에 설정된 서비스의 경우 외부 인터넷을 통해 통신할 수 없다. Amazon Neptune DB 클러스터는 VPC에서만 생성할 수 있다. local 환경에서 AWS Neptune과 통신하기 위해 EC2를 AWS Neptune DB 클러스터와 같은 VPC에 생성하고 리버스 프록시 서버로 설정했다. AWS Neptune DB 클러스터 endpoint는 https 프로토콜을 사용해야하여 Let's encrypt로 SSL 인증서를 생성하여 리버스 프록시 서버에 SSL 인증서를 등록했다. EC2에 nginx 설치 $ sudo vi /etc/yum.repos.d/nginx.repo # nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/..
AWS WAF는 CloudFront, API Gateway, ALB에 전달되는 요청을 모니터링하는 웹 애플리케이션 방화벽이다. 기존에 제공되던 AWS WAF는 AWS WAF Classic 이라는 이름으로 변경되었고 새롭게 나온 WAF는 AWS WAF version 2가 되었다. WAF Classic과 WAF version 2는 독립적인 서비스이며 연관된 작업을 할 수 없다. WAF 구성 Web ACLs: 규칙을 추가하여 웹 ACL을 생성하고 보호전략을 정의한다. 규칙: 각 규칙에는 검사 기준을 정의하는 문과 웹 요청이 기준을 충족하는 경우 수행할 작업이 포함된다. 일치하는 요청의 개수를 세기 위해 사용할 수도 있습니다. 규칙 그룹: 규칙을 개별적으로 사용하거나 재사용 가능한 규칙 그룹에서 사용할 수 있다..
- Total
- Today
- Yesterday
- Cognito
- aws
- Python
- nginx
- Prisma
- Develop
- inversify
- conventional commit
- Github Actions
- Elasticsearch
- mongoDB
- Airflow
- nltk
- lambda@edge
- Clickjacking
- AWS community day seoul
- NLP
- commit message
- slowquery
- pagination
- typescript
- shorten
- Neptune
- graphql
- Terraform
- Cloudfront
- mognodb
- Lifecycle
- JavaScript
- sementic version
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |