안녕하세요

금번 포스팅에서는 IBM Cloud Infrastructure에서 생성한 ICOS(IBM Cloud Object Storage) 버켓에 담긴 자료를 외부에서 접근 가능할 수 있도록 Public-read 설정하는 방법에 대해서 정리하였습니다.

금번 핸즈온을 진행하기 위해서는

  1. IBM Cloud 계정
  2. Object Storage Credential
  3. S3 CLI

가 필요합니다.

 

1번, 2번은 계정이 있으면 바로 접속 및 ICOS 생성시 얻을 수 있으므로 3번 설치만 진행하시면 됩니다.
 

IBM Object Storage 생성 및 이미지 업로드

  1. https://control.softlayer.com 에 접속하여 Storage > Object Storage 로 이동합니다.

1
 

  1. 우측 상단의 Order Object Storage를 클릭해 Cloud Object Storage – S3 API를 선택하여 생성합니다.

2
3
 

  1. 생성된 S3 타입의 Object Storage 를 클릭해 들어가 Bucket을 생성합니다.

4
 

  1. Access & Permissions 탭으로 이동해 Credential을 확인합니다. 이후 S3 CLI를 통해 해당 정보를 기입해 Public-read 권한을 줄 때 사용합니다.

5
6
 

  1. ICOS 버킷에 이미지 파일을 업로드합니다.

 

 

CDN 생성

  1. Network > CDN 탭에서 CDN탭으로 이동합니다.. 실제 도메인을 가지고 계시다면 해당 도메인에 맞게 CDN을 지정하실 수 있습니다. 당장은 Object Storage Host 경로를 URL로 사용할 예정이기 때문에 도메인이 없어도 무방합니다.

7
 

  1. CDN 을 구매하면 Akamai CDN을 구매하게 됩니다. 해당 구매하실 시에 Configuration your origin 탭 하단에 Object Storage 를 클릭한 뒤 정보를 기입합니다. Bucket Name은 임의로 설정하되, Endpoint는 object storage에서 확인한 endpoint 정보를 기입합니다. 저는 초기 bucket을 생성할 때 Cross Region – us를 선택해 생성했기 때문에 us-geo인s3-api.us-geo.objectstorage.softlayer.net를 입력해 생성하였습니다.

8
 

  1. 생성을 완료하면 CNAME이 자동으로 생성되고 Origin이 Object Storage의 host로 설정되어 있음을 볼 수 있습니다.

9
 

 

S3 API 설치 및 설정

  1. https://knowledgelayer.softlayer.com/procedure/connecting-cos-s3-using-s3cmd 를 참고하여 S3 CLI를 설치합니다.

10
 

  1. 아래 명령어로 패키지를 내려받습니다.
    wget -O $HOME/.s3cfg https://gist.githubusercontent.com/greyhoundforty/676814921b8f4367fba7604e622d10f3/raw/422abaeb70f1c17cd5308745c0e446b047c123e0/s3cfg

11
 

  1. 위의 명령어에서 알 수 있듯이 ($HOME/.s3cfg) $HOME 경로로 이동해 .s3cfg파일을 수정합니다. 이 안에 이전에 확인했던 ICOS Credential을 넣어 수정합니다.
    access_key, secret_key, host_base와 host_bucket 란을 수정합니다.
    : access_key = cos_access_key
    -> Access Key ID
    : host_base = cos_endpoint
    -> s3-api.us-geo.objectstorage.softlayer.net
    : host_bucket = %(bucket)s.cos_endpoint
    -> %(bucket)s.s3-api.us-geo.objectstorage.softlayer.net
    : secret_key = cos_secret_key
    -> Secret Access Key

수정 후 s3cmd ls 명령어를 통해 계정 내 버킷 리스트를 확인할 수 있습니다.
12
 

  1. 현재까지 진행하고 Object Storage의 Host URL로 해당 버킷 내 이미지 파일을 참조하면 접근권한이 없음을 확인할 수 있습니다.

13
 

  1. 이제 버킷에 Public-read 권한을 주기 위해 해당 명령어를 이용합니다. 기본적으로 ICOS는 S3 API 를 지원하기 때문에 명령어도 해당 Doc을 참고해 진행할 수 있습니다. 여기서 cross-test는 제가 생성한 버킷 이름입니다.
    s3cmd setacl s3://cross-test/ –acl-public –recursive

14
 

  1. 다시 한번 URL을 확인하면 정상적으로 이미지가 뜨는 것을 확인할 수 있습니다.

16
 

 

토론 참가

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다