본문 바로가기

2017/11

[AWS] 애플리케이션 서버에서는 200을 내려줬는데, LB 단에서는 왜 5XX 응답 코드가 내려올까? 이번주는 트러블 슈팅을 많이 했던 한 주였다.그러면서 배웠던 내용을 정리하고자 한다. 호기심의 발단이번주에 메인 어플리케이션에서 통신하는 서버에서 장애가 발생하여, 에러가 발생했던 적이 있다. 그래서 AWS Cloud Watch로 당시의 응답코드를 확인해봤다. 확인해보니, 애플리케이션 서버 단에서는 항상 200을 리턴해줬었다. 반면 ELB에서는 5xx대의 HTTP 응답코드를 내려준 적이 있다는 이력이 남아 있었다.애플리케이션 단에서는 항상 200을 내려줬는데, ELB 단에서는 5XX대의 응답코드를 받았다고 하기에, 이상했다. 이 차이는 어디서 발생한걸까? 원인알고보니, 로드밸런서 단에서 알아서 5XX대의 응답코드를 내려주는 케이스가 있다는걸 알게되었다.(나와 비슷한 문제를 경험한 사람이 스택오버플로우에 ..
(넷플릭스) 오프라인 다운로드 기능으로 변경된 라이센스 관리 방식 오프라인 다운로드 기능 2016년 11월 말, 넷플릭스에 오프라인 다운로드 기능이 추가되었다. 넷플릭스에서 오프라인 다운로드 기능 프로젝트를 할 때, 아래와 같은 이슈가 있었다고 한다. 오프라인으로 영상을 보는 건 기존의 재생 시스템과는 다른 플로우를 타게된다. 그러면서 영상 라이센스를 관리하는 새로운 시스템이 필요해졌다. 넷플릭스는 이 시스템을 만들면서 있었던 에피소드를 기술 블로그에 정리해두었다. 넷플릭스 기술 블로그 - Scaling Event Sourcing for Netflix Downloads, Episode 1 위의 글을 읽어보고, 어떤 사건이 있었는지 블로그에 정리해보려고 한다. 넷플릭스의 기존 영상 재생 flow 넷플릭스의 영상 재생 시스템의 동작방식은 아래와 같다. 디바이스에서 보려고 ..
[Cache]Redis vs Memcached VS 캐시를 사용할 때, Redis와 Memcached 중 어떤걸 선택해야하는지고민이 될 때가 있다. 그래서 실무에서 발생하던 사건들과 책과 구글에서 본 내용을 기반으로, 어떤 경우에 두 캐시가 각각 유용한지 정리해보려고 한다. Redis 장점- 디스크에 데이터를 기록하고 있기 때문에, Redis 메모리가 날라가도 데이터를 복구할 수 있다.( 스냅샷을 떠서, 이를 사용하는 RDB 방식과 Write / Update Event를 로그에 남겨서 이를 기반으로 복구하는 AOF 방식 두가지가 있다. )- 다양한 데이터 포맷을 지원한다. String, List, Set, Sorted sets, Hash 등의 데이터 포맷을 지원한다. 그래서 애플리케이션 단에서 편하게 데이터를 저장하고, 사용할 수 있다.- Memca..
[RUBY]루비로 AWS Athena 사용하기 Gemaws-sdk gem 안에 athena 서비스를 사용할 수 있는 함수도 포함되어 있다. 함수 사용하는 방법 처음에 aws-sdk를 사용할 때는, 아테나에 쿼리를 보내면 바로 결과값을 리턴해주는 기능이 있을거라고 기대했다.마치 jdbc를 사용하듯이 사용할 수 있을줄 알았다. 그런데 약간 개념이 달랐다.참고링크 : ATHENA RUBY SDK 사용법 이렇게 클라이언트를 만들고client = Aws::Athena::Client.new(region: 'us-east-1') 이렇게 쿼리를 날리면, 이 때 날린 쿼리의 아이디가 담긴 객체가 리턴된다resp = client.start_query_execution({ query_string: "SELECT * FROM impressions WHERE year='2..
[리서치]통계 처리 시스템 기업 사례 네이버 콘텐츠 통계 서비스 [215]네이버콘텐츠통계서비스소개 김기영 from NAVER D2 카카오 통계 서비스 [235]루빅스개발이야기 황지수 from NAVER D2 루빅스 기술 블로그 포스팅 : http://tech.kakao.com/2016/04/27/rubics/