2014년 10월 8일 수요일

가벼운 서버용 리눅스 CoreOS

가벼운 리눅스 CoreOS


  • 서버용로 정말 필요한 기능만 모은 경량 OS인 "CoreOS」정식판이 7 월에 데뷔했다.
  • Docker Engine에 특화 : CoreOS 응용 프로그램을 OS별로 쉽게 사용할 수 있어서 화제인 Docker Engine에 특화되었다.
  • 클라우드 운영체제: 메모리가 1GB정도의 시스템에서도 가상화로 시험해 볼 수 있을 정도로 가벼운 클라우드 OS이다.
  • 응용 프로그램(Application)과 OS를 함께 담은 컨테이너를 이미지 파일로 만들어 사용한다.
  • 이미지 파일은 서버환경에서 대규모로 응용프로그램을 배포할 수 있다.
  • 이런 이미지를 위해서 미국 Docker 사는 배포를위한 클라우드 서비스 'Docker Hub'도 운영한다.
  • 사용자는 Docker Hub를 통해 컨테이너를 Docker이 움직이는 다른 컴퓨터로 이동하거나 복사 할 수 있다.
  • 이미 Google과 Amazone 등의 IaaS 서비스에서 CoreOS 지원을 시작했다.
  • 로컬에서 개발한 환경을 클라우드로 이전이 쉬워서 개발과 운용에 유연함을 가진다.

Core OS 구성 요소

  • Core OS 구성 요소는
    • Linux 커널
    • systemd,
    • Docker.
    • Docker의 동작에 필요한 패키지 한정
  • 부팅시 사용 메모리는 60M 바이트 미만이다.
  • 가상 머신를 위한 간단한 구조의 가상 OS인 만큼, 1G 바이트의 메모리로도 충분 할 수 있다.

다른 배포판과 비교

  • Linux에 여러 배포판 중 가장 많이 사용하는 것이
    • 데스크탑이라면 "Ubuntu"
    • 서버라면 "RedHay"과 공개 배포판인 "CentOS"가 있다.
  • Ubuntu는 초보자를위한 Linux 배포판이다.
    • Ubuntu의 서버용 배포본도 있으며, 같은 서버 전용의 Debian 도 있다.
  • CentOS는 상용 Red Hat Enterprise Linux의 클론 OS로 서버 용도의 많이 사용한다.
  • 지금까지는
    • Ubuntu는 간편함,
    • CentOS는 점유율 1 위의 상용 Linux와 동일한 견고 함으로 많이 사용해 왔다.
  • CoreOS은 서버 엔지니어에게 간편함과 견고함을 함께 제공하는 OS가 될 가능성이 충분하다.
    • 특히 클라우드 인프라에 최적화되어 서비스를 제공할 수 있다.

CoreOS의 설치

  • CoreOS의 설치는 간단하다.
  • 홈페이지에서 ISO 이미지 파일을 다운로드하고
    • CD-R이나 DVD-R, USB 메모리 등으로부터 부팅해서 설치하면 된다.
  • ISO D/L 에 접속하여
    • Download Stable ISO를 클릭
    • coreos_production_iso_image.iso를 선택한다.
    • 파일 크기는 150M 바이트 정도이다
  • CD-R 또는 DVD-R에 기록해서 설치를 위한 부팅 미디어를 생성한다.
    • Windows 7/8라면 OS의 표준 기능으로 쓰기 가능하다.
  • CoreOS를 담은 미디어로 부팅하면 자동으로 로그인하여 명령 입력 대기 화면이 나온다.
  • 다음 명령을 입력하여 IP 주소를 확인하고 사용자 "core"에 비밀번호를 설정한다.
$ ip addr show
$ sudo passwd core
  • IP 주소를 보고
  • SSH 클라이언트를 사용하여
  • 사용자 이름 core와 방금 설정 한 암호를 사용하여 원격 로그인한다.
    • SSH 클라이언트는 Windows라면 PuTTY가 편리하다.
    • Linux의 경우 다음 명령을 입력한다.
      $ ssh core @ IP 주소
      
  • SSH 로그인 후 설정 파일을 작성한 다음 설치 명령을 실행한다.
  • 설정 파일에는 로그인에 사용하는 공개 키 암호화 공개 키 또는 암호를 설정한다.
  • 여기에는 암호로 로그인하는 방법을 소개한다.
  • 암호는 일반 텍스트가 아닌 해시 함수로 암호화 해시 값을 사용한다.
  • 해시 값을 구하기 위해서 다음 명령을 실행한다.
$ openssl passwd -1
  • 설정 파일을 SSH 클라이언트에 복사해서 설정한다.
$ cat > cloud-config.yaml << EOF
# cloud-config.yml

users :
 - name : core
   passwd : 암호 해시
   groups :
    - sudo
    - docker
EOF
  • 설정 파일을 저장하고 다음 명령으로 설치를 시작한다.
$ sudo coreos-install -d / dev / sda -C stable -c cloud-config.yaml
  • 다시 시스템을 시작한다.
$ sudo reboot

간단한 웹서버 시작 (예시)

  • 설치한 CoreOS에 설정한 비밀번호로 로그인한다.
  • 이미 Docker Engine이 사용 가능한 상태이다.
  • CoreOS는 응용 프로그램을 컨테이너를 사용한다.
  • CoreOS 컨테이너는 Docker Hub에서 다운로드할 수 있다.
  • 주요 응용 프로그램 공급 업체가 공개해서 만들어 놓은 컨테이너가 많이 있으므로 골라서 사용하면 된다.
  • 예를 들어 다음 명령으로 간단하게 경량 Web 서버의 "Nginx"를 설치해서 사용할 수 있다.
$ docker run --name some-nginx -v /some/content:/usr/local/nginx/html:ro -d nginx