쉘 스크립트 대신 Dockerode를 고른 이유: 멀티 테넌트 프로비저닝의 롤백과 동시성
docker run을 감싼 쉘로는 실패 원인도 롤백도 다룰 수 없어 Dockerode와 스키마 분리로 테넌트 생성을 자동화한 과정
docker run을 감싼 쉘로는 실패 원인도 롤백도 다룰 수 없어 Dockerode와 스키마 분리로 테넌트 생성을 자동화한 과정
앞서 ModSecurity에 대해 간단히 다뤘다. 이번에는 우분투 컨테이너 생성부터 ModSecurity 구성과 테스트까지 진행했고 그 과정을 기록했다.
앞서 Docker를 활용한 ELK 구성에 이어서, 이번에는 Metricbeat를 붙여보았다
ELK 구성 방법 중에서도 Docker를 활용한 방법으로 진행해보았다.
커스텀을 위해 코드 수정 후 Nginx Proxy Manager를 정상적으로 실행할 수 있어야했는데, 그 어디에서도 이를 위한 가이드를 찾을 수 없었다. 결국 직접 소스코드 분석 후 다음과 같은 내용들을 확인했다.
Tomcat 서버의 애플리케이션 배포는 웹 애플리케이션 운영에서 가장 기본적인 영역이면서도, 실제로는 많은 개발자들이 정확한 동작 원리를 놓치고 있는 부분이다. 최근 고객사 운영 서버의 server.xml 설정을 분석하던 중, <Context> 태그와 <Host>의 appBase 속성이 혼재된 구성에서 WAR 파일 배포 과정에 대한 오해를 발견했다. 기존의 배포 설정 운영 중인 서버의 server.xml 설정: <Host name="localhost" appBase="/home/manager/eps/webapps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="/home/manager/eps/webapps/legacy" reloadable="false" /> <Context path="/v5" docBase="/home/manager/eps/webapps/ui5" reloadable="false" /> <!-- ... AccessLogValve 설정 ... --> </Host> 이 설정에서 명시적인 <Context> 배포와 appBase를 통한 자동 배포가 공존하고 있었음.. 그런데 여기서 문제가 발생. 새로운 버전의 ui5.war 파일을 배포하려 할 때, 기존 관리자는 다음과 같은 절차를 따르고 있었다. ...