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을 생성하고 보호전략을 정의한다. 규칙: 각 규칙에는 검사 기준을 정의하는 문과 웹 요청이 기준을 충족하는 경우 수행할 작업이 포함된다. 일치하는 요청의 개수를 세기 위해 사용할 수도 있습니다. 규칙 그룹: 규칙을 개별적으로 사용하거나 재사용 가능한 규칙 그룹에서 사용할 수 있다..
Offset-based paging 기본적으로 사용하게 되는 pagination 방식이다. API를 호출할 때 page, limit parameters를 사용하여 데이터를 호출한다. // 한 페이지당 10개의 item을 보여주는 경우 const itemCount = 10; db.items.find({ }).sort({_id:-1}).skip((page-1)* itemCount).limit(itemCount) # API 요청 예시 curl https://api.github.com/user/repos?page=2&per_page=10 결과 list가 추가되거나 삭제되면 item이 빠지거나 2번 반복되는 경우가 생길 수 있다. 첫 번째 페이지에 10개를 요청하고 하나의 item이 지워졌다면 지워지기 전 11번..
iframe의 domain별 제한을 위해 사용할 수 있는 header는 x-frame-options와 content-security-policy가 있다. x-frame-options는 IE를 사용하는 경우 문제가 없지만 다른 브라우저를 사용경우 무시될 수 있다. - Clickjacking 보호 - X-Frame-Options - HTTP | MDN content-security-policy header를 사용하여 iframe domain별로 제한하는 방법에 대하여 알아보았다. content-security-policy content-security-policy header를 추가하는 방법은 아래와 같다. Content-Security-Policy: ; content-security-policy의 poli..
서비스가 점점 커지면서 관리할 code의 사이즈가 커졌다. Microservice로 구성하다보니 github의 여러 repo를 관리하고 운영하고 있다. service간의 연관성이 있어 새로운 기능을 추가할 때 version 및 changelog를 확인하여 관리하고 있다. Commit message와 version, tag를 수동으로 관리하고 있어 version을 잘못 작성할 때도 많고 tag를 빼먹을 때가 많았다. 문제가 있어 code를 reset하려고 하면 잘못 작성된 version 정보와 tag 때문에 고생할 때가 많았다. Conventional Commits은 커밋 메시지에 명확한 commit 히스토리를 생성하기 위한 간단한 규칙을 제공한다. 이 규칙은 Sementic versioning을 따르며,..
AWS ElasticSearch를 사용하여 application 사용자의 행동을 분석하고 있다. pipeline은 pinpoint -> kinesis firehose -> elasticsearch 으로 구성하여 사용하고 있다. 사용자가 많지 않아 test용도로 ElasticSearch를 6개월 동안 t2.small.elasticsearch 인스턴스를 사용했다. 다른 설정을 변경하지 않고 AWS에서 제공하는 기본설정으로 사용했다. 기존에는 VPC안에 ElasticSearch를 설정하는 경우 Kinesis Firehose를 ES와 연결할 수 없었다. Kinesis Firehose를 사용하기 위해 public ElasticSearch로 구성하고 특정 ip만 접근가능하도록 SecurityGroup을 구성했다. ..
사용자에게 보여지는 url이 길다는 요구사항과 QR code를 생성하는 요구사항이 생겨서 shorten 서비스를 구현하게 되었다. shorten 서비스를 DB에 연결하여 구현할 수 있지만 최대한 관리의 부담을 줄이는 설계를 구성하고자 S3를 사용한 shortener를 구현했다. 리다이렉션 방법 HTTP 리다이렉트: header location을 사용하는 방법 HTML 리다이렉션: tag를 사용하는 방법 자바스크립트 리다이렉션: 자바스크립트 내에서 window.location 프로퍼티를 사용하는 방법 리다이렉션 우선 순위는 아래와 같다. 페이지가 읽힌 적도 없고 전송된 적도 없는 경우, HTTP 리다이렉트가 항상 먼저 실행됩니다. 어떤 HTTP 리다이렉트로 없는 경우에, HTML 리다이렉트가 실행됩니다. ..
- Total
- Today
- Yesterday
- Develop
- Airflow
- Github Actions
- lambda@edge
- aws
- shorten
- Elasticsearch
- commit message
- Python
- nginx
- graphql
- mognodb
- pagination
- typescript
- Prisma
- nltk
- inversify
- NLP
- Cognito
- Terraform
- Clickjacking
- mongoDB
- conventional commit
- Lifecycle
- sementic version
- Cloudfront
- AWS community day seoul
- slowquery
- Neptune
- JavaScript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |