클라우드 컴퓨팅 & NoSQL 384

RabbitMQ 기본 기동

1. 설치- Erlang 설치- Rabbit MQ 다운로드 후 설치 2. 기본 명령서버 기동 : sbin/rabbitmq-server start. 윈도우즈에서는 services.msc에서 서비스로 시작상태 체크 : sbin/rabbitmqctl status서버 중지 : sbin/rabbitmqctl stop3. Web Admin 모듈web admin 모듈 enable - "rabbitmq-plugins enable rabbitmq_management" (이다음 서비스를 restart해야 함)http://localhost:15672/ 접속후 guest/guest로 로그인

Redis Single Thread 모델에 대해서.

다음글은 페이스북 서버사이드 아키텍트 그룹 세미나에서 강대명씨가 발표한 내용을 정리한 글입니다. Redis acc from Dae Myung Kang Redis는 Single Thread Model이다. (중요)이로 인해서 긴 Transaction이 들어 오면, 그 Tx를 처리하기 위해서 다른 request를 처리 못하는 현상이 발생한다.대표적으로Flushall이나 Keys는 List 전체를 Scan하는 구조로, 100만개 처리시 1초, 1000만개 10초,1억개 100초가 소요된다.이를 예방하기 위해서, 데이타를 전체 하나의 Collection에 넣는 것이 아니라 여러개의 Collection에 나눠서 처리하는 방안이 좋다. 각 Collection당 보통 10,000개 정도의 데이타를 저장하는 것이 좋다..

개발과 운영의 조화 - Devops #2/2

1편 글 링크 - http://bcho.tistory.com/815Devops의 정의 이러한 개념들을 적극적으로 적용한 기업들이 Netflix, Flicker와 같은 인터넷 서비스 기업이다. 기존 개발 프로세스에 비해서 훨씬 빠르게 고객의 요구 사항을 반영해 내가고 있다. Flicker의 경우에는 하루에 10번 정도 [1]Deploy를 한다고 한다. 일반적인 인터넷 서비스가 한달에 한번 업데이트 빨라야 일주에 한번인데, 하루에 10번이라면, 경쟁 구조 자체가 틀려진다.PuppetLab (Configuration management 자동화툴)의 블로그[2]에 따르면 Devops를 적용할 경우,경쟁사에 비해서 30배 정도 더 자주 Deployment를 할 수 있으며, Deployment 실패 비율도 50% ..

개발과 운영의 조화 - Devops #1/2

기존 개발 체계의 문제점전통적인 개발 운영 체계일반적인 개발 운영 체계는 다음과 같다. 개발팀에 의해서 개발이 끝나면, 시스템은 테스트를 거쳐서 운영팀에 이관되고, 운영팀은 해당 시스템을 배포 및 관리 운영한다. 일단 이관된 시스템은, 개발팀이 일체 관여하지 않고, 운영팀에 의해서 현상 유지 된다. 문제점 1. 누구의 잘못인가? 불행의 시작시스템을 운영하다 보면, 반드시 장애가 생기기 마련인데, 문제는 여기부터 시작된다. 개발은 “애플리케이션” 을 볼 수 있지만, 아랫단의 “인프라 시스템”을 볼 수 있는 능력이 없다. 반대로 운영팀은 “인프라 시스템” 을 잘 알지만, “애플리케이션” 자체에 대해서는 잘 모른다.그러다 보니, 서로 자기 분야의 문제가 아니라고 하면서 서로 책임 미루기를 하게 되고, 문제 해..

Docker 소개

Docker란 무엇인가?개념 잡기Docker는 Linux 기반의 Container RunTime 오픈소스이다. 처음 개념을 잡기가 조금 어려운데, Virtual Machine과 상당히 유사한 기능을 가지면서, Virtual Machine보다 훨씬 가벼운 형태로 배포가 가능하다. 정확한 이해를 돕기 위해서, VM 과 Docker Container의 차이를 살펴보자.아래는 VM 에 대한 컨셉이다. Host OS가 깔리고, 그 위에 Hypervisor (VMWare,KVM,Xen etc)가 깔린 후에, 그위에, Virtual Machine이 만들어진다. Virtual Machine은 일종의 x86 하드웨어를 가상화 한 것이라고 보면된다. 그래서 VM위에 다양한 종류의 Linux나, Windows등의 OS를 설..

Auto scaling out

클라우드 컴퓨팅 서비스에서 서비스의 부하량과 사용량에 맞게 탄력적으로 컴퓨팅 자원을 늘렸다가 줄였다 하는 auto scaling 기능은 기존의 인프라가 가지지 못한 큰 장점 중의 하나이다. 아마존 클라우드 서비스는 이 auto scaling 기능을 서비스로 제공하고 있다. Auto scaling의 기본 개념 아마존에서 제공하는 auto scaling의 기본 개념은 다음과 같다. 여러 개의 EC 인스턴스들을 auto scaling group이라는 하나의 그룹으로 묶어 놓는다. 그리고 각 인스턴스들은 ELB 로드 밸런서를 통해서 로드가 분산된다. 이 그룹을 Cloud Watch라는 아마존의 클라우드 모니터링 솔루션을 통해서 자동으로 감지하게 되는데, 사용자가 정의 해놓은 일정한 조건 (예를 들어 평균 CPU..

Amazon의 CDN 서비스 Cloud Front

Cloud Front조대협Cloud Front는 CDN (Contents Delivery Network) 서비스 이다. 이미지나 동영상 같은 정적인 컨텐츠들을 서비스하는데, 서버가 있는 데이타 센터에서 서비스를 하게 되면, 네트워크 latency 때문에 성능이 저하가 되기 때문에, 전세계의 여러 개의 데이타 센터에 서버(이를 edge node 또는 edge server라고 함) 를 넣고, 클라이언트와 가까운 데이타 센터로 부터 컨텐츠를 제공하는 서비스 이다.얼마나 많은 지역별 데이타 센터에 edge node를 설치하고 서비스를 제공하느냐, 각 edge node의 네트워크 대역폭이나 용량은 충분하느냐가 서비스의 품질을 결정하는데, 세계적으로 Akamai와 Limelight 등의 업체가 유명하다.아마존의 경..

Amazon Route 53 DNS 서비스

Amazon Route 53 DNS 서비스조대협Route53은 아마존에서 제공하는 DNS 서비스 이다. 일반 DNS와 다르게 몇 가지 아마존에 특성화된 몇 가지 기능을 가지고 있는데, 특화 기능에 앞서서 DNS 의 일반 개념을 먼저 정리해 보자.DNS는 domain name (www.example.com)을 ip 주소로 바꿔 주는 일종의 dictionary 서비스 이다.이러한 맵핑 정보를 저장해 놓는 파일을 DNS Zone file이라고 한다. 이 서비스는 DNS 서버에 저장해놓은 파일을 기반으로 주소를 변환하는데, 여기에 정의되는 레코드들 중에서 대표적은 레코드는 다음과 같다. ① SOA 레코드 : 해당 DNS 서버 자체의 설정 정보를 정의 한다.Ÿ DNS 서버는 Primary/Secondary 구조로..

Amazon Elastic Load Balancer

Elastic Load Balancer 조대협ELB는 아마존에서 제공하는 일종의 L4와 같은 로드 밸런서이다. 내부적으로 VM위에서 동작하는 소프트웨어 로드밸런서이고, 아마존 환경에 맞춰서 최적화 되어 있다. Multiple zone supportELB는 기본적으로 multiple zone을 지원한다. ELB 생성시, ELB를 배포할 Amazon Availability Zone을 지정할 수 있다. 여러 개의 zone에 multiple ELB instance가 배포 되기 때문에 ELB 인스턴스는 기본적으로 ip 주소를 가지지 않는다. 대신 DNS 주소를 가지는데, 테스트를 해보면 알겠지만, ELB의 DNS 주소는 경우에 따라서 1개 이상의 주소를 리턴하게 된다.이는 multiple zone을 지원하기 위해..