::: IT인터넷 :::

mc (minio client) 사용법 정리

곰탱이푸우 2022. 4. 4. 08:20
mc (minio client)의 사용법을 정리한다.
파일 이동, 계정 관리, 정책 등 MinIO 서버와 관련된 다양한 설정을 위해 MinIO 클라이언트를 사용한다.
 
사용자가 minio client를 사용하는 방법은 다음 문서를 참고한다.
 
관리자가 minio client를 사용하는 방법은 다음 문서를 참고한다.
Docker를 사용하여 MinIO를 설정하는 방법은 다음 포스팅을 참고한다.
MinIO의 WebUI 사용법은 아래 포스팅을 참고한다.
mc (MinIO Client) 설치와 설정 방법을 정리한다.
 
 

mc 다운로드

mc는 apt install과 같은 설치 방법을 제공하지 않기 때문에 직접 다운로드해야 한다.
 
운영체제별 다운로드 방법은 아래 사이트를 참고한다.
우분투 중심으로 사용할 것이므로 리눅스 중심으로 정리한다.
아래 명령으로 mc 실행 파일을 다운로드한다.
$ wget https://dl.minio.io/client/mc/release/linux-amd64/mc
$ chomd +x mc
$ ./mc --help
 
다음과 같이 다운로드가 진행된다.
 
 

mc 초기설정

config 설정 파일 생성

아래 명령을 실행하여 ~/.mc 폴더의 하위 경로에 설정 파일들을 생성한다.
$ ./mc config
mc: Configuration written to `/home/bearpooh/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/home/bearpooh/.mc/share`.
mc: Initialized share uploads `/home/bearpooh/.mc/share/uploads.json` file.
mc: Initialized share downloads `/home/bearpooh/.mc/share/downloads.json` file.

NAME:
  mc config - configure MinIO client
USAGE:
  mc config COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]
COMMANDS:
  host  add, remove and list hosts in configuration file
FLAGS:
  --config-dir value, -C value  path to configuration folder (default: "/home/bearpooh/.mc")
  --quiet, -q                  disable progress bar display
  --no-color                    disable color theme
  --json                        enable JSON lines formatted output
  --debug                      enable debug output
  --insecure                    disable SSL certificate verification
  --help, -h                    show help
 

config.json 알아보기

config.json 파일을 확인해보면  다음과 같다.
$ vi ~/.mc/config.json  # 파일 내부 텍스트 출력

$ ./mc config host list  # config.json을 예쁘게(?) 출력
 
실행하면 다음과 같이 출력된다. (config host list 기준)
 
s3, local, play, gcp가 있는데 각각 다음과 같다.
  • s3 - AWS에서 제공하는 S3 서비스
  • gcp - 구글에서 제공하는 스토리지 서비스
  • play - min.io 에서 제공하는 MinIO 스토리지 서비스
  • local - 사용자가 로컬에 직접 설정한 MinIO

 

해당 이름은 mc에서 URL 대신 사용할 수 있는 alias (별칭)으로 사용한다.
명령어에 https://s3.amazonaws.com 대신 s3를 사용하면 되므로 편리하다.
 
s3, gcp, play는 사용할 일이 없다면 삭제해도 된다.
만약 s3나 gcp를 사용해야 하는 경우 해당 부분의 설정을 변경하면 된다.
 
 

로컬 MinIO를 설정 파일에 등록하기

로컬에 설정한 MinIO를 설정 파일에 등록하는 방법은 두 가지가 있다..
config.json 파일을 수정하거나 명령어를 사용하는 것이다.
 
config.json 수정
아래 명령으로 config.json 파일을 수정한다.
$ vi ~/.mc/config.json

{
        "version": "10",
        "aliases": {
                "local": {
                        # SSL을 적용한 경우 아래 http://를 https://로 수정
                        "url": "http://localhost:9000", 
                        "accessKey": "minio",    #  사용할 계정
                        "secretKey": "miniopass",    #  계정의 비밀번호
                        "api": "S3v4",
                        "path": "auto"
                }
        }
}
 
local이 아닌 다른 이름을 사용하려고 하는 경우 새로운 이름을 추가한다.
다른 MinIO를 추가하고자 하는 경우도 동일하다.
$ vi ~/.mc/config.json

{
        "version": "10",
        "aliases": {
                "local": {
                        # SSL을 적용한 경우 아래 http://를 https://로 수정
                        "url": "http://localhost:9000", 
                        "accessKey": "minio",    #  사용할 계정
                        "secretKey": "miniopass",    #  계정의 비밀번호
                        "api": "S3v4",
                        "path": "auto"
                },  # 콤마가 누락되지 않도록 주의한다.
                "minio": {
                        "url": "http://localhost:9000", 
                        "accessKey": "minio",    #  사용할 계정
                        "secretKey": "miniopass",    #  계정의 비밀번호
                        "api": "S3v4",
                        "path": "auto"
                }
        }
}
 
명령어 사용
아래 명령으로 사용할 MinIO를 host로 등록한다.
# ./mc config host add 추가할이름 \ 
#    MINIO_URL:PORT ACCESS_KEY(계정) SECRET_KEY(비밀번호)

# SSL을 적용한 경우 아래 http://를 https://로 수정
$ ./mc config host add minio \
    http://localhost:9000 minio miniopass
 
자체 서명 인증서를 사용하는 경우 인증서 정보를 확인할 수 없어 다음과 같은 오류가 발생한다.
$ ./mc config host add minio https://localhost:9000 minio miniopass

mc: <ERROR> Unable to initialize new alias from the provided credentials.
Get "https://localhost:9000/probe-bucket-sign-il3shvhz9s9z/?location=":
x509: certificate signed by unknown authority.
 
이러한 경우 config 앞에 --insecure 옵션을 추가한다.
$ ./mc --insecure config host add minio https://localhost:9000 minio miniopass

Added `minio` successfully.
 
등록 완료되면 mc config host list 명령으로 등록된 host를 확인할 수 있다.
$ ./mc config host list 

local
  URL      : http://localhost:9000
  AccessKey :
  SecretKey :
  API      :
  Path      : auto
minio
  URL      : https://localhost:9000
  AccessKey : minio
  SecretKey : miniopass
  API      : s3v4
  Path      : auto
 
이미 존재하는 별칭 (alias)의 설정을 변경하고자 하는 경우, 아래 변경할이름 부분에 해당하는 별칭을 기입한다.
# ./mc config host add 변경할이름 \ 
#    MINIO_URL:PORT ACCESS_KEY(계정) SECRET_KEY(비밀번호)

# SSL을 적용한 경우 아래 http://를 https://로 수정
$ ./mc config host add local \  # local은 이미 존재하는 별칭 (alias)
    http://localhost:9000 minio miniopass
 
실행이 완료되면 local 부분이 변경 된 것을 확인할 수 있다.
$ ./mc config host list 

local
  URL      : https://localhost:9000
  AccessKey : minio
  SecretKey : miniopass
  API      : s3v4
  Path      : auto
minio
  URL      : https://localhost:9000
  AccessKey : minio
  SecretKey : miniopass
  API      : s3v4
  Path      : auto
 
 

alias 사용하기

자체서명 인증서를 사용하는 경우 명령어를 사용할 때마다 --insecure 옵션을 입력해야 한다.
그러나 매번 입력하기에는 너무 번거롭다.
 
운영체제에 자주 사용하는 명령어를 alias로 등록하여 사용할 수 있다.
 
아래와 같이 입력하면 해당 옵션을 항상 사용할 수 있다.
$ alias mc ='./mc --insecure'
$ mc config host list

local
  URL      : https://localhost:9000
  AccessKey : minio
  SecretKey : miniopass
  API      : s3v4
  Path      : auto
minio
  URL      : https://localhost:9000
  AccessKey : minio
  SecretKey : miniopass
  API      : s3v4
  Path      : auto
 

mc 버전 확인

아래 명령을 실행하면 mc의 현재 버전을 확인할 수 있다.
$ mc --version

mc version RELEASE.2022-02-07T09-25-34Z
 
MinIO의 웹 콘솔에서 현재 MinIO의 버전을 확인할 수 있다.
 
MinIO와 mc의 버전 차이가 많이 발생할 경우 호환 문제로 인해 아래와 같은 오류가 발생할 수 있다.
mc: <ERROR> Cannot get service status.
Unexpected client 'admin' API version found 'v3', expected 'v2', 
please downgrade the client to older releases.

 

이러한 경우 아래 사이트에서 사용 중인 MinIO 버전 직후에 배포 된 mc 바이너리를 다운로드하여 사용한다.
 

https://dl.minio.io/client/mc/release/linux-amd64/archive/

 

dl.minio.io

 

 

 

MinIO의 재시작하기

mc의 admin service 옵션을 사용하면 MinIO의 재시작 또는 중지할 수 있다.
# mc admin service restart MINIO_NAME

$ mc admin service restart minio

# SSL을 적용할 때 자체서명 인증서를 사용한 경우 --insecure 옵션 추가
# mc --insecure admin service resatrt minio

Restart command successfully sent to `minio`.
Type Ctrl-C to quit or wait to follow the status of the restart process.
......
Restarted `minio` successfully in 12 seconds
 
admin service의 상세 사용법은 다음과 같다.
$ mc admin service

NAME:
  mc admin service - restart and stop all MinIO servers
USAGE:
  mc admin service COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]
COMMANDS:
  restart  restart all MinIO servers
  stop    stop MinIO server

FLAGS:  # 주요 플래그만 표기
  --config-dir value, -C value  path to configuration folder (default: "/home/bearpooh/.mc")
  --debug                      enable debug output
  --insecure                    disable SSL certificate verification