::: IT인터넷 ::: 160

AirFlow 소개와 구조

데이터 과학 분야에서 ETL 자동화 파이프라인을 구성하는데 사용되는 AirFlow에 대해 알아본다. AirFlow 소개 AirFlow는 Airbnb에서 시작되어 현재 아파치 재단에서 관리 중인 오픈소스 프로젝트이다. Apache에서 관리하기 때문에 Apache 라이선스를 따른다. Apache 라이선스도 BSD, MIT와 같이 코드 수정을 해도 공개 여부는 선택 가능하다. (할 일이 있을까 싶지만..) 단, 코드 수정 후 배포할 때 Apache 라이선스 고지가 포함되어야 한다. AirFlow는 Workflow를 정의하고 실행 가능한 플랫폼으로, 반복 된 작업을 자동화하기 위해 사용한다. EDA (Event Driven Architecture)로서 각 작업들은 DAG(Directed Acyclic Graph..

::: IT인터넷 ::: 2022.03.10

Docker로 PostgreSQL 사용하기

RDBMS에서 가장 유명한 것은 Oracle이다. 그러나 유료이고 주로 대형 프로젝트에 적합하다. 유료라고 나쁜 것은 아니지만 개인이나 소규모 조직에서 사용하기엔 부담스러운 가격인 것은 사실이다. 서비스가 커지거나 데이터가 많아지면 스케일업을 해야 한다. 그러나 실제로 Oracle의 경우 비용 증가가 확실히 부담 되기 때문에 PostgreSQL을 대안으로 전환하는 곳도 많아졌다. 또는 RDBMS 대신 하둡과 같은 빅데이터를 도입하는 경우도 많다. 데이터나 파일들은 MinIO나 하둡 같은 분산 시스템의 도입을 검토할 수 있다. 그러나 메타 정보나 인덱스 정보 같은 소규모 데이터는, 비용 대비 복잡성과 효율성을 비교하면 여전히 RDBMS로 운용하는 것이 적합하다. 오픈소스 데이터베이스 소개 개인이나 소규모 ..

::: IT인터넷 ::: 2022.03.07

Docker로 MinIO 사용하기

MinIO는 AWS S3와 같은 오브젝트(객체) 스토리지 서비스를 오픈소스로 제공하는 인프라이다. AWS S3의 API와 호환되기 때문에 로컬에서 S3를 온프레미스 (On-premise) 형태로 사용하기 위해 구축하는 경우가 많다. 또는 AWS S3와 용어가 거의 동일하기 때문에, AWS S3를 사용하기 전에 숙달하는 목적으로 사용하기도 한다. GitHub과 DockerHub 사이트는 다음과 같다. DockerHub - https://hub.docker.com/r/minio/minio/ GitHub - https://github.com/minio/minio 원래 Apache V2 라이선스였는데, 2021년 5월 AGPL (Affero General Public License) v3.0 으로 변경되었다. ..

::: IT인터넷 ::: 2022.03.03

자체 서명 인증서 만들기

Docker로 테스트하거나 실서비스 운영을 하다보면 HTTPS 접근 방법에 대한 고민을 하게 된다. HTTPS를 사용하려면 공인 인증서 또는 사설 인증서를 적용해야 한다. 공인 인증서를 사용하는 방법은 크게 두 가지이다. 하나는 공인 인증기관을 통해 발급한 인증서를 적용하는 것이고, 다른 하나는 무료 공인 인증서인 Let's Encrypt를 사용하는 것이다. 공인 인증 기관에서 발급 받는 인증서는 가장 교과서적인 방법이지만 비싸서 개인이 운영하기에는 부담이 된다. 물론 회사에서 운영하는 서비스는 회사 비용을 사용해서 공인 인증서를 발급 받는 것을 권장한다. 개인의 경우 무료로 제공하는 공인 인증서인 Let's Enrypt를 사용하는 방법이 있다. 90일 마다 갱신해야 하므로 번거롭다는 단점이 존재하며, ..

::: IT인터넷 ::: 2022.02.28

wsl 환경에서 Docker 설치 이후 172.18.x 대역 연결 불가

사내망에서 172.1x.x 대역을 사용하는 경우 Docker 네트워크를 추가하는데 주의가 필요하다. 사내에서 172 대역의 사설 네트워크를 사용하는데, Docker Network를 추가한 이후 해당 대역 연결이 되지 않는 증상이 발생했다. 그 외에 인터넷이나 다른 망대역에는 정상적으로 접근이 되어서, 프록시 설정이나 네트워크 자체의 문제는 아닌 것으로 보였다. 네트워크 설정 초기화까지 진행하며 삽질을 했는데, 원인은 정작 가까운 곳에 있었다. 원인 Docker Desktop의 유료화 정책으로 인해 윈도우 환경에서 WSL로 사용 중이므로, WSL 환경을 기준으로 정리한다. 윈도우 10에서 Docker Desktop 없이 Docker 사용하기 Docker Desktop 유료 전환 발표 Docker Inc.는..

::: IT인터넷 ::: 2022.02.24

gitlab-ce에서 간헐적으로 발생하는 500 Error 해결 방법

이전 포스팅을 통해 Docker를 이용하여 GitLab을 설치했다. 시놀로지 NAS에서 Docker로 GitLab 설정하기 DSM 7.0으로 업데이트 되면서 기존에 사용하던 gitlab 패키지가 3rd-party라고 지원을 중단했다. 그래서 gitlab을 삭제하고 DSM 7.0으로 업데이트를 진행했다. GitLab을 새로 설치하기 위해 Docker를 이용한 www.bearpooh.com GitLab을 사용하다 보면 아래와 같이 500 Error가 간헐적으로 발생한다. 잠시 후 새로고침이나 재접속을 하면 해결되기도 하지만, 상위 페이지로 이동해버리거나 증상이 지속되기도 한다. 이전 포스팅에서 다룬 Docker 이미지는 sameersbn/gitlab 였다. 문제는 다른 서버에 설치한 GitLab-ce 컨테이..

::: IT인터넷 ::: 2022.02.21

GitLab의 자체 CI/CD 기능 비활성화

Jenkins를 이용하여 빌드하고 Nexus에 배포하기 때문에 GitLab에서 제공하는 기본 DevOps 기능과 자체 CI/CD 기능은 사용하지 않는다. 따라서 해당 기능을 비활성화한다. GitLab의 설정 방법과 Git 사용 방법은 다음 포스팅을 참고한다. 시놀로지 NAS에서 Docker로 GitLab 설정하기 DSM 7.0으로 업데이트 되면서 기존에 사용하던 gitlab 패키지가 3rd-party라고 지원을 중단했다. 그래서 gitlab을 삭제하고 DSM 7.0으로 업데이트를 진행했다. GitLab을 새로 설치하기 위해 Docker를 이용한 www.bearpooh.com gitlab에서 group, project 생성하기 gitlab을 설치하는 과정은 이전 포스팅에서 진행했다. 시놀로지 NAS에서 G..

::: IT인터넷 ::: 2022.02.17

GitLab의 권한 관리와 설정 방법

GitLab의 권한 관리와 설정 방법에 대해 정리한다. GitLab의 설정 방법과 Git 사용 방법은 다음 포스팅을 참고한다. 시놀로지 NAS에서 Docker로 GitLab 설정하기 DSM 7.0으로 업데이트 되면서 기존에 사용하던 gitlab 패키지가 3rd-party라고 지원을 중단했다. 그래서 gitlab을 삭제하고 DSM 7.0으로 업데이트를 진행했다. GitLab을 새로 설치하기 위해 Docker를 이용한 www.bearpooh.com gitlab에서 group, project 생성하기 gitlab을 설치하는 과정은 이전 포스팅에서 진행했다. 시놀로지 NAS에서 GitLab 설정 방법 개요 시놀로지 NAS에서 GitLab도 설치 가능하며, DS21x 모델 기준으로 DS216 부터 추가되었다. 아..

::: IT인터넷 ::: 2022.02.14

Jenkins 권한 관리와 설정 방법

Jenkins의 권한 관리와 설정 방법에 대해 정리한다. Jenkins 설정에 관한 방법은 아래 포스팅 들을 참고한다. 시놀로지 NAS에 Jenkins 구축하기 현재 근무 중인 회사에서는 빌드 및 배포 시스템으로 Atlassian의 Bamboo를 사용 중이다. 기능도 익숙하고 사용하기 편리하지만 상용 제품이다 보니 개인이나 소규모로 사용하기에는 부담이 있다. www.bearpooh.com Jenkins 설치 후 초기 설정 시놀로지 NAS에서 Docker를 이용한 Jenkins 설치는 아래 포스팅을 참고한다. 시놀로지 NAS에 Jenkins 구축하기 현재 근무 중인 회사에서는 빌드 및 배포 시스템으로 Atlassian의 Bamboo를 사용 중이다. 기능 www.bearpooh.com Jenkins 권한 관..

::: IT인터넷 ::: 2022.02.10

Jenkins에 Docker 이미지 빌드 파이프라인 구성

Jenkins에 Docker 이미지 빌드 환경을 구성하기 위해 Docker 빌드 에이전트 생성과 Jenkins 연결을 진행했다. 해당 과정은 다음 포스팅을 참고한다. 우분투 가상 환경으로 Docker 빌드 에이전트 만들기 Docker를 이용하여 Jenkins를 설치하고 기본적인 설정을 적용하는 방법에 대해서는 예전 포스팅에서 이미 다뤘다. Docker를 이용한 Jenkins 설치와 기본 설정 방법은 아래 포스팅을 참고한다. 시놀로지 www.bearpooh.com VirtualBox 가상 환경을 OVA 파일로 내보내기와 가져오기 이전 포스팅에서 Docker 이미지를 빌드하기 위해 VirtualBox를 이용하여 가상 환경을 만들었다. 해당 방법은 아래 포스팅을 참고한다. 우분투 가상 환경으로 Docker 빌..

::: IT인터넷 ::: 2022.02.07