어떤 일을 정의해야 하는가

회사에서 해야할일을 정의했다면
구성원들은 그 일을 어떻게 잘할 수 있을까 고민한다.
만약 하지 말아야할 일만 정의했다면
그 경계안에서 어떤 일을 할지를 고민할 수 있다.

전자는 일의 방향은 명확해도 다양성이 발현되기 어려운 환경을 만든다.
반면에 후자는 창의적인 사람이 다양한 시도를 할수 있게 해준다.

이런 논리는 회사가 아니라 가정,사회도 마찬가지다.

– 전략을 보는 생각 중에서 –

메이커스 마인드

만들고 싶은것이 서비스던 모바일앱이던간에

내가 쓴다고 생각하고 만들어야 한다.

아무도 사용하지 않으면 어떻하지 하는 걱정이 든다면 만들지 마라.

만드는것 자체가 재미있고 얼른 만들어서 (내가) 사용해야지 하는 마음이 들어야 한다.

2015년을 마무리하면서

2015년도 이제 얼마 안남았네요. 한해를 마무리 하면서 다짐해 봅니다.

  • 시간이 흘러도 잊지 말아야 하는건 기억하겠습니다.
  • 어디에 있든 자리보다 역할에 충실하겠습니다.
  • 나이먹은 꼰대가 아니라 주변 사람을 챙길줄 아는 사람이 되겠습니다.
  • 안주하지 않고 새로운 도전을 즐기겠습니다.
  • 행복한 인생이 무엇인지 고민하겠습니다.
  • 사회를 위해 꼭 필요하고 의미있는 일을 하고 있는지 생각하겠습니다.
  • 돈을 낭비하지 않겠습니다.

2016년이 기대되네요. 어서오게나.

도커로 ELK 서버 구축하기

도커를 이용해서 ELK 서버를 간단하게 구축할수 있도록 구성해 봤다.직접 해보고 싶다면 로컬에 DockerToolbox를 설치한다.

docker-machine으로 elkr 노드를 추가한다.

elkr 노드에 docker-compose를 설치한다.

필요한 설정파일을 클론한다.

docker-compose로 ElasticSearch,Kiban,Redis,Nginx,Logstash 컨테이너를 추가한다.

 

elkr을 테스트해 볼 준비가 끝났다.

simple-elk-ps

ngix 서버에 접속하면 kibana로 로그가 유입된다. 확인해 보자.

elkr노드 ip를 확인한다.

브라우저로 nginx에 접속한다. 요청을 몇번 보낸다.

kibana로 접속해서 확인한다.

비형식 컨퍼런스

 

평소 비형식 컨퍼런스, 열린 모임에 관심이 많습니다. 이런 모임에는 어떤 것들이 있을까요.

277336264_329ae71dd9.jpg

바캠프((Bar Camp)
자발적인 참여를 기반으로 하는 비형식 컨퍼런스
열린 환경에서 서로 배우고 공유하기 위해 만들어 졌으며 심도있는 토론과 상호 교류, 데모 등이 이루어 진다. 모든 참가자들이 발표하고 청중으로 참여하는데 당일 참여자들에게서 주제를 수집하고 공지하면 청중들이 자유롭게 이동하면 원하는 주제를 듣는다. (출처: BarCamp Seoul, BarCamp)
사례: UX Camp Seoul

푸캠프(Foo Camp)
오렐리에서 매년 여는 해커들의 이벤트
미리 초청자 명단을 정하고 이들이 모두 참여할 수 있는 일정을 화이트 보드에 썼다 지웠다를 반목하며 정하는데서 위키 컨퍼런스라고도 부름. 새로운 기술을 알고자 하는 사람들간에 교류를 높히기 위해 시작함.
(출처: Foo Camp – Wikipedia)

shr_howtogather-o_ia47f109fc-6.gif

OST(Open Space Technology)
사전에 모임의 상세한 진행이나 발표자를 정하지 않은채 특정 주제나 목적만을 갖고 진행하는 참여 주도형 모임. 적게는 5명에서 많게는 2000명까지 가능하다. 주관자는 모임의 목적을 공지하고, 참여자들이 스스로 세션을 개최한다.(앞에 있는 보드에 세션을 적는데 이 보드를 ‘Market’이라 부름)
세션별로 둥그렇게 모여 토론을 진행하는데, 참여자들은 자유롭게 세션들을 돌아다니며 중간에 새로운 세션이 열리기도 하고 진행되던 세션이 닫히기도 한다. 이런 OST의 특징을 ‘주체적 이동의 법칙 The Row of Two Feet’이라 부른다.(출처: Open Space Technology-Wikipidia, 오픈스페이스란?)

대안 언어 축제
다양한 프로그래밍 언어와 관련 기술을 통해 개발자들의 사고와 문제 해결 방식의 지평을 넓히기 위해 발표자와 참여자가 상호 교류하는 축제형식의 컨퍼런스(출처: P-Camp & 대안언어축제 2008)

P-Camp
같은 가치를 추구하지만 상호 이질적인 도메인들간에 커뮤니케이션 통로를 확보하자는 차원에서 기획된 모임으로 IT 개발환경 개선을 지향한다.(출처: P-Camp)

Ignite
오렐리 후원으로 시애틀에서 처음 시작. 발표자는 20장의 슬라이드가 15초 간격으로 자동으로 넘어가는 5분동안 발표를 진행한다. 자유로운 주제를 가지고 전문가가 아닌 일반사람이 참여하는데, 발표자료 역시 글 보다는 그림, 사진, 메시지 위주가 된다.(출처: Ignite-Wikipidia, Ignite Seoul Intro)

페차쿠차(Pecha Kucha Night)
영국출신 건축가 부부가 여행사진을 친구들과 나눠 보고 싶다는 동기에서 처음 시작.
페차쿠차라는 이름은 재잘재잘 이라는 일본어에서 유래했다. 건축, 아트, 디자인에 대한 주제를 다루는데 발표는 20장의 슬라이드를 20초 간격으로 자동으로 넘기면서 6분 40초동안 진행된다. 이를 ’20-20’의 규칙이라 부름.(출처: W-Korea 6월,)

LETS
LETS는 Local, Energy, Trading, System의 약자로 지창공에서 발제하여 퍼져나가고 있는 행사입니다. 새로운 사람들이 만나서 자기가 알고 있는것을 알려주고, 배우고, 소통하자는게 LETS의 슬로건입니다.

비형식 컨퍼런스는 아니지만 알아두면 유용한 컨퍼런스 링크를 몇개 추가합니다.

  • TED: http://www.ted.com/
  • lift: http://liftconference.com/
  • InfoQ: http://www.infoq.com/

제가 아는 것은 여기까지 입니다. 다른 형태를 추가하고 싶으신 분은 댓글 부탁드립니다.

컨테이너 시간 맞추기

도커 호스트 시간과 컨테이너 시간이 맞지 않는 이슈가 있다. 먼저 컨테이너 시간을 확인해 보자.
[code lang=”perl”]
sudo docker run -it busybox date
[/code]

결과는 아래와 같다.
Thu Dec 3 10:21:14 UTC 2015

이제 호스트 타임존을 서울로 맞추자.
[code lang=”perl”]
$ sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
$ cat /etc/localtime
[/code]

이제 로컬타임을 넣어서 다시 컨테이너 시간을 확인해 보자.
[code lang=”perl”]
$ sudo docker run -v /etc/localtime:/etc/localtime:ro -it busybox date
[/code]

아래와 같이 시간이 제대로 나오는걸 확인할 수 있다.
Thu Dec 3 19:26:44 KST 2015

컨테이너에 ssh를 허락하지 마라

Docker 컨테이너를 만들면서 sshd 서버를 실행하게 되면 ssh로 컨테이너 내부에 접속할수 있습니다. 하지만 이런 접속을 허용하게 되면 다음과 같은 이슈가 생길수 있습니다.

  • ssh 키와 패스워드 관리가 어렵다.

컨테이너가 사용할  ssh 키와 패스워드는 어디에 보관해야 할까요. 이미지에 넣어서 빌드한다면 매번 새로운 ssh키와 패스워드를 만들어서 넣어줘야 안전합니다. 공용 이미지를 사용한다면 컨테이너 실행할때마다 새로운 키와 패스워드를 넣어야 합니다. 볼륨을 활용하는 방안도 생각할 수 있습니다. 이 경우 컨테이너는 볼륨을 읽기만 가능하도록 제한해야 합니다. 만약 여러 컨테이너가 함께 키와 패스워드를 공유할수도 있지만 이경우 외부에 정보가 유출되면 피해가 커질수 있어서 유의해야 합니다.

  • ssh 이슈가 발생하면 업그레이드해야 합니다.

ssh가 안정하다고 해도 종종 이슈가 발생하곤 합니다. 이 경우 실행중인 컨테이너를 업그레이드 해야 합니다.

  • ssh 서버를 실행하기 위한 프로세스 매니저도 필요합니다.

sshd만 필요한게 아니죠. Monit이나 Supervisor 같은 프로세스 매니저도 같이 설치해야 합니다. 컨테이너는 VM이 아니라 프로세스에 가깝습니다. Docker 데몬이 이 프로세스를 감시하는데 그 안에 또 하나의 프로세스 매니저가 실행되면 이제 복잡해 집니다.

  • 컨테이너는 Pet이 아니라 Cattle 입니다.

컨테이너는 이미지만 있다면 언제든지 동일한 컨테이너를 실행할 수 있어야 합니다. 컨테이너를 실행하고 ssh를 통해 직접 설정을 수정하면 이런 식의 스케일 아웃이 불가능합니다. 동일한 이미지를 이용해 만드는 컨테이너가 다양한 설정이 필요하다면 컨테이너를 실행할때 설정파일을 바꿀수 있도록 이미지를 만들어야 합니다. 외부에서 설정파일을 바꾸기 어려운 경우라면 이미지를 다양하게 만들수 있습니다.

ssh를 제공하지 않으면 컨테이너 사용자가 어떤 점을 불편해 할까요

  1. 데이터 백업
  2. 로그 확인
  3. 어플리케이션 재시작
  4. 설정 변경
  5. 디버깅

ssh 접근을 제한하는 대신 이런 작업을 외부에서 할수 있도록 해결책을 제시해야 합니다. 1번,2번은 볼륨을 이용해서 컨테이너 외부로 데이터를 보관하면 간단히 해결할 수 있습니다. 3번은 도커가 제공하는 api나 명령어(restart, kill) 이용하면 외부에서 컨테이너 재시작이 가능합니다. 4번도 볼륨으로 해결할수 있지만 제약이 따를수 있습니다. 사실 설정을 바꾸기보다는 새로운 설정을 가진 컨테이너를 만드는게 더 쉽고 용이합니다. 마지막 5번은 좀 어렵습니다. 한가지 해결책은 도커 명령어중 exec를 이용해 컨테이너에 attach 하는겁니다. 이 경우 이미지에 따라 기존에 실행되던 프로세스가 종료되어 사용할수 없기도 합니다. nsenter를 활용할수도 있다고 하는데 저는 아직 사용해 본적이 없습니다.

참고자료

https://jpetazzo.github.io/2014/06/23/docker-ssh-considered-evil/

 

 

워드프레스 맥앱

WordPress.com에서 제공하는 맥용 앱을 설치하면 워드프레스 사이트에 들어가지 않아도 편하게 글을 작성해서 발행할 수 있습니다. 워드프레스 서비스를 이용하는 사람이 아니라 저처럼 설치해서 쓰는 사람도 사용할수 있는데요.

  • 맥용 워드프레스 앱을 설치한다.
  • 워드프레스 플러그인 Jetpack을 설치한다.
  • Jetpack을 활성화하고
  • Jetpack과 WordPress.com 계정을 연동한다.

Jetpack과 WordPress.com 계정 연동이 완료되면 맥용 워드프레스 앱에서 해당하는 블로그를 선택할 수 있습니다.

참고자료: https://jetpack.me/support/site-management/#manage

 

 

진짜는 귀하다

돈 생기면 성형하지 말고 좋은 공연을 보고 콘서트장에 가라.
외형적인 데 말고 나의 내면을 업그레이드하는 데 돈을 썼으면 좋겠다.
진짜는 귀하다. 흔하지 않다.
내가 나를 귀하게 만들어야겠다는 자존심이 있어야 한다.
나는 예술가다.
나는 배우다.
남이 알아주기 전에 내가 날 그렇게 만들어야 한다.

– 배우 최민식,인터뷰 중에서 –

내가 정말 하고 싶은 일을 하고 있는건지 모르겠네요. 진짜가 되려면 그래야 할거 같은데.