
아무것도 모르는 상태라서 Elasitcsearch Cloud를 사용했지만 규모가 커지면서 비용이 많이 발생하기 시작했습니다. 규모가 커지면서 비용문제가 지속되었고 비용을 줄이기 위해 조치했던 내용을 정리해보았습니다. Elasticsearch Cloud에서 AWS Self Managed로 Migration처음 Elasticsearch를 구성할 때는 Cloud를 사용하여 구성했습니다. 빠르게 production에 적용을 진행해야해서 Elasticsearch Cloud를 사용하여 운영을 시작했습니다. Elasticsearch Cloud를 사용할 때는 Elasticsearch Cloud에서 자동으로 진행되는 것들이 많았습니다. version upgrade나 설정 변경 시 자동으로 rolling update를 진..

새로운 service를 만들때마다 workflow yml 파일을 복사 붙여넣기하여 사용하고 있었다. reusing workflows를 사용하여 workflow를 재사용할 수 있도록 구성했다. workflow를 구성하면서 손이가는 작업이 github actions의 secret를 설정하는 작업이었다. 이부분 또한 organization secret을 사용하여 정리해 보았다. ✏️ Organization secrets Gihub Organization을 사용하고 있다면 Organization 안에서 사용할 수 있는 github actions secrets을 설정할 수 있다. Organization secrets을 사용하지 않았을 때는 repository별로 secrets를 설정해야했다. repositor..

문제점 accept-language에 따라 다른 언어의 html을 보여주어야했습니다. accept-language header를 cloudfront whitelist에 추가하여 origin에 header를 전달하도록 구성했습니다. 하지만 accept-language header의 형태가 다양하여 cloudfront cache의 효율이 좋지 않았고 지원하지 않는 언어가 들어오는 경우 default language 설정이 필요했습니다. user-agent header를 parsing하여 IE 브라우저로 접속 시 redirect 처리하고 있습니다. user-agent header 또한 cloudfront whitelist에 추가하여 origin으로 header를 전달하고 있었지만 cache 효율이 좋지 않았습..

unittest code를 작성하고 test code에서 module을 import할 때 너무나 많은 error가 발생했습니다. module을 찾을 수 없는 error와 attempted relative import with no known parent package error 등의 error가 발생했습니다. 이러한 error가 발생한 원인을 정확하게 파악하려 합니다. __name__의 역할 python의 __name__은 모듈이 저장되는 변수이며 import로 모듈을 가져왔을 때 모듈의 이름이 들어갑니다. 파이썬 인터프리터를 통해 파이썬파일을 직접실행할 경우에는 파이썬에서 알아서 그파일의 name은 __main__이 됩니다. 파이썬 모듈을 import해서 사용할 경우에는 name은 원래 모듈 이름으로 ..
DAS, NAS, SAN는 스토리지의 종류이고, 연결방식의 차이가 있다. DAS(Direct Attached Storage) 시스템에 직접 붙이는 외장 스토리지이다. PC나 노트북에 외장형 하드를 붙이는 방식이 DAS이다. 서버와 하드웨어를 1:1로 연결한다. 서버에 직접 외장 스토리지를 연결하므로 속도는 빠르고 확장은 쉽지만 연결 수에 한계가 있다. NAS(Networt Attached Storage) 서버와 저장 장치가 이더텟 등의 LAN 방식의 네트워크에 연결된 방식이다. LAN은 TCP/IP 프로토콜을 기반이고 저장장치는 SCSI를 사용하므로 이들간의 통신을 휘해 중계 역할을 하는 파일 서버가 필요하다. DAS와 달리 PORT수 제한이 없어 확장성과 유연성이 뛰어나다. 하지만 접속 증가 시 성능의..

3 계층 architecture란? 어떤 플랫폼을 3계층으로 나누어 별도의 놀리적 물리적인 장치에 구축 및 운영하는 형태를 말한다. 계층과 레이어 레이어와 계층이 혼동되어 사용될 때가 있다. 레이어는 소프트웨어의 기능적 분할을 의미하지만, 계층은 이프라에서 실행되는 소프트웨어의 기능적 분할을 의미한다. 계층을 분리하여 사용하는 목적 각 계층을 담당하는 팀들을 구성하여 업무 분담이 가능해지므로 업무 효율성이 증가할 수 있다. 여러 대의 서버로 나누어 각 계층이 동작하므로 서버의 부하를 줄여줄 수 있다. 부하가 발생하는 특정 계층의 서버에 대해서만 스케일업을 고려할 수 있다. 3 계층 구조 구성 프레젠터이션 계층 정보를 표시하고 사용자로부터 정보를 수집한다. 애플리케이션의 사용자 인터페이스를 지원한다. 주로..
- Total
- Today
- Yesterday
- Terraform
- mognodb
- Elasticsearch
- Github Actions
- graphql
- Python
- Clickjacking
- Neptune
- AWS community day seoul
- slowquery
- sementic version
- conventional commit
- lambda@edge
- Prisma
- aws
- commit message
- Develop
- NLP
- nginx
- pagination
- shorten
- Cloudfront
- Cognito
- nltk
- typescript
- inversify
- JavaScript
- Airflow
- Lifecycle
- mongoDB
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |