인프라/용어

    Orchestration Service (오케스트레이션 서비스) 란?

    오케스트레이션 서비스 (Orchestration Service) 란? 복잡한 컴퓨터 시스템, 미들웨어, 서비스의 배치, 조정 및 관리를 자동화하는 시스템을 말한다. 특정 비즈니스 혹은 기술 목표를 달성하기 위해 리소스와 서비스를 조정하고 관리하는 것이다. 주요 측면 작업 자동화: 앱 배포, 라이프사이클 관리, 리소스 스케일링, 장애 처리 같은 작업을 자동화한다. 워크플로우 관리: 앱 배포 및 유지 관리를 위한 워크플로우를 만들기 위한 일련의 작업을 정의하고 관리한다. 리소스 조정: 컴퓨팅 인스턴스, 스토리지 및 네트워킹 구성요소와 같은 다양한 리소스를 효율적으로 관리하고 조정한다. 확장성 및 탄력성 (Scalability and Elasticity): 수요에 따라 리소스를 동적으로 확장하여 성능을 유지하..

    Lettuce 란? (feat. 레디스의 자바 클라이언트)

    Lettuce 란? 고성능(high-performance), 확장 가능(scalable), 스레드 안전한(thread-safe) 레디스 자바 클라이언트이다. 동기, 비동기, 리액티브 프로그래밍 모델 모두 지원한다. Netty 프레임워크 위에 빌드된 비동기 이벤트 기반 네트워크 애플리케이션 프레임워크이다. 다중 연결을 처리하기 위해 디자인되었다. 강력하고 유연한 API 를 제공한다. 핵심 기능 커넥션 핸들링 (Connection handling) standalone 연결 혹은 커넥션 풀의 일부인 커넥션 오브젝트를 통해 Redis 로의 커넥션을 관리한다. 커넥션은 논블로킹으로 동작하며, 여러 스레드들과 효율적으로 동작하게 디자인되어 있다. 동기, 비동기, 리액티브 API Lettuce 는 다양한 API 를 ..

    Redis Sentinel 이란?

    Redis Sentinel 이란? Redis 설정에 문제가 발생했을 때 모니터링, 알람, 자동 페일 오버를 제공하는 Redis 용 고가용성 솔루션이다. 분산 환경에서 레디스와 함께 동작하도록 설계되었다. 레디스 시스템의 전체적인 상태와 신뢰성을 유지하는데 도움을 준다. 주요 기능 모니터링 알람 자동 페일 오버 구성정보 제공자 모니터링 주기적으로 레디스 인스턴스들의 상태를 확인한다. 가용성, 지연율 그리고 인스턴스의 다른 상태 관련된 수치들에 대한 정보를 수집한다. 알람 마스터나 레플리카 노드에 장애가 발생했을 때 이를 알아챈다. 시스템 관리자나 다른 모니터링 시스템에 장애를 알린다. 자동 장애 극복 (Automatic failover) 마스터 노드에 장애가 발생했을 때 이를 발견하고 장애 극복 (fail..

    레디스 (Redis) 란?

    Redis 란? 오픈소스이다. in-memory 데이터 구조 저장소이다. in-memory 특성덕에 갖는 빠른 퍼포먼스 때문에 인기가 많다. memcached 랑 비슷한데 list, set, ordered sets 같은 다양한 데이터타입을 지원한다. 데이터에 대한 atomic operations 을 지원한다. 데이터베이스, 캐시, 메시지 브로커 등으로 이용한다. 레디스의 핵심 기능들 Redis 가 지원하는 데이터 타입 Strings: 레디스의 문자열은 Binary-safe 하다. 어떤 타입이든 저장할 수 있다. Hashes: 하나의 레디스 키 내부에 있는 키-밸류 쌍이다. object 나 다중 필드 저장에 적합하다. Lists: 링크드 리스트로 구성된 정렬된 문자열 컬렉션이다. head 와 tail 에 ..

    publish-subscribe pattern (pub sub pattern, 발행자 구독자 패턴) 이란?

    publish-subscribe pattern 이란? 메시징 패턴의 한 종류이다. 각각의 컴포넌트가 서로의 identity 를 알 필요 없이 통신하게 해준다. 컴포넌트간 느슨한 결합 (loose coupling) 이 가능하게 만들어 유지보수를 쉽게 만든다. 주 컴포넌트는 3가지이다. 발행자 (publishers) 구독자 (subscribers) 메세지 브로커 (message broker) 각 개념에 대한 세부 설명 메세지 브로커 기본 개념은 메세지 브로커란? 링크에서 확인하면 된다. pub-sub 패턴에서 중심이 되는 컴포넌트이다. pub-sub 통신을 관리하는 책임이 있다. 메세지 (혹은 이벤트) 를 잠시 받아두었다 전달한다. 각 메세지 타입이나 토픽에 대한 구독자 (sub) 리스트를 가지고 있다. 발..

    AOF (Append Only File) 란?

    AOF (Append Only File) 란? 영속적인 데이터 저장 매커니즘이다. DB 와 Redis 같은 저장소에서 사용된다. 쓰기(write) 연산에 대한 로그를 모두 남겨서 유지하여 시스템 장애가 발생하거나 시스템이 재시작되었을 때 데이터 재구성을 돕는다. 모든 연산을 순차적으로 저장하여 로그를 통해 상태를 복구할 수 있도록 돕는다. AOF (Append Only File) 가 동작하는 방식 초기화 (Initialization) 스토리지는 먼저 AOF 파일이 존재하는지 확인한다. 존재한다면, AOF 파일을 읽어 데이터 복원을 준비한다. 연산 데이터 쌓기 (Wirte Operation) DB 에서 다양한 연산 (SET, DEL, INCR 등) 이 일어날 때마다 AOF 파일에 연산 내역을 쌓는다. 시스..

    메세지 브로커 (Message Broker) 란?

    메세지 브로커 (message broker) 란? 안정적인 비동기 방식으로 메세지를 교환하여 분산된 시스템 혹은 애플리케이션 간의 통신을 돕는다. 생산자와 소비자간 중개자 역할을 하여 두 시스템이 완전히 독립적으로 작동할 수 있도록 돕는다. 컴포넌트간 느슨한 결합 (loose coupling) 을 돕는다. 이 구조는 확장성을 증대시켜주고 장애가 미치는 여파를 줄일 수 있습니다. 메세지 큐, 토픽과 같은 데이터구조를 통해 메세지를 임시로 저장해두었다가 적절한 수신자에게 보내줍니다. 핵심 기능 비동기 커뮤니케이션 디커플링 메세지 라우팅 및 필터링 영속성과 신뢰성 스케일링 로드밸런싱과 장애 내성 비동기 커뮤니케이션 (Asynchronous communication) 시스템이 비동기로 소통할 수 있도록 돕는다...

    Binary Safe (바이너리 안전, 이진 안전) 문자열이란?

    binary-safe 문자열이란? 데이터 손실없이 null 바이트를 포함한 모든 바이트 시퀀스를 저장, 처리, 조작할 수 있는 문자열 처리 방식이다. 인코딩에 특화된 문자열을 읽는 것이 아니라 원시 (raw) 바이트 그대로를 다룬다. 원시 바이트를 그대로 처리하기 때문에 텍스트 데이터 뿐만 아니라 이미지, 오디오, 직렬화된 객체 등의 처리도 가능하다. binary-safe 하지 않다는 것은 무엇일까? 특정 인코딩 (ASCII, UTF-8) 으로 문자열을 다루는 것을 말한다. 이 경우 특정 바이트 시퀀스가 특수 문자로 다뤄지거나 유효하지 않은 인코딩으로 다뤄져 바이너리 데이터를 저장하거나 조작하는 경우 문제가 생길 수 있다. 레디스의 관점에서 binary-safe 문자열을 다룬다는 것은? text, num..

    CDN (Content Delivery Network) 이란?

    CDN (Content Delivery Network) 이란? Content Delivery Network 를 말한다. 콘텐츠 전송 네트워크를 말한다. 전세계 다양한 장소에 걸친 분산된 서버 네트워크이다. 최종 사용자들에게 더 빠르고, 안정성있고, 향상된 퍼포먼스를 제공하기 위해 디자인되었다. CDN 의 장점 빠르다 사용자와 지리학적으로 가장 가까운 서버에서 콘텐츠를 전송해줘서 통신지연이 적고 빠르다. 자주 접근되는 컨텐츠에 대한 캐싱을 제공하여 퍼포먼스를 향상시킬 수 있다. 이는 origin 서버에 요청 때문에 생기는 부하를 줄여주기도 한다. 안정성과 신뢰성 다중화된 서버로 컨텐츠를 분산하여 단일 서버일 때보다 컨텐츠를 안정적으로 전달해준다. 로드 밸런싱, 장애 극복(fail over), 이중화 등의 ..

    L2 스위치란?

    L2 Switch (L2 스위치)란? L2 란 Layer 2 로 2계층을 말한다. 정확히는 OSI 레이어 2계층인 데이터 링크 계층을 말한다. 2계층은 1계층처럼 단순 1:1 통신이 아닌 MAC 을 이용해 망에 연결된 컴퓨터 중 내가 통신해야 하는 컴퓨터를 특정해 통신할 수 있게 되는 계층이다. 1계층에서는 내가 원하는 컴퓨터와 통신할 수 없었기에, 어쩔 수 없이 브로드 캐스팅 방식으로 다른 컴퓨터와 통신해야 했다. 이는 나의 통신 사실을 망에 연결된 다른 모든 컴퓨터에게 알리는 것과 같은 행위로 보안상 취약하다. Multiple Access 를 위한 장비이다. 서버에는 Network Interface Card 가 있다. Network Interface Card 는 MAC 주소가 있어서 네트워크에 연결된..

    퍼블릭 클라우드란? 퍼블릭 클라우드를 사용하는 이유

    퍼블릭 클라우드 (public cloud) 란? 서버, 데이터베이스, 네트워킹 등 컴퓨터 리소스를 물리적인 장치 없이 인터넷을 통해 관리하는 것이다. 대표적으로 GCP (Google Cloud Platform), AWS (Amazon Web Service), Azure 등이 있다. 퍼블릭 클라우드를 사용하는 이유 물리적 장치를 사용했을 때의 관리 포인트를 없애고, 온전히 나의 서비스에 집중하기 위해서이다. 물리적 장치를 사용한다면? 데이터 관리에 대한 이슈가 생긴다. -> 데이터 백업, 보안 이슈, 데이터 공유는 어떻게 하지?, 데이터가 유실되면 어떡하지? 서버 관리에 대한 이슈가 생긴다. -> 이사할 때는 장비를 끌까?, 장비가 노후화돼서 망가지진 않을까?, 온도 관리는 어떻게 해야 할까? 네트워크 관..

    인프라에서 노드와 링크란?

    노드란? 보통 IP 로 식별할 수 있는 대상을 말한다. AWS 에서 EC2 인스턴스 하나는 하나의 노드로 볼 수 있다. 링크란? 물리적 회선을 말한다. 노드간에 연결을 링크라고 할 수 있다.

반응형