본문 바로가기

전체 글74

AWS lambda layer AWS Lambda에서 공통으로 사용할 부분을 어떻게 사용할지 고민해보다가 lambda layer라는게 존재해서 찾아보았다. Lambda layer 람다 계층은 추가적인 코드나 데이터를 포함하는 아카이브이다. 계층 사용을 고려하는데는 다음과 같은 이유가 있다. 배포 패키지의 크기를 줄이기 위해. 람다 계층을 사용하면 배포할 람다 함수 자체는 작아지게 된다. 핵심 함수 로직을 종속 항목과 분리하기 위해. 여러 함수에서 종속 항목을 공유하기 위해. 계층을 생성한 후 계정의 여러 함수에 적용할 수 있다. 코드 중복을 줄일 수 있다. Lambda 콘솔 코드 편집기를 사용하기 위해. 람다 코드 편집기는 aws 콘솔에서 직접 코드를 수저할 수 있다는 측면에서 유용한 기능인데, 배포 패키지가 크면 사용할 수 없다. .. 2024. 3. 23.
Database partition in postgresql Postgresql를 사용하면서 대용량 데이터를 insert, select, delete할 일이 있었다. 간단한 OLAP 작업이긴 하나 row oriented rdbms를 사용해야 했고, select와 delete에 대해 최적화를 진행해야 했다. 이를 위해 사용했던 partition 기능을 정리해둔다. 참고 문서: Postgres partition Partition Partition은 하나의 logical table을 작은 physical table로 나누는 것을 의미한다. 다음과 같은 특징을 가진다. 장점 Query performance가 드라마틱하게 올라간다. 테이블에 원하는 row만 접근해도 되기 때문이다. Bulk load와 delete가 partition 추가와 삭제로 간단하게 구현될 수 있다... 2024. 1. 29.
git flow vs github flow 이번에 배포 프로세스를 변경하면서 github flow에서 변형 git flow를 사용해 보게 되었다. 이 둘의 차이점을 공부한 김에 정리해두고자 한다. 1. Git Flow Git flow는 Vincent Drissen이 2010년 그의 블로그에 올린 A Successful Git branching model이라는 글이 인기를 끌면서 대중적으로 사용되기 시작한 브랜치 전략이다. 크게 두 가지 종류의 브랜치가 존재한다. Long living branch: master(main), develop Short living branch: feature, release, hotfix Master(main) 브랜치 Production으로 나간 코드를 모아놓은 브랜치이다. 여기에 존재하는 코드는 QA가 완료되고, 출.. 2024. 1. 27.
aws code pipeline blue / green 배포 AWS 내에서 CD를 구성하기 위해 Code Pipeline을 CDK로 구성할 필요가 있다. 이를 공부하면서 겪은 내용을 정리해 둔다. 참고 문서: https://ecsworkshop.com/blue_green_deployments/ https://github.com/aws-containers/ecs-workshop-blue-green-deployments Code Pipeline 배포를 위해 주로 사용하는 AWS 스택으로, 여러 개의 Stage로 구성할 수 있다. 이 Stage는 기능에 따라 크게 Source, Build, Deploy Stage로 나눌 수 있다. Source Stage는 코드 등 아티팩트를 가져오는 역할을 하고, Build는 임시 인스턴스를 띄워서 빌드 또는 테스트하는 역할을 수행한다.. 2024. 1. 12.