MinIO는 오픈소스이며, S3 호환 Objcet Storage이다. MinIO를 사용한 목적은 Airflow(워크플로 관리 플랫폼) log를 MinIO에 저장하기 위함인데, 초기 구성에 대해 작성하고 다음 포스팅 때 Airflow log를 MinIO에 저장할 수 있도록 해본다.
MinIO Web Console UI에서는 간단하게 Buckets(저장소 리스트)에서 Bucket(airflow-logs)를 만들고, 파일 저장 가능하다. 단, Objcect Storage이기 때문에 파일을 Web에서 직접 열어 볼 수는 없고, 파일 다운로드, 업로드가 가능하다.
MinIO Client (MC)를 통해, 초기 MinIO 접속 구성과 bucket(최상위 디렉터리 개념) 및 User 생성에 대해 알아본다.
MinIO 설치한 리눅스 서버에서 MC를 설치했다. (설치라고는 하지만 'MC' 다운로드 후 실행 권한 부여, 환경 설정 등이다.)
MC 설치 가이드 (공식 문서) MC 다운로드 URL은 아래 공식 문서에서 참조 가능하며, MC 명령어도 참고 가능하다.
https://min.io/docs/minio/linux/reference/minio-mc.html
MC 설치
--mc download (minio-user는 미리 생성했다.)
# su - minio-user
$ curl https://dl.min.io/client/mc/release/linux-amd64/mc \
--create-dirs \
-o $HOME/minio-binaries/mc
--mc client Path 설정
$ cd $HOME
$ vi .bash_profile
MC_HOME=$HOME/minio-binaries/ PATH=$PATH:$HOME/.local/bin:$HOME/bin:$MC_HOME export PATH |
$ . .bash_profile
--mc 실행 권한 부여
$ chmod +x $HOME/minio-binaries/mc
$ mc --version
mc version RELEASE.2023-01-28T20-29-38Z (commit-id=2e95a70c98fb9c2629cd89817b8759bfa109a4d0) Runtime: go1.19.4 linux/amd64 Copyright (c) 2015-2023 MinIO, Inc. License GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html> |
MC 접속 구성
--mc alias 설정(minio 서버에 접속하기 위한 용도)
$ mc alias set ALIAS HOSTNAME ACCESS_KEY SECRET_KEY
ex) $ mc alias set minio1 http://test001:9000 minioadmin 'tests!234'
--alias 조회
$ mc config host list
--접속 테스트(minio1 alias 접속)
$ mc admin info minio1
or $ mc admin --json info minio1
Bucket 생성
--airflow log를 담을 bucket 생성 (minio1은 MinIO를 접속하기 위한 Alias이다.)
$ mc mb alias/bucket
ex) $ mc mb minio1/airflow-logs
--bucket 목록 확인
$ mc ls minio1
$ mc tree minio1
계정관리
--계정 추가 (관리자 외에 airflow에서 접근 가능하도록 계정을 생성한다.)
--참고로 계정 비밀번호 (SECRET_KEY)는 조회 방법을 제공하지 않으므로 기록을 잘 해두어야 한다.
$ mc admin user add MINIO_NAME ACCESS_KEY(ID) SECRET_KEY(PASSWORD)
ex) $ mc admin user add minio1 test test1234
--계정 목록 조회
$ mc admin user list --json minio1
권한 관리
--MinIO 전체 권한 목록 확인
$ mc admin policy list minio1
--test 사용자에 권한 추가
$ mc admin policy set MINIO_NAME diagnostics,readwrite user=ACCESS_KEY
ex ) $ mc admin policy set minio1 diagnostics,readwrite user=test
--test 사용자 정보 조회
$ mc admin user info minio1 test
MinIO Web Console (UI)에서 'test' 사용자로 접속이 가능하며, airflow-logs bucket이 확인된다.
Airflow 로그를 MinIO에 저장하기 위한 사전 준비는 마쳤다.
MC Client 명령어는 친절하게 정리해 준 아래 사이트를 참고했다.