본문 바로가기

전체 글114

레드 팀을 만들어라 "레드 팀을 만들어라"책 이름부터 무언가 노골적으로 만들어고 제안하고 있다. 사실 책 이름만 보더라도 대충 감이 올 수 있다."레드" 라는 단어에서 느낄 수 있는 것인지도 모르겠지만 무언가 적대적인 팀을 만들 필요가 있다는 것을 말하는 듯 하다.하지만 이 책을 읽어보면 조금 다른 느낌을 받을 수 있다. 미국 드라마 "뉴스룸"을 보면 특정 기사에 대해 팀원을 블루팀과 레드팀으로 나누어서 한 쪽은 해당 기사에 대해 논리적으로 반박하고 한 쪽은 방어하는 자세를 취한다. 이를 통해 특정 기사가 한 쪽으로 쏠리는 것을 방지하고 내부적으로 더 필요한 것은 무엇인지 찾는다.이 책도 이와 흡사하다. 이 책은 레드 팀이라는 것을 만들어서 적어도 한 번쯤은 생각해보는 것은 어떨까라는 당부의 뜻이 담겨있다.그렇다. 실제 의.. 2019. 1. 28.
[AWS] Lambda의 장단점 요즈음 서버리스 아키텍처가 많이 사용되고 있다. 이에 AWS의 선두주자는 바로 Lambda 서비스라고 할 수 있다.Lambda에 관한 AWS의 문서를 확인해 보면 아래와 같이 소개를 한다. "AWS Lambda는 서버를 provisioning 하거나 관리하지 않고도 코드를 실행 할 수 있게 해주는 컴퓨팅 서비스이다." 서버리스라는 단어와 같이 (물론 물리적으로 서버가 필요 없는 것은 아니지만) 서버에 대한 고민을 하지 않고도 application 개발을 진행할 수 있다.때문에 문서상에서 언급하는 장점들만 살펴보면 아래와 같다.- 자동 확장 (요청의 갯수에 상관없이 받아 줄 수 있음)- 사용한 시간에 대해서만 비용 지불- 백엔드를 관리할 필요 없음 (자동으로 최신 버전)- 고가용성등등 AWS 에서 언급하는.. 2019. 1. 27.
[Network] Proxy와Reverse Proxy Proxy와 Reverse Proxy에 대해 알아보려고 한다.이 2가지 개념은 생각해보면 '그냥 반대의 개념이네' 라고 할 수 있다. 이름부터도 Prefix로 Reverse가 붙으니 당연히 그렇게 생각하는게 맞다.그런데 이번 포스팅에서는 개략적으로 알기보다는 조금이라도 더 개념에 접근해보려고 한다. 그림 1. Proxy Vs Reverse Proxy 그림 1에서 확인 할 수 있듯이, 인프라 상에서 Server의 위치가 어디인지에 따라 Proxy인지 Reverse Proxy인지 판단 할 수 있다. (Front-end에 밀접하면 Proxy, Back-end에 밀접하면 Reverse Proxy)그렇다면 각 개념에 대해 조금 더 알아보도록 하자. Proxy Server요즘 Proxy 서버 로써 Reverse P.. 2019. 1. 19.
[Netflix] Hystrix Overview HystrixHystrix는 Netflix에서 만든 라이브러리로 분산 환경에서 fault tolerance을 수행하도록 한다. 이를 통해 Hystrix 라이브러리를 사용하는 서비스는 내부적으로 resiliency를 향상 시킬 수 있다. 추가로 Hystrix는 Java 라이브러리로 관련 문서는 아래에서 확인 할 수 있다.- http://netflix.github.io/Hystrix/javadoc/ 설계 원칙Hystrix는 다음의 설계 원칙을 따른다.- Dependency로부터 보호하고 latency 및 failure를 제어한다.- 분산 환경에서 cascading failures(계단식 장애)를 중단한다. (끊는다)- 빠르게 failure 시키고 복구한다.- 대체 시스템(fallback)으로 자연스럽게 전환.. 2019. 1. 14.
[AWS] ElastiCache Redis Cluster ElastiCache Redis ClusterAWS의 Managed Service인 ElastiCache에서 Redis를 Cluster 모드로 적용하여 사용할 수 있다. 그림 1. ElastiCache Redis Cluster 위의 그림 1에서도 확인 할 수 있듯이, AWS에서 Redis는 Cluster 모드를 사용하지 않을 때에는 Replication만 적용할 수 있지만 Cluster 모드를 사용할 때에는 Replication 뿐만 아니라 Data Partitioning 또한 적용 할 수 있다. (물론, Redis Cluster 자체가 데이터 분산을 위한 방법이긴 하지만.)Redis Cluster 구성에 대한 자세한 부분은 아래 글을 참조해보자. ShardShard는 단순히 관련된 Node의 집합이다... 2019. 1. 6.
[Redis] Cluster Redirection RedirectionClient는 모든 Cluster Node에게 요청 메시지(Query)를 보낼 수 있다. (Master, Slave 다 포함해서)이전 포스팅에서도 언급했지만 Cluster Node는 Cluster 내의 모든 Node와 통신을 하기 때문에, 즉 각 Node의 상태를 알고 있기 때문에 Client가 어떤 Node에 접근하든 상관하지 않는다.다만, Redis Cluster가 Hash Slot을 사용하기 때문에 요청 메시지의 Key 값이 접근하는 Node 에 존재하지 않을 수 있다.이런 경우에 요청 받은 Node는 Node Map을 확인하고 MOVED 에러를 발생시킨다. 그림 1. MOVED Error 위 그림 1을 확인해보자.Redis Client가 Node 0에 접근하여 Slot 1에 해.. 2019. 1. 6.