가상서버호스팅을 하려고하는데 궁금한점들

처음으로 서버를 구매해서 이용해보려고합니다…

전문가가 아니라 공부용으로 쓰고싶어서 가상 서버호스팅을 하려고합니다…

하나의 리눅스os 아래
root 기본설치 - 아파치 를 해준다고하는데,

제가 하위에 임의의 사용자를 만들어서 sub 도메인을 이용해 나눠서 쓰고싶습니다.
사용자1 - 아파치 + mysql
사용자2 - nodejs + monggodb
사용자3 - nginx + nosql

이런식으로 사용이 가능한가요?

이렇게 하려면 기본설치에 아파치를 깔아주는것과는
아무관계없이 하위 사용자가 자신의 폴더내에서 설치해서 그냥쓰면되는건지요…

[quote:3glbgzbc]네임서버 이용 시 도메인 연결개수 제한이 있습니다[/quote:3glbgzbc]

도메인에 해당 서버의 IP로 가게끔만 하는건데

왜 네임서버에서 그 수를 제한하려고하는건가요…?

64bit Ubuntu 10.04 / 64bit Ubuntu 12.04

두개의 버전을 선택할수있는데,

구버전을 선호하는 이유는 단순히 많이 쓰이고 써왔기 때문인가요…?

kt ucloud 쓰시나요? 저는 digitalocean.com 쓰는데 kt가 가격이 많이 착해져서 조만간 옮겨 볼까 합니다. 기본적으로 해외 서버라 네트웍 속도가 많이 차이 나네요.

  1. 예전 버전에서 돌리던 서비스를 그냥 변화 없이 돌리려고 하는 경우가 아니면 구 버전 쓸 이유가 없습니다. 10.04 LTS 버전이라 지원해주는 것 같네요.

  2. 각 서비스 별로 독립적인 환경을 구축하시려는 의도 같습니다. 저는 docker를 써서 하고 있는데요 나온지 오래 된 기술은 아니지만 굉장히 큰 인기를 끌고 있습니다.

docker는 리눅스 커널에서 새롭게 제공하는 LXC(LinuX Container) 기능을 사용자가 쉽게 이용할 수 있게 해주고 배포, 관리도 간편하게 해줍니다. docker로 제작된 각종 이미지들의 공유도 쉽도록 중앙 저장소를 제공 합니다. dotCloud라는 가상 호스팅을 제공하는 회사에서 오픈 소스로 개발한 툴인데 인기가 대박을 치면서 회사 이름까지 Docker로 바꾸고 요새는 래드햇하고 협약까지 맺고 잘 나가고 있습니다.

LXC도 일종의 가상 머신 인데요 기존의 가상 머신들과 다음과 같은 차이점이 있습니다.

[list:hiwthz73][:hiwthz73]머신을 통채로 에뮬레이션 하는게 아니고 커널은 호스트의 커널을 그대로 쓰지만 파일 시스템이나 기타 장치들을 독립적으로 제공 합니다. chroot를 사용해 보셨다면 대략 감이 오실 겁니다. 그래서 스테로이드 맞은 chroot라는 표현도 씁니다.[/:m:hiwthz73][:hiwthz73]각 컨테이너 별로 자원 할당을 제한할 수 있습니다. CPU, RAM, NIC 등등[/:m:hiwthz73]
[:hiwthz73]이 컨테이너를 띄워 보면 직접 실행한 프로세스 말고는 돌아가는 게 없습니다. 그냥 웹서버를 띄우나 이 컨테이너 안에서 웹서버를 띄우나 사실상 체감할 수 있는 차이가 없습니다. 그러면서도 완전히 독립된 공간을 제공 합니다.[/:m:hiwthz73][/list:u:hiwthz73]

가장 중요한 장점이 빠르고 가볍 다는 것 - 분리 가능한 부분을 각각의 컨테이너에서 따로 실행해도 컨테이너 사용에 따른 추가적인 부하가 거의 없습니다. 메모리도 해당 프로세스가 원래 먹는 만큼만 먹는 다고 봐도 무방 합니다.

[code:hiwthz73]docker pull ubuntu
docker run -i -t ubuntu bash -> 컨테이너를 띄우고 bash 실행
root@sldfjseij23lksjdsld # apt-get update && apt-get install nginx
root@sldfjseij23lksjdsld # exit
docker run ubuntu nginx
docker commit CONTAINER_ID myimage/nginx -> 이미지로 저장. 재활용 가능

주의사항 : 이대로 따라 하시면 오류 납니다. 개념만 보세요.[/code:hiwthz73]

각각의 이미지 별로 저장공간을 따로 쓰는 게 아니고 그 바탕이 되었던 이미지를 그대로 공유 하면서 변화된 부분만을 따로 관리합니다. snv, git 같은 버전 관리 개념과 비슷 합니다.

[code:hiwthz73]Commands:
attach Attach to a running container
build Build a container from a Dockerfile
commit Create a new image from a container’s changes
cp Copy files/folders from the containers filesystem to the host path
diff Inspect changes on a container’s filesystem
events Get real time events from the server
export Stream the contents of a container as a tar archive
history Show the history of an image
images List images
import Create a new filesystem image from the contents of a tarball
info Display system-wide information
insert Insert a file in an image
inspect Return low-level information on a container
kill Kill a running container
load Load an image from a tar archive
login Register or Login to the docker registry server
logs Fetch the logs of a container
port Lookup the public-facing port which is NAT-ed to PRIVATE_PORT
ps List containers
pull Pull an image or a repository from the docker registry server
push Push an image or a repository to the docker registry server
restart Restart a running container
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save an image to a tar archive
search Search for an image in the docker index
start Start a stopped container
stop Stop a running container
tag Tag an image into a repository
top Lookup the running processes of a container
version Show the docker version information
wait Block until a container stops, then print its exit code[/code:hiwthz73]

명령어 보시면 어떤 기능들이 있는지 대충 짐작하실 겁니다.

이미지 통채로도 공유나 재활용이 가능 하지만 Dockerfile 이라는 Docker용 Makefile을 지원해서 이 파일만 가지고 다른 환경에서도 바로 원하는 컨테이너를 띄울 수 있다는 게 장점 입니다.

[code:hiwthz73]외부 - nginx - nodejs - mongodb
- apache(php) - mysql
- nginx - nosql[/code:hiwthz73]

이런 식의 구성을 총 7개의 컨테이너를 띄워서 구성할 수가 있겠죠. 제일 앞단의 nginx와 뒷단의 nginx는 사실상 같은 이미지지만 설정파일만 바꿔서 활용할 수 있고 모든 컨테이너들이 기본 이미지, 이를 테면 우분투 12.04의 이미지를 공유할 수 있습니다. 그러면서 각자의 파일 시스템을 가지고 있고 원한다면 호스트의 지정된 디렉토리를 여러 컨테이너에서 공유할 수도 있구요.

이 docker를 기반으로 한 새로운 서비스나 오픈 소스 툴들이 우후죽순으로 생겨나고 있습니다. 서버 운영에 관심이 있으시면 눈여겨 보실만 합니다.

홈페이지는 http://docker.io
공개 이미지 저장소 http://index.docker.io

  1. 까페24나 스쿨호스팅의 가상서버호스팅을 이용하려고 하고있습니다… (가격이싸서…)
    kt ucloud 도 말씀해주셔서 봤는데, 사양은 비슷한대 가격이 비싼거같네요 …

  2. 좋은 정보감사합니다.
    하나의 컨테이너를 여러사용자가 가져다 써도 괜찮은건가요?
    예를들어, 한사용자가 아파치 + mysql 로 가져다 썼는데
    사용자2가 아파치 + moggodb 이런식으로 아파치를 두번써도 되는건가요?
    가능하다면 여러군대에서 접근하는것이니 더 사양이 느려지는게 맞는게 아닌지요…

또한 제 서버아래 여러사용자가 동시에 여러개의 서버를 동시에 돌려도 되는건지…

궁금한게많네요…ㅠㅠ 답변주셔서 감사합니다!

여러 사용자라고 하시는 게 실제 다른 사람들에게 계정을 생성해 주어서 각자 원하는 서비스를 운영하도록 하는 걸 말하시는 건가요?

[quote="kdh6429":3uh6kjmn]하나의 컨테이너를 여러사용자가 가져다 써도 괜찮은건가요?
예를들어, 한사용자가 아파치 + mysql 로 가져다 썼는데
사용자2가 아파치 + moggodb 이런식으로 아파치를 두번써도 되는건가요?
가능하다면 여러군대에서 접근하는것이니 더 사양이 느려지는게 맞는게 아닌지요…[/quote:3uh6kjmn]
리눅스는 하나를 설치하고 무엇을 쓰든 누구는 이걸 쓰고 누구는 저걸 쓰고 하는 것이 아닙니다.
하나를 설치하면 어떤 사용자든 사용이 가능 합니다.

위의 말씀은 사용자들에 대한 차별의 의미로 다가 옵니다만
무엇을 사용하던 사용자는 접근이 가능한 데 특별히 하나를 선택한다는 의미로 해석 하시길 바랍니다.

물론 여러가지 서버 데몬을 활용한다면 시스템 자원을 활용하는 데 무리가 있을 수 있겠죠…^^
무엇이든 그렇지 않은 것이 있을 까요?

그러나 시스템 자원을 여럿으로 잘 분배한다면
오히려 시스템을 더 잘 이용하는 방법이 될 수도 있다는 것을 강조해 드리고 싶습니다.