배치 개선 기록 2

이번에는 구체적으로 배치를 어떻게 개선했는지 정리해보겠습니다. 크게 불필요한 작업을 없애거나 순서를 변경하는 것으로 프로세스를 개선한 건과 작업 병렬화를 통해 처리 시간을 줄인 개선 건이 있습니다. 작업 프로세스 개선 여러 Case가 있었지만, 대표적 2가지만 적어보고자 합니다. Case 1 : 기존에는 단순히 Mart라는 이유로 같이 묶어서 병렬로 처리하였는데, 그 마트들을 데이터의 선,후행 관계를 분석하여 데일리 마트, 빌링…

Continue reading 배치 개선 기록 2

배치 개선 기록 1

처음 보는 서비스를 개선하라는 업무가 나에게 주어졌을 때 무엇부터 해야할까요?구체적인 내용은 별도 포스트로 다루고, 제가 실제로 진행 했던 순서대로 간단히 기록해보려고 합니다. 상황 파악 어느날 갑자기 빌링 정보를 처리하는 배치의 성능 개선을 맡게 되었습니다. 대략적으로 파악해보니, 기존의 Spring으로 구현되어 있던 것을 배치 작업에 적합한 Spring Batch로 마이그레이션하였으나 성능이 예상보다 떨어지는 상황임을 파악하였습니다. 기술부채 갚아나가기 구현된…

Continue reading 배치 개선 기록 1

AWS ElastiCache Redis Troubleshooting

이번에는 ElastiCache Redis를 운영하면서 발생했던 이슈와 해결했던 경험들을 공유해보려고 합니다. ElastiCache Clustered Redis 다중 키 작업 문제 클러스터로 구성하면서 다중 키를 작업하면 아래와 같은 에러가 발생할 수 있습니다. 해당 에러는 다중 키 작업시 키가 동일한 해시 슬롯에 있지 않아서 발생하는 문제입니다. 해결 방법은 2가지가 있습니다. 첫번째 방법은 Redis 클러스터를 지원하는 Redis 클라이언트 라이브러리를 사용하는 것입니다.…

Continue reading AWS ElastiCache Redis Troubleshooting

AWS ElastiCache Redis 구성 팁

ElastiCache Redis을 실제로 사용했을 때, 유용하게 사용할 법한 팁들을 공유해보려고 합니다. ElastiCache Redis Cluster Automatic Failover 복제본 개수가 1개 이상일 경우 다중 AZ를 꼭 활성화해서 생성해야 장애시 자동 장애조치를 수행할 수 있습니다. 실제로 자동장애조치가 잘 동작하는지 보고 싶으면, ElastiCache Redis 노드 관리 화면에서 작업-기본 장애 조치를 수행하여 볼 수 있습니다. Optional Cache 캐시 기능을 ON/OFF…

Continue reading AWS ElastiCache Redis 구성 팁

AWS ElastiCache 캐싱 전략

대표적인 캐싱 전략 ElastiCache를 이용해서 캐싱하는 전략에는 대표적으로 2가지가 있습니다. Lazy loading Write-through Lazy loading은 말 그대로 지연 로딩으로, 데이터 요청이 있을 때만 캐싱됩니다. 즉, 최소 1번은 데이터를 조회해야만 캐싱이 되고, 최초 조회시 DB에 직접 요청하므로 느리다는 점이 단점입니다. 반면에, 데이터가 갱신되었을 때 기존에 캐싱된 데이터만 무효화 시키면 되는 점은 장점입니다. Write-through 방식은 데이터 갱신시…

Continue reading AWS ElastiCache 캐싱 전략

AWS ElastiCache를 써도 될까요?

AWS ElastiCache가 무엇인가요? AWS ElastiCache는 AWS에서 제공하는 Redis, Memcached와 호환되는 완전관리형 인메모리 데이터 스토어입니다. 도입시 체크 리스트 아래 체크리스트 중 해당 되는 사항이 몇 개나 되는지 확인해보고, 2개 이상 해당되는 사항이 있다면 적극 도입을 검토해 보는 것이 좋습니다. 항목 Example 데이터 쓰기보다는 조회가 주가 되는 서비스이다 대시보드 실시간으로 처리되는 데이터가 아니고, 처리/갱신되는 주기가 비교적 길다…

Continue reading AWS ElastiCache를 써도 될까요?