설치 환경 Host PC: Apple Silicon(M1 Pro) MacOS Docker Desktop & CLI DB Image: PostgreSQL 14.6 DB Client: DBeaver DB와 관련해서 이것 저것 테스트할 게 많은데, 운영중인 DB 서버에다가 직접 테스트 하기는 혹시 모를 에러나 사고가 염려되기도 해서 결국 맥북에 PostgreSQL을 설치하기로 했다. 일단 목표는 Docker로 PostgreSQL을 설치해서 실제 DB 서버에서 백업한 파일을 복구, 안전하고 가볍게 테스트할 수 있는 환경을 구성하는 것이다. 참고로 Docker는 설치되어 있다고 가정한다. 2023.04.08 - [본업/Docker] - [Docker] 맥에 Docker Desktop 설치 - #1 설치까지만 [D..
이전 글 2023.03.15 - [분류 전체보기] - [Docker] Docker로 Ubuntu에 OpenVPN Server 구축하기 #2 OpenVPN 서버 구성 Generate a client certificate VPN 서버측 설정이 준비되었으므로, 이제 접속할 클라이언트의 인증서를 생성해야 한다. Client Requirement 나의 경우는 다음과 같은 요구 사항을 정의해 발급했다. 클라이언트 OS에 종속되지 않을 것. 클라이언트 접속 시 비밀번호는 입력하지 않을 것. 다음과 같이 그룹을 구분해 IP 풀을 정의하고, 이에 해당되는 고정 IP를 할당할 수 있을 것. Group A : 10.95.0.5 ~ 10.95.49.253 Group B : 10.95.50.1 ~ 10.95.99.253 Gro..
이전 글 2023.04.08 - [본업/Docker] - [Docker] 맥에 Docker Desktop 설치 - #1 설치 까지만 이전 포스팅에 이어 튜토리얼의 내용을 볼 것이다. Tutorial 처음 Docker를 스터디 할 때 CLI 환경에서 진행했는데 당시에도 분명 Hello world를 출력하는 예제 컨테이너가 있었던 것 같다. 어차피 모든 사용자가 해당 튜토리얼을 진행해도 모두 같은 시퀀스일테니 그냥 캡쳐해둔 내용만 간단히 짚고 넘어간다. 1. Clone a repository 튜토리얼의 지침을 직접 본인이 사용하는 터미널 애플리케이션을 통해 진행해도 되고, 아니면 우측에 임베드된 쉘을 통해서 진행해도 된다. 좌측 지침 내용의 푸른색 코드 블럭을 클릭하면 자동으로 우측 쉘에 타이핑되는 것 같다..
지금까지는 회사나 개발 워크스테이션이 모두 Linux 기반이었기 때문에 Docker를 사용할 일이 있다면 터미널을 통한 CLI 환경에서 작업해왔다. 그런데, 문득 당장 내 개인 랩탑에서 Docker를 사용할 일이 생겼다. 한 3~4년 전, 인텔 맥을 사용할 때 잠깐 Oracle을 사용해야 할 일이 있었는데 당시 맥에서 Oracle을 실행하려면 페러렐즈로 다른 OS를 통해 실행하던가 Docker를 설치해 Oracle 컨테이너를 띄워 사용해야 했었다. 그냥 CLI로 설치해서 사용했어야 했는데 급하게 하느라 Desktop(GUI) 버전을 설치했었고, 아이러니하게도 GUI가 낯설어 다시 삭제했던 기억이 있다. 다시 지금에서야 Docker Desktop을 사용해보고자 일단 가벼운 마음으로 설치정도만 해봤다. 아 ..
이전 글 2023.01.30 - [본업/Docker] - [Docker] Docker로 Ubuntu에 OpenVPN Server 구축하기 #1 Docker 설치 Prerequisites 1. OpenVPN의 설정 파일들을 '편하게' 관리하기 위해 이들을 저장할 디렉토리를 생성 mkdir /home/$USER/openvpn-test $USER에는 당연히 사용자 이름을 기입하면 됨. 참고로 해당 작업은 도커의 볼륨과 연관된 작업이다. 나는 OpenVPN Server로 동작할 컨테이너와 호스트 머신(서버 OS) 사이에 파일 따위를 손쉽게 조작하고자, bind mount 방식으로 컨테이너에 바인딩 할 것이다. 다른 바인딩 방식을 사용할 것이라면 알아서 적용ㅇㅇ. Docker Volume 관련 공식 문서 : ht..
Purpose 이 글을 작성하는 시점으로 나의 사내 주 업무는 자사 제품에 대한 웹 기반 원격 모니터링 시스템(RMS; Remote Monitoring System)을 구축하는 것이다. 해당 업무를 수행하고 밥값을 벌기 위해 해야하는 일들이 인프라 구축에서 부터 웹 개발 및 배포까지 굉장히 많은 Task Chain으로 연결되어 있다. 이 Task Chain 중 하나가 바로 '현장 곳곳에 설치된 자사 제품의 운전 값을 서버로 읽어들여 DB에 로깅하기' 인데, 이를 구현하려면 여러 가지 전제 조건이 필요하지만 그 중 가장 크리티컬한 요소는 바로 다음이다. 현장 마다 공급되는 네트워크의 구성이 다를 수 있다. (예; 유동 IP 혹은 고정 IP, 무선망 혹은 유선망) 서버가 데이터를 수집하기 위해서는 네트워크 ..