분류 전체보기
-
[Docker] Private Docker registry에 Image BuildCoreOS/Docker 2017. 1. 28. 12:53
Docker 컨테이너 이미지를 생성하여 Private Docker registry에 올리는 방법을 설명합니다.Dockerfile 작성자세한 설명은 공식 홈페이지(https://docs.docker.com/engine/reference/builder/) 를 참고하시면 됩니다. 아래의 예시는 nginx 컨테이너를 그대로 사용하는 예시입니다. nginx컨테이너를 받아서 사용하지않고 만드는 방법도 가능합니다.//원본 컨테이너 이름과 버전을 명시합니다. FROM nginx:1.10 MAINTAINER name Build & Push Dockerfile 을 기준으로 빌드를 해야합니다.$ docker build -t Private저장소주소/Container 이름:버전 -f Dockerfile Path# 예시$ doc..
-
HAProxy서버 2017. 1. 28. 12:44
HAProxy란?HAProxy는 기존의 하드웨어 스위치를 대체하는 소프트웨어 로드 밸런서로, 네트워크 스위치에서 제공하는 L4, L7 기능 및 로드 밸런서 기능을 제공합니다. HAProxy는 설치가 쉽고 또한 환경 설정도 어렵지 않으므로 서비스 이중화를 빠르게 구성하고 싶다면 HAProxy를 추천합니다.로드 밸런싱이란?로드 밸런싱이란 부하 분산을 위해서 가상(virtual) IP를 통해 여러 서버에 접속하도록 분배하는 기능을 말합니다. 로드 밸런싱에서 사용하는 주요 기술은 다음과 같습니다.NAT(Network Address Translation): 사설 IP 주소를 공인 IP 주소로 바꾸는 데 사용하는 통신망의 주소 변조기.DSR(Dynamic Source Routing protocol): 로드 밸런서 ..
-
Mesos서버 2017. 1. 28. 12:30
Mesos란?UC Berkeley에서 Nexus라는 이름으로 개발이 진행되던 프로젝트이고, Mesos라는 이름으로 Apache재단에서 오픈소스로 발표하였습니다. Cloud Infrastructure 및 Computing Engine들의 자원을 통합적으로 관리할 수 있도록 만든 자원관리 프로젝트입니다. Mesos는 분산 시스템 커널(distributed systems kernel)입니다. 뭔가 굉장히 복잡해 보이지만, 기본 개념은 간단합니다. 네트워크로 묶여 있는 여러 개의 컴퓨터의 자원 즉, CPU, 메모리, 디스크 등의 자원을 하나로 묶어서 resource pool로 만들어서 마치 하나의 컴퓨터 처럼 보이게 하겠다는 겁니다. 그리고 커널로서 작동하기 위한 기능인 스케쥴러와 애플리케이션 관리 기능을 더해..
-
OpenStack Swift서버 2017. 1. 26. 17:55
OpenStack Swift는 Object Storage 중 하나이며 Open Source Project입니다. 분산 구조의 Object 데이터의 저장 스토리지 체계로서 가장 많이 사용되는 Open Source Project가 바로 OpenStack Swift입니다. Object Storage가 비록 빠른 성능을 요구하는 경우에 쓰이기에는 부적절하지만 안정적이면서도 대용량의 저장공간이 필요할 때 사용하기 적절한 스토리지입니다. 개요OpenStack Swift는 OpenStack의 Object Storage 서비스를 위한 구성요소로 개발되어 최근 다양한 클라우드 서비스의 Object Storage 인프라로 가장 많이 사용되는 Open Source Project입니다. OpenStack Swift는 동영상,..
-
[Django] static 파일언어/파이썬 & 장고 2017. 1. 26. 17:19
Django 정적 파일Django는 실 서비스 환경에서 사용할 정적 파일을 제공하는 기능을 제공하지 않습니다. 서버에 저장된 정적 파일을 읽어들여서 그대로 웹 클라이언트에 보내기만 하면 그만인 단순한 기능인데도 Django는 그런 기능을 제공하지 않습니다. 왜냐하면 그럴 필요가 없기 때문인데, 앞서 설명한 바와 같이 그런 작업에 대해서는 웹 서버가 전문가이기 때문입니다. 게다가 웹 애플리케이션은 웹 서버와 연결하는 중간 인터페이스를 거치므로 효율이 더 떨어집니다. 하지만, 개발 상황인 경우는 효율보다는 기능(역할)이 중요한 경우가 많습니다. 정적 파일이 제대로 제공되는지 확인하려고 항상 웹 서버를 구동할 필요는 없습니다. Django는 개발 단계에서 쓸 정적 파일 제공 기능을 제공합니다. 성능은 웹 서버..
-
블록 스토리지와 오브젝트 스토리지서버 2017. 1. 23. 10:55
블록 스토리지와 오브젝트 스토리지에 앞서 정형 데이터와 비정형 데이터에 대해 먼저 간략하게 설명하겠습니다.비정형 데이터란?일정한 규격이나 형태를 지닌 숫자 데이터와 달리 그림이나 영상, 문서와 같이 형태와 구조가 각기 다른 구조화 되지 않은 데이터정형 데이터란?텍스트와 같이 일정한 규격과 형태를 가진 데이터 형식블록 스토리지블록 스토리지는 실제 컴퓨터에 추가 하드 디스크를 꼽아서 사용하는 개념과 유사합니다.상세개념클라우드 컴퓨트 서비스에서 할당 받은 인스턴스가 있다고 가정해봅니다. 인스턴스는 실제 물리 컴퓨터를 여러 대 사용할 수 있도록 가상화 시켜 놓은 컴퓨터이므로 실 컴퓨터처럼 하드 디스크를 추가할 수 있습니다. 클라우드 컴퓨팅에서 컴퓨터나 서버를 인스턴스라고 부르는 것처럼, 인스턴스에 추가하는 하드..
-
[Golang] 파라미터 ... 의미언어/Golang 2017. 1. 18. 18:05
Go 패키지를 볼 때, 아래와 같은 문법을 사용한 함수를 심심찮게 볼 수 있습니다.func GetCommandLineMultiArgs(args ... string) { arguments := make(map[string]*string) for _, arg := range args { tempVar := flag.String(arg, "", arg) arguments[arg] = tempVar } flag.Parse() } ...의 의미는 파이썬의 *args와 유사합니다. 파라미터로 입력된 타입의 데이터를 몇 개 받을지 확실하지 않을 때 사용합니다.아래는 String 타입의 데이터를 받는 예제입니다.package main import "fmt" func main() { test("111") test("11..
-
[Golang] init() 함수 호출 시점언어/Golang 2017. 1. 18. 18:00
var WhatIsThe = AnswerToLife() func AnswerToLife() int { return 42 } func init() { WhatIsThe = 0 } func main() { if WhatIsThe == 0 { fmt.Println("It's all a lie.") } }AnswerToLife()함수는 init()함수가 호출되기 이전에 호출이 됩니다. 그리고 init() 함수는 main() 함수가 호출되기 이전에 호출이 됩니다.명심해야 할 것은 main()이 있던 없던 init()함수는 항상 호출됩니다. 따라서 init()함수를 가지고 있는 패키지를 import할 경우 init()함수가 실행됩니다. 또한, 패키지 당 여러 init () 함수를 가질 수 있으며, 모든 변수가 초기..
-
[Python] 스코프 규칙언어/파이썬 & 장고 2017. 1. 18. 14:47
파이썬에는 지역, 전역, 내장 스코프를 지원합니다.지역 스코프: 함수 내부에서 생성되는 스코프전역 스코프: 모듈(파이썬 파일) 스코프내장 스코프: 파이썬 자체 내장 영역 스코프각각의 스코프 특성 때문에 변수의 트성도 지역과 전역으로 나뉘어 집니다. 파이썬이 지역과 전역을 선언할 때 전역변수를 선언하거나 명시할 때 global 키워드를 사용해야 합니다. def func_scope(): print(a) a = 100 func_scope() # 결과 # 100위의 예제와 같이 전역변수를 참조만 하여 사용할 때 (전역변수의 수정이 일어나지 않을 때)는 global 키워드 없이 그대로 사용할 수 있습니다. def func_scope(): print(a) a = 200 print(a) a = 100 func_sco..