Synology Nas에서 Minio를 이용해 Object storage를 구성하는 방법에 대해 알아봅니다.
이 글은 다음 글을 번역한 내용임을 알려드립니다: medium.com/@JonahAragon/installing-minio-on-synology-diskstation-4823caf600c3
다만 제 구성 환경과 설정에 따라 추가적인 내용을 포함하고 있습니다.
0. 앞선 글
오브젝트 스토리지는 요새 모든 클라우드 기반 웹 기술의 필수적인 부분이 된 것 같지만 때로는 이 오브젝트 스토리지의 작업을 Amazone S3나 Azure Blob Storage와 같은 공급자들이 제공해 주는 것을 사용할 수 없을 수도 있습니다. 이럴 때 우리는 간단한 인터페이스, 여러 스토리지 백엔드와의 호환성을 갖추고 있으며 S3 API와도 호환되는 자체 호스팅 클라우드 스토리지 애플리케이션인 Minio를 시작하면 됩니다.
이 글에서는 Docker를 사용해 공유폴더를 스토리지 백엔드로 사용하고 시놀로지 DS718+에 Minio를 설치하였습니다. 또한 시놀로지에 내장된 인증서 관리자와 작업 스케줄러를 사용해 Minio 설치에 TLS 인증서를 추가할 것입니다.
1. 사전 준비
시작하기 전에 시놀로지 패키지 센터에서 Docker 패키지를 설치합니다. 또한 제어판 > 보안 > 인증서의 인증서 관리자를 통해 Let's Encrypt 인증서를 설치해야 합니다.
2. 오브젝트 스토리지를 위한 공유 폴더 생성.
우리는 Minio로 푸시된 모든 데이터가 자체 공유 폴더 내에 있길 원하므로 제어판에서 이 공유폴더를 만들어 줘야 합니다. 제어판 > 공유폴더 > 생성을 통해 새로운 공유폴더를 생성해 줍시다.
네트워크에 표시되는 것을 원하지 않으므로 "이 공유 폴더를 내 네트워크 환경에서 숨기기"를 체크해 주었으며 휴지통도 필요하지 않을 것 같아서 비활성화해 주었습니다. 또한 이 폴더를 암호화하도록 하지 않았습니다.
동영상이나 지속적인 로그와 같은 많은 양의 데이터를 스토리지에 써야 하는 경우 데이터 체크섬과 압축을 선택하지 않는 게 좋습니다. 이제 다음 및 적용 버튼을 클릭해 새 공유폴더를 생성합니다.
3. Minio 설치.
DSM에서 Docker를 열고 레지스트리로 이동해 minio를 검색해 minio/minio:latest를 다운로드합니다.
다운로드가 완료되면 이미지로 이동해 다운로드한 이미지를 이용해 컨테이너를 생성합니다. 이름을 지정한 뒤 고급 설정을 클릭합니다. 볼륨으로 이동해 앞서 생성한 공유폴더를 선택 후 마운트 경로로 /data를 설정해 줍니다. 그리고 하나의 폴더를 더 추가해줍니다. /docker/minio/config를 선택해 주세요. 이 폴더의 마운트 경로는 /root/.minio로 설정합니다.
다음은 포트 설정입니다. 포트 설정으로 이동해 로컬 포트의 "자동"으로 설정된 부분을 원하는 포트로 변경합니다.
마지막으로 환경 설정입니다. 환경 탭으로 이동해 실행 명령의 명령 항목을 다음과 같이 수정합니다.
minio server /data
다음 및 적용 버튼을 클릭해 컨테이너를 생성 후 실행해 줍니다.
4. 로그인
Minio는 이제 http://host:9000/minio/login을 통해서 액세스 할 수 있습니다.
하지만 로그인을 완료하기 위해선 자격증명이 필요하며 이 내용은 DSM에서 확인할 수 있습니다.
Docker를 실행하고 컨테이너로 이동해 위에서 생성한 Minio 컨테이너의 세부사항을 확인합니다. 로그 탭으로 이동해 위로 올리면 EndpointUrl, AccessKey, SecretKey를 확인할 수 있습니다. 가리긴 했습니다만 사실 초기값은 다 minioadmin입니다.
이제 확인한 AccessKey와 SecretKey를 이용해 로그인을 하면 정상적으로 브라우저를 확인할 수 있습니다.
5. 업로드 테스트
파일을 업로드하기 위해선 먼저 버킷을 생성해야 합니다. 우측 하단의 + 버튼을 클릭한 뒤 HDD모양의 "Create bucket" 버튼을 클릭해 버킷 이름을 입력하고 새로운 버킷을 생성합니다. 단, 버킷 네이밍 룰을 따라야 하며 룰은 다음과 같습니다.
Lowercase letters, period, hyphen, numerals are the only allowed characters and should be minimum 3 characters in length.
소문자, 마침표, 하이픈, 숫자만 허용되며 버킷 이름은 3글자 이상이어야 합니다.
생성한 새 버킷은 좌측 사이드바에 표시가 되어야 합니다. 이제 다시 우측 하단의 + 버튼을 클릭한 뒤 "Upload File" 버튼을 클릭해 파일 하나를 업로드해 봅시다.
브라우저 및 공유폴더를 확인해 보면 정상적으로 파일이 업로드되었음을 확인할 수 있습니다.
이제 Minio에 대한 구성을 끝냈으며 Minio를 바로 사용할 수 있습니다.
7. 맺는 글
이제 NAS에 자체 오브젝트 서버를 호스팅 해야 합니다. 원한다면 Minio Client를 자신의 컴퓨터에 설치해 Minio를 관리할 수 있습니다: Minio Client
더 많은 문서를 원하신다면 공식 홈페이지의 문서를 참고해 주세요: docs.minio.io
이 가이드가 도움이 되었길 바랍니다. 만약 놓친 내용이 있거나 도움이 될만한 정보가 있으면 알려주시기 바랍니다.
'Programming' 카테고리의 다른 글
[Minio] 시놀로지 NAS의 Minio에서 인증 정보 변경하기. (0) | 2020.10.21 |
---|---|
[Minio] 시놀로지 NAS의 Minio에 HTTPS/TLS 적용하기 (0) | 2020.10.21 |
[MongoDB] Ubuntu MongoDB 기본 포트 및 외부 접속 허용 (0) | 2020.10.09 |
[MongoDB] 우분투 20.04에 몽고DB 설치하기 (0) | 2020.10.09 |
[FTP] FileZilla 한글 인코딩 문제 해결하기. (0) | 2020.09.30 |