AWS EC2로 웹 서버 띄우기 전에 해야 할 일

필자는 AWS의 EC2 인스턴스를 제대로 활용해 볼 기회가 없었던, 그래서 AWS 초짜이다. EC2 인스턴스를 새로 생성해서 서비스해야 할 일이 생겨서 웹서버를 구축하다가 AWS 서비스의 구조를 잘 몰라서 잠시 고생을 했다. 웹서버를 띄웠는데 인스턴스와 IP는 어떻게 연결해 주어야 할 지, 도메인 세팅을 다 해 주었는데도 왜 접속이 되지 않았는지 고민하게 되었다. 결론은 AWS를 몰라서 생긴 이슈였다. … Read more

docker-compose WordPress 세팅 – 2부. wordpress, nginx 설정

지난 1부에서는 docker-compose WordPress 세팅을 위한 mariadb 설정에 대해 다루었습니다. 2부에서는 wordpress와 nginx 설정을 통해서 워드프레스를 구동해 보도록 하겠습니다. docker-compose WordPress 설정 여기에서는 WordPress를 컨테이너로 띄울 것입니다. WordPress를 php 7.1으로 구동하는 fpm으로 띄울 것이며 도커 이미지 경량화를 위한 alpine 리눅스 이미지를 사용할 것입니다. 관련 사항을 docker-compose.yml에 추가하겠습니다. 1부에서 mariadb의 환경변수를 추출했던 것처럼 .env에 환경 변수는 … Read more

docker-compose WordPress 세팅 – 1부. mariadb 설정

서비스는 하나인데 사용해야 하는 컨테이너가 여러 개인 경우 매번 각종 도커 명령어를 사용하는 것은 말도 못하게 번거롭습니다. docker-compose WordPress 설정 방법을 알아보겠습니다. docker build, docker run, docker stop, docker rm, docker restart 등의 명령어를 docker-compose 하나로 조금 더 편하게 관리해 봅시다. docker-compose WordPress 설정하기 WordPress를 이용하려면 Database도 필요하고, WordPress를 구동하는 웹 서버도 필요합니다. 웹서버는 php로 … Read more

SSL configuration generator & security test links

Mozilla에서 Apache, Nginx 등의 SSL 설정 내용을 생성해 주는 페이지가 있다. Mozilla SSL configuration generator https://mozilla.github.io/server-side-tls/ssl-config-generator SSL 설정이 얼마나 잘 되었는지, 해당 도메인으로 접속했을 때 얼마나 안전한지, 접속 호환성이 있는지 확인할 수 있는 페이지가 있다. 테스트 결과를 등급과 점수로 제시하고 있어서, 현재 운용중인 사이트의 보안 수준을 확인하기에 좋다. SSL Security Test https://www.ssllabs.com/ssltest SSL 보안 테스트를 … Read more

Dockerfile –build-arg option

도커 컨테이너를 띄울 때 volume을 설정해서 persistence를 잡아 줄 때, 컨테이너에 마운팅되는 방식이 머신별로 차이가 있는 것을 발견하였다. 필자는 php:7.1.10-fpm-alpine 이미지를 이용하여 컨테이너를 띄웠다. 볼륨을 마운트하면, 마운팅 된 디렉토리의 UID와 GID가 계속 1000으로 나오는 것이었다. 컨테이너에서 php-fpm을 띄우는 사용자는 www-data로 세팅해 놓았고, www-data 사용자의 UID와 GID는 둘 다 기본으로 82로 잡혀 있었다. www-data 사용자로는 마운팅된 … Read more

Tutorial of automated Letsencrypt certificates with nginx

지난 포스팅에서는 certbot을 사용하여 gitlab의 인증서를 설치하는 법에 대해서 작성하였고, 자동으로 인증서를 재발행하도록 해 보아야겠다고 생각했었는데, 오늘은 엔진엑스에 인증서를 설정하고 자동으로 갱신되도록 하는 부분에 대해 작성해 보려 한다. 지난 포스팅 이후에 인증서 재발행을 간단히 실행해 보고, 문제가 될 수 있는 지점을 하나 발견하였다. –manual 옵션으로 인증서를 발행한 경우에는 certbot renew 명령으로 인증서 재발행이 불가능하다는 것이다. 기본적으로 … Read more

docker –link 옵션 대신 docker network 사용(도커 컨테이너 연결)

docker 컨테이너끼리 연결하는 방법이 궁금하신가요? 예전에는 컨테이너 간의 연결을 위해 docker –link 옵션을 이용했습니다. 하지만 이제는 docker network를 이용하셔야 합니다. 왜 그런지 그 이유를 살펴보고 docker network 사용방법을 알아보도록 하겠습니다. 개요 Docker는 컨테이너를 구동할 때 내부 IP 주소를 사용하는데, 내부 아이피를 지정해서 사용하지 않으면 계속 변동되기 때문에, 컨테이너 간에 접근할 때 IP 주소를 사용하면, 해당 … Read more

Vultr 서비스 사용기

국내 호스팅으로 CAFE24를 아주 작게 사용해왔었다. 월 500원의 비용으로 매우 저렴하게 이용했었다. 워드프레스로 블로그를 시작하면서부터 SSL 인증서가 적용되지 않는 점이 마음에 걸렸다. Letsencrypt를 사용하여 발급받은 인증서는 CAFE24에 자동으로 업로드가 되지 않아서 고객센터를 통해서 요청해야 했고, CAFE24의 응대는 깔끔한 느낌이 아니었다. 그리고 결정적으로 SSL을 443 포트로 서비스 받을 수 없었다. “클라우드 서비스 중에 좀 저렴하고 쓸만한 … Read more

phinx 실행시 timezone 문제 발생하는 경우

사실 phinx의 문제라기보다는 php 환경변수로 timezone이 설정되지 않아서 발생하는 경고 메시지이다. 필자는 phinx를 사용하여 마이그레이션하려할 때 아래와 같은 경고 메시지를 받았다. Warning: date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and … Read more

phinx db migration tool setting

phinx.yml 에서 host를 localhost로 할 때엔 unix_socket을 정해줘야 한다. host가 localhost인데 unix_socket이 설정되어 있지 않으면, 다음과 같은 에러를 보게 된다. [InvalidArgumentException] There was a problem connecting to the database: SQLSTATE[HY000] [2002] No such file or directory unix_socket을 사용하지 않으려면 host를 127.0.0.1로 하면 된다. 참고자료: https://stackoverflow.com/questions/22188026/sqlstatehy000-2002-no-such-file-or-directory/25782795#25782795