MySQL 13

쿠버네티스 #22 - StatefulSet을 이용한 상태유지 Pod (데이타베이스) 관리하기 1/2

StatefulSet을 이용하여 상태가 유지되는 Pod 관리하기조대협 (http://bcho.tistory.com)ReplicaSet으로 Stateful Pod 관리하기 앞에서 쿠버네티스의 Pod를 관리하기 위한 여러가지 컨트롤러 (Replica Set, ReplicationController,Job 등)에 대해서 알아보았다.이런 컨트롤러들은 상태가 유지되지 않는 애플리케이션(Stateless application)을 관리하기 위해 사용된다. Pod가 수시로 리스타트되어도 되고, Pod 내의 디스크 내용이 리스타트되어 유실되는 경우라도 문제가 없는 워크로드 형태이다. 웹서버나 웹애플리케이션 서버 (WAS)등이 그에 해당한다. 그러나 RDBMS나 NoSQL과 같은 분산 데이타 베이스등과 같이 디스크에 데이..

구글 클라우드 MySQL서비스의 흥미로운 가격 정책

구글 클라우드 MySQL서비스의 흥미로운 가격 정책조대협 (http://bcho.tistory.com) 구글 클라우드의 MySQL 서비스인 CloudSQL을 보다보니, 신기한 가격 정책이 있어서 정리해놓고자 한다.1세대와 2세대의 가격 정책이 다른데, 1세대의 가격 정책이 재미있는점이 있다. 기본 가격 정책 1,2세대 모두 기본 적인 가격 정책은 다음과 같다 저장량 + 인스턴스 기동 비용 + 네트워크 비용저장량은 말 그대로 저장된 데이타의 양에 따라 과금이 된다네트워크 비용은 outbound로 나가는 트래픽만 과금이 되는데, 이것도 같은 리전 안의 구글 클라우드에서 호출하는 경우에는 과금이 되지 않는다. 과금이 되는 경우는 구글 클라우드를 쓰더라도 다른 대륙의 인스턴스가 호출을 하거나 또는 다른 클라우드..

구글 CloudSQL(MySQL) 접속하기

구글 CloudSQL(MySQL) 접속하기조대협 (http://bcho.tistory.com) 개요 구글 클라우드에서는 MySQL의 매니지드 서비스 형태로 CloudSQL 서비스를 제공한다. 이 글에서는 CloudSQL을 서버에서 접근하는 방법과, 일반적인 MySQL 클라이언트로 접근하는 방법에 대해서 설명하고자 한다. 몇가지 배경 CloudSQL은 매니지드 MySQL서비스이다. 아마존에 RDS서비스와 같다고 보면 되는데 현재는 1세대를 서비스하고 있고, 곧 2세대가 서비스 예정이다.1세대는 500GB까지의 용량까지 지원하고 있지만 2세대는 10테라까지 지원을 한다.현재 지원되는 MySQL버전은 5.5와 5.6 지원하고, 내부 엔진으로는 InnoDB만을 제공한다. 2 세대에 기대되는 기능으로는 On Pr..

MySQL 클러스터링을 위한 Galera Cluster

MySQL Galera Replication 조대협 (http://bcho.tistory.com) RDBMS 오픈소스 중에서 단연 가장 많이 사용되는 것은 MySQL인데, 근래에 웹 스케일이 커지면서, 단일 인스턴스로만 서비스가 불가능한 용량까지 가게 되서, 이 MySQL에 대한 클러스터링 스케일링에 대한 이슈가 많아졌다. 이에 Tungsten, MySQL Replication, NDB, Galera 등 다양한 클러스터링 방법이 있는데, 그중에서 갈레라 클러스터링 (Galera Clustering)에 대해서 간단하게 정리하고자 한다. MySQL Replication 갈레라 클러스터링을 이해하기에 앞서서 먼저 가장 널리(그리고 쉽게) 사용되는 MySQL Replication 방식에 대해서 알아보자. MyS..

아키텍쳐 2015.11.18

빠르게 훝어 보는 node.js - #8 mySQL 연동

빠르게 훝어보는 node.js#8 - MySQL 연동조대협 (http://bcho.tistory.com) NoSQL이 근래에 유행이기는 하지만, 데이터간의 관계를 표현하고, 트렌젝션에 일관성을 보장하는 RDBMS는 아직까지는 서버쪽에서는 필수적이다. node.js는 대표적인 오픈소스 RDBMS인 MySQL은 지원한다. 몇가지 MySQL연동 모듈이 있기는 하지만, 여기서는 가장 많이 사용되는 node-mysql 모듈에 대해서 소개하고자 한다.node-mysql은 오픈소스로 https://github.com/felixge/node-mysql 에 코드가 공개되어 있다.mysql 모듈을 사용하려면 npm install mysql 명령을 이용하여, node-mysql 모듈을 설치하자.mysql에 대한 설치와 사용..

Python 공부 노트 4. - 초간단 RDBMS 프로그래밍

RDBMS 프로그래밍시에는 해당 RDBMS에 대한 드라이버(모듈을) import해야 한다. sqlite의 경우는 이미 들어가 있다. 아래는 가장 기본적인 코드 이다.import sqlite3 conn = sqlite3.connect("datafile")cursor = conn.cursor()cursor.execute("drop table test")cursor.execute("create table test (name text,count integer)")cursor.execute("insert into test(name,count) values('Terry',1)")cursor.execute("insert into test(name,count) values('Cath',2)")conn.commit()r..

Amazon 클라우드 RDS의 Multi Zone Replication

AWS의 Zone은 같은 지역에 있는 물리적으로 다른 데이타 센터의 개념을 이야기 함.RDS의 Multi Zone replication은 한 데이타 센터가 고장 나더라도 다른 데이타 센터에서 서비스가 가능한 구조.기본적으로 Active-Stand by 형태로 복제하다가, 장애가 나면 stand by 서버로 fail over하는 구성 중요한 것중 하나는 MySQL RDS의 경우 자동 Back 시, 시스템이 일시적으로 멈추는 현상이 보이는데, Multi AZ deploy의 경우, back up시에, 자동 fail over하여, 멈추는 현상 없이 서비스가 가능함 http://aws.amazon.com/ko/about-aws/whats-new/2010/05/18/announcing-multi-az-deploym..

MySQL HA over AWS 옵션

메모를 안해놓으면 또 까먹기 때문에, 정리 차원에서 몇가지 정리 1. MySQL HA over AWS먼저 MySQL을 아마존 위에서 Zone간 Fail Over를 위해서 몇가지를 고민했다. 1) MySQL ClusterMySQL의 클러스터링 버전으로, Zone간 Fail Over가 이론적으로 가능하다. 제품 자체도 기존 MySQL과 상당히 차별화 되어 있다.그러나 가격이 상당히 비싼 편이고, 아직은 AWS위에 deployment된 reference가 없기 때문에 상당한 risk를 둬야 한다. 2) Garela, Tungsten오픈소스로 Replication을 보장하지만, 국내 Support가 없기 때문에, Bug Fix가 어렵다. 그래서 Pass 3) HAProxy상당히 재미있는 개념인데, Proxy로 ..

MySQL의 Auto Sharding 및 Data Replication Architecture

Auto-Sharding이번 MySQL의 Enhancement 중 재미있는 기능중의 하나가 Auto Sharding이라는 기능이다. Sharding에 대한 개념은 http://bcho.tistory.com/670 를 참고하면 되고.보통 Sharding이라 하면 Application 에서 작성해서 컨트롤해야 하기 때문에, 데이타 저장 용량을 늘릴 수 있을지 몰라도, 전체적으로 Application의 구현 복잡도를 올리는 문제가 있었다.이번 MySQL에서는 Auto-Sharding이라는 기능을 제공하는데, 요는 MySQL이 알아서 데이타를 여러 데이타 노드에 분산 저장함으로써 전체 저장 용량을 늘리고, 데이타를 분산 배치 함으로써, 처리 능력을 향상 시킬 수 있다. 위의 그림은 Auto-Sharding 아키..