분류 전체보기 1291

VM 이미지 생성을 위한 오픈소스 Packer

Packer 조대협 (http://bcho.tistory.com) Packer (https://www.packer.io/) 는 HashiCorp에서 개발한 가상 머신 이미지를 만들어주는 오픈소스이다. 예를 들어서, 아마존 클라우드 AMI이미지나, 구글 클라우드 이미지를 스크립트를 이용하여 생성이 가능하다.하나의 스크립트를 이용하여, 구글 클라우드, VMWare, 아마존 클라우드 등 여러 클라우드 환경 (가상화 환경)과 컨테이너 엔진용 이미지를 생성할 수 있다. Chef,Puppet,Ansible과 같은 Configuration management 툴과 혼동이 될 수 있지만, Packer는 OS 이미지를 만들어주는 역할을 하고, Configuration management 툴들은 이렇게 만들어진 이미지 위..

Phoenix (피닉스) 서버 패턴

피닉스 서버조대협 (http://bcho.tistory.com) 근래에 들어서 인프라 스트럭쳐를 소프트웨어로 정의하는 Infrastructure As a Code (줄여서 IaC라고 부름)를 관심있게 보고 있는데, CI/CD의 단순 연장선상의 하나의 툴링정도로 생각했는데, 생각보다 상당히 넓은 생태계라서 좀더 깊게 보고 있다. IaC는 일반적인 툴이나 단순한 프로세스가 아니라 하나의 사상이기 때문에 이를 제대로 이해하기 위해서는 툴링 관점의 접근 보다는 사상과 배경에 대해서 제대로 이해할 필요가 있다. IaC 개념을 이해하는데 도움이 되는 개념으로 Snowflakes Server (스노우플레이크 서버)와 Phoenix Server(피닉스 서버) 두 가지 개념에 대해서 알아볼 필요가 있다.Snowflake..

K Fold Cross Validation

K Fold Cross Validation 조대협 (http://bcho.tistory.com) K 폴드 크로스 벨리데이션 / 교차 검증이라고도 함. 용어 정리.별거 있는건 아니고 전체 데이타를 K개로 나눈다음. (각각을 폴드라고함), 첫번째 학습에서는 첫번째 폴드를 테스트 데이타로 쓰고두번째 학습에서는 두번째 폴드를 테스트 데이타로 쓰고N번째 학습에서는 N번째 폴드를 테스트 데이타로 쓴다. (출처 : http://library.bayesia.com/pages/viewpage.action?pageId=16319010) 그래서 폴드가 5개면 5 Fold CV (Cross validation)이라고 한다.

Apache Beam (Dataflow)를 이용하여, 이미지 파일을 tfrecord로 컨버팅 하기

Apache Beam (Dataflow)를 이용하여, 이미지 파일을 tfrecord로 컨버팅 하기 조대협 (http://bcho.tistory.com) 개요텐서플로우 학습에 있어서 데이타 포맷은 학습의 성능을 결정 짓는 중요한 요인중의 하나이다. 특히 이미지 파일의 경우 이미지 목록과 이미지 파일이 분리되어 있어서 텐서플로우에서 학습시 이미지 목록을 읽으면서, 거기에 있는 이미지 파일을 매번 읽어야 하기 때문에, 코딩이 다소 지저분해지고,IO 성능이 떨어질 수 있다텐서플로우에서는 이러한 학습 데이타를 쉽게 읽을 수 있도록 tfrecord (http://bcho.tistory.com/1190)라는 파일 포맷을 지원한다. 이 글에서는 이미지 데이타를 읽어서 tfrecord 로 컨버팅하는 방법을 설명하며, 분..

NMF 알고리즘을 이용한 유사 문서 검색과 구현(2/2)

NMF 알고리즘을 이용한 유사 문서 검색과 구현(2/2)sklearn을 이용한 구현 조대협 (http://bcho.tistory.com) http://bcho.tistory.com/1216 를 통하여 tf-idf를 이용하여 문서를 벡터화 하고, nmf를 이용하여 문서의 특성을 추출한 다음, 코싸인 유사도를 이용하여 유사 문서를 검색하는 알고리즘에 대해서 알아보았다. 이번글에서는 이 알고리즘을 직접 sklearn을 이용해서 구현해보도록 하자. sklearn은 이용하면 분산 학습을 이용한 대규모 데이타 처리는 불가능하지만, 작은 수의 문서나 모델에는 사용이 가능하다. 무엇보다 sklearn의 경우 대부분의 모델을 라이브러리화 해놓았기 때문에, 복잡한 구현이 없이 쉽게 사용이 가능하다. 전체 소스 코드는 ht..

HBase와 구글의 빅테이블 #2 - 설치 및 기본 사용 방법

HBase와 구글의 빅테이블#2 설치와 기본 사용 방법 조대협 (http://bcho.tistory.com)HBase 설치HBase를 개발 또는 운영환경에서 사용하기 위해서는 직접 HBase를 다운 받아서 설치하거나 또는 구글 클라우드의 빅테이블을 사용하면 된다 각각 설치 방법은 다음과 같다. 로컬 환경에 HBase 설치하기설치 방법은 https://hbase.apache.org/book.html#quickstart 를 참고하도록 한다. 운영 환경용은 주키퍼등 여러 환경 설치가 뒤따라야 하기 때문에 여기서는 자세하게 설명하지 않는다. $JAVA_HOME 환경 변수를 설정한 후에, HBase를 다운로드 받고, 압축을 푼다.다음 ./bin/start-hbase.sh 을 수행하면 Hbase를 가동할 수 있다...

HBase와 구글의 빅테이블 #1 - 아키텍쳐

HBase 와 구글의 빅테이블#1 아키텍쳐 조대협 (http://bcho.tistory.com)HBaseHBase 는 아파치 오픈소스 NoSQL 솔루션으로 구글의 빅테이블 (https://research.google.com/archive/bigtable.html) 논문을 기반으로 개발되었다.Key/Value Store 기반의 NoSQL이며, 대용량 데이타를 빠르게 처리할 수 있는 기능을 가지고 있다. 데이타 모델HBase는 컬럼 패밀리라는 데이타 모델을 사용하는데, 대략적인 구조를 보면 다음과 같다.각 행은 하나의 로우키(rowkey)를 가지고 있다. 이 키는 RDBMS의 프라이머리 키와 같은 키라고 보면 된다. 각각의 행에는 컬럼이 정의되어 있는데, RDBMS 테이블의 일반 컬럼과 같은 개념이라고 보면..

NMF 알고리즘을 이용한 유사한 문서 검색과 구현(1/2)

NMF 알고리즘을 이용한 유사한 문서 검색과 구현(1/2) 조대협 (http://bcho.tistory.com) 앞의 글들에서, 데이타의 특징을 뽑아내는 방법으로 차원 감소 (Dimension reduction) 기법에 대해서 설명하였다. 구체적인 알고리즘으로는 PCA와 t-SNE 알고리즘을 소개하였는데, 오늘은 차원 감소 기법중의 하나인 행렬 인수분해 (Matrix Factorization)에 대해서 알아보고자 한다.문서 유사도 검색행렬 인수 분해를 설명하기 위해서 유사한 문서를 찾는 시나리오를 예를 들어서 설명하겠다.문서 유사도 검색의 원리는 다음과 같다 문서에 나온 각 단어들을 숫자(벡터)로 변환하여 행렬화 한다.행렬화된 문서에서 차원 감소 기법을 이용하여, 문서의 특징을 추출한다.추출된 특징을 기..

구글 스택드라이버를 이용한 애플리케이션 로그 모니터링

구글 스택드라이버를 이용한 애플리케이션 로그 모니터링조대협 (http://bcho.tistory.com)스택드라이버 소개스택드라이버는 구글 클라우드에서 서비스로 제공되는 시스템 로그 및 모니터링 시스템이다. CPU,메모리사용량과 같은 하드웨어에 대한 정보에서 부터 웹서버나 OS와 같은 미들웨어 및 애플리케이션 로그를 수집, 검색 및 분석할 수 있으며, 여러 오픈 소스 (MongoDB, CouchDB, Redis - https://cloud.google.com/monitoring/agent/plugins/ )등에 대한 모니터링도 가능하다. 구글 클라우드 뿐 아니라, AWS에 대한 모니터링을 통합으로 지원하는 등, 상당히 많은 기능을 가지고 있다.이 글에서는 스택드라이버를 이용하여 애플리케이션 로그를 수집하..