일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- PostgreSQL
- 알리익스프레스
- ReactNative
- S3
- 싱크대
- 인테리어
- 슬랙활용
- MySQL
- 해외직구
- catalina
- 캐딜락
- 직구
- 슬랙사용법
- vagrant
- virtualbox
- CTS
- 셀프인테리어
- 머신러닝
- Xcode
- M1
- 슬랙
- 스마트에너지미터
- 장애
- 알리
- Mac
- docker
- Slack
- 예인싱크
- serial
- Today
- Total
목록Programmer (32)
MoreLean
docker의 경우 이전 포스트에서 어떤 것인지 대략 그림이 그려졌다. ( 지극히 주관적인 post 임 ) docker를 이해하기 위해선 약간의 사전 정보가 필요하다. Linux에 cgroups라는 새로운 시스템이 커널에 추가되었다. cgroups는 커널에서 다른 프로세스 그룹간에 격리할 수 있는 방법을 제공한다. 이 기술을 바탕으로 LXC( LinuX Containers)라는 프로젝트가 생겨났다. docker는 이 LXC를 기반으로 가상환경을 제공합니다. 또한 리눅스는 Union File System중의 하나인 AUFS를 사용한다. 일단, 이런것들이 어떻게 구성이 될지를 생각하기 전에 미리 알아두어야 할 몇가지 사항이 있다. # File System ( http://docs.docker.io/en/la..
현재 회사에서 Feature 프로젝트 하나를 하고 있다. 프로세스간 isolation 및 자원등에 대한 제한등이 필요하였고, 이에 대해 팀원이 하나 던져준 오픈 소스가 바로 이 docker( docker.io )이다. 이름이 참 특이했는데 나중에 생각해보니 프로젝트의 특성(linux container를 관리 및 자동화)과도 잘 맞는 듯한 네이밍이었다. # docker.io 에 가면, 다음과 같이 docker를 정의하고 있다. Docker is an open-source engine that automates the deployment of any application as a lightweight, portable, self-sufficient container that will run virtually..
로드밸런싱은 설계를 진행하면서 항상 직면하는 중요 요소 중 하나이다. 이번 프로젝트도 특성상 안들어갈리가 없다. LBS(Load Balancing Service)를 구현하는 방식 가장 쉽고 일반적인 방식이 하드웨어적인 구현이다. L4나 L7와 같은 장비를 서비스 앞단에 두고 VIP를 설정하여 내부 서버들에게 로드밸런싱 정책과 각 서버별 가중치(weight)값을 지정하는 형식으로 보통 설정하면 끝이다. 여기에 L7은 High 레이어 특성상 추가적으로 소프트웨어적인 제어가 가능하다. 이정도면 일반적으로 쓰는데 지장이 없으나 이런 장비들은 대부분 고가이다. 요즘 많이 쓰는 cloud 기반의 서비스들도 부가 서비스 형태로 지원하긴 하나 서비스 이용료가 비싼 편이며, 현 프로젝트가 사용중인 cloud 서비스는 L..
Ubuntu에서 locale warning 이 뜰때가 있다. locale-gen ko_KR.UTF-8명령어를 넣어주면 추가 되고, ( 물론 뒤에 locale 타입은 오류 메시지를 참조하여 입력해주어야 한다. )dpkg-reconfigure locales 명령어를 실행해 갱신해주면 해결된다.
vagrant 는 다양한 vm를 연동하여 사용가능하지만, 가장 많이 쓰이는 것은 virtualbox 일 것이다. 초기부터 지원했던 가상화 환경이기 때문에여튼 무료인 virutalbox의 경우 쓸만하지만 여러모로 불편한 점등이 있다. ( USB 등을 인식시킬때의 제약이라던지.. )암튼 VirtualBox Extension Pack 를 기본적으로 설치하게 되는데, 이때, vm등에게도 관련 패키지를 설치해야하는 경우가 있다. 그 이후에 VirtualBox를 업그레이드 하게 되면 그 전에 생성했던 vm을 vagrant up을 통해 구동 시킬때 다음과 같은 화면을 만나게 될것이다. 구동할때마다 저렇게 노란색의 워닝 비슷한 메시지를 보게 되면 영 찜찜하다. 일단, 업데이트를 하려면 vagrant-vbguest라는 ..
리눅스 머신을 관리할때, cron의 스케줄링 환경설정도 같이 관리해야 하는 경우가 있다. 이럴때 내가 쓰는 방법이다. 일단, 시스템 설정등은 git으로 통합 관리한다. 디렉토리 구성은 예를 들면 다음과 같다. ( push 라는 서버군의 D(dev), S(stage), P(production) 서버 환경마다 다른 cron 설정을 관리한다. ) 이렇게 설정된 git repository를 서버에서 git clone 해놓는다. cron은 각 계정별로도 스케줄 파일을 관리하는데, /var/spool/cron 에 계정이름과 동일한 파일로 관리하고 있다. 기본 파일을 삭제후 #> rm /var/spool/cron/baas #> ln -s /data/_system/conf/push/D/manage/cron/baas /..
mysql replication 이 몇가지 사유로 인해 깨졌을 경우. 기본적으로 mysql 의 replication은 binary 로그를 기반으로 순차적인 복제 실행을 하는 과정을 가지고 있다. 즉, 해당 문제가 발생하였을 경우 로그 포지션을 기록해두었다가 해당 문제를 스킵하면 되나, 그 문제 발생 사유가 데이터의 구조등의 변경에 영향을 미치는 쿼리라면 스킵하는 것만이 능사는 아니니 꼭 확인이 필요함. # skip 방법1. mysql 의 master log position을 지정해준다. 예를 들어 mysql-bin.00009로그파일의 1001번째 position 에서 문제가 발생했을 경우 mysql> stop slave; mysql> change master to master_log_file 'mysql..
mysql 에서 concat 을 통해 두개의 필드의 문자를 조합할때 제대로 동작하지 않는 경우가 있다. 특히 숫자형( int, float )일 경우 그런 문제가 발생한다. 이럴때는 형변환을 해준뒤에 조합을 하면 된다.SELECT concat( cast( year as char ), lpad( cast( month as char ), 2, '0' ) ) as ymonth.... 이렇게 사용하면 concat 의 결과가 제대로 출력될 것이다. 위의 lpad의 경우도 zerofill 처리할때 사용할 수 있는 함수lpad에서 알수 있듯이 "지정한 길이만큼 부족한 부분을 설정한 문자값으로 left부터 채운다." 라는 의미를 가짐.