본문 바로가기
2. 기본 인프라 IaaS

Windows에 Object Storage를 로컬 드라이브로 마운트하기

by easyitstory 2024. 3. 4.

OCI Object Storage는 낮은 가격으로 무제한의 파일을 저장하고 쉽게 액세스할 수 있는 서비스입니다.

 

Obejct Storage의 특성이 있으므로 다음과 같은 경우에 Object Storage를 이용하는데 적합합니다.
1) 첨부 파일 업로드/다운로드
2) Image 등 정적 파일 저장
3) 완성된 백업 파일 아카이빙
4) 오래된 로그 파일 아카이빙

다음과 같은 경우에는 적합하지 않습니다.
1) 실시간 파일 내 로그 기록
2) 파일을 수시 변경 및 수정
즉, Object Storage는 파일의 변경이 잦은 경우 변경 전/후 새로운 파일로 저장이 되므로
성능과 용량 측면에서 좋지 않습니다. 

 

이런 가성비 좋은 Object Storage를 아래 그림과 같이 Windows Server에 로컬 드라이브로 마운트하여 이용하면

편리하게 이용할 수 있습니다.

 

아쉽게도 Object Storage는 Https 프로토콜만 지원하므로 일반적인 방법으로 마운트를 할 수 없습니다.

 

참고로 리눅스 경우는 오라클에서 제공하는 OCIFS 유틸리티를 이용하여 손쉽게 마운트할 수 있으며,
이외에도 s3fs-fuse, goofys를 이용하여 구성할 수 있습니다.

https://blogs.oracle.com/linux/post/introducing-ocifs

 

Windows Server를 사용하는 경우에는 위와 같은 유틸리티로는 가능하지 않고,

RClone 유틸리티를 이용하여 구성할 있습니다.

 

이에 대한 구성 절차는 다음과 같습니다.


1. OCI IAM 설정

    Windows Server에서 Object Storage를 이용하기 위한 권한 부여가 필요합니다.
    다음과 같이 2가지 방식으로 가능합니다.
     - User Principal 인증: Access Key와 Secret key를 활용(OCI 외부에서 접근시 주로 활용)

     - Instance Principal 인증: Dynamic Group을 이용하고 별도 Key 불필요(OCI 내에서만 가능)

    보안적으로 안전한 Instance Principal 인증을 권장합니다.

    Instance Principal 이용하기 위해 IAM 설정 예는 다음과 같습니다.

    - Dynamic Group(rclone-dg) : Any {instance.id = '<Windows Server Compute VM OCID>'}

    - Policy

       Allow dynamic-group rclone-dg to manage object-family in compartment <Compartment Name>


2. Object Bucket 생성


3. Rclone 설치

     다음 사이트에서 다운받아, 압축을 풀어, "C:\rclone"에 복사
      https://rclone.org/downloads/

<rclone 압축 해지된 파일들>


4. Rclone 환경 설정

     Command Prompt 를 열어 다음 명령어를 실행 (** 주의, 관리자 모드가 아닌 유저 모드에서 실행해야 함 **)

     > rclone.exe config

     다음과 같이 선택하면 됩니다.

n) New remote
Enter name for new remote.
name> OCIStorage
## 이 이름은 임의로 지정하면 됩니다.
37 / Oracle Cloud Infrastructure Object Storage
      \ (oracleobjectstorage)
3   / use instance principals to authorize an instance to make API calls.
      \ (instance_principal_auth)
Object storage namespace
Enter a value.
namespace> mytenacy
## Profile > Tenancy를 클릭하면 확인할 수 있습니다. 
Object storage compartment OCID
Enter a value.
compartment> ocid1.compartment.oc1..aaaaaaaatxgtq
## 접근하고자 하는 Object Storage가 위치하는 Compartment ID
Object storage Region
Enter a value.
region> ap-seoul-1
## 타 리전 코드: https://docs.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm
Endpoint for Object storage API.
Leave blank to use the default endpoint for the region.
Enter a value. Press Enter to leave empty.
endpoint> (비워둠)
Edit advanced config?
n) No (default)
Keep this "OCIStorage" remote?
y) Yes this is OK (default)
마지막으로 q 를 선택하면 설정이 완료됩니다.

 


5. Rclone 테스트

     다음 명령어로 테스트

     > rclone.exe ls OCIStorage:bucket-rclone

      위와 같이 버킷내 파일이 보면 정상


6. Rclone 마운트

     다음 명령어로 마운트 시도

      > rclone.exe mount OCIStorage:bucket-rclone X:
     
## Remote Name:버킷명 드라이브명

 

     아마도 대부분 다음과 같은 오류를 볼 것입니다.

     Fatal error: failed to mount FUSE fs: mount stopped before calling Init: mount failed: cgofuse

      : cannot find winfsp

 

     위 오류는 WinFsp가 없기 때문으로 WinFsp를 설치하면 해결이 됩니다.


7. WinFsp 설치

    다음 사이트에서 내려받아 Install 실행

     https://winfsp.dev/


8. 다시 한번 Rclone 마운트 시도

     > rclone.exe mount OCIStorage:bucket-rclone X:

     그러면 위와 같이 X 드라이브를 볼 수 있습니다.

     위 명령어는 특정 버킷 1개에 대해서만 마운트를 하였고,

     Compartment 내 모든 버킷을 일괄 마운트할려면 다음과 같이 명령어를 실행하면 됩니다.

      > rclone.exe mount OCIStorage: X:

      그러면 위와 같이 X 드라이브에 버킷이 폴더로 보이게 되며, 여러개 버킷인 경우 여러 폴더가 보여집니다.


##### Rclone WebUI

Rclone 상태와 설정을 UI를 통해서도 할 수 있는데, 아직 베타 버전이여서 불완전하지만 모니터링에는 용이합니다.

다음 명령어를 실행하면 Web 브라우저가 자동으로 실행이 되면서 GUI 화면을 볼 수 있습니다.

> rclone.exe rcd --rc-web-gui


작성자: 박준철(iamjun7@gmail.com) / Cloud Architect
개인 시간을 투자하여 작성된 글로서, 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.

댓글