MicroService 4

Consul & Registrator

consul cluster 구성하기1. consul 설치$ wget https://releases.hashicorp.com/consul/0.7.0/consul_0.7.0_linux_amd64.zip$ unzip consul_0.7.0_linux_amd64.zip$ sudo cp consul /usr/local/bin 2. consul server 실행 (@instance1) * -bind에는 실행 중인 인스턴스의 IP를 적는다.$ consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -node=agent1 -bind=172.31.4.225 3. consul client 실행 (@instance2) * -bind에는 실행 중인 인스턴스의 IP를 적..

MicroService 2016.10.05

CoreOS fleet unit 작성 및 실행

fleet은 systemd를 클러스터 레벨에서 제어하는 클러스터 매니저입니다. 클러스터 내에서 서비스를 실행하기 위해서는 먼저 systemd unit을 submit 해야합니다.Unit file 작성Redis 컨테이너를 실행하는 Unit file을 작성합니다. 이 때 docker 명령문에서 -d 옵션을 사용하지 않도록 주의해야 합니다. -d 옵션으로 인해 컨테이너가 detached 되면 unit이 종료되기 때문입니다. /etc/systemd/system/redis@.service[Unit] Description=Redis After=docker.service Requires=docker.service [Service] TimeoutStartSec=0 ExecStartPre=-/usr/bin/docker k..

MicroService 2016.08.12

CoreOS etcd 클러스터 구축하기

오늘은 CoreOS cluster architecutres 문서에 기술된 Production cluster with central services를 구축해보려고 합니다. 큰 규모의 서비스를 운영해야하는 경우 이 아키텍쳐를 사용하는 것이 좋습니다. 3~5개의 머신으로 etcd 클러스터를 별도로 구성하고 Worker 머신에는 etcd를 Proxy로 실행시키는 방식입니다. 그러면 Worker는 etcd proxy를 통해 Central Services의 etcd를 사용할 수 있습니다. etcd Proxy는 etcd 클러스터의 write 성능에 아무런 영향을 끼치지 않는다고 하네요. Security Group 생성Security Group을 하나 생성합니다. 저는 SSH 접속을 위해 22번 포트를 열었고, etc..

MicroService 2016.08.11

CoreOS etcd cluster 사이즈 변경하기

CoreOS 설치Document를 보고 AWS EC2 환경에 CoreOS 클러스터를 구축하였습니다. CloudFormation으로 구축하니 클릭 몇번으로 환경이 구성되어 굉장히 편리하네요. 각 인스턴스의 UserData는 아래와 같이 구성되었습니다. 만약 UserData를 변경하고 싶다면 인스턴스를 Stop한 경우에만 가능하다고 하네요. Cluster 사이즈 변경etcd의 discovery값은 etcd 클러스터 개수에 기반하여 생성된 값입니다. 그렇다면 etcd 클러스터 사이즈를 늘리기 위해서는 인스턴스들을 정지시키고 User Data를 모두 변경해줘야 할까요? Document를 조금 더 읽어보니 etcdctl 명령어를 사용하면 downtime없이 클러스터를 추가하거나 삭제하는 것이 가능하다고 하네요. ..

MicroService 2016.08.10