OCI Bucket의 S3 Compatibility API 사용하기

OCI의 Bucket의 AWS S3 호환 API를 사용하는 방법을 소개합니다.

OCI Bucket의 S3 Compatibility API 사용하기

올해 초부터 OCI(Oracle Cloud Infrastructure)의 무료 계층(Free Tier)의 기능에 반해서 여러가지를 사용하고 있다. 이 무료 계층 중에 Bucket라고 하는 오브젝트 저장소(Object Storage) 서비스가 있다. 다른 클라우드 서비스에도 으레 있는 서비스이고, 대표적으로 AWS S3을 떠올릴 수 있다. 이는 너무 유명하고 업계의 표준으로 자리 잡았기 때문에 다른 CSP(Cloud Service Provider)에서도 S3 호환 모드를 지원한다. 특히, S3 API를 이용한 라이브러리 등이 많기 때문에 호환 모드가 많다고 생각된다.

OCI Bucket도 S3 API와 호환이 되도록 설계가 되어 있고 실제로 사용할 수 있는데, 국내에 자료가 많이 없고 있다고 할지라도 좀 오래 된 정보라서 정보의 최신화겸 작성한다.


사전 준비할 것

일단 이 글은 아래 내용이 이미 준비되어 있다고 가정하고 작성한다.

  • OCI 계정
  • OCI Bucket

Customer Secret Key 발급

먼저, Customer Secret Key가 발급되어야한다. 발급된 Secret Key를 이용해서 Bucket API에 요청을 할 때 인증 Key 값으로 제공하는 것이다.

Customer Secret Key Step 1

먼저 OCI 콘솔로 진입하고, 오른쪽 위의 '프로필 -> My profile' 순서로 진입한다.

Customer Secret Key Step 2

왼쪽 아래 탭 리스트에서 'Customer secret keys'라는 탭에 진입하고, 'Generate secret key' 버튼을 누른다.

그 다음, 본인이 구분할 수 있도록 Secret Key의 이름을 지정하고 생성하면 된다.

Customer Secret Key 생성 완료

키 생성이 완료되면, 단 한 번만 Key 값을 볼 수 있으므로 꼭 복사하고 안전한 곳에 보관한다.


API 접속 정보 구성하기

자료들을 찾아보면 Customer Secret Key를 만드는 것까지 나와있다. 하지만 API 접속 정보를 구성하는 부분에서 뭔가 안 맞는 부분이 있어서 2024년 11월 기준으로 확인한 내용을 공유한다.

S3을 이용하는 프로그램을 이용하면 대부분 아래 정보를 요구한다.

  • Access Key
  • Secret Key
  • Bucket Name
  • Region
  • Endpoint -> 대부분 Optional 이다.

이 경우, OCI Bucket과 호환하게 할려면 아래와 같이 입력하면 된다.

  • Access Key: <아까 발급한 Customer Secret Key의 Access Key>
Access Key 보는 법

이미 생성한 Key의 ID를 보는 것이기 때문에 언제나 볼 수 있는 값이다.

  • Secret Key: <아까 발급한 Customer Secret Key>

위에서 한 번만 보여준다는 값을 이야기한다.

  • Bucket Name: <생성했던 Bucket의 이름>
Bucket Name 보는 법

이름을 모르겠다면 Bucket 관리화면에 진입해서 Name 값을 보면 된다.

  • Region: <생성한 Bucket의 Region>
Bucket Region 확인 방법

생성한 Bucket의 Region을 모르겠다면, Bucket 관리화면에 진입했을 때 주소를 보면 region 값이 나와있다.

  • Endpoint: <namespace>.compat.objectstorage.<region>.oraclecloud.com

namespace의 경우 Bucket에 진입해보면 알 수 있다. namespace의 경우, 계정 단위이기에 다른 Bucket이어도 동일하다.


이렇게 구성하면 S3에 대응하는 라이브러리나 프로그램을 사용할 수 있게 된다.