docker 를 어떻게 하면 잘 활용할 수 있을까?

여러가지 방향을 생각해본다.

vagrant 와는 다르게 linux 전용이라 구성에 제약이 따른다.


1. 최대의 성능.

배포용 : 개발머신(linux / docker 호스트)  => docker 이미지

개발용 : 개발PC(win/mac/linux) => 개발환경(linux / docker) + docker pull  <= 배포 이미지

  [필요사항] 배포용 머신이 팀 또는 개인이 보유하고 있어야 한다.

  [장점] linux 머신에 docker 를 바로 세팅해서 최대 성능을 낸다.
  [단점] 리눅스 환경의 개발PC 가 아니면 원격으로 접속해서 개발해야 한다.


2. 관리의 편의.

배포용 : 개발머신(docker 호스트)  => docker 이미지

개발용 : 개발PC+개발환경[ vagrant (docker) ] + docker pull  <= 배포 이미지

  [장점] 개발PC 의 OS 에 상관없이 개발환경을 세팅가능하다.(win / mac)
  [단점] vagrant(vm) 을 활용하기 때문에 성능저하가 있다.



# 개발이 완료된 후 서비스용 설정

기본 구성은 다음과 같이 하려 한다.

서비스서버(docker) + docker pull  <= 배포이미지

서비스서버 를 AWS / DigitalOcean / GoogleCloud 등의 가상서버로 세팅해도 되고, 서버호스팅의 리얼서버를 이용해도 된다.

클라우드는 성능저하가 있겠지만, 빠른배포 와 편의성을 잘 따져보고 결정하면 되겠다.

충분한 테스트를 해보고 결정하는 것이 좋겠다.


디지털오션쪽에 2개월정도 무료사용가능하니 먼저 테스트해봐야 겠다.
(512M 짜리 * 2개 => 1개월 , 4개 => 2주? , 8개 => 1주일정도? )


(무료 사용은 => 링크 참조)

테스트 해보고 사용해도 되겠다 판단이 되면, Core 를 늘려서 서비스용으로 활용해도 되겠다.


# 서비스 시나리오.

서비스용으로 10대의 클라우드 서버에 배포하는 시나리오를 만들고 테스트 해봐야 겠다.

그러고 보니 docker 모니터링툴도 필요하겠다. (관련 자료도 찾아봐야 겠네)


자동화에 필요한 사항은 다양한 시나리오 사례가 만들어지면, 재미있을 것 같다.



WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

트랙백  0 , 댓글  0개가 달렸습니다.
secret

윈도우 운영체제만을 사용하다가 리눅스(유닉스)/맥OS 를 사용하려는 분들이 제일 어려워 하는 부분이

파일(폴더)권한 permission 에 관한 것일 듯 하다. 그러나 개념을 한번 익혀놓으면 그리 어렵지는 않다.


윈도우만 쓰는 분들도 쇼핑몰,블로그 등을 운영하다 보면 호스팅을 사용하는 경우가 생긴다.
그러면 대부분 리눅스 운영체제의 호스팅을 사용하게 된다.

물론 호스팅을 사용하더라도 퍼미션에 관한 사항을 체크할일은 거의 없지만, PG 결제모듈을 연결하거나 할때 필요한 경우가 생긴다.

다음은 kcp 모듈의 실행권한이 필요한 파일예시이다. (console 을 주로 쓰긴 하지만, 익히기 쉽게 Filezilla 의 파일권한 메뉴를 통해서 본 화면이다)

크게 소유자권한 / 그룹권한 / 공개권한 이라는 것이 있는데, 주로 소유자/공개 부분을 유념해두면 된다.(그냥 동일하게 설정하거나...)

읽기 권한 : 해당 파일을 볼 수 있는 권한을 말한다. 텍스트 파일이면 편집기등을 통해 파일의 내용을 볼 수 있게 된다.
쓰기 권한 : 파일을 열어 내용을 수정할 수 있는 권한이다. 삭제도 포함된다.
실행 권한 : 파일을 실행할 수 있는 권한이다. 이 부분이 중요한데, 결제 모듈같은 경우 결제/결과보기 등을 해당 모듈(파일)을 실행해야 하는 경우가 있다.

위 그림에서 실행 권한을 체크해줘야 한다.

콘솔상의 명령은  

chmod 655 pp_cli

정도가 되겠다.
보통은  chmod 777 pp_cli / chmod 707 pp_cli 를 많이 사용한다.(보안등의 문제는 이 글에서는 생략한다)


그리고 폴더(디렉토리)의 권한은 파일과 비교해 동작이 약간 다른 부분이 있다.

읽기 권한 : 폴더내의 파일리스트를 볼 수 있는 권한이다.
쓰기 권한 : 폴더내에 파일을 생성할 수 있는 권한이다.
실행 권한 : 폴더로 이동(?)할 수 있는 권한이다.

결제 모듈등에서 또 중요한 부분이 있는데, 결제를 한 후 결과를 파일등에 로그를 남기는 경우가 있다.
kcp 같은 경우 log 폴더에 201406 등의 월별로 폴더를 생성하고 일별로 파일을 생성해 로그를 남긴다.
(다른 모듈 이니시스 / LGU+ 등도 비슷하다)

그래서 log 폴더는 쓰기/실행 권한을 주는게 좋다.

chmod 707 log  

의 명령으로 해준다.

Filezilla 를 사용한다면

위 처럼 777 전체로 줘도 되고, 그룹권한은 뺴고 줘도 된다.(보통의 웹호스팅 환경에는 비슷하다)

하위 디렉토리까지 변경 하려면 위의 하단부분 옵션을 체크해서 처리 해주면 된다.

콘솔 명령으로는 -R 옵션을 추가해준다.

chmod -R 707 log

이런 식이다.


초보자는 파일/폴더 권한에 대한 사항은 위 정도만 이해하고 있으면 무리없다.





WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

트랙백  0 , 댓글  0개가 달렸습니다.
secret
ubuntu 및 리눅스 에서 root ( / ) 와 var 가 같은 파티션으로 운영중이다가,
var 를 다른 파티션으로 분리할 때 주의할 점이 있다.
(경우에 따라서 네트웍 인터페이스가 안 올라오기도 한다)

/var/lock 과 /var/run  은  root (/) 와 같은 파티션에 있어야 한다는 것이다.

shell 에서 df 명령을 내려보면.
varrun     517888  224   517664   1%   /var/run
varlock    517888     0   517888   0%   /var/lock
이런식으로 나올것이다.

예를 들어
sda1  에 root (/) 와 /var  가 운영되다가.
sda2  로  /var 를 분리한다고 한다면.

sda1 /
sda2 /var

sda2 /var --> var/run , var/lock  이 위치하는 것이 아닌.
sda1 / var/run , var/lock 을 만들고,  /var  를 sda2 로 마운트 시킨다.

그래야 varrun , varlock 이 정상적으로 마운트된다.


ps. varrun , varlock 은 아마도 프로세스 관리에 필요한 듯 하다.
리눅스 커널 어느 버전부터 적용된 것인지는 모르겠다.
최소 dapper 부터는 봤으니, 꽤 된 듯.



WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

트랙백  0 , 댓글  0개가 달렸습니다.
secret