[vagrant] vagrantfile 활용한 가상머신 N대를 한번에 생성하기

 

l  Vagrant

 

Vagrant(베이그랜트) Hashicorp(하시코프)에서 개발한 가상머신 관리를 자동화 도구로 루비 기반의 DSL 작성할 있으며, 가상머신 생성 관리, 환경 구축을 위한 프로비저닝까지 관리할 있다. 이번 포트스에서는 vagrant에서 가상머신을 생성할 참고하는 vagrantfile 대해서 알아본다.

 

l  vagrant 활용한 개발 환경 구축하기 : https://sungwookkang.com/1523

l  vagrant 가상머신 생성하기 : https://sungwookkang.com/1524

 

vagrantfile vagrant init 명령을 실행하면 생성되는 설정 파일이다. 물론 init 명령이 아닌 사용자가 수동으로 직접 파일을 생성하여 사용할 수도 있다. Vagrantfile 가상머신의 이미지 종류, IP할당, 공용 폴더 설정, NAT 설정 다양한 정보를 가지고 있다.  이렇게 생성된 파일은 vagrant up 명령을 실행할 로드되어 설정된 값으로 가상머신을 생성하게 된다.    

 

아래 코드는 vagrantfile 설정의 예시로 기초적인 명령어를 작성한 것이다. 예제에 포함된 설정 외에도 다양한 환경변수를 지원한다.

Vagrant.configure("2") do |config|
    config.vm.define "vm-name" do |cfg|
        cfg.vm.box = "generic/centos8"
        cfg.vm.hostname = "centos8"
        cfg.vm.network "private_network", ip: "192.168.1.10"
        cfg.vm.network "forwarded_port", guest: 22, host:19000, auto_correct: false, id "ssh"
        cfg.vm.synced_folder ".", "/vagrant", disabled: true
        cfg.vm.provider "virtualbox" do |vb|
            vb.name = "vm-name"
            vb.cpus = 2
            vb.memory = 2048
        end
    end
end

 

 

l  Vagrant.configure("2") do |config| : vagrant Version

l  config.vm.define "vm-name" do |cfg| : vagrant에서 정의한 가상머신 이름. Vagrant ssh에서 사용

l  cfg.vm.box = "generic/centos8" : vagrant box에서 다운로드 실행할 이미지 이름

l  cfg.vm.hostname = "centos8" : OS에서 설정될 호스트 서버 이름

l  cfg.vm.network "private_network", ip: "192.168.1.10" : 가상머신에 할당할 NAT 선택(public_network, private_netwrok), IP 입력하지 않을 경우 DHCP 동작.

l  cfg.vm.network "forwarded_port", guest: 22, host:19000, auto_correct: false, id "ssh" : 호스트의 19000 포트로 접속시 가상머신의 22 포트로 포워딩

l  cfg.vm.synced_folder ".", "/vagrant", disabled: true : 호스트와 가상머신의 공유 폴더 설정

l  cfg.vm.provider "virtualbox" do |vb| : virtualbox provider 지정

l  vb.name = "vm-name" : virtualbox에서 보여지는 가상머신 이름

l  vb.cpus = 2 : 가상머신에 할당될 CPU 코어

l  vb.memory = 2048 : 가상머신에 할당될 메모리 크기. 단위는 MB.

 

Vargrant up 명령으로 동시에 2 이상의 가상머신을 생성하려면 vagrantfile 파일에 생성하려는 서버 설정을 모두 입력하여 사용한다. 아래 예제는 동시에 3대의 가상머신을 생성한다.

Vagrant.configure("2") do |config|
    #vm1
    config.vm.define "vm-1" do |cfg|
        cfg.vm.box = "generic/centos8"
        cfg.vm.hostname = "vm1-centos8"
        cfg.vm.provider "virtualbox" do |vb|
            vb.name = "vm-1"
            vb.cpus = 2
            vb.memory = 2048
        end
    end
 
    #vm2
    config.vm.define "vm-2" do |cfg|
        cfg.vm.box = "generic/centos8"
        cfg.vm.hostname = "vm2-centos8"
        cfg.vm.provider "virtualbox" do |vb|
            vb.name = "vm-2"
            vb.cpus = 2
            vb.memory = 2048
        end
    end
 
    #vm3
    config.vm.define "vm-3" do |cfg|
        cfg.vm.box = "generic/centos8"
        cfg.vm.hostname = "vm3-centos8"
        cfg.vm.provider "virtualbox" do |vb|
            vb.name = "vm-3"
            vb.cpus = 2
            vb.memory = 2048
        end
    end
end
 

 

Vagrant up 명령으로 가상머신이 생성할 있으며, vagrantfile 설정대로 3대의 가상머신이 생성되는 것을 확인할 있다.

 

Virtualbox에서도 3대의 가상머신이 정상적으로 생성된 것을 확인할 있다.

 

 

개발환경을 구성할 이와 같이 스크립트로 생성할 있도록 구성하고 관리하면 매번 환경을 세팅할 때마다 투입되는 시간 리소스 절약할 있다. 그리고 가장 중요한 것은 동일한 환경을 다시 구성할 있기 때문에 매번 구성때마다 환경 바뀜으로 인한 여러가지 장애상황을 예방할 있다.

 

Vagrantfile 대한 자세한 옵션은 공식 문서를 참고 있도록 한다.

l   Vagrantfile : https://developer.hashicorp.com/vagrant/docs/vagrantfile

 

 

[참고자료]

l   Vagrantfile : https://developer.hashicorp.com/vagrant/docs/vagrantfile

 

 

 

2023-07-02 / Sungwook Kang / https://sungwookkang.com

 

 

Vagrant, 베이그랜트, 개발환경구성, 가상머신, vagrantfile, 베이그랜트 설정, 가상머신생성, virtualbox

[vagrant] vagrant 가상머신 생성하기

 

l  Vagrant

 

Vagrant(베이그랜트) Hashicorp(하시코프)에서 개발한 가상머신 관리를 자동화 도구로 루비 기반의 DSL 작성할 있으며, 가상머신 생성 관리, 환경 구축을 위한 프로비저닝까지 관리할 있다.

 

l  vagrant 활용한 개발 환경 구축하기 : https://sungwookkang.com/1523

 

이번 포트스에서는 vagrant 가상머신을 생성하는 방법을 설명한다. Vagrant 사용자가 수작업으로 진행하는 작업을 설정 파일을 통해서 자동으로 생성 관리를 도와주는 도구이지 vagrant 자체가 가상머신의 역할을 하는 것은 아니다. 따라서 Vagrant 사용하여 가상머신을 생성하기 위해서는 Virtualbox Hyper-V, parallels같은 가상머신 툴이 설치가 되어 있어야 한다. 가상머신 설치에 대한 내용은 이미 다른 정보가 많기 때문에 여기에서 다루지 않는다.

 

Vagrant 가상머신을 만들기 위해서는 사용할 box 추가해야 한다. Box 가상머신을 생성할 OS 대한 이미지와 OS 포함될 다양한 소프트웨어들을 포함한 패키지이다. 우선 box 추가하기 전에 어떤 이미지들이 제공되는지 box 사용할 주소를 확인하기 위해 아래 사이트에 접속하여 목록을 확인할 있다

l  HashiCorp 공식 box : https://app.vagrantup.com/boxes/search

 

 

 

이번 포스트에서는 Centos 설치하기 때문에 Centos 검색하여 Centos 8  정보를 확인한다. Box추가에 사용할 파라메터 이름을 확인할 있다.

 

Vagrant box 등록하는 방법은 box add 라는 명령을 사용한다. 위에서 확인한 경로를 사용하여 Centos8 box 등록한다. 등록과정에서 어떤 플랫폼의 box 사용할 것인지 선택하는 단계가 있으며 각자의 플랫폼에 맞는 박스 타입을 선택하면 된다. 이번 포스트에서는 virtualbox 사용하였다. 박스를 등록하면 가상머신 생성에 필요한 이미지를 다운로드 받는다.

vagrant box add generic/centos8

 

 

현재 등록되어 있는 박스의 목록을 확인하기 위해서는 box list 명령을 사용한다.

vagrant box list

 

 

등록된 박스 삭제는 box remove 명령을 사용한다.

vagrant box remove generic/centos8

 

 

가상머신을 생성할 디렉터리로 이동하여 가상머신 설정 파일을 생성한다, init 명령을 사용하며, 이때 파라메터 값으로 박스 이름을 입력한다. 이니셜 작업이 완성되면 Vagrantfile이라는 파일이 생성된 것을 확인할 있다.

vagrant init generic/centos8

 

 

설정파일을 살펴보면 현재 박스의 이미지 정보를 확인할 있다. 아래는 주석을 제외한 내용이다.

Vagrant.configure(“2”) do |config|
config.vm.box = “generic/centos8”

 

 

 

가상머신을 생성하기 위해서는 up 명령을 사용한다. 명령을 실행하면 다운로드 받은 이미지를 사용하여 가상머신이 생성된다.

vagrant up

 

 

 

Virtualbox에서도 가상머신이 생성되는 것을 확인할 있다.

 

생성한 가상머신에 접속하기 위해서는  ssh 명령을 사용하여 접속 한다.

vagrant ssh

 

 

Vagrant 생성한 가상머신을 중지하려면 halt 명령을 사용한다.

Vagrant halt

 

Vagrant 생성한 가상머신을 삭제하려면 destroy 명령을 사용한다. 가상머신을 삭제하려면 선행작업으로 가상머신을 중지해야 한다.

Vagrant destroy

 

 

지금까지 vagrant 활용하여 가상머신을 생성하는 방법에 대해서 알아보았다. 현재는 기본설정으로 가상머신을 생성하였지만, 각자 개발환경을 커스텀 환경으로 구성하기 위해서는 vagrantfile 수정하여 사용할 있다. 환경설정 파일에 대한 수정은 다른 포스트에서 다룰 예정이다.

 

2023-07-01 / Sungwook Kang / https://sungwookkang.com

 

 

Vagrant, 베이그랜트, 개발환경구성, 가상머신

[vagrant] vagrant 활용한 개발 환경 구축하기

 

l  Vagrant  with mac brew install

 

Vagrant(베이그랜트) Hashicorp(하시코프)에서 개발한 가상머신 관리를 자동화 도구로 루비 기반의 DSL 작성할 있으며, 가상머신 생성 관리, 환경 구축을 위한 프로비저닝까지 관리할 있다. 또한 가상 환경에 대한 설정을 관리할 있어 동일한 환경을 구성할 있다. 이번 포스트에서는 MAC 환경에서 vagrant 설치하는 방법에 대해서 알아본다.

 

[Homebrew 설치하기]

Homebrew vagrant 설치하는 방법은 매우 간단하다. Homebrew 명령어 하나로 쉽게 설치 삭제가 가능하다. 설치 과정에서 현재 사용자의 암호를 입력해야 한다.

brew install vagrant

 

 

정상적으로 설치가 왼료되었으면, --version 옵션을 사용하여 설치된 vagrant 버전을 확인할 있다. vagrant 설치된 디렉터리 위치를 확인하려면 whitch 명령을 사용한다.

vagrant –version
which vagrant

 

 

Homebrew 설치한 vagrant 삭제는 아래 명령어를 사용하면 된다.

brew uninstall vagrant

 

 

[Vagrant 공식사이트에서 다운로드]

Hashicorp 공식 사이트에서 vagrant 다운로드 받아 설치 있다.

l  https://www.vagrantup.com/

 

플랫폼에 맞는 버전을 다운로드 받아 설치하여 사용한다.

 

 

 

2023-06-30 / Sungwook Kang / https://sungwookkang.com

 

 

Vagrant, 베이그랜트, 개발환경구성, 가상머신

Split Brain

 

스플릿 브레인 (Split Brain) 클러스터로 구성된 시스템간의 네트워크가 일시적으로 동시에 단절되거나 기타 시스템상의 이유로, 클러스터 상의 모든 노드들이 각자 자신이 Primary라고 인식하게 되는 상황을 뜻한다.  관제 시스템에 의해 하트비트(Heartbeat)등으로 Alive 유무가 체크되는 서비스가 있다고 가정했을때, 하트비트 통신이 단절되어 서비스 클러스터가 장애 상태라고 인식하고 서비스를 동시에 구동하는 경우, 또는 독립적인 개의 시스템이 비정상적으로 구성되어 서로가 Primary라고 믿게되는 현상을 모두 포함한다.

스플릿 브레인 현상이 발생하면, 노드가 동시에 Primary 되면서 이중 가동 현상이 발생한다. 이렇게 이중으로 가동되면서 노드들은 동시에 스토리지에 접근하기 때문에 데이터 동기화 복제에 비정상 적인 트랜잭션이 발생할 있으며, 예상하지 못한 다양한 문제로 전체 서비스가 불능 상태에 빠질 있다.

일반적으로 LB 중심으로 구성되어 특정 노드에 장애가 발생했을때 HA 제공하도록 구성된 토폴로지라면 스플릿 브레인 현상은 발생하지 않는다.  외에도 스플릿 브레인 현상을 방지하기 위해서는 노드에 구성된 쿼럼(Quorum) 홀수로 구성해 과반수 투표를 진행하거나 하트비트 네트워크를 서비스 네트워크와 통합하여 일관성을 유지할 있도록 한다.

 

Split Brain 대해서 설명된 글이 있으니 조금더 자세히 알고 싶으면 아래 링크를 참고 한다.

·       Split Brain - MariaDB Galera Cluster Case : https://bryan.wiki/290

 

 

2021-04-22 / Sungwook Kang / http://sungwookkang.com

 

Split Brain, 스플릿 브레인, 클러스터 단절, 클러스터 장애

B-tree vs Log-Structured Merge-Tree

 

데이터베이스에서 일반적으로 많이 사용되는 데이터 구조는 B-Tree LSM(Log-Structured Merged-Tree)이다.

B-Tree

B-Tree 데이터베이스에 널리사용되며, B-Tree 인덱싱 구조를 사용하면 데이터가 고정 크기 페이지 세그먼트로 디스크에 기록된다. 이러한 페이지 세그먼트의 크기느 4KB (DMBS마다 다를 있음) 이며 키별로 정렬된 Key-Value 가지고 있다. 단일 B-Tree노드는 페이지 범위에 대한 참조가 있는 배열과 같다. 배열의 최대 참조 수를 “branching factor” 한다. 페이지 범위는 다른 페이지 범위를 참조하는 다른 B-Tree 노드이다. 결국 리프수준에서 단일 페이지를 찾을 있다.

B-Tree 페이지 참조가 메모리가 아닌 디스크에 저장된다는 점을 제외하면 저수준 프로그래밍 언어의 포인터와 유사하다. B-Tree에서 삽입 삭제가 발생하면 branching factor 충족하기 위해(밸런스를 맞추기 위해) 노드를 개의 하위 트리로 분할 있다. 데이터베이스가 충돌하는 위험이 발생할 있다. 데이터베이스가 충돌하는 시나리오를 완화하기 위해 B-Tree 구현은 모든 단일 원자 데이터베이스 트랜잭션을 기록하는 WAL (Write-Ahead Log) 작성하여 기록을 추적한다.  WAL B-Tree 손상된 경우 B-Tree 상태를 복원 하는데 사용된다.

 

Algorithm

Average

Worst case

Space

O(n)

O(n)

Search

O(log n)

O(log n)

Insert

O(log n)

O(log n)

Delete

O(log n)

O(log n)

 

 

 

 

LSM Tree

LSM Tree Bitcask, MongoDB, Bigtable, Cassandra, InfluxDB SQLite4 같은 최신 관계형 비관계형 데이터베이스에서 사용하고 있는 인기있는 데이터 구조이다. LSM Tree 각각의 기본 저장 매체에 최적화된 개이상의 개별 구조로 데이터를 유지한다. 메모리에는 실제 디스크의 데이터 값을 포함하는 바이트 오프셋에 대한 참조 정보를 Key-Value  형태로 해시 테이블 (또는 해시 인덱스) 관리한다.

실제로 사용되는 대부분의  LSM Tree 여러 수준을 사용한다. 레벨 0 주로 메모리에 보관되며 트리를 사용하여 표시 있다. 디스크 데이터는 정렬된 상태로 실행될 있도록 구성되며 실행에는 인덱스 키별로 정렬된 데이터가 포함된다. 실행은 디스크에서 단일 파일로 표시되거나 범위가 겹치지 않는 파일 모음으로 표시 있다. 관련 값을 얻기 위해 특정 키에 대한 쿼리를 수행하려면 레벨0 트리에서 검색하고 실행을 수행해야한다.

 

Algorithm

Average

Worst case

Insert

O(1)

O(1)

Find-min

O(N)

O(N)

Delete-min

O(N)

O(N)

 

 

 

[참고자료]

·       B-Tree : https://en.wikipedia.org/wiki/B-tree

·       Log-structured merge-tree : https://en.wikipedia.org/wiki/Log-structured_merge-tree

 

 

 

2021-03-17 / Sungwook Kang / http://sungwookkang.com

 

B-Tree, LSM Tree, Data Structure, Log-Structured-Merged-Tree, Database Index, 자료구조, 데이터스트럭처, 데이터인덱스

작업 관리자에서 디스크 성능 정보 표시하기

  • Windows Server 2012, 2012 R2

 

Windows Server 2012, 2012 R2 작업 관리자를 실행하였을 때 디스크 정보가 보이지 않는 경우가 있다.

 

작업 관리자에서 디스크 정보를 표시하기 위해서는 커맨드 명령 또는 파워쉘을 이용하여 간단한 명령으로 디스크 정보를 나타내도록 수정할 수 있다.

Diskperf -Y

 

 

커맨드 명령을 완료하고 작업 관리자를 다시 실행해 보면 디스크 정보가 표시되는 것을 확인할 수 있다.

 

 

 

2016-02-02 / 강성욱 / http://sqlmvp.kr

 

작업 관리자, 디스크 정보, Diskperf, Task Manager, Disk Performance, Windows, Windows 2012, Windows Counter

'SW Engineering > IT 용어, 일반' 카테고리의 다른 글

Split Brain  (0) 2021.04.23
B-tree vs Log-Structured Merge-Tree  (0) 2021.03.17
Amazon Elastic Block Store (Amazon EBS) 소개  (0) 2015.07.22
AmazonEC2 (Amazon Elastic Compute Cloud) 소개  (0) 2015.07.22
Iaas, Paas, SaaS 개념  (0) 2015.07.22

Amazon Elastic Block Store (Amazon EBS) 소개

   

Amazon Elastic Block Store(EBS)는 Amazon EC2 인스턴스에 사용할 블록 레벨 스토리지 볼륨을 제공 한다. EBS 볼륨은 네트워크에 연결되며 EC2에 연결하여 인스턴스 내의 디바이스로 표시 할 수 있다. 특히 데이터베이스, 파일 시스템, 원시 블록 레벨 스토리지에 대한 액세스가 필요한 애플리케이션에 적합하다.

   

[성능]

  • EBS에서는 EC2 인스턴스에 디바이스로 마운트할 수 있는 스토리지 볼륨은 1GB ~ 1TB까지 생성할 수 있으며 여러 볼륨을 동일한 인스턴스에 마운트 할 수 있다.
  • EBS에서 프로비저닝된 IOPS 볼륨을 선택하면 특정 수준의 I/O성능을 프로비저닝 할 수 있다. I/O 집중적인 워크로드에 적합하며 볼륨당 최대 4000IOPS를 제공한다. 여러 개의 볼륨을 함께 스트라이핑하여 애플리케이션에 EC2 인스턴스당 수천 개의 IOPS를 제공할 수 있다.
  • 표준 볼륨은 평균 약 100IOPS를 제공하여 순간 최대 수백 IOPS를 지원한다. 버스트 기능이 빠른 인스턴스 시작 시간을 제공하기 때문에 부트 볼륨으로 사용하기에도 적합하다.
  • EBS최적화 인스턴스는 유형에 따라 500Mbps ~ 1000Mbps의 범위에서 선택 할 수 있다.

   

   

[내구성]

  • 볼륨의 내구성은 볼륨의 크기와 마지막 스냅샷 이후 변경한 데이터의 비율(%)에 따라 달라진다. 20GB미안의 수정된 볼륨의 경우 AFR(연간 실패율)이 0.1% ~ 0.5%로 예상된다. 여기서 고장은 완전히 손실됨을 뜻한다.
  • EBS는 일관된 지정 시간 볼륨 스냅샷을 만들 수 있는 기능을 제공하며 생성된 스냅샷은 Amazon S3에 저장되어 여러 가용 영역에 자동으로 복제 된다. 또한 마지막 스냅샷을 이용해 볼륨을 재생성 할 수 있다.

   

[스냅샷]

  • Amazon EBS 스냅샷은 마지막 스냅샷 이후 변경된 디바이스의 블록만을 저장하는 증분식 백업이다. 100GB 데이터의 디바이스가 있으나 5GB 데이터만 마지막 스냅샷 이후 변경된 경우 추가된 5GB의 스냅샷 데이터만 Amazon S3에 다시 저장된다. 스냅샷은 증분식으로 저장되지만, 한 스냅샷을 삭제하면 다른 스냅샷에 필요하지 않은 데이터만 제거된다.
  • 모든 스냅샷의 볼륨 복원 시기가 같기 때문에 증분식 백업에 필요한 공간을 절약하면서 복원 시간 동안 전체 백업을 복원할 수 있다.
  • 기존 Amazon S3 스냅샷을 이용해 생성한 새 볼륨은 백그라운드에서 느리게 로드된다. 이는 스냅샷에서 볼륨을 생성한 경우 Amazon S3에서 Amazon EBS 볼륨으로 모든 데이터가 전송되기를 기다리지 않고도 연결된 인스턴스에서 볼륨과 모든 데이터에 액세스할 수 있음을 의미한다. 인스턴스에서 아직 로드되지 않은 데이터에 액세스하는 경우, 볼륨은 요청한 데이터를 Amazon S3에 즉시 다운로드한 후, 볼륨의 나머지 데이터를 백그라운드에서 계속해서 로드한다.

   

   

다음 표는 EBS 처리랑 및 최대 IOPS를 나타내는 표이다. 지속적으로 이러한 수준의 성능을 달성하기 위해서는 EBS 최적화로 인스턴스 유형을 시작하여야 한다.

   

   

[참고자료]

EBS IOPS : http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-ec2-config.html

AmazonEC2 (Amazon Elastic Compute Cloud) 소개

   

Amazon Elastic Compute Cloud는 클라우드에서 컴퓨팅 파워의 규모를 자유 자재로 변경 할 수 있는 서비스이다. 간단한 웹 서비스 인터페이스를 통해 간편하게 필요한 용량을 구성 할 수 있다.

   

[장점]

  • 스케일아웃 : 수 분 내에 용량을 늘리거나 줄일 수 있으며 수백 또는 수천 개의 서버 인스턴스를 동시에 지정 가능. 모든 과정이 웹 서비스 API로 제어되며 요구에 따라 스스로 자동 확장 및 축소 가능.
  • 완전 제어 : 사용자가 인스턴스를 완전히 제어할 수 있는 권한을 보유
  • 유연한 클라우드 호스팅 서비스 : 다양한 인스턴스 유형 및 소프트웨어 패키지 선택 가능.
  • 다른 Amazon Web Services와 유연한 연동 : Simple Storage Service(Amazon S3), Amazon Relational Database Service(Amazon RDS), Amazon SimpleDB 및 Amazon Simple Queue Service(Amazon SQS)와 연결되어 광범위한 애플리케이션 전반에서 컴퓨팅, 쿼리 처리 및 스토리지를 위한 완벽한 솔루션을 제공.
  • 안전성 : Amazon EC2 서비스 수준 계약은 각 Amazon EC2 지역에 99.5%의 가용성을 보장.
  • 보안 : Amazon VPC와 함께 작동하여 사용자 컴퓨팅 리소스에 보안성 및 강력한 네트워킹 기능을 제공.
  • 저렴한 비용 : 다양한 형태의 비용 옵션을 제공.
  • 빠른 시작 : AWS Marketplace에서 Amazon 머신 이미지(AMI)를 사용하여 빠른 구축 및 배포가능.

   

   

[기능]

  • Amazon Elastic Block Store(EBS) :

    EBS 볼륨은 네트워크에 연결되어 사용. Amazon EC2의 부팅 파티션으로 사용하거나 실행 중인 Amazon EC2 인스턴스에 표준 블록 디바이스로 연결가능. 부팅 파티션으로 사용 할 경우 EC2 서비스를 중지했다가 나중에 다시 시작할 수 있으므로 사용한 스토리지 리소스에 대해서만 비용을 지불. Amazon EBS 볼륨은 단일 가용 영역 내의 백 엔드에 자동으로 복제되므로 로컬 Amazon EC2 인스턴스 스토리지에 비해 향상된 내구성 제공. EBS는 일관된 지정 시간에 볼륨 스냅샷을 생성하고 생성된 스냅샷은 Amazon S3에 저장되어 여러 가용 영역 전체에 자동으로 복제된다. 이러한 스냅샷은 새로운 Amazon EBS 볼륨의 시작 시점으로 사용 할 수 있으며 안정적으로 보호할 수 있다. Amazon EBS 볼륨은 표준 볼륨과 Provisioned IOPS 두 가지 유형을 제공한다. 표준 볼륨은 I/O dyrn 사항이 보통 수준이거나 가끔씩 집중적으로 발생하는 서비스에 적합한 비용 효율적인 스토리지이며 Provisioned IOPS 볼륨은 I/O 집중적인 서비스(데이터베이스 등)에 적합하다.

  • 다중위치

    Amazon EC2는 인스턴스는 가용 영역은 다른 가용 영역에 오류가 발생할 경우 오류 지점으로부터 분리되도록 설계된 별개의 위치로 동일 지역의 다른 가용 영역에 저렴하고 지연 시간이 낮은 네트워크 연결을 제공한다. 별도의 가용 영역에서 인스턴스를 실행함으로써 단일 위치에서 오류가 발생 할 경우 서비스를 보호할 수 가 있으며 지리적으로 분산되어 Amazon EC2 지역에 99.5%의 가용성을 보장한다.

  • Amazon Virtual Private Cloud

    Amazon Virtual Private Cloud(VPC)는 고객이 정의하는 가상 네트워크에서 AWS 리소스를 시작할 수 있도록 Amazon Web Services(AWS) 클라우드에서 논리적이고도 격리된 공간을 프로비저닝한다. IP 주소 범위, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 선택 등 가상 네트워킹 환경을 완벽하게 제어할 수 있다. 또한 기업 데이터 센터와 VPC 간에 하드웨어 가상 사설 네트워크(VPN) 연결을 생성하여 AWS 클라우드를 확장된 기업 데이터 센터 용도로 사용할 수도 있다.

  • Amazon CloudWatch

    AWS 클라우드 리소스 및 애플리케이션에 대한 모니터링 기능을 제공. 리소스 사용률, 작동 성능, 전반적인 수요 패턴을 파악할 수 있는 기능을 제공하며, 이를 위해 CPU 사용률, 디스크 읽기 및 쓰기, 네트워크 트래픽과 같은 메트릭을 모니터링합니다. 통계를 작성하고, 그래프를 보고, 메트릭 데이터에 대한 경보를 설정할 수 있다.

  • Auto Scaling

    Auto Scaling을 사용하면 정의한 조건에 따라 Amazon EC2 용량을 자동으로 확장하거나 축소할 수 있다. Auto Scaling은 사용량이 시간, 일 또는 주 단위로 바뀌는 애플리케이션에 특히 적합하고 Auto Scaling은 Amazon CloudWatch를 통해 활성화되며 Amazon CloudWatch 요금 외에 추가 비용이 발생하지 않는다.

  • Elastic Load Balancing

    수신되는 애플리케이션 트래픽을 여러 Amazon EC2 인스턴스에 자동으로 배포하여 내결함성을 크게 높이고, 수신되는 애플리케이션 트래픽에 응답하는 데 필요한 로드 밸런싱 용량을 원활하게 제공한다. Elastic Load Balancing은 풀 내에서 비정상 인스턴스를 검색하고 비정상 인스턴스가 복원될 때까지 자동으로 트래픽을 정상 인스턴스로 다시 라우팅한다.

  • HPC(고성능 컴퓨팅) 클러스터

    병렬 처리와 같은 복잡한 연산 워크로드 또는 네트워크 성능에 민감한 애플리케이션에 적합. 클러스터 컴퓨팅, 클러스터 GPU 및 고용량 메모리 클러스터 인스턴스는 고성능 네트워크 기능을 제공하도록 특별히 설계되었으며 프로그래밍 방식을 통해 클러스터에 실행할 수 있으므로 긴밀하게 연결된 노드 간 통신에 필요한 저지연 네트워크 성능을 애플리케이션에 제공할 수 있다. 클러스터 인스턴스는 처리 속도를 크게 향상시키기 때문에 네트워크 집중형 작업을 수행해야 하는 고객 애플리케이션에도 적합하다.

  • GPU 인스턴스

    GPU 인스턴스는 고성능 병렬 기능이 필요한 고객에게 각각 최대 1,536개의 CUDA 코어 및 4GB 비디오 메모리를 갖춘 NVIDIA GPU에 대한 액세스를 제공. GPU 인스턴스는 게임 스트리밍을 포함하는 3D 그래픽 애플리케이션 및 전산 화학, 금융 모델링 및 엔지니어링 설계 등 컴퓨팅 워크로드에 가장 적합하다.

  • 높은 I/O 인스턴스

    높은 인스턴스는 SSD(Solid State Disk) 기술을 기반으로 하며, 초고성능의 SQL이 아닌 데이터베이스 및 관계형 데이터베이스를 실행 중인 고객에게 적합하다.

  • 고용량 스토리지 인스턴스

    데이터 웨어하우스 및 Hadoop과 같이 데이터 사용량이 많은 애플리케이션을 위한 높은 순차 I/O, 인스턴스당 초고용량의 스토리지 밀도를 필요로 하는 고객은 고용량 스토리지 인스턴스를 사용하면 이점을 누릴 수 있다. 고용량 스토리지 인스턴스는 순차 I/O 처리량이 2.4GB/s이고 24개의 하드 디스크 드라이브에 48TB의 인스턴스 스토리지를 제공하는 Amazon EC2 인스턴스 유형이다.

  • VM Import/Export

    VM Import/Export를 사용하면 언제든지 손쉽게 가상 머신 이미지를 기존 환경에서 Amazon EC2 인스턴스로 가져오거나 다시 내보낼 수 있다.

  • AWS Marketplace

    AWS Marketplace는 AWS에서 실행되는 소프트웨어를 찾고 구매하고 빠르게 배포할 수 있도록 해주는 온라인 상점이며 원클릭 배포를 사용하면 미리 구성된 소프트웨어를 빠르게 시작할 수 있으며, 요금은 종량 과금제로 시간 또는 월 단위로 청구된다.

  • 향상된 네트워킹

    향상된 네트워킹을 사용하면 PPS(Packet Per Second) 성능이 크게 높아지고, 네트워크 지터 및 지연 시간이 낮아진다. 이 기능은 일반 구현에 비해 높은 I/O 성능 및 낮은 CPU 사용률을 제공하는 새로운 네트워크 가상화 스택을 사용한다. 향상된 네트워킹을 이용하려면 VPC에서 HVM AMI를 시작하고 적절한 드라이버를 설치해야 한다. 향상된 네트워킹은 현재 C3 및 I2 인스턴스에서 지원된다.

   

   

[참고자료]

Amazon EC2 기능 : http://aws.amazon.com/ko/ec2/details/

Iaas, Paas, SaaS 개념

   

클라우드 서비스에 사용되는 as a Service 개념에 대해서 알아 본다.

 

[그림 : https://www.simple-talk.com/cloud/development/a-comprehensive-introduction-to-cloud-computing/]

   

   

[IaaS (Infrastructure as a Service)]

기존에 제공되는 서버 기반의 호스팅이 클라우드로 제공되는 형태라고 생각 할 수 있다. 가상의 하드웨어상에 OS나 필요 애플리케이션을 설치하여 사용한다. 인프라(서버, 스토리지, 네트워크 등)를 서비스로 제공한다.

l  장점 : OS, 애플리케이션 등을 사용자가 직접 설치 하기 때문에 원하는 형태로 사용이 가능하다.

l  단점 : 클라우드 서비스가 하드웨어에 제한됨.

Ex)

l  Amazon EC2(Elastic Compute Cloud) : 하드웨어 서버를 가상화하여 하드웨어 자원을 사용자에게 제공. 사용자가 운영체제 및 소프트웨어를 설치하여 클라우드 서비스 이용.

l  Amazon S3(Simple Storage Service) : 대용량의 데이터를 간편하게 저장하고 검색 할 수 있도록 지원

   

   

[PaaS (Platform as a Service)]

플랫폼을 제공하는 서비스로 사용자는 데이터나 애플리케이션을 이용할 수 있다. 예를 들면 결제 시스템이 필요한 경우 결제 시스템의 PaaS 결제 서비스를 사용하면 된다.

l  장점 : 필요한 서비스를 모두 구현하지 않아도 된다.

l  단점 : 환경이 맞지 않는 경우 이용이 힘들거나 다른 PaaS 사업자를 찾아야 한다.

Ex)

l  Windows Azure, 구글 앱 엔진, 아이튠즈, 세일즈포스 닷컴의 Force.com

   

   

[SaaS (Software as a Service)]

하드웨어 및 소프트웨어를 모두 제공하는 서비스로 기존의 호스팅 서비스에서는 필요한 프로그램을 사용하기 위해서는 프로그램을 사야 했지만 클라우드 환경에서는 그 프로그램이 서비스의 형태로 제공된다.

l  장점 : 비용 절감 (이용 요금만 지불, 자사 업데이트 불필요), 세계 표준 사용으로 타사와의 연계가 용이함.

l  단점 : 목적의 부합성에 따른 활용성 제한, 획일적 서비스로 인한 제한.

Ex)

l  Amazon RDS : 아마존 클라우드 + 데이터베이스

l  세일즈포스닷컴의 CRM, 웹메일

   

   

[HaaS (Hardware as a Service)]

특정 하드웨어가 필요한 경우 제공 업체로부터 하드웨어를 서비스 받는 것. 특정 하드웨어를 자체 구축이 어려운 경우 서비스를 받을 수 있다.

Ex)

l  Amazon EC2, Amazon S3

   

   

[BaaS (Backend as a Service)]

온라인 서비스에서 사용자가 보는 프로그램(front-end)과 관리자가 보는 프로그램(back-end)으로 나눌 수 있다. 관리자 영역을 모듈화 하여 서비스로 제공하는 개념이 Baas이다. 예를 들어 온라인 분석이나 모니터링의 경우 관리자를 위한 서비스 등을 모듈화 하여 제공한다.

   

일반적으로 개발자가 모든 서비스를 만들기가 쉽지 않으므로 BaaS를 활용하여 개발 시간 단축 및 손쉽게 만들 수 있다. 대표적인 사례로 구글 출신의 엔지니어들이 만든 Parse 또는 Kinvey가 대표적으로 국내의 경우 KTH가 모바일 개발자들을 지원하기 위한 BaaS.io가 있다.

   

Ex)

l  Parse : https://parse.com/

l  Kinvey : http://www.kinvey.com/

   

   

[Mobile Backend as a Service(BaaS) Ecosystem Map]

 

[그림 : http://www.kinvey.com/blog/123/kinveys-architecture-and-the-backend-as-a-service-ecosystem]

 

   

메모리 사용량 확인 툴 – RAMMAP

 

현재 어떤 프로그램(프로세스)이 메모리를 점유하여 사용하고 있을까?

   

간단히 아래 그림과 같이 작업 관리자를 통해서 확인 할 수 있다.

   

   

작업 관리자에서 프로세스 탭을 클릭하면 현재 프로세스별로 사용된 메모리를 확인 할 수 있다.

   

   

   

프로세스가 사용하는 메모리 외에 숨겨진 메모리 사용량도 알 수 있는 방법은 없을까?

Microsoft 에서 제공하는 RAMMAP 이란 툴을 사용하여 메모리 사용량을 확인해 보자.

   

다운로드 링크 : http://technet.microsoft.com/en-us/sysinternals/ff700229

   

   

RAMMAP은 RAM이 캐시나 커널 및 장치 드라이버에 할당된 메모리 등 무릴 메모리 사용현황을 보여 준다.

   

탭 별로 다양한 정보를 확인 할 수 있다.

   

 Use Count : 사용되고 있는 메모리 요약

   

Process : 프로세스 작업 집합 크기

   

Priority Summary : 우선 순위 대기 목록 크기

   

Physical Pages ; 페이지당 사용중인 물리적 메모리 양

   

Physical Ranges : 실제 메모리 주소

   

File Summary : 사용되는 메모리의 데이터 파일 위치

   

File Details : 사용되는 메모리의 데이터 파일의 상세 정보

   









   

VMware 디스크 볼륨 확장 (디스크 추가)

 

최근 가상화가 이슈로 떠오르고 있다. 이미 많은 부분에서 가상화를 사용하고 있으며 가상화 소프트웨어에는 Hyper-V, VMware, Xen 등이 대표 적이다.

   

여기에서는 개인용으로는 무료로 사용할 수 있는 VMware Player를 소개 한다.

   

   

VM웨어 설치 및 기본 설정 : http://sqlmvp.kr/140175265922

   

오늘은 VMware에서 디스크 추가에 대해서 알아 본다.

   

우선 가상머신에 대한 세팅을 변경하려면 시스템이 종료 되어 있어야 한다.

   

   

변경하려는 시스템에서 마우스 오른쪽을 클릭하여 [Virtual Machine Settings]을 선택 한다.

   

 

   

현재 디스크는 기본 50GB가 할당된 상태 이며 추가로 디스크를 할당 하려고 한다. 아래의 [Add] 버튼을 클릭 한다.
 

하드웨어 타입이 나오면 디스크를 선택 한다.
 

새로운 가상 디스크를 생성할 것인지 물리적인 디스크를 생성할 것인지에 대해 선택을 한다.

실습에서는 가상 디스크를 선택 한다.
 

   

디스크 방식은 SCSI를 선택 한다.
 

   

할당 할려는 크기를 입력한다. GB 단위이므로 100 이면 100GB의 디스크를 할당 한다.

   

아래 그림에서 Allocation All disk space now 를 체크하게 되면 디스크 할당시 실제적으로 디스크 공간을 미리 확보 한다. 미체크시 프로비저닝 기술로 필요에 따라 디스크를 할당 한다.

(즉 가상화 서버에서는 100GB로 보이지만 실제 물리적인 디스크는 사용하고 있는 양만크만 할당 된다)

   

하나의 디스크 파일로 생성할 것인지 여러개의 파일로 생성할 것인지 선택 한다.
 

   

가상 디스크 파일이 위치할 경로와 파일 이름을 정하여 마침을 클릭 한다.
 

   

아래 그림은 두 개의 가상 디스크를 할당한 상황이다.

   

VM.vmdk는 100GB가 할당되어 있지만 디스크 할당을 즉시 하지 않아 실제 사용하고 있는 양만큼만 물리적으로 사용되고 있다.

   

 VM2의 경우는 10GB를 할당 하면서 즉시 할당하도록 체크한 모습이다. 물리적인 공간을 10GB를 사용하고 있는 것을 확인 할 수 있다.

   

(이 기술을 적절히 활용하면 적은 디스크 공간으로 여러개의 서버에 가상으로 큰 공간을 할당 할 수 있다. 하지만 가상서버의 공간이 남아 있더라도 호스트 서버의 물리 디스크 공간이 없다면 실제 물리적인 디스크를 추가 하여야 한다 )
 

   

하드 디스크가 추가 된 것을 확인 할 수 있다.
 

   

가상서버를 실행 하여 윈도우 디스크 관리자에서 디스크가 추가 된 것을 확인 할 수 있다.
 

   

사용 용도에 따라 볼륨을 설정하여 사용한다.

   

   

여기서 한가지 드는 생각이 위의 그림을 보면 .. 실제적으론 하나의 디스크에서 가상 디스크로 2개를 할당 하였는데 가성 서버에서는 물리적인 디스크로 인식하여 스트라이프나 미러 볼륭을 사용할 수 있다고 나타난다. 

   

그러면 여러개의 하드 디스크를 호스트에서 RAID 기능을 사용하지 않아도 호스트에서 VM에서 가상 디스크 파일을 물리적으로 각 드라이브에 배치 하여 가상화에서 스트라이프 볼륨을 사용한다면 물리적인 디스크의 포맷이나 기타 불편을 겪지 않아도 사용이 가능 할 듯 하다. 물론 IO 성능이 어떤지는 테스트를 해보지 않아서 모르지만 다양한 응용이 가능 하다는 생각이 든다.

'SW Engineering > IT 용어, 일반' 카테고리의 다른 글

Iaas, Paas, SaaS 개념  (0) 2015.07.22
메모리 사용량 확인 툴 – RAMMAP  (0) 2015.07.22
IP로 접속 위치 확인하기  (0) 2015.07.22
IncrediBuild 설정  (0) 2015.07.22
INFINIBAND(인피니밴드)  (0) 2015.07.22

IP로 접속 위치 확인하기

 

IP의 접속 지역을 확인해야 할 이슈가 있을때 사용하면 유용 할 듯 합니다.

   

IP를 입력하면 해당 ISP 업체의 위치를 보여줍니다. 영화나 드라마처럼 정확하게는 알려주지 않지만 인터넷 제공업체의 위치정도는 알려주니 그 근방이라고 생각해도 무방할 듯 합니다.

   

주소 :  http://whatismyipaddress.com/ip-lookup

   

   

해당 박스에 IP를 입력 합니다.

(예시 IP는 네이버의 IP - 지식인 검색 결과 ^^)

   

   

국가와 위도 경도 등이 나타나며 지도에 위치를 나타내어 줍니다.

지도를 확대하면 동 수준까지 확인 할 수 있습니다.

   

비정상적인 IP 접근으로 인해 조사해본 결과 최근들어 중국보다 제3국가의 침입이 많아진듯 하네요

IncrediBuild 설정

    

[클라이언트설정]

환경 설정을 위해서는 클라이언트 로컬에서 Agent Settings를선택 한다.

    

   

   

클라이언트에서 어느 정도 CPU를 사용 할 것인지 선택 할 수 있다. 이는 현재 PC의 코어에 따라 다르게 나타난다. 적당한 메뉴를 선택 한다.

   

   

분산 빌드를 할 때 조금 더 빠르게 사용 하려면 캐시 파일의 위치를 빠른 디스크로 설정 하도록 하자. 대부분 SSD를 설치하고도 캐시 파일 위치를 설정을 잘못하여 제성능을 내지 못하는 경우가 있다.

   

   

인크레디 빌드를 사용할 때 네트워크를 통한 분산처리를 진행 하므로 TCP 통신포트가 열려 있어야 한다. 필요한 포트 또한 CPU의 코어에따라 다르게 나타난다. [Network]에서 필요 포트를 나타내어 주니 반드시 확인하여 필요 포트를오픈 하도록 하자.

   

   

Test Network Connectivity를 클릭하면 네트워크상태를 테스트 할 수 있다. 커넥션 여부와 네트워크 속도 등을 체크해 준다.

   

   

   

   

현재 빌드 중인 서버 또는 네트워크에 연결된 서버들이 어떤 서버의 빌드 작업을 도와주고 있는지 모니터링 할 수있다. 메뉴에서 [Coordinator Monitor]를클릭하면 현재 네트워크에 연결된 PC의 수와 코어, 메모리등 간단한 요약 정보와 실제 빌드에 참여 중인 서버의 사용량을 모니터링 할 수 있다.

   

현재 빌드 중인 상태이며 11Agent (11개의 PC)와 사용된 코어 수는 59코어 이다.

   

   

[서버설정]

서버의Coordinator Monitor에서 클라이언트 선택. 마우스 오른쪽을 클릭하여 [Configure Packages]를 선택한다.

   

   

[Package Configuration]에서 멀티 CPU를 체크하여 많은 코어를 사용할 수 있도록 한다.

   

   

이 외에 빌드 속도를 빠르게 하기 위한 네트워크 패킷 튜닝, 임시파일크기, 개수 등 다양한 방법이 있지만 일반 적인 설정만 잘 확인 하여도 충분 할 듯 하다.

   

그리고 이번 빌드 환경을 구축 하면서 느낀 점은 한 개의 프로세스(CPU)에코어가 많은 것 보다 실제로 물리적인 Process 의 수가 많은 것,그리고 클럭이 높은 환경이 유리하다는 것을 느낄 수 있었다.

   

내가 만약 빌드 서버를 구축 한다면 저렴한 2(4)코어(캐시는 작으나 클럭이 높은 CPU) 프로세스, SSD 64G, 메모리 2G 환경으로 수십 대를 연결하면 중급 서버한대도입 가격으로 매우 빠른 빌드 환경을 구성 할 수 있을 듯 하다.

INFINIBAND(인피니밴드)

   

대부분의 컴퓨터 장치들은 I/O를 위해 하나의 데이터 통로를 공유하는버스(BUS)기반의 I/O 아키텍처를 채택하고 있다. 하지만 최근 들어 전통적 I/O 아키텍처가 한계를 드러내고 있다.

   

실제로 대규모의 서비스 경우에는 이러한 I/O의 성능 저하를 줄이고자다수의 Gigabit LAN을 사용한다. 이는 PCI-X나 PCI_Express 인터페이스를 통하여 빠른 데이터환경을 구성한다. 하지만 PCI의 성능에도 한계가 있다. 64비트 전송모드에서 초당 1Gbytes를 전송하는데 그치기 때문이다. 이는 대략 8Gbps의 전송량이다.또한 10Gbps의 네트워크 인터페이스는 쌍방향 통신을 하기 때문에 실제 20Gbps의 대역폭이 필요하다.

  

동작 주파수

최대 32bit 전송 속도

최대 64bit 전송 속도

PCI

33Mhz

133MB/s

266MB/s

PCI

66Mhz

266MB/s

532MB/s

PCI-X

100Mhz

지원 안함

800MB/s

PCI-X

133Mhz

지원 안함

1GB/s

AGP8X

-

2.1GB/s

지원 안함

   

이와 같은 상황에서도 네트워크을 통하여 파일을 복사해 보면 시스템 성능이 저하되는 것을 확인 할 수 있다. 이처럼 I/O 처리에 따른 성능 저하를 해결하기 위해 1999년 InfiniBand Trade Association(IBTA)라는단체를 출범 하였으며 Dell, Intel, Sun, AMD, HP, IBM, 오라클, 시스코 등 업체가 참여 하였다. 슈퍼컴퓨터나 HPC(High Performance Computing)에서 서버간 데이터 통신에 사용되고 있다.

   

 

   

 

    

   

   

INFINIBAND는 PCIExpress, Sas 및 광 채널 인터페이스처럼 통신 채널과 같이 쌍방향 시리얼 버스를 이용하는 통신 채널이다. 인피니 밴드의 특징으로는 하나의 채널 만으로도 2.5Gbps 정도의높은 속도를 제공한다. 또한 이 채널을 4개 또는 12개 단위로 묶을 수 있고 묶은 규격에 따라 4X, 12X로 표현하고있다.

[인피니밴드 채널 별 속도 (총대역폭 / 사용자 사용 가능 대역폭)]

  

Single Data Rate

Double Data Rate

Quad Data Rate

1X

2.5 / 2Gbit/s

5 / 4Gbit/s

10 / 8Gbit/s

4X

10 / 8Gbit/s

20 / 16Gbit/s

40 / 32Gbit/s

12X

30 / 24Gbit/s

60 / 48Gbit/s

20 / 96Gbit/s

   

인피니밴드의 활용으로는 컴퓨팅 자원의 클러스터링이나 그리드 컴퓨팅에 매우 유용할 듯 하다. 또한 스토리지 시스템도 기존의 방식(서버에 종속적인 스토리지)에서 벗어나 스토리지를 공유 함으로써 더욱 고성능 하드웨어의 I/O 및신뢰성 등을 지향 할 수 있으며 서버 이중화 및 확장에 이점이 많으리라 생각한다.

   

참고 자료

https://blogs.oracle.com/networking/entry/infiniband_building_blocks

http://www.intel.com/content/www/us/en/data-center/data-center-management/infiniband-architecture-general.html

'SW Engineering > IT 용어, 일반' 카테고리의 다른 글

IP로 접속 위치 확인하기  (0) 2015.07.22
IncrediBuild 설정  (0) 2015.07.22
VMware 가상 머신 설정  (0) 2015.07.22
VMware 환경의 성능모니터 확인  (0) 2015.07.22
원격 데스크톱 연결 관리프로그램  (0) 2015.07.22

VMware 가상 머신 설정

   

VMware Player 설치 후 세팅법에 대해서 간략히 알아 보자.

VMware Player 다운로드 :

https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0

   

VMware Tool install 아티클 : http://sqlmvp.kr/140167194357

   

VMware에서 서버를 구성 후 다양한 옵션을 통하여 서버의 리소스를변경 할 수 있다.

가상 서버의 리소스를 변경하기 위해서는 가상 서버가 중지(OFF)된상태에서 가능하다.

   

가상화 서버 목록에서 마우스 오른쪽 클릭 또는 우측 하단의 [VirtualMachine Setting]을 클릭 한다.

    

   

   

[Virtual Machine Settings]창이 나타나며 리소스를변경 할 수 있다.

   

[Memory]

가상 서버에 할당 할 메모리를 설정 한다. 호스트의 물리적인 메모리보다큰 메모리를 설정 할 수는 없다. 메모리는 할당은 부팅시에 호스트의 메모리에서 고정으로 할당 하는 것이아니라 필요에 따라 할당 하는 방식이다. 서버가 중지된 상태에서 변경 가능 하다.

   

   

[Processors]

가상 서버에 할당 할 CPU의 코어 수 이다. 최대 4코어 수 만큼 할당이 가능하다.

   

   

[Hard Disk]

가상 서버에 할당 된 디스크의 크기 및 추가 할당이 가능하다. 단. 할당된 사이즈가 축소되지는 않는다. 디스크 할당 또한 동적 할당으로가상 서버에서는 할당 받은 사이즈 만큼 보이나 실제 호스트에서는 최소 할당으로 필요 시 증가 시킨다. 서버가중지된 상태에서 변경 가능 하다

   

   

[CD/DVD]

호스트의 CD롬 또는 가상 이미지를 삽입하여 사용 할 수 있다. 서버가 가동 중에 사용 가능 하다.

   

   

[Newwork Adapter]

네트워크 세팅이다.

커넥션 옵션에서

l  Bridge : 호스트의 랜카드를 브릿지로 사용하여 호스트 클래스의 IP 할당이가능 하다.

l  NAT : VMware에서 자체 적으로 공유기 기능처럼 내부 IP를할당 한다.

 

   

   

   

   

[USB Controller]

호스트의 USB 기능을 함께 사용한다. 예를 들면 호스트 컴퓨터에 USB를 꼽으면 가성 서버에서도 USB를 자동 감지하여 사용할 수 있다.

   

   

2012-12-17 / 강성욱 / http://sqlmvp.kr

VMware 환경의 성능모니터 확인

   

최근 들어 가상화 서버를 많이 사용한다. 가상화 솔루션에서는 여러가지 제품이 있다. 그 중 VMware라는 제품이 있는데 Windows 호스트 서버에 VMware 가상화 게스트 서버를 사용하였을 때 게스트 서버가 효율적으로 자원을 잘 사용하고 있는지 어떻게 확인 할까?

   

다음의 성능 모니터링을 통해서 가상 서버가 사용하고 있는 실제 자원의 사용량을 확인 할 수 있다.

   

Perfmon에서 VMware 카운터를추가 한다.

    

   

각 카운터에 대한 설명이 궁금하다면 하단의 [설명 표시] 체크 박스를 선택하면 각 카운터에 대한 설명을 볼 수 있다.

   

   

현재 나의 환경에서는 Server2008R2_SQL2008R2_Dev라는게스트 서버가 있는데 이 서버가사용하는 물리적인 리소스 사용량을 확인 할 수 있다.

   

   

한가지 유의하여야 하는 부분은 가상화 서버인 게스트 서버에 메모리를 동적으로 자원을 할당 하였을 경우에 게스트에서 보여지는 메모리 자원은 사용자가 지정한 메모리 용량이 나타나지만 호스트의 성능 모니터링에서는 실제 게스트가 사용하고 있는 메모리의 사용량을 나타낸다.

   

2012-12-06 / 강성욱 / http://sqlmvp.kr

원격 데스크톱 연결 관리프로그램

   

-      RDCMan, mRemote

   

현업에서는 관리하는 서버의 대수가 많다. 이때 관리를 위한 원격 데스크톱연결은 어떤 것을 사용하는가? 가장 기본적으로는 윈도우에서 제공하는MSTSC일 것이다.

    

   

하지마 이렇게 MSTSC를 이용하여 접속하는 경우에는 리스트를 관리 할 수 없어 다수의 서버를관리하는경우에는 매우 불편하다. 그래서 원격 데스크톱 관리자 프로그램을 소개 하려고 한다.

마이크로 소프트에서 제공하는 RDCMan과 오픈소스의 mRemote이다.

   

   

[마이크로소프트 RDCMan]

마이크로소프트에서 제공하는 프로그램이며 무료이다. 정식 명칭은 Remote Desktop Connection Manager 이다.

다운로드 : http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=21101

   

다운로드받은 파일을 설치하면 다음과 같이 메뉴에 아이콘이 나타난다.

   

   

RDCMan을 실행하면 다음과 같이 서버리스트를 등록하여 사용 할 수 있다.

   

리스트의 목록을 더블클릭 또는 Connect를 선택하면 해당 서버로 원격 접속을 할 수 있다.

   

   

RDCMan에 저장된 리스트는 다음과 같이 rdg 확장자를가진 파일에 저장된다.

   

   

서버리스트는 xml로 저장되기 때문에 메모장 등 기타 편집 프로그램을 통하여 수정이 가능하다.

(물론RDCMan UI에서도 수정이 가능하다.). 이때 패스워드는 암호화로 보호 된다.

   

   

[오픈소스 mRemote]

오픈소스의 mRemote이다. 무료이며 다음 사이트에서다운로드 가능 하다.

다운로드 : http://www.mremoteng.org/

   

다운로드 받은 mRemote를 실행하여 서버 그룹 및 서버 리스트 등록이 가능하다.

   

서버 그룹 및 서버 리스트를 등록한 화면이다. 여기에서 서버 리스트를 더블클릭 또는 Connect 를 클릭하면 해당 서버로 원격 연결이 된다.

   

서버에 원격으로 연결된 화면이다. 이때 창의 크기에 따라Display 크기가 고정되며 접속 이후 창의 크기를 변화 시켜도 원격 접속된 해상도는 변경이 되지 않는다.

   

   

mRemote의 접속 리스트 또한 xml로 관리되고 있다. 패스워드의 경우에는 암호화 되어 관리 된다.

   

   

이 외에도 원격 데스크톱 관리 도구는 많이 존재 하지만 위의 2개 툴이 일반적으로 많이 사용하는툴이라 생각한다.

한가지 아쉬운 점이라면 RD게이트웨이 사용을 아직 지원 하지 않는 것 같다. (내가 모르는 것일 수도 있다.)

혹시 RD게이트웨이 사용이 가능한 원격 데스크톱 프로그램이 있다면 공유 부탁 드립니다.

RD게이트가 Windows Server 2003까지는 TS게이트라고 불리었던 기능이네요. 게이트웨이 설정해서 연결하는법 내일 스샷 으로 여기 글에 공유 드릴께요 ^^

   

RDCMan에서 TS게이트 설정 방법. GateWay Settings 에서 게이트웨이 주소를 입력 하면 됩니다 ^^

   

2012–12-03 / 강성욱 / http://sqlmvp.kr

Process Monitor - 어떤 프로세스가 어떤 파일을 사용할까?

   

내 컴퓨터는 왜 이렇게 느린거야?

게임이 왜 자꾸 중지 되는거지?

프로그램이 자꾸 죽어?

나도 모르게 프로그램이 실행되고 있다?

 내 PC도 좀비 PC로 활용되는건 아닐까?

   

이처럼 많은 사용자들은 지금 내 컴퓨터에서는 어떤 프로그램(프로세스) 들이 실행 되고 있는지 매우 궁금해 할 것이다.

   

가장 기본적인 방법으로는 윈도우에서 제공하는 작업 관리자의 프로세스 탭에서 현재 실행되고 있는 프로세스들을 확인 할 수 있다.

   

[모든 사용자의 프로세스 표시]를 선택하면 현재 실행되고 있는 모든 프로세스를 확인 할 수있다.

   

   

   

이 정보 만으로는 무엇인가 좀 부족 한듯 하다. 나는 좀더 프로세스의 자세한 정보를 확인하고 싶다! 어떻게 해야 할까?

   

우선 아래 링크에서 ProcessMonitor이라는 프로그램을 다운 받는다.

   

다운로드 : http://technet.microsoft.com/ko-kr/sysinternals/bb896645.aspx

   

   

   

Process Monitor은 Microsoft 에서 제공하는 프로세스 모니터 툴로 현재 실행되고 있는 프로세스와 프로세스가 사용하고 있는 파일들을 캡쳐해서 보여준다.

   

   

다운로드 받은 압축 파일을 해제하여 프로세스 모니터를 실행 하자.

   

   

   

Process Monitor를 실행 시키면 다음과 같은 창이 나타나면 현재 시스템에서 실행되고 있는 프로세스의 상태를 캡쳐해서 보여 준다.

   

처음 프로그램을 실행하면 실시간으로 계속 해서 캡쳐해서 보여주기 때문에 박스의 캡처 중지 버트튼과 오토스크롤 버튼을 활용하면 쉽게 확인 할 수 있다.

   

   

   

특정 게임만 실행하면 해당 게임이 종료된다거나 어떤 프로그램에 대해서만 캡처하고 싶을때는 필터를 적절히 활용하면 된다.

   

필터 사용법 예시는 [메모장]을 예로 들어 살펴 보자.

   

   

[Filter] - [Filter]를 선택 한다.

   

   

Process Monitor Filter 창이 나타나면 [Process Name]을 선택하고 [notepad.exe]를 입력 한다.

[Add] 버튼을 클릭하여 해당 필터를 등록 한다.

   

   

   

[예]를 클릭하여 등록 한다.

   

   

필터 등록이 완료되면 다음과 같이 창이 깨끗하게 지원진 것을 확인 할 수 있다.

메모장을 실행 해 보자.

 

   

다음과 같이 메모장이 사용하고 있는 프로세스 및 참조하고 있는 레지스터, 현재 작업 상태 등을 상세히 볼 수 있다.

   

   

이와 같은 툴을 이용하면 특정 프로그램이 종료 될때 해당 프로세스가 어디에서 영향을 받는지 쉽게 확인 할 수 있어 해당 문제를 해결하는데 많은 도움이 된다.

빅데이터사례_구글의 검색 키워드로 독감 트렌드 예측

 

2013년 1월 초. 미국에서는 독감으로 인한 사망자가 100명을 넘어 섰다. 미국 질병 통게 예방 센터(CDC)에 따르면 122개 도시의 사망자를 조사한 결과 전체 사망자 중 7.3%가 감기나 폐렴으로 숨졌으며 이는 독감 유행 단계에 접어들었음을 의미한다고 발표 했다.

   

그런데 CDC가 바룦한 독감 보고서보다 2주 먼저 독감 바이러스의 확산을 예측한 곳이 있었다. 구글의 '독감 트렌드'다. 구글이 처음으로 독감 트렌드를 분석해 [네이처(Nature)]지에 기고한 땐느 2009년 2월로 전 세계 구글 이용자가 검색한 키워드의 빈도를 파악해 독감 유행 수준을 감지하는 방법을 활용 했다.

   

키워드는 주로 독감과 관련된 "독감증상", "독감 치료" 등으로 실제 독감 증상이 있는 사람과 밀접한 관계가 있음을 발견한 것으로 전세계 여러 국가와 지역에서 독감이 얼마나 유행하는지 예측할 수 있다.

   

   

(아쉽게도 한국의 독감 트렌드는 없군요 ㅠㅠ)

   

   

   

[관련 기사]

   

빅데이터 사례 – VOLVO RFID 센서로 차랑 결함 사전 발견

 

 

볼자 자동차(VOLVO)는 고객의 자동차에 내장된 RFID 센서를 통해 부품의 상태, 안정도 등 다양한 정보를 실시간으로 수집한다. 이를 통해 차량 겷ㄹ람 정보, 운전자 요구사항, 그리고 생산과정에서 발견하기 어려운 다양한 결함까지 찾아 빠르게 대응할 수 있다.

   

사내 고객관계관리시스템(CRM), 딜러, 공장 등으로 부터 수집된 테라바이트(TB)급 데이터와 통합해 분석함으로써 자동차 결함 문제 등을 사전에 파악하고 있다.

   

결과적으로 50만대 이상 생산한 이후에 발견할 수 있는 결함을 1000대 출고만으로 파악함으로써 비용 절감 및 제품의 질을 높일 수 있게 되었다.

   

   

   

[관련기사]

http://www.industryweek.com/emerging-technologies/putting-data-work-real-world

   

   

빅데이터 사례 – 온타리오 병원의 미숙아 감염 예방

 

 

 

임신부 14명 가운데 1명꼴로 미숙아를 낳고 미숙아 4명 가운데 3명이 숨질 정도로 미숙아는 질병 감염에 너무 취약하다. 더군다나 육안 진과 차트 정보에 의존하는 방식은 감염 후 사실을 알 수 있기 때문에 치료시기를 놓칠 위험이 있다.

   

미숙아실에 설치된 각종 모니터링 장비에서는 인큐베이터 미숙아들의 혈압, 체온, 심전도와 혈중 산소포화도등 수 많은 생리학 데이터가 발생한다. 하지만 그런 정보는 버려지고 진찰 당시의 상황만 차트에 기록되어 사용되어 왔다. 차트에 기록된 정보만으로는 감염 여부를 판단하기에 부족하였다.

   

온타리오 병원은 IBM의 빅데이터 기술을 이용하여 버려지는 9000만건의 계측 데이터를 실시간으로 수집 - 저장 - 분석 함으로써 의료진 보다 최소 6~24시간 먼저 신생아의 감염 사실을 알아내고 처방할 수 있게 되었다.

   

   

   

[관련기사]

[빅 데이터] 질병 예측과 건강관리, 성·연령별 특성 분석…의료 예산 8% 절감

- http://magazine.hankyung.com/business/apps/news?popup=0&nid=01&c1=1003&nkey=2013041100906000281&mode=sub_view

   

CT 분석해 3차원 가상부검·DNA로 몇년후 발병 알아내

- http://news.mk.co.kr/newsRead.php?year=2013&no=781027

   

[빅데이터포럼] "빅 데이터가 똑똑한 지구 만든다"

- http://biz.chosun.com/site/data/html_dir/2012/03/21/2012032101861.html

빅데이터 사례 – 유유제약 멍 치료제

 

   

   

유유제약은 멍 치료제를 출시하고 어린이를 타깃으로 마케팅을 진행 하였다. 그러나 그 동안 상대해온 고객이 병원과 약국에 한정되어 있었기 때문에 일반 소비자의 니즈를 파악한 경험이 없었다. 고객의 숨겨진 니즈를 파악하기 위해 소셜미디어를 통한 빅데이터분석을 하였고 결과 매출이 50% 이상 성장 하였다.

   

   

   

인터넷에서 "멍 빨리 없애는 법"을  검색하면 연관검색어가 달걀, 쇠고기였다. 경쟁사 제품은 민간요법의 절반에도 미치지 못했다. 소비자는 멍 치료 연고가 있다는 생각조차 하지 못한 채 민간요법에 의존하고 있다는 것을 발견하게 된다. 이를 통해 시장 선점 계획을 세우고 소셜 미디어에 올라온 글들을 분석 했다. 그결과 멍으로 고생하는 여성의 시장이 어린이 시장의 4배를 차지한다는 것을 알게 되었다.

   

특히 여성은 겨울철 멍이 더 잘드는데 이는 수험생이 성형을 많이 하던 때라 시술 자국으로 인한 멍이었다. 이에 착안해 성형외과나 주변의 약국에 적극적으로 홍보를 시작하면서 제품 포장도 개선하여 파우치에 담아 상비약으로 파는 방식을 선택하였다.

   

멍 치료제는 사용목적이 치료에서 미용목적으로 인식됨에 따라 매출이 크게 증가 하였다.

   

   

   

[관련 기사]

   

유유제약,능률협회에서 빅데이터 마케팅 성공사례 발표
- http://www.yakup.com/news/index.html?mode=view&cat=12&nid=163435

   

유유제약의 빅데이터 분석 성공기…당신회사의 고객은 누구인가
- http://www.ddaily.co.kr/news/news_view.php?uid=100106

   

유유 유원상 상무, 빅데이터 마케팅 성공사례 발표
- http://www.dailypharm.com/News/170284

   

데이터 마이닝의 사례

 

데이터 마이닝이 우리 생활에 어떻게 활용되고 있을까? 데이터 마이닝을 이용한 실증석 사례를 몇 가지 정리해 보자.

다음 사례는 [한국정보화진흥원] 보고서 자료를 요약 하였다.

 

원문 링크 :

http://www.itfind.or.kr/itfind/ittrend/organScrapView.htm?identifier=02-004-120508-000001

 

 

1. 미국 국세청, 탈세 방지 시스템 통한 국가 재정 강화 - 탈세 및 사기로 인한 국가의 재정 위기 가능성 증가

 

[추진내용]

대용량 데이터와 다양한 기술을 결합하여 탈세 및 사기 범죄 예방 시스템 구축

  • 사기방지 솔루션
  • 소셜 네트워크 분석
  • 데이터 통합 및 지능형 감시 시스템 구축

 

[효과]

  • 세금 누락 및 불필요한 세금 환급 절감의 효과 발생
  • 과학적 데이터를 근거로 탈세 조사를 진행함으로 탈세자 수 감소
  • 향후 범죄 미 및 탈세 관련 사건 미연에 방지

 

 

 

2. 일본, 센서데이터를 활용한 지능형 교통안내 시스템 - 실시간으로 GPS 데이터를 분석하여 최적의 교통 정보를 사용자에게 전달하는 서비스

 

[추진내용]

GPS로부터 자동차 주행의 스피드를 계산하여 교통 정보 수집. 지능형 교통 정보 시스템의 발전

  • 택시 및 정보 제공에 동의한 내비게이터 사용자로부터 얻어진 교통 정보를 이용
  • 수집된 교통 정보를 바탕으로 실시간 최적의 교통 안내 서비스 제공

 

[효과]

  • 실시간 교통 정보 공유로 최적의 교통 안내 서비스 가능
  • 교통 체증으로 인한 불필요한 에너지 낭비 방지 및 효율 증대

 

 

 

3. 한국석유공사, 국내 유가 예보 서비스를 통한 비즈니스 최적화 - 급격한 유가변동에 대응하고 고유가에 따른 소비자 부담 감소를 위한 서비스

 

[추진 내용]

국내 주유소 유가 가격 데이터 수집

  • 국제 유가를 기반으로 국내 정유사와 주유소 판매 가격을 추정하는 예측모델 개발
  • 유가에 직간접적으로 영향을 미치는 여러 변수를 이용하여 유가정보 예측 서비스 제공

 

[효과]

  • 사용자 및 차량 중심으로 최저가의 유가 서비스 제공 가능
  • 국제 유가에 민감한 국내 물가 안정 기여
  • 유가 변동에 대한 유기적인 대처와 대책마련 가능
  • 유가 변동으로 인한 사재기 등의 부작용 방지

 

 

 

4. 미국 국립보건원, 유전자 데이터 공유를 통한 질병치료체계 마련 - 다양한 질병을 연구하기 위해 유전자 데이터를 공유 및 분석할 수 있는 시스템 마련

 

[추진 내용]

1,700명의 유전자 정보를 아마존 클라우드에 저장하여 누구나 접근하여 데이터 이용 가능

  • 미국 국립보건원, 기업 및 기관들의 파트너 쉽을 통한 200TB의 유전자 데이터 확보
  • 파트너쉽통한 1000 유전체 프로젝트 정보 확보
  • 빅데이터 연구 개발 이니셔티브에 따라 1000 유전체 정보를 아마존 웹서비스로 이전 저장

 

[효과]

  • 유전자 정보를 공유함으로써 새로운 질병에 대한 빠른 진단 서비스 제공 가능
  • 난치병 미 및 불치병 관련 유전자 정보 공유. 새로운 치료제 개발 가능성 제시
  • 최신 IT 기술 결합으로 치료 확률 상승 기대

 

 

 

5. 미국 국립보건원, Pillobox 프로젝트를 통한 의료개혁 - 미국 국립보건원이 운영하는 약 검색 사이트

 

[추진 내용]

미국 국립의료원에서 제공하는 의약품 정보 서비스

  • 알약의 제조사와 사용자간의 유기적인 쌍방향 상호작용을 통해 약 정보 제공
  • 남녀노소 쉽게 검색할 수 있는 시스템 제공

 

[효과]

  • 약의 정체 미 및 기능을 확인하는 비용 절감
  • 빅데이터를 이용한 의약품 사용에 대한 정보 제공 가능
  • 주요 관리 대상에 해당하는 질병에 대한 관리 및 예측
  • 약 검색 서비스를 통해 얻어진 다양한 사용자의 질병에 대한 통계 데이터 활용
  • 주요 질병의 분포 및 추세를 예측함으로써 국가차원의 조기 대응이 가능

 

 

 

6. 건강보험회사 웰포인트(WellPoint), 슈퍼컴퓨터를 활용한 효율적인 환자치료 - 의료진의 진단과 환자 치료에 슈퍼컴퓨터를 사용하는 시스템

 

[추진 내용]

IBM과 미국 의료보험사 웰포인트 의사들이 진료 진단에 사용할 어플리케이션 제공

  • IBM의 왓슨 솔루션을 도입. 3420만명에 대한 환자 정보 통합 분석
  • 환자의 증상, 면담결과, 진단, 연구 등 모든 정보 수집
  • 8코어 프로세서의 IMB 서버를 통해 모든 사례를 고려하여 최적의 진단 및 환자 치료 가이드라인 제시
  • 2억 페이지 해당하는 자료를 검색 분석하여 3초 안에 결과 제시 가능

 

 

 

[효과]

  • 환자의 상황에 맞는 가장 최선의 치료 방법 제시 가능
  • 불필요한 치료 및 진료를 줄여 환자 및 의료보험 회사의 진료비 낭비 장지
  • 만성질환을 체계적으로 관리하여 고령층에 대한 효과적인 진료 서비스 제시
  • 환자에게 적절한 치료법을 제시하고 최신 정보를 과학적인 방법으로 제시 가능
  • 치료방법 공유로 환자의 진료 치료 만족도 증대

 

 

7. 구글, 검색어 분석을 통한 독감예보 서비스 제공 - '감기'와 관련된 검색어 분석을 통한 독감 예보 시스템 제공

 

[추진 내용]

구글 홈페이지에서 독감, 인플루엔자 등 독감과 관련된 검색어 쿼리의 빈도를 조사.

  • 구글 독감 경향(Google Flu Trends)이라는 독감 확산 조기 경보체계 마련
  • 미국 보건 당국보다 훨씬 앞선 지역별 독감 유행 정보 제공
  • 미국 질병 예방센터 데이터와 비교 결과 실제 밀접한 상관관계가 있는 것 확인

 

[효과]

  • 구글 검색 사이트에 사용자가 남긴 검색어의 빈도를 조사, 독감 환자의 분포 및 확산 정보 제공
  • 다양한 검색어를 분석하여 다시 사용자들에게 문화, 경제, 스포츠등 의미있는 피드백 가능

 

 

 

8. 싱가포르, 국가위험관리시스템(RAHS)을 통한 국가안전관리 - 국가적 차원의 위험요인과 기회요인을 선제적으로 파악, 대응 방안을 수립하기 위한 시스템

 

[추진 내용]

싱가포르의 국가위험관리시스템을 통해 질병, 금융위기 등 모든 국가적 위험을 수집 분석

 

  • 국가에 위험을 미칠 수 있는 다양한 데이터 수집 분석

 

[효과]

  • 국가 및 국민의 위험 요소 파악, 대비함으로써 국민의 생명과 재산 보호
  • 수많은 데이터와 변수를 동시에 고려하는 전천후 국가 위험 관리 체계로 발전

 

 

 

9. FBI, 유전자 색인 시스템 활용한 단시간 범인 검거 체계 마련 - 유전자 색인 시스템을 통해 유전자 분석표를 대조함으로써 사건을 해결

 

[추진 내용]

유전자 정보 은행 CODIS(Combined DNA Index System) 구축

  • 미제 사건 용의자 및 실종자에 대한 DNS 정보 1만 3000건 저장
  • 범죄자 12만명의 유전자 정보 저장
  • CODIS는 50개 모든 주와 연방정부가 수집한 확정 판결을 받은 범죄좌들과 일부 체포자에게서 추출한 DNA 분석표 구성

 

[효과]

  • 범죄 사건 해결의 획기적 성과 달성
  • 과거 범죄자들의 유전자 정보를 데이터베이스화 하여 과학적 수사 가능
  • 소중한 개인정보 오남용의 우려 존재

 

 

 

10. 샌프란시스코, 범죄 예방 시스템으로 안전 지역사회 구축 - 범죄 발생 지역 및 발생 시각을 예측하여 범죄를 미연에 방지하기 위한 시스템

 

[추진 내용]

과거 범죄 기록 분석을 통한 효유율적 경찰 인력 배치

  • 과거의 범죄 데이터를 분석하여 범죄 정보 업데이트

 

[효과]

  • 획기적인 범죄 예방 및 감소
  • 효율적인 경찰 인력 배치 및 순찰 시스템으로 발전

 

 

 

데이터 마이닝의 기원

 

우리는 하늘에 먹구름이 있다고 무조건 비가 오지 않는 다는 것을 알고 있다. 다만 비가 올 수 있는 확률은 해가 있을 때 보다는 높기 때문에 비가 올 수도 있다 라고 판단하는 것이다. 이는 단순히 하늘의 색깔만으로는 판단하지 않을 것이다. 먹구름이 있을 때의 바람, 습도, 온도, 그리고 민감한 사람은 냄새(할머니들의 무릎 아픔까지)까지 다양한 환경 변수를 대입하여 비가 올 것이다 를 판단하는 것이다.

 

 

이처럼 데이터 마이닝이라는 것은 사실 이미 오래 전부터 우리의 생활 속에 깊이 관여 되어 있었다. 최근 많은 연구자들이 다양한 데이터를 처리하면서 데이터 마이닝 이라는 용어가 탄생하고 좀더 체계적으로 과학적으로 재해석 되면서 많이 부각 된 듯 하다. 또한 많은 도구가 발달 함께 따라 정보의 융합으로 인하여 더욱 많은 정보가 산출되고 그 중요성이 많이 나타났다.

 

학술적으로 마이닝의 기원을 정의해보면 알고리즘, 통계, 샘플링, 추정, 가설, 검정 등 이미 전통적인 방법에 인공지능 패턴인식, 기계학습에서 탄생한 알고리즘, 모델링 기법, 학습이론을 접목한다.

 

 

 

데이터 마이닝이란?(Data mining)

 

많은 데이터 가운데 숨겨져 있는 유용한 상관관계를 발견하여 미래에 실행 가능한 정보를 추출하고 의사결정에 이용하는 과정이다.

 

데이터베이스로부터 과거에는 알지 못했지만 데이터 속에서 새로운 패턴(모델)을 발견하여 미래에 실행 가능한 정보를 추출해 내고 의사 결정에 이용한다.

모든 정보의 탐색 작업이 데이터 마이닝으로 간주 되지는 않는다. 사용자의 정보 검색 또는 검색 사이트 등에 질의를 통한 작업등은 아무리 복잡한 알고리즘을 사용하였더라도 정보 검색(Information retrieval) 범주에 속한다.

 

데이터 마이닝은 다른 말로 KDD(knowledge-discovery in database)라고 부른다. 데이터 마이닝은입력 데이터를 변환하여 유용한 정보를 도출하는 데이터베이스에서 지식탐사(KDD)의 핵심 과정이다. 대용량 데이터베이스로부터 지금까지 몰랐던 정보를 추출 하는 것이다. 다양한 알고리즘 및 패턴 기술, 통계 기법 등을 활용하여 의미 있는 새로운 상관관계, 패턴, 추세를 발견 할 수 있다.

 

 

비즈니스 인텔리전스(Business Intelligence)는 최종사용자 질의 및 보고(End User Qeury and Reporting) 를 포괄하는 의미로 1990년 초 가트너 그룹의 Howard Dresner에 의해 만들어진 용어이다. 이는 경영진과 경영 분석가들이 데이터를 통해 합리적 의사결정을 내릴 수 있도록 데이터를 수집, 저장, 처리, 분석하는 일련의 기술, 응용 시스템을 말한다. 이 개념은 매우 포괄적 의미를 가지고 있으며 데이터웨어하우스(Data Warehouse), 데이터 질의 미 및 보고 도구(Data Query and Reporting tools), 데이터 마이닝(Data Mining), 비즈니스 성과관리(BPM : Business Performance Management)등을 포함 한다.

 

 

 

데이터 마이닝의 기원은 통계학과 기계학습(Machine Learning)으로 알려진 두 학문 분야의 컨버전스로 볼 수 있다. 이미 기존 통계학에서는 데이터를 탐색하고 모델을 구축하는 다양한 기법들이 존재해 있다. 로지스틱 회기분석, 클러스터 분석 등이 포함 된다. 기계학습으로는 의사결정나무(decision tree)또는 신경망(neural networks)등을 제공 한다. 기계학습 기법은 강력한 계산능력에 의존하며 전통적인 통계 모형보다는 덜 구조화되어 있다.

 

 

전통적인 통계학은 추론(하나의 패턴 또는 우연히 발생하였는지 결정하는 것)에 초점을 두고 있지만 데이터 마이닝은 다양한 방식으로 대량의 데이터 집합을 다루기 때문에 추론에서 요구하는 것처럼 엄격한 제약을 둘 필요가 없다.

이로 인해 데이터 마이닝에 대한 접근은 과적합화(over fitting)의 위험성에 쉽게 노출 된다. 이 뜻은 하나의 모형이 모형 개발에 사용된 표본 데이터에 너무 적합화 되면 이 모형은 데이터가 갖는 구조적 특성 뿐만 아니라 우연적 특수성까지 모두 반영하게 되어 과적합화 현상이 발생하는 것이다. 요약하면 오염된 데이터를 적합 시킨 모델이 적용 될 수도 있다는 것이다.

 

 

부정사용방지시스템 (FDS (Fraud Detection System))

 

카드사 은행 등의 금융기관은 신용카드 위조나 도난 카드의 사용 등으로 인하여 고객과 카드사의 피해를 최소화 하기 위해 FDS를 운용하고 있다.

 

FDS의 방식을 간단히 요약하자면 일정한 패턴에서 벗어 낫을 때 경고를 발생 하는 것이다.

 

FDS는 크게 두 가지로 판단한다. 룰(rule)방식과 스코어(score)방식이다. 룰 방식은 여러 가지 패턴을 적용한 방식이다. 스코어 방식은 평소 정상 카드 사용 패턴을 유형화 한 뒤 부정사용 패턴과의 상관 관계를 계량화해 점수를 매기는 방식이다.

 

[룰(rule) 방식]

카드 주인이 40대의 평범한 가정주부인데 룸살롱에서 결제가 이루어 졌을 경우 경고가 발생 한다. (물론 실제로 결제 할 수도 있지만 일반 적이지는 않다.)

 

[스코어(score) 방식]

매일 교통 카드로만 사용하는 신용카드가 있다고 가정하자. (나 같은 경우도 교통카드 전용으로 따로 쓴다.) 그런데 어느 날 편의점이나 마트 또는 기타의 장소에서 카드를 사용하면 그 즉시 확인 문자 또는 전화가 온다. 매일 교통카드만 사용하다가 비정상적인 패턴이 기록되었기 때문이다.

 

최근에는 보험사기시스템(IFAS) 등을 도입하여 보험회사와 지역, 병명, 모집경로, 상품, 담보, 피보험자 성별, 연령대, 위험등급 등 9종의 분석대상에 대한 보험금 지급 내역을 분석하여 이상 징후를 파악하고 있다.

 

〈 2012년 상반기 보험사기 적발 현황 〉
(단위: 백만원,명, %)

구 분

2010년 상반기

2011년 상반기(a)

2012년 상반기(b)

증감률[(b-a)/a]

적발금액

생 보

28,164

29,373

30,041

2.3

손 보

135,948

171,591

193,656

12.9

164,112

200,964

223,697

11.3

적발인원

생 보

1,241

1,954

1,903

-2.6

손 보

27,348

33,771

38,151

13.0

28,589

35,725

40,054

12.1

(자료 : 금융감독원)

 

앞으로 추세는 공모 확률을 분석하기 위한 SNS 분석 기법도 도입된다고 한다.

도입 사례 : 현대해상, 삼성생명, 보험개발원, HSBC,

 

Cast Study – 한국 IBM BA성공사례, LIG 손해보험 'MAS' 분석 시스템

http://www.dailygrid.net/news/articleView.html?idxno=6276

 

2012-10-17 / 강성욱 / http://sqlmvp.kr

 

Fast Fashion 과 IT (ZARA Case Study)

 

Fast Fashion에 대해서 들어 본 적이 있는가?

패스트 패션이란 최신 트렌드를 즉각 반영하여 빠르게 제작하여 제품을 유통시키는 의류를 가리키는 말이다.

최신 유행을 즉각 반영한 디자인을 상대적으로 저렴한 가격, 빠른 유통, 상품 회전율로 승부 하는 패션 사업이다. 음식으로 치면 패스트 푸드이고 의류에서는 패스트 패션이라는 이름이 붙었다.

 

패스트 패션의 특징은 빠른 상품 회전성이다. 일반적으로 옷들이 1년에 4~5회씩 계절별로 신상품을 내놓지만 패스트 패션은 평균 1~2주 단위로 신상품을 내놓는다. 빠른 곳은 3~4일 이내 제품을 출시하기도 한다.

또 다른 특징은 다품종 소량생산에 있다. 다양한 아이템의 옷을 소량으로 빨리 만들어 회전 시키는 시스템을 채택하여 소비자는 값싸고 최신 유행의 옷을 살 수 있다. 빠른 회전으로 재고 부담은 줄이면서 1~2주 단위로 신제품을 소량 생산 후 남는 것은 폐기처분 하는 전략을 사용하기 때문에 희소성을 가지기도 한다.

 

그렇다면 IT는 의류 시장에서 어떻게 사용 될까? 유명한 ZARA의 사례를 들어 보자.

 

ZARA는 스페인 브랜드로 1974년 아만시오 오르떼가(Amancio Ortega)가 만든 브랜드이다. 세계 최대의 SPA 브랜드이며 현재 77개국, 1500여개의 매장과 2000여명의 크레이티브 팀이 있다.

ZARA의 비즈니스 전략은 트렌디(Trendy)와 저가 전략(Low Cost) 이다.

 

전국에 지점이 10개가 있다고 가정한다. 신제품이 출시 되었을 때 매우 인기가 좋다고 가정하면 각 지점에서 신제품에 대한 재고를 보유하기 위해 여유분 이상을 발주를 할 것이다. 이것을 유령 발주 라고 하는데 문제는 이렇게 유령 발주가 각 지점에서 요청 되면서 유통망에 거품이 발생하는 것이다. 실제 유령 주문을 제대로 파악하지 못하고 제조한다면 결국에는 모든 점포의 재고로 남게되는 문제점이 있다.

 

이 문제를 해결하기 위해 당시 MIT의 경영학 교수로 재직중이던 제레미 갤리언(Geremie Gallien)박사는 '수학의 최적화' 방식을 유통에 응용 하였다. 이 방식은 우주 왕복선 기술에서 금융, 반도체 제조에 이르기 까지 다양하게 응용되는 수학으로 ZARA에 도입할 수 있었던 이유는 ZARA의 재고 분배 방식이 수학의 최적화 문제와 일치하고 또 다른 하나는 데이터가 중앙집중식이라는데 있다. 실제 ZARA의 경우는 전세계 매장이 본사에서 관리하는 중앙 집중 관리 식이다. 현재 각 지점마다 얼마의 재고가 있는지. 매출은 얼마인지 등 다양한 데이터를 가지고 있다. 또한 중앙 집중 관리로 중앙집중식의 의사 결정이 가능했다. 이렇게 방대한 자료를 가지고 제레미 갤리언 교수는 분배 알고리즘을 개발하여 각 매장과 재고수의 상관관계를 밝혔다.

 

1. 노출효과 라고 불리는 이론으로 상품이 어느 정도 눈에 띄어야 팔린다는 점이다. ZARA처럼 마케팅을 하지 않는 다면 매장의 노출에 따라 상품 판매에 영향을 미친다.

2. 포화 현상으로 어느 정도 제품이 팔리면 노출되어도 판매되지 않는다고 한다. 이 시점의 상관관계를 연구한 결과 진열된 수와 판매량이 거의 일치하는 순간이 포화 현상이 나타난다고 한다.

 

다음 그림에서 보면 제품의 노출과 판매량이 일치하는 부분이 있다. 이 부분이 포화 현상의 위치로 해석 할 수 있다.

 

따라서 ZARA 매장에 가면 한쪽 벽면을 모두 진열대로 꾸며 놓은 것이 제품 노출을 극대화 하기 위함이라고 한다.

 

ZARA는 패스트 패션의 대명사인데 이는 유행을 사전 예측 하는 것이 아닌 고객의 니즈를 파악해 바로 제품 기획 – 디자인 – 유통을 거쳐 3주만에 매장에서 팔 수 있도록 한다. 사전 유행을 예측할 필요가 없기 때문에 혹시나 팔리지 않을 재고에 대한 부담이 줄어들고 유행에 수시로 대응할 수 있어 매우 강점으로 작용 한다.

ZARA는 스피디한 전략을 위해 자체 공장에서 트렌드 브랜드를 생산하며 생산율과 공장별 원단을 예측하여 충분히 확보해 갑작스런 생산량에 유연하게 대처하고 있다. 전 세계 매장으로부터 유입되는 판매 데이터를 빅데이터를 통해 분석함으로써 수요를 예측 한 것이다.

 

대부분 의류 회사들이 한 시즌에 약2000 ~ 4000 종류의 제품을 출시한다면 ZARA의 경우에는 약 1만1000개의 상품을 출시 한다.

 

다음 그림은 ZARA매장의 제품 비치 기간이다. 시즌 중에도 다양한 제품을 진열하는 것을 확인 할 수 있다.

 

 

 

참고 자료 : http://www.slideshare.net/joycekaung/hbr-zara-itforfastfashion

 

+ Recent posts