소용환의 생각저장소


Free Software, Cloud Computing, and Troubleshooting

소용환의 생각저장소


Free Software, Cloud Computing, and Troubleshooting

CockroachDB 클러스터 가용성 시험

CockroachDB는 가용성 확보를 위해 어떻게 동작하는지?

CockroachDB는 Range라는 일종의 Sharding 기법을 도입하여 사용자의 데이터를 복제하고 그 가용성을 관리함으로써 전지구적 분산 복제 DBMS의 가용성을 보장하고 있다. 이 글에서는 네 개의 Node로 구성된 클러스트를 예로 하여 Node 장애 상황에서 Cockroach가 어떻게 반응하고, 또한 어디까지 가용성을 보장해주는지 시험한 결과를 정리한다.

CockroachDB 클러스터 설치 스크립트

...라지만, 알고보면 쉘스크립트 작성 가이드

이번 글에서는 (특히 클라우드 컴퓨팅 환경에서) 여러 서버에 CockroachDB를 설치하고 그것을 묶어서 클러스터로 만드는 과정을 단순화하는 스크립트에 대해 정리하려고 한다. 내용은 CockroachDB Cluster의 구성에 초점을 맞추고 있지만, 여기서 다루는 개념과 방법은 소프트웨어의 원격 설치, 자동화된 배치를 준비함에 있어서 공통적으로 참고하거나 적용할 수 있을 것이다.

CockroachDB Architecture

CockroachDB의 구조 설계에 대한 짧은 이해

원래는 진행했던 시험의 순서대로, CockroachDB 클러스터의 설치 스크립트에 대해 먼저 살펴보려고 했지만 글을 쓰면서 스스로에게 던지게 되는 질문은 “그래서 Cockroach가 어떻게 생긴 녀석인데?”라는 것이었다. 아! 알긴 안다. 바퀴벌레… 아주 징그럽게 생겼다. 그런데 이름은 징그럽지만 뭔가 정이 가는 이 CockroachDB도 징그럽게 생겼을까? 이 글은 CockroachDB의 생김에 대해, 지금까지 이해한 것을 정리한다. “지금까지”일 뿐이라서, 잘못된 점이 있을 수 있다는 것을 미리 밝힌다.

CockroachDB 클러스터 구성하기

"바퀴벌레 연맹" 구성을 위한 배치/관리 반자동화하기

좀 번잡스러운 글이 될 것 같은데, 이번 글은 지난 글에 이어 CockroachDB를 수동/반자동으로 설치하는 과정에 대해 정리한다. 먼저 단일 노드에 대한 수동 설치 과정을 보면서, 노드 구성에 대하여 확인할 것이고, 그 다음에는 세 노드로 구성된 클러스터를 쉘스크립트를 사용하여 원격지에서 자동화하여 배치/관리하는 과정에 대해 정리할 것이다.

Elasticsearch 다시 Indexing하기

왜 혼자 바뀌고 그래!

내가 하고싶어서 한 것이 아니다. 그냥 가만히 두고 싶은 시스템인데… 어쩌다 일이 꼬여서 한참 전에 구성해 두었던 Elastic Stack 기반의 분석시스템을 좀 손보게 됐고, 이 글은 그 과정 중 일부를 기록으로 남기는 것이다. 애초에 괜히 건드렸다… 싶기도 하고, 뭐, 그러면서 하나 더 배우는 거지…

Docker Swarm 다시 보기

Docker의 Label과 관련된 몇 가지 재미있는 기능들

지난 세 편의 Swarm에 대한 글에서 다루지 못했던 몇 가지 중요한 개념과 기능에 대해서 정리한 글이다. 원래 조금 더 많은 내용을 준비했었는데, 일단 다 줄이고, 재미있는 짜투리 소재 두 가지, Docker의 Label 지원과 이를 Swarm에서 이용하는 것과 Global Mode Service에 대하여 간단히 정리하였다.

Docker Swarm의 고가용성

서비스 가용성을 보장하기 위한 Swarm 클러스터 구성 방법

Docker의 기본 Orchestration 도구인 Swarm의 기본적인 구성에 대하여 설명한 “Getting Started with Docker Swarm”, 그리고 그 위에 Service를 올리고 관리하는 방식에 대해 정리한 “Docker Swarm에 Service 올려보기“에 이어, 이번 글에서는 이러한 기능을 안정적으로 제공할 수 있도록 고가용성 환경을 꾸미는 방법에 대해 정리하였다.

Docker Swarm에 Service 올려보기

Docker Swarm 방식으로 서비스 생명주기 관리하기

이번 글에서는, “Getting Started with Docker Swarm“에서 만들어둔 Docker Swarm에 Service를 올려보려고 한다. 시험을 위한 엉터리 Service긴 하지만, Service와 Task가 무엇인지, 그리고 필요에 따라 어떻게 Service를 수평으로 확장하고 다시 줄이는지, Image 교체 등 Service의 업데이트는 어떤 방식으로 처리하게 되는지 알아보고, 이와 함께 Swarm Node에 대한 유지보수를 진행할 때 Swarm은 그 위에 올라가 있는 서비스를 어떻게 다루는지 등에 대해 정리한다.

Getting Started with Docker Swarm

나무토막 모아서 뗏목 만들기

지난 글에서는 여러 Docker Host 들을 손쉽게 관리하기 위한 기술 중 하나로 Docker Machine에 대해 살펴봤다. Docker Machine은 그 초점이 기계를 어떻게 빨리 뿌리고 거둘 것인지에 있는 인프라 관점, 저수준의 관리기능을 제공하는 도구라면, 오늘의 주제인 Docker Swarm은 여러 대의 Docker Host 들을 엮어서 마치 하나인 것처럼 다룰 수 있게 해주는 Clustering 도구, 또는 유식한 말로 Orchestration 도구이다.

Docker Machine 다시 보기

A Little More About Docker Machine

Docker Engine을 탑재한 Dockerized Host, Docker Node를 손쉽게 펼쳤다가, 다시 모았다가 하는 용도로 Docker Machine을 적절히 활용할 수 있을지 확인하기 위해 빠른 걸음으로 Docker Machine의 기능을 살펴봤었다. 기왕 보기 시작한 김에, 조금 더 자세히 문서와 CLI 도구의 세부 기능을 들여다 보았다.

Docker Machine으로 Docker Node 뿌리기

Docker is Not In My BackYard, But on the Cloud!

Docker를 개인 목적이 아닌 어느 정도 규모가 있는 서비스를 위해 사용하려고 한다면, Container가 구동될 복수의 Host Node를 어떻게 쉽게 관리할 것인지 등에 대한 약간의 인프라 관점의 접근이 필요하다. 이번 글에서는 클라우드를 포함한 원격지에 Docker Node를 손쉽게 구성하는 방법, Docker Machine에 대해 정리하려고 한다.

DevOps Service: Travis CI

Continuous Integration 도구의 대명사

지속적 통합 분야에서 가장 유명한 서비스는 아마도 Travis CI인 것 같다. 내 경우에는 소프트웨어 시험이 아닌 이 블로그의 빌드 테스트를 위해 처음 사용하기 시작했었는데, Go 프로그래밍을 시작한 이후에는 소프트웨어 빌드 시험을 위해서도 사용하고 있다. 작년 후반에 만들었던 “현천” 프로젝트의 OAuth2 인증 서비스인 UART의 기반을 업그레이드하다가, 기반환경 및 Travis CI를 이용한 시험 과정에서 문제가 생겨서 하루를 꼬박 이 화면에서 살았다. 생각난 김에, 오늘을 기준으로 이 서비스의 화면을 기록으로 남긴다.

Docker Cloud에서 자동빌드하기

Setting Automated Build on Docker Cloud

”‘쓸만한’ Docker Image 만들기 - Part 2“에서 Docker Cloud에 Image를 올리는 과정에 대해서 정리하면서, Docker Hub, Docker Cloud 등의 화면을 잠깐 봤다. 떡 본 김에 제사 지낸다고, Docker Cloud에 Image를 올린 김에 Docker Cloud가 제공하는 자동빌드 서비스를 한 번 써봤다. 이 글은, Github의 특정 저장소에 Commit이 일어나면, 이에 반응하여 Docker Image를 자동으로 만들어내도록 설정하는 과정에 대하여 정리한다.