Aurora RDS 백업과 복구 

데이터베이스를 복원하는 것은 쉬운일이 아니다. 복원하는 방법을 찾기전에, (가능한)복원할 일이 없도록 시스템과 운영정책을 만드는게 우선이다. 애플리케이션 권한을 분리한다. 프러덕트 영역의 데이터베이스로의 접근을 엄격히 제한한다. 접근이 필요한 경우 필요한 권한만 준다. 상태를 모니터링하러 접속하는데 DELETE, UPDATE 권한을 모두 줄 필요는 없다...

Serverless Aurora 

는 컴퓨팅 노드와 스토리지를 분리하는 것으로 확장성과 성능, 유연성을 확보했다. 그래도 여전히 컴퓨팅을 담당하는 EC2 인스턴스는 필요했다. AWS는 2018년 서버노드가 전혀 필요 없는 말 그대로의 서버리스(Serverless) Aurora 서비스를 출시했다. Aurora 서버리스는 온디맨드 방식으로 제공되며, 자동으로 크기가 조정되는 서버리스 Auror...

AWS EMR 

이 문서는 을 갖췄다는 가정하에 작성했다.맵리듀스(MapReduce)는 분산&병렬처리 알고리즘을 이용 클러스터링 환경에서 빅 데이터 세트를 처리하기 위한 프로그래밍 모델및 관련 구현체를 일컫는다. 맵리듀스 프로그래밍 관련 구현체중 가장 유명한 구현체가 하둡 맵리듀스다. 하둡 스트리밍은 Hadoop에서 배포하는 유틸리티다. 이 유틸리티를 이용하면, mappe...

VPC Private link를 이용한 SaaS 개발 

PrivateLink는 VPC 내부에서 외부에 있는 다른 서비스를 연결하기 위한 기술이다. PrivateLink를 이용하면, 퍼블릭 네트워크(인터넷)을 거치지 않고도 AWS의 서비스와 다른 서비스(다른 계정의 네트워크, 다른 VPC에 존재하는)를 호출 할 수 있다.PrivateLink는 아래와 같은 장점이 있다. 트래픽보호 간단한 네트워크 구성 마이그레...

Prometheus 

프로메테우스는 단순함과 안정성을 두고 개발된 오픈소스 기반 모니터링 시스템이다. 2012년에 배포된 이래로 많은 기업과 조직들이 프로메테우스를 채택하고 있으며, 활발한 커뮤니티와 열성적인 개발자의 지원을 받고 있다. 2016년에 Kubernetes에 이어서 두번째로 CNCF(Cloud Native Computing Foundation)에 가입을 했다.프로메...

클라우드 개요 

클라우드 컴퓨팅은 컴퓨터 시스템의 구성 요소들을 모아서 하나의 풀로 만든다. 그리고 어떤 유저가 컴퓨터 자원을 요청 할 때, 풀에서 일부분을 떼어내서 대여하는 서비스를 클라우드 서비스라고 한다.사용자는 직접 물리적인 인프라를 구성, 운영하는 대신에, 마치 "전기나 수도"처럼 필요한 필요한 만큼 빌려서 사용 할 수 있다. 때문에 다른 복잡한 것들에 신경쓰지 ...

Redis data structure - List 

Redis 리스트(List)는 입력순서에 따라 정렬된 string의 목록이다. 목록의 왼쪽 혹은 오른쪽 끝에 새로운 요소를 밀어 넣는 식으로 리스트에 string 데이터를 추가 할 수 있다. 링크드리스트(Linked List)의 구현이라고 보면 된다.LPUSH(Left push)는 왼쪽에 데이터를 추가하는 반면, RPUSH(Right Push)는 오른쪽에 ...

Redis 데이터 스트럭처 - strings 

MySQL같은 RDBMS는 데이터 스트럭처라는 개념이 없다. 데이터베이스를 이루는 여러 개의 테이블이 있으며, 이 테이블을 (join등으로 엮어서) 필요한 데이터를 추출할 뿐이다. RDBMS를 사용하는 서비스에서 데이터 스트럭처는 "애플리케이션 영역"에서 처리 한다.반면 Redis는 List, Set, Sorted set, Hash, HyperLogLogs...

GeoHash 기반의 Geofencing 

지오펜스(Geo-fence)는 실제 지리적영역에 가상으로 경계를 만드는 것이다. 점 위치 주변을 기준으로 일정반경으로 하는 등 동적으로 만들수 있다. 혹은 학교, 인접 지역 경계등을 미리 정의해서 사용 할 수도 있다.지오펜스를 사용하는 것을 지오펜싱(geo-fencing)이라고 한다. 위치기반서비스(Location-Based Service 줄여서 LBS)는...

Kubernetes Pod 

다른 컨테이너 오케스트레이션 툴과 달리, Kubernetes는 컨테이너를 직접 실행하지 않는다. 대신에 하나 이상의 컨테이너를 그룹으로 묶어서 구조화한 pod를 관리한다. 같은 pod에 포함된 컨테이너들은 네트워크, IPC, 볼륨등을 공유한다. Pod에 포함된 컨테이너들은 하나의 물리적 노드에 배치가 되는데, 때문에 이들 자원의 공유와 커뮤니케이션이 쉬워...