티스토리 뷰

728x90
반응형

요즘에는 서비스를 운영하면서 누군가가 업로드한 파일이나 이미지를 서버에 저장하기 보다는 s3에 저장하는 경우가 많습니다.

 

당연히 개발하는 코드도 aws-sdk를 사용해서 s3에 파일을 저장하는 코드를 사용하겠죠

 

아마도 s3를 이용해서 어플리케이션을 만들고 계신 여러분들은

 

서로 다른 계정의 access key와 secret을 이용해서

 

개발환경에서 쓰는 계정, 라이브환경에서 쓰는 계정 이렇게 나눠 쓰실수도 있고,

 

같은 계정을 쓰되 버킷을 다른곳에 저장하시는 분들도 계실거예요

 

근데 s3를 aws 계정없이도 로컬개발환경에서 셋업해서 로컬에서만 쓰는용도로 쓰면 매우 좋겠다 라는 생각이 듭니다

 

 

바로 이럴때 쓸수 있는 minio를 소개합니다.

 

https://min.io/

 

MinIO | High Performance, Kubernetes-Friendly Object Storage

MinIO's High Performance Object Storage is Open Source, Amazon S3 compatible, Kubernetes Friendly and is designed for cloud native workloads like AI.

min.io

 

minio는 s3와 비슷한 오브젝트 스토리지 서버입니다

 

그러니깐 이걸 이용해서 s3같은 서비스를 운영할수 있다는것입니다

 

 

매우 설치도 간편합니다

 

맥 환경에서는

 

$ brew install minio/stable/minio
$ minio server ~/data

 

 

brew 를 통해서 서버를 설치하고

 

파일이 저장될 경로를 포함하여 minio 서버를 실행시키면 끝입니다

 

참 쉽죠?

 

 

 

그렇게 되면 기본설정으로 9000번 포트에서

 

http://localhost:9000

 

접속을 통해서 매우 깔끔한 minio 인터페이스를 만날수 있습니다

 

여기서 버킷을 생성하거나, 파일의 업로드와 삭제 등이 가능합니다.

 

 

 

minio는 사실상 업계표준이라고 할수 있는 s3의 API를 완벽하게 호환하여 지원합니다.

 

그러니깐 s3 sdk를 사용해서 endpoint만 minio 서버주소로만 바꾸면 

 

다른 코드를 바꾸지 않아도 동작하는 뜻입니다.

 

 

 

pre signed 를 사용하는 기능도 물론 당연히 동작하구요

 

https://docs.min.io/docs/upload-files-from-browser-using-pre-signed-urls.html

 

MinIO | Upload files from browser using pre-signed URLs - Cookbook/Recipe

Upload Files Using Pre-signed URLs Using pre-signed URLs, a client can upload files directly to an S3-compatible cloud storage server (S3) without exposing the S3 credentials to the user. This guide describes how to use the presignedPutObject API from the

docs.min.io

다양한 환경에서의 쿡북도 많은 자료가 제공되고있습니다

 

https://docs.min.io/docs/how-to-use-aws-sdk-for-javascript-with-minio-server.html

 

MinIO | How to use AWS SDK for JavaScript with MinIO Server - Cookbook/Recipe

How to use AWS SDK for Javascript with MinIO Server In this recipe we will learn how to use aws-sdk for Javascript with MinIO server. aws-sdk is the official AWS SDK for the Javascript programming language. 1. Prerequisites Install MinIO Server from here.

docs.min.io

 

여러분의 로컬환경에 minio를 설치하여

 

로컬에서 개발하시고

 

라이브환경에서는 aws의 환경변수를 사용하도록 바꾸면 

 

더욱 깔끔한 어플리케이션 개발이 가능합니다

 

 

 

저도 laravel 개발때 minio를 처음 알게되었는데요

 

지금은 다른 언어 개발할때도 매우 유용하게 사용하고 있답니다

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함