saltfactory's blog


AWS(Amazon Web Services)에서 Ubuntu 5분만에 시작하기

서론

최근에는 웹 서비스를 하기 위해서 비싼 서버를 구입하거나 서버 구축을 위한 전문 지식이 없이도 클라우드 컴퓨팅 서비스를 사용하여 빠르고 쉽게 웹 서비스 환경을 구축할 수 있다. 연구소에서 클라우드 컴퓨팅 서비스 도입을 검토하기 위해서 여러가지 서비스를 사용해보기로 결정하였다. 클라우드 컴퓨팅에 관해서는 기본적인 배경 지식이 많이 필요하고 설명해야하는 부분도 많다. 우리가 이 서비스를 도입하려고 했던 이유는 크게 다음과 같다.

  1. 서비스가 증가하면서 늘어나는 서버를 유연하게 하고 싶다.
  2. 서버 관리에 들어가는 시간을 줄이고 비즈니스 개발에 집중하고 싶다.
  3. 서버에 문제가 발생하면 대체 운영할 수 있는 서버 인프라가 필요하다.
  4. 중요한 데이터를 분실하지 않게 효율적인 보안 및 백업 서비스 환경이 필요하다.

우리는 위와 같은 요구사항을 해소하기 위해서 첫번째 전세계 가장 많은 사람들이 사용하고 있는 AWS(Amazon Web Servers)를 사용해보기로 하였다.

Continue Reading

Ubuntu에서 Duplicity를 사용하여 암호화 백업 환경 구축하기

서론

최근 Ubuntu server는 가장 인기 있는 리눅스 서버이다. 서버 운용에 필요한 편리한 패키지들이 많고, 패키지 관리가 쉽기 때문에 빠르게 서비스를 구축하거나 마이그레이션할 때 유용하다. Ubuntu는 많은 강점이 있지만 엔터프라이즈급 서버가 아니기 때문에 (이것은 오픈소스 운영체제의 장점이지만 단점이 아닐까 생각한다) 이유없이 죽거나 또는 물리적인 문제 때문에 서버 운영이 중단 될 수 있는 약간의 위험요소가 있다. 실제 git 서버를 Ubuntu에서 운영하다 디스크에 Bad block이 발생하여 서비스가 한동안 운영되지 못한 문제가 있었다. 다행히 복원은 하였지만 또 다시 발생할 수 있는 위험요소에 대처하기 위해서 백업 환경을 구축하기로 했다. 또한 보안이 필요한 파일들을 암호화해서 파일을 백업하는 기능이 필요했다. 이 글은 duplicity를 사용하여 암호화 백업환경을 구축하는 방법에 대해서 소개한다.

Continue Reading

docker에서 GnuPG 키 생성 문제 해결과 파일 암호화/복호화 하기

서론

GnuPG(GNU Privacy Guard)PGP(Pretty Good Privacy)를 대체하는 암호화/복보화 프로그램이다. PGP는 이메일 보안의 표준으로 되었고 전자서명을 할 수도 있다. 원본파일과 sig 파일을 생성하여 배포하며 PGP를 사용하여 sig파일을 검증한다. GnuPG는 OpenPG 표준인 RFC4880을 따른다. 컴퓨터에서 보안을 위해 파일을 암호화하거나 복호화할 때 이것을 사용하면 상용 암호화/복호화 프로그램없이 파일을 수준높은 보안으로 관리할 수 있다.

GPG를 사용할 때는 개인키(private key)를 생성해서 사용하는데, docker 환경에서 GPG로 키를 생성할 때, Not enough random bytes available. Please do some other work to give the OS a change to collect more entropy! 에러가 발생한다. 이 글에서는 docker에서 이 문제를 해결해서 docker에서 GPG를 사용하는 방법을 소개한다.

Continue Reading

Ubuntu에서 Postfix와 Gmail SMTP를 사용하여 메일 보내기

서론

리눅스 서버를 운영하다보면 메일을 발송해야할 경우가 있다. 시스템의 로그나 다양한 리포트를 메일로 발송해야할 경우가 종종 생기는데 메일 서버를 구축하는 것은 만만치 않은 비용이 발생한다. Ubuntu는 멋진 리눅스 운영체제이다. 사용자로 하여금 필요한 것을 쉽게 서비스할 수 있게 다양한 패키지를 사용할 수 있기 때문이다. 그리고 Gmail은 여러가지 서비스에 Gmail SMTP를 사용할 수 있는 방법을 제공하고 있다. 이 글에서는 Ubuntu의 Postfix라는 패키지를 사용하여 Gmail SMTP로 메일을 발송하는 방법에 대해서 소개한다.

Continue Reading

Ionic 기반 하이브리드 앱에서 gulp.js와 Cordova hooks를 사용하여 proxy 다루기

서론

앞에 글 Ionic 기반 하이브리드 앱에서 proxy를 사용하여 CORS 문제 해결하기에서 Ionic을 데스크탑에서 개발할 때 ionic serve를 가지고 proxy 기능으로 CORS 문제 없이 테스트하는 방법을 살펴보았다. 이 방법은 로컬 데스크탑에서 브라우저를 통한 개발을 위한 방법이다. 만약 proxy를 사용하여 개발한 코드를 실제 디바이스에 개발하게되면 문제가 발생하지 않을지를 생각해보자. 정답은 Ionic의 proxy 기능은 ionic serve의 기능이다. 우리가 제품으로 개발하여 설치하는 모바일 디바이스에서는 ionic serve를 사용할 수 없기 때문에 proxy는 의미가 없어지게 된다. 즉, 실제 디바이스에서는 원래의 proxyUrl을 사용해야 하는 것이다. 이 글에서는 데스크탑에서 개발할 때와 디바이스에 실행할 때 proxy을 어떻게 다루는 방법과 gulp.js를 사용하여 자동화하는 방법을 소개한다.

Continue Reading