- 인쇄
- PDF
Object Storage 사용 가이드
- 인쇄
- PDF
시작하기 전에
네이버 클라우드 플랫폼 Object Storage는 사용자가 언제 어디서나 원하는 데이터를 저장하고 탐색할 수 있도록 파일 저장 공간을 제공하는 서비스입니다. 다음과 같은 용도로 사용할 수 있습니다.
- 파일 단위의 데이터 저장, 공유, 배포: 콘텐츠를 저장하고 다른 사용자에게 공유하거나 배포할 수 있습니다.
- 대용량 저장소: 대용량의 데이터 저장소로 활용할 수 있습니다.
- 데이터 백업 및 장기 보관: 중요한 데이터를 백업하거나 장기 보관할 수 있습니다.
사용자 부주의로 인해 데이터가 삭제될 경우, 데이터 복구가 불가능합니다. 따라서 데이터 손실을 방지하고 중요한 정보를 보호하기 위해 중요 데이터에 대해서는 정기적으로 백업을 수행하시기를 바랍니다.
Object Storage는 AWS S3 compatible API를 제공하므로, S3를 활용한 툴을 Object Storage에서도 사용할 수 있습니다. S3 Browser를 사용하는 방법은 다음과 같습니다.
- 최신 버전의 S3 Browser를 S3 Browser 사이트에서 다운로드하여 설치해 주십시오.
- S3 Browser를 실행하고 Menu > Account > Add New Account에서 다음과 같이 설정해 주십시오.
- Account Type: S3 Compatible Storage
- REST Endpoint:
kr.object.fin-ncloudstorage.com
- Access Key ID: Access key
- Object Storage 이용 신청 시 선택한 API 인증키를 입력합니다.
- 인증키 정보는 포털 > 마이페이지 > 계정관리 > 인증키 관리에서 확인할 수 있습니다.
- Secret Access Key: secret key (위 API 인증키와 연결된 secret key를 입력해 주십시오.)
- Use secure transfer(SSL/TLS): SSL 또는 TLS 중에 선택
- [Task] 탭 메뉴에서 정상적으로 연결이 되는지 확인해 주십시오.
- 버킷 생성/삭제, 파일 업로드/다운로드, 폴더 생성/삭제가 가능한지 확인해 주십시오.
- 권한 부여는 네이버 클라우드 플랫폼 콘솔 및 관련 API로 제어하는 것을 권장합니다.
Object Storage는 유료 서비스로 사용한 만큼 과금됩니다.
Object Storage 요금 = 데이터 저장량 요금 + API 요청 수 요금 + 네트워크 전송 요금
- 데이터 저장량 요금: 고객의 파일이 실제로 Object Storage에 저장된 데이터 저장량과 저장 시간에 따른 요금
- API 요청 수 요금: Object Storage를 사용하기 위한 목록 조회, 업로드, 다운로드 요청 등의 API 요청에 따른 요금
- 네트워크 전송 요금: 파일 다운로드에 따른 요금
Object Storage와 CDN+, Global CDN 간에 발생하는 네트워크 전송 요금은 무과금 처리됩니다.
Object Storage에서 공개 관리는 네이버 클라우드 플랫폼 사용자가 아닌 사용자에게 권한을 오픈하는 것으로 버킷과 파일에서 제공하는 권한이 다릅니다.
- 버킷 공개하기: 버킷 안의 객체(파일/폴더)에 대한 리스트 조회, 파일 업로드
- 파일 공개하기: 파일 정보 조회 및 다운로드
Object Storage에서 권한 관리는 네이버 클라우드 플랫폼 사용자에게 권한을 부여하기 위한 기능입니다. 특정 사용자에게 부여하고 싶은 권한만큼 제공할 때 사용할 수 있습니다.
- 버킷 권한: 목록 조회, 업로드, ACL 조회, ACL 수정
- 파일 권한: 다운로드, ACL 조회, ACL 수정
Object Storage와 서버간 통신방법은 서버가 위치한 Subnet에 따라 아래와 같은 경로를 통해서 가능합니다.
- Object Storage Endpoint
- Private Endpoint : kr.object.private.fin-ncloudstorage.com
- Public Endpoint : kr.object.fin-ncloudstorage.com
- Object Storage와 Private Subnet에 위치한 서버간 통신 : Private Endpoint를 통해서만 가능
- Object Storage와 Public Subnet에 위치한 서버간 통신 : Public Endpoint, Private Endpoint 모두 가능
사용하기 전에
Q. Object Storage는 어떤 목적으로 사용하나요?
네이버 클라우드 플랫폼 Object Storage는 사용자가 언제 어디서나 원하는 데이터를 저장하고 탐색할 수 있도록 파일 저장 공간을 제공하는 서비스입니다. 다음과 같은 용도로 사용할 수 있습니다.
- 파일 단위의 데이터 저장, 공유, 배포: 콘텐츠를 저장하고 다른 사용자에게 공유하거나 배포할 수 있습니다.
- 대용량 저장소: 대용량의 데이터 저장소로 활용할 수 있습니다.
- 데이터 백업 및 장기 보관: 중요한 데이터를 백업하거나 장기 보관할 수 있습니다.
Q. Object Storage 사용시 제한사항과 한도는 어떻게 되나요?
아래와 같은 제한사항 및 한도가 적용됩니다.
- 버킷 수량 : 최대 1,000개 (※ 버킷 수량은 고객문의를 통해 요청하실 경우 한도 증가 가능합니다.)
- 오브젝트 이름 문자열 길이(폴더path 포함) : 최대 1024 Byte
- 업로드시 단일 오브젝트 최대 용량 : 콘솔에서 업로드시 파일당 최대 2GB, API 사용시 파일당 최대 10TB까지 업로드 가능합니다. (※ 버킷에 저장용량 제한은 없습니다.)
- 객체 잠금 설정(WORM) 기능 적용 시 보존 기간 만료 전까지 삭제 및 수정이 불가합니다.
- 암호화 설정(KMS) 기능 적용 시 잠금설정 및 정적웹호스팅 기능은 사용이 불가능합니다.
Q. 공개 관리와 권한 관리는 어떤 차이가 있나요?
공개 관리는 네이버 클라우드 플랫폼 사용자가 아닌 사용자에게 권한을 오픈하는 것으로 버킷과 파일에서 제공하는 권한이 다릅니다.
- 버킷 공개하기: 버킷 안의 객체(파일/폴더)에 대한 리스트 조회, 파일 업로드
- 파일 공개하기: 파일 정보 조회 및 다운로드
권한 관리는 네이버 클라우드 플랫폼 사용자에게 권한을 부여하기 위한 기능입니다. 특정 사용자에게 부여하고 싶은 권한만큼 제공할 때 사용할 수 있습니다.
- 버킷 권한: 목록 조회, 업로드, ACL 조회, ACL 수정
- 파일 권한: 다운로드, ACL 조회, ACL 수정
Q. 버킷 권한을 부여한 타 계정이 업로드한 Object를 조회하려면 어떻게 해야 하나요?
기본적으로 Object 업로드를 하면 Object의 소유주는 업로드한 계정이 됩니다. 따라서 버킷 소유주가 해당 Object를 조회하기 위해서는 버킷 소유주에게 Object에 대한 권한을 부여해야 합니다.
ObjectACL 설명서를 참고하여 API로 ObjectACL을 설정할 수있습니다.
Q. S3와 연동되는 툴을 사용할 수 있나요?
Object Storage는 AWS S3 compatible API를 제공하므로, S3를 활용한 툴을 Object Storage에서도 사용할 수 있습니다. S3 Browser를 사용하는 방법은 다음과 같습니다.
1. 최신 버전의 S3 Browser를 다운로드하여https://s3browser.com/download.aspx설치합니다.
2. S3 Brower를 실행하고 Menu > Account > Add New Account에서 다음과 같이 설정합니다.
- Account Type: S3 Compatible Storage
- REST Endpoint: kr.object.ncloudstorage.com
- Access Key ID: access key (Object Storage 이용신청 시 선택한 API 인증키를 입력합니다. 인증키 정보는 포털 > 마이페이지 > 계정관리 > 인증키 관리에서 확인할 수 있습니다.)
- Secret Access Key: secret key (위 API 인증키와 연결된 secret key를 입력합니다.)
- Use secure transfer(SSL/TLS): 선택
3. Task 탭에서 정상적으로 연결이 되는지 확인합니다.
- 버킷 생성/삭제, 파일 업로드/다운로드, 폴더 생성/삭제가 가능한지 확인합니다.
- 권한 부여는 네이버클라우드 콘솔 및 관련 API로 제어하는 것을 권장합니다.
Q. Object Storage를 사용하면 발생하는 요금을 알려주세요.
Object Storage는 유료 서비스로 사용한 만큼 과금됩니다.
Object Storage 요금 = 데이터 저장량 요금 + API 요청 수 요금 + 네트워크 전송 요금
- 데이터 저장량 요금: 고객의 파일이 실제로 Object Storage에 저장된 데이터 저장량과 저장 시간에 따른 요금
- API 요청 수 요금: Object Storage를 사용하기 위한 목록 조회, 업로드, 다운로드 요청 등의 API 요청에 따른 요금
- 네트워크 전송 요금: 파일 다운로드에 따른 요금
(VPC에서 사설 도메인을 이용할 경우 별도 요금이 발생합니다.)
Object Storage와 CDN+ 간에 발생하는 네트워크 전송 요금은 무과금 처리됩니다.
Q. 콘솔에서 Object를 업로드, 다운로드 할 수 있는 크기는 몇입니까?
콘솔에서는 object 업로드 2GB이하, 다운로드 2GB이하로 제한합니다.
제한된 사이즈보다 큰 object는 SDK 문서를 참고하여 API로 업로드 및 다운로드할 수 있습니다.
Q. Object 다운로드 했는데 콘솔에 보이는 사이즈와 다릅니다.
object를 다운로드하여 pc에서 확인할 경우, OS마다 사이즈가 다르게 보일 수 있습니다. 이는 OS마다 데이터 사이즈를 계산하는 방식에 차이가 있기 때문입니다.
object의 실제 사이즈는 content-length로 확인가능하며, object에는 이상이 없습니다.
Q. Lifecycle Management란 무엇인가요?
Object Storage에 업로드한 데이터를 일정기간 이후 삭제되도록 설정하여 Storage 저장 요금을 절약 할 수 있습니다.
Q. Lifecycle Management는 어떻게 사용하나요?
Lifecycle Management는 네이버 클라우드 플랫폼 콘솔에서 신청하고 사용할 수 있습니다. 아래 안내된 단계에 따라 콘솔에서 이용해 보세요.
1. 콘솔에 접속하여 Object Storage 서비스를 선택합니다.
2. Object Storage 내 Lifecycle Management를 클릭하여 전용 메뉴에 접속합니다.
3. [수명주기 정책 추가] 버튼을 눌려 정책을 추가합니다.
Q. Lifecycle Management사용시 별도의 요금이 있나요?
Lifecycle Management를 위한 별도의 이용 요금은 없습니다.
Q. Lifecycle Management 사용시 주의사항이 있나요?
- Lifecycle Management 는 Object Storage 에서 Archive Stoage로 데이터를 이관 시 Archive Storage의 Object 이름의 Bytes 제한으로 인해 이관이 되지 않을 수 있습니다.
- Archive Storage에 업로드 가능한 Object의 이름은 215 Bytes 미만입니다.
- Object 이름에 "//" double slash가 있을 경우 이관이 되지 않습니다.
- 암호화 설정(KMS)이 적용된 버킷에 대해선 LifeCycle Management 기능 사용이 어렵습니다.
Q. Metric Management란 무엇인가요?
Metric Management는 Cloud Insight 연동을 통해 Object Storage에 대한 상세 모니터링을 지원하는 기능입니다. 버킷에 상세 모니터링 정책을 생성하면 해당 버킷에 대한 API 요청 관련 지표가 수집되며 수집된 지표는 Cloud Insight 서비스에서 확인이 가능합니다. 상세 모니터링 정책은 버킷 단위로 설정 가능하며 접두사와 접미사 설정을 통해 지표 집계 대상을 제한할 수 있습니다. 상세 모니터링 정책은 한 버킷에 최대 1,000개 까지 설정이 가능합니다.
Q. Metric Management는 어떻게 사용하나요?
Metric Management는 네이버 클라우드 플랫폼 콘솔에서 신청하고 사용할 수 있습니다. 아래 안내된 단계에 따라 콘솔에서 이용해 보세요.
- 콘솔에 접속하여 Object Storage 서비스를 선택합니다.
- Object Storage 내 Metric Management를 클릭하여 전용 메뉴에 접속합니다.
- +상세 모니터링 정책 생성 버튼을 눌려 정책을 추가합니다.
- Cloud Insight의 Dashboard에서 새 widget 을 만들어 수집된 지표를 확인합니다.
Q. Metric Management 사용시 별도의 요금이 있나요?
Cloud Insight의 요금 정책이 적용됩니다.
상세 모니터링 정책을 통해 수집된 API 요청 지표는 Object Storage 요금에 포함되는 API 요청 수와는 별도로 과금됩니다.
가입 절차
Object Storage를 사용하려면 네이버 클라우드 플랫폼[Financial]에서 제공하는 콘솔 및 리소스등을 이용하기 위해 네이버 클라우드 플랫폼의 계정이 필요합니다.
네이버 클라우드 플랫폼[Financial]에 가입하면 모든 서비스들을 이용하실 수 있으며, 사용한 서비스에 대해서만 요금이 청구됩니다.
이미 계정이 있는 경우에는 해당 단계를 건너뛸 수 있습니다.
- 포털로 이동합니다.
- 오른쪽 상단에 [회원가입] 버튼을 클릭하여 회원가입 페이지로 이동합니다.
- 서비스 이용 약관 및 개인정보수집이용에 대한 안내 문구를 확인하고 동의합니다.
- 법인 및 담당자 정보를 입력합니다.
- 결제수단은 직접입금과 자동이체를 선택하실 수 있습니다.
- 가입한 ID/PW를 통해 로그인하고 결제수단 선택 및 등록을 완료합니다.
- 담당자의 가입정보 및 금융회원여부 검증 후 승인이 완료되면 SSL VPN 계정이 발급되어 메일로 전송됩니다.
- SSL VPN Client 접속 툴을 설치하고 실행하여, 발급된 SSL VPN 계정으로 로그인합니다.
- Financial 콘솔은 Financial 포털에 로그인하여 [Console] 버튼을 클릭하거나, 도메인(
www.fin-ncloud.com
)을 직접 입력하여 접속 후 사용가능합니다.
- 포털에서 가입한 계정으로 콘솔에서도 동일하게 사용이 가능합니다.
- 네이버 클라우드 플랫폼[Financial] 서비스를 사용하기 위해서는 반드시 SSL VPN 접속을 통해 이용가능합니다.
Object Storage 이용
인증키 준비
API를 통해 Object Storage를 이용하려는 경우, API 인증키를 준비해야 합니다.
API 인증키는 포털 > 마이페이지 > 계정관리 > 인증키 관리 메뉴에서 만들 수 있습니다.
1. API 인증키를 생성하기 위해서 [신규 API 인증키 생성] 버튼을 클릭하세요.
- API 인증키는 계정당 2개까지 생성할 수 있습니다.
이용 신청
1. 콘솔에 접속하여 Services > Storage > Object Storage 메뉴로 이동합니다.
2. 스토리지를 이용하려면 [이용신청] 버튼을 클릭합니다.
- 안내사항을 확인한 후 [확인] 버튼을 클릭하면 서비스 이용 신청이 완료됩니다.
버킷 생성
1. [버킷 생성] 버튼을 클릭합니다.
2. 사용할 버킷의 이름을 입력합니다.
- 생성된 버킷 이름은 변경할 수 없습니다. 버킷 이름은 객체에 대한 도메인에 활용되므로 신중하게 선택하십시오.
- 버킷 이름은 네이버 클라우드 플랫폼 리전 내에서 유일해야 합니다.
3. 버킷 공개 여부를 선택합니다.
- 버킷 내 파일/폴더 리스트만 공개합니다. 파일에 대한 공개 여부는 개별 파일에서 설정합니다.
4. 버킷을 네이버 클라우드 플랫폼의 다른 계정에 공유할 수 있습니다.
- 버킷에 대한 목록 조회, 업로드, ACL 조회, ACL 수정 권한 중 일부(또는 전부)를 선택하여 권한을 부여할 수 있습니다.
5. (필요 시) 객체 잠금 설정(WORM)을 신청합니다.
- 객체 잠금 설정이란, 고객이 정의한 기간 동안 객체의 변경 및 삭제를 차단하여 데이터를 보호하는 기능입니다.
- 장기간 데이터를 보존해야하는 경우 WORM을 적용하신다면 뜻하지 않게 데이터가 변형 및 삭제되는 것을 방지할 수 있습니다.
- WORM 이용 시 지정한 만료일까지 데이터가 보호되어 서비스 이용 해지 및 회원 탈퇴가 불가능 하오니 유의하시기 바랍니다.
6. (필요 시) 암호화 설정(KMS)를 신청합니다.
암호화 설정이란, 고객이 보유한 NCP KMS 마스터 Key와 연동하여 버킷에 대한 접근과 버킷 내 저장된 객체를 보호하는 기능입니다.
암호화가 적용된 버킷에 대해 암호화를 해지하는 것은 불가능 하오니 유의하시기 바랍니다.
7.객체 잠금에 대한 설정을 합니다.
- 최대 보존 기간 : 해당 버킷이 허용하는 최대 보존 기간을 의미합니다. 0 ~ 365일 범위 내에서 설정이 가능합니다
- 기본 보존 기간 : 버킷에 오브젝트가 저장될 때 적용되는 기본 보존 기간입니다. 버킷 내에 있는 객체들은 최대 보존 기간 내에서 개별적으로 보존 기간을 설정할 수 있습니다. 0 ~ 365일 범위 내에서 설정이 가능합니다.
8. 암호화 설정(KMS)에 대한 설정을 합니다. 암호화를 활성화한 경우, 암호화 키 관리 방법 및 암호화 키를 선택합니다.
- NCP 관리형 키 : NCP에서 관리하는 키를 이용하여 암호화 설정이 가능합니다.
- KMS 마스터 키 : 네이버 클라우드 플랫폼 KMS에서 생성한 AES256, RSA- 2048 타입의 키를 이용하여 암호화 설정이 가능합니다. 수렴 암호화를 선택한 AES256 키는 설정이 불가합니다.
암호화 설정(KMS)을 이용하실 경우, 객체 잠금설정(WORM) 및 정적웹호스팅 기능은 사용이 불가능합니다.
9. 내용을 확인하고 버킷을 생성합니다.
파일 업로드 및 다운로드
파일을 업로드할 버킷을 지정하고 해당 버킷에 파일을 올립니다.
1. 파일을 업로드할 버킷 이름을 클릭합니다.
2. [파일 올리기] 버튼을 클릭하여 파일을 올립니다.
- 콘솔을 이용한 업로드의 경우 최대 파일의 크기는 2GB이며, API를 이용하면 10TB까지 지원합니다.
- 파일에 대한 권한을 부여할 경우, 파일 올리기 설정에서 설정하면 편리하게 동일한 권한을 부여할 수 있습니다.
3. 파일을 단독 선택하면 파일에 대한 상세 정보를 확인할 수 있습니다.
- 파일을 선택하면 [다운로드] 버튼이 활성화됩니다.
버킷 접근 로그 관리
버킷의 접근로그 관리를 통해 버킷에 접근한 요청 이력을 저장할 수 있습니다.
버킷 접근 로그 설정
1. 접근 로그 저장이 필요한 버킷을 선택한 후 로그 관리를 클릭합니다.
2. 로그를 저장할 버킷을 선택합니다. 버킷은 본인 소유의 버킷이어야 합니다.
3. 버킷에 저장될 접근 로그의 접두어(Prefix)를 선택합니다.
※ 생성 후 버킷 정보에서 접근 로그 설정 내역을 확인하실 수 있습니다.
4. 우측 [추가] 버튼을 클릭하여 접근 로그를 저장할 버킷을 추가합니다.
5. 페이지 하단 [확인] 버튼을 클릭하여 접근 로그 저장 관리 작업을 완료합니다.
로그 관리를 설정하신 경우 매시간 25~35분 사이에 이전 1시간 동안의 로그가 생성됩니다.
예) 17시 00분 00초 ~17시 59분 59초의 로그는 18시 25분~35분 사이에 생성됩니다.
버킷 접근 로그 형식
Object Storage에 수행된 모든 요청에 대한 상세 정보가 JSON 형식으로 저장됩니다.
다음은 Object Storage의 객체를 조회했을 때의 로그 예제입니다.
{
"container_id": "3aaae999-89b8-1234-abb6-5c106e4f436d",
"container_name": "ncp-bucket",
"container_region": "Korea",
"credential_type": "hmac",
"delete_marker": false,
"e_tag": "2a158d5ab989430a11ba4f12345e357",
"format": 1,
"headers": {
"Accept-Encoding": [
"identity"
],
"Authorization": [
"AWS4-HMAC-SHA256 Credential=ABCDEFJqzABCDJ6cGS/20211109/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=1cc5b591e1f4c313a9bbf7471bd1d5b7f5d32033e4dec3bcaf1a329ef9b57e8"
],
"Host": [
"kr.object.fin-ncloudstorage.com"
],
"User-Agent": [
"aws-cli/1.15.85 Python/2.7.9 Windows/8 botocore/1.10.84"
],
"X-Amz-Content-SHA256": [
"e3b0c44298fc1c149afbf4c8996fb92427ae41e464911234ca495991b7852b855"
],
"X-Amz-Date": [
"20211109T094038Z"
]
},
"https": {
"cipher_suite": "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
"protocol": "TLSv1.2"
},
"interface_type": "s3",
"is_secure": true,
"last_changed": "2021-10-21T08:40:00.283Z",
"last_modified": "2021-10-21T05:23:31.432Z",
"object_length": "160",
"object_name": "index.html",
"principals": {
"aws": "ABCDEFJqzABCDJ6cGS",
"identity": "ncp-1234567-0@00000000-0000-0000-0000-000000000002"
},
"protocol": "HTTP/1.1",
"proxy_enabled": false,
"region": "KR",
"remote_address": "123.45.123.45",
"remote_user": "ABCDEFJqzABCDJ6cGS",
"request_id": "76d34a72-2da0-400a-aac3-9861ec1040ad",
"request_latency": "2",
"request_method": "GET",
"request_type": "REST.GET.OBJECT",
"request_uri": "/ncp-bucket/object.txt",
"response_length": "160",
"server_name": "kr.object.fin-ncloudstorage.com",
"stat": {
"client_wait": 0.056,
"post_transfer": 0.011,
"pre_transfer": 1.096,
"storage_wait": 0.046,
"total_transfer": 0.109,
"turn_around_time": 1.14
},
"status": 200,
"storage_account_id": "ncp-1234567-0",
"storage_location_id": "24d02d1a-a0b5-7240-10b7-00655729e065",
"time_finish": "09/Nov/2021:09:40:38 +0000",
"time_start": "09/Nov/2021:09:40:38 +0000",
"timestamp_finish": "1636450838774",
"timestamp_start": "1636450838773",
"type": "http",
"user_agent": "aws-cli/1.15.85 Python/2.7.9 Windows/8 botocore/1.10.84",
"version_name": "ef6dc25a-bda2-4378-9279-b3050b8da577",
"version_transient": true
}
다음 표에서 로그 필드에 대해 설명합니다.
필드명 | 설명 | 로그 예시 |
---|---|---|
container_id | 버킷 UUID | "3aaae999-89b8-4919-abb6-5c106e4f436d" |
container_name | 버킷명 | "ncp-bucket" |
container_region | 버킷이 위치한 리전 | "Korea" |
error_code | 오류가 발생한 경우의 오류 코드 정보 | "AccessDenied" |
delete_marker | 삭제 마커 여부 | false |
e_tag | 저장된 객체의 해시 값 | "2a158d5ab989430a11ba4f349363e357" |
format | 로그 형식 버전 | 1 |
headers | 요청 헤더 정보 | { "Host": [ "kr.object.fin-ncloudstorage.com" ], "User-Agent": [ "aws-cli/1.15.85 Python/2.7.9 Windows/8 botocore/1.10.84" ] } |
https | HTTPS 요청 정보 protocole, cipher_suite 필드로 구성 | { "cipher_suite": "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", "protocol": "TLSv1.2" } |
interface_type | 요청에 사용된 API | "s3" |
is_secure | 보안 연결 여부(HTTPS연결) | true |
last_changed | 객체의 속성이 마지막으로 수정된 시간 속성 수정을 하지 않은 경우 last_modified 값과 동일 | "2021-10-21T08:40:00.283Z" |
last_modified | 객체의 콘텐츠가 마지막으로 수정된 시간 덮어쓰기를 하지 않은 경우 생성 시간과 동일 | "2021-10-21T05:23:31.432Z" |
object_length | 요청된 객체의 크기 삭제 요청의 경우 삭제되기 전 객체의 크기 | 160 |
principals | 요청 주체 정보 | { "aws": "ABCDEFGHqzAFTTJ6cGS", "identity": "ncp-1234567-0@00000000-0000-0000-0000-000000000002" } |
protocol | 요청된 프로토콜 정보 | "HTTP/1.1" |
proxy_enabled | 프록시 활성 여부 | false |
referer | HTTP referer 정보 | "https://console.fin-ncloud.com" |
region | NCP 리전 코드 | "KR" |
remote_address | 클라이언의 IP 정보 | "123.45.123.45" |
remote_user | 인증된 사용자의 로그인 정보 S3 API를 이용할 경우 Access Key ID 반환 | "ABCDEFSHqzAFTTJ6cGS" |
remote_user_subject | Sub Account의 NRN 정보 | "abcd1234-f32a-12ab-98ec-123e98765a38" |
request_id | 요청 ID | "5a49a8f9-edff-43ab-8630-6297e11ae1d4" |
request_latency | 요청 처리까지 소요된 시간(밀리초) | 2 |
request_type | 요청 작업 REST.<HTTP_method>.<resource_type> | "REST.GET.OBJECT" |
request_uri | 요청 URI | "/ncp-bucket/object.txt" |
response_length | 응답 크기 | 160 |
server_name | 요청된 호스트명 Object Storage 엔드포인트 | "kr.object.fin-ncloudstorage.com" |
status | 응답에서 반환되는 상태코드 | 200 |
storage_account_id | 버킷 소유자 계정ID | "ncp-1234567-0" |
storage_location_id | 버킷 위치ID | "24d02d1a-a0b5-7240-10b7-001234529e065" |
time_finish | 요청 완료 시간(ISO 8601) | "09/Nov/2021:09:40:40 +0000" |
time_start | 요청 시작 시간(ISO 8601) | "09/Nov/2021:09:40:40 +0000" |
timestamp_finish | 요청 완료 시간(유닉스 타임, 밀리초) | "1636450840661" |
timestamp_start | 요청 시작 시간(유닉스 타임, 밀리초) | "1636450840660" |
type | 로그 형식 접근 로그의 경우 항상 "http" 값 | "http" |
user_agent | 사용자 에이전트 정보 | "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36" |
version_name | 요청된 객체의 버전ID | "ef6dc25a-bda2-4378-9279-b3050b8da577" |
version_transient | 버전의 "transient" 정보 | true |
객체 잠금 이용
1. 정의
- 고객이 정의한 기간 동안 객체의 변경 및 삭제를 차단하여 데이터를 보호하는 기능입니다.
- 장기간 데이터를 보존해야하는 경우 객체잠금을 적용하신다면 뜻하지 않게 데이터가 변경 및 삭제되는 것을 방지할 수 있습니다.
- 객체잠금 이용 시 지정한 만료일까지 데이터가 보호되어 서비스 이용 해지 및 회원 탈퇴가 불가능 하오니 유의하시기 바랍니다.
2. 신청 조건
- 최초 버킷 생성 시 또는 버킷이 비어있는 경우 객체 잠금 관리를 적용하실 수 있습니다.
3. 잠금 관리 설정
버킷 레벨에서 설정 : 버킷 설정에서 잠금 관리를 신청하실 수 있습니다. 최대 보존 기간과 기본 보존 기간 두 가지를 설정하여야 합니다.
① 최대 보존 기간: 해당 버킷이 허용하는 최대 보존 기간을 의미합니다. 0 ~ 365일 범위 내에서 설정이 가능합니다
② 기본 보존 기간: 버킷에 오브젝트가 저장될 때 적용되는 기본 보존 기간입니다. 버킷 내에 있는 객체들은 최대 보존 기간 내에서 개별적으로 보존 기간을 설정할 수 있습니다. 0 ~ 365일 범위 내에서 설정이 가능합니다.
객체 레벨에서 설정: 객체를 업로드 하실 때 보존 기간을 설정하실 수 있습니다. 업로드 시 권한 및 메타데이터 설정> 잠금 관리 메뉴에서 다양한 형태의 보존 설정을 하실 수 있습니다. 보존 유형은 아래와 같이 2가지를 제공하고 있습니다. 업로드 시 객체에 설정된 보존 기간은 버킷에 지정된 최대 보존 기간 내에서 연장만 가능합니다.
① 기간: 버킷에 지정된 최대 보존 기간 내에 객체의 보존 기간을 자유롭게 입력하실 수 있습니다.
② 날짜: 보존 만료 날짜를 명시적으로 입력하실 수 있습니다. 날짜 입력 시 버킷에 지정된 최대 보존 기간 내에서 입력이 가능합니다.
4. 법적 보존
- 버킷 보존 기간과 무관하게 객체 잠금을 설정하실 수 있으며, 라벨을 통해 객체 보존의 이유를 명시적으로 관리하실 수 있습니다.
- 법적 보존이 설정된 객체는 보호되어 변경 및 삭제가 불가능 합니다
5. 잠금 정보 확인 및 변경
- 버킷의 잠금 정보는 버킷의 잠금 관리 메뉴에서 확인이 가능합니다.
- 한 번 잠금 설정이 활성화 된 버킷은 잠금 관리 해제를 하실 수 없습니다. 최대 보존 기간과 기본 보존 기간은 변경이 가능합니다.
- 오브젝트의 잠금 정보는 객체를 선택하신 후 상세정보 > 잠금 관리 메뉴에서 확인이 가능합니다.
- 잠금 설정 여부 외에도 객체의 잠금 만료 날짜를 확인하실 수 있으며, 보존 기간도 연장 하실 수 있습니다.
암호화 설정 이용하기 (KMS : Key Management Service)
- 암호화를 적용한 버킷은 다시 암호화 해제가 불가능합니다.
- 하나의 버킷에 대해, 암호화 설정과 잠금설정 또는 정적웹호스팅기능을 동시에 적용할 수 없습니다.
신청 조건
최초 버킷 생성 시에만 적용하실 수 있습니다.
암호화 설정
콘솔에서 설정
콘솔에서 버킷 생성을 하실 때, 설정관리 단계에서 암호화 설정이 가능합니다.
설정 시엔 아래와 같은 제약사항이 있습니다.
- 암호화 설정이 적용된 버킷의 경우, 공개 설정이 불가능합니다.
- 암호화 설정이 적용된 버킷에 대해 타 계정 권한 부여가 불가능합니다.
- 암호화 설정이 적용된 버킷은 LifeCycle Management 설정이 불가능합니다.
- 암호화 설정과 잠금설정은 동시에 적용될 수 없습니다.
- 암호화 설정과 정적웹호스팅기능은 동시에 적용될 수 없습니다.
API 또는 CLI에서 설정
API 또는 CLI에서 암호화 설정이 적용된 버킷을 이용할 수 있습니다.
이용 시엔 아래와 같은 제약사항이 있습니다.
- 암호화 설정이 적용된 버킷의 경우 콘솔에서만 생성이 가능합니다.
- API 또는 CLI 환경에서 암호화 설정이 적용된 버킷에 대한 Object 관련 operation을 수행하실 경우, 메인 계정의 API Key는 사용이 불가능합니다.
- Subaccount를 신규로 생성하거나 기존에 보유하고 있는 Subaccount의 API Key를 사용하여 암호화 버킷의 Object 관련 operation을 수행하실 수 있습니다.
- Subaccount 생성 및 API Key에 대한 가이드는 관련 사용가이드를 참고 부탁드립니다.
- 암호화 설정이 적용된 버킷의 경우, 공개 설정이 불가능합니다.
- 암호화 설정이 적용된 버킷에 대해 타 계정 권한 부여가 불가능합니다.
- 암호화 설정이 적용된 버킷은 LifeCycle Management 설정이 불가능합니다.
- 암호화 설정과 잠금설정은 동시에 적용될 수 없습니다.
- 암호화 설정과 정적웹호스팅기능은 동시에 적용될 수 없습니다
접근 제어 기능 이용하기
고객이 정의한 서버에서만 Object Storage 이용할 수 있도록 설정할 수 있습니다.
접근 제어가 필요한 버킷을 선택해 주십시오.
접근 제어를 클릭하고 접근 제어 기능을 활성화해 주십시오.
선택한 버킷에 접근 권한을 부여할 서버를 선택해 주십시오.
참고본인 소유의 VPC 내 서버만 가능합니다.
우측 화살표 버튼을 클릭하여 ACL 설정 정보에 추가해 주십시오.
참고기존에 설정된 서버를 삭제하고 싶은 경우 우측의 ACL 설정 정보내 서버를 선택한 후 좌측 화살표 버튼을 클릭하여 설정을 제거합니다.
[확인] 버튼을 눌러 기능을 적용해 주십시오.
참고- 접근 제어를 적용한 버킷의 경우 CDN+ 및 Global CDN을 사용할 수 없습니다.
- VPC 서버와 접근 제어를 적용한 버킷간 통신은 사설 도메인 kr.object.private.fin-ncloudstorage.com을 통해 가능합니다.
Metric Management 이용
Step 1. 상세 모니터링 정책의 이름 설정
상세 모니터링 정책의 이름을 설정합니다. 상세 모니터링 정책의 이름은 버킷 별로 유일해야 하며 생성 이후 수정이 불가능합니다.
Step 2. 상세 모니터링 정책의 대상 버킷 선택
상세 모니터링 정책의 대상 버킷을 선택합니다. 상세 모니터링 정책은 한 버킷에 최대 1,000개 까지 생성이 가능하며 정책 생성 이후 대상 버킷은 수정이 불가능합니다.
Step 3. 상세 모니터링 정책의 접두사/접미사 설정
상세 모니터링 정책의 접두사 및 접미사를 설정합니다. 접두사 및 접미사 설정을 통해 지표 집계 대상을 특정 요청으로 제한할 수 있습니다.
상세 모니터링 정책의 접두사/접미사는 객체의 전체 경로에 대해 적용됩니다. (폴더 및 파일명에 모두 적용됨)
예시) 접두사 : /imgaes 와 접미사: jpg 적용시 집계 대상은 아래와 같습니다.
① /images/somepath/test101.jpg (집계 대상)
② /images/somepath/test101.png (집계 대상 아님)
Step 4. 상세 모니터링 정책 생성
정책 생성 버튼을 누르면 상세 모니터링 정책 생성이 완료됩니다. 생성된 정책에 대해 수집된 지표를 확인하려면 Cloud Insight 의 Dashboard 및 Widget 생성이 필요합니다. 상세 모니터링 정책 생성 이후 Cloud Insight 에서 해당 지표를 확인할 수 있기까지 시간이 소요될 수 있습니다.
상세 모니터링 정책은 버킷에 대한 API 요청 지표 수집을 활성화하는 기능입니다. 상세 모니터링 정책 활성화 여부와 상관없이 버킷 지표(버킷 크기, 버킷 내 객체 수)는 Cloud Insight Dashboard 에서 확인 가능합니다. 버킷 지표(버킷 크기, 버킷 내 객체 수)는 객체 업로드 및 삭제 이후 반영되기까지 시간이 소요됩니다. 상세 모니터링 활성화를 통해 수집되는 API 요청 지표의 경우 1분 단위로 측정되며 집계 지연 이후 Cloud Insight Widget 을 통해 제공됩니다.
정적 웹 사이트 호스팅 이용
Object Storage를 이용하여 정적 웹 사이트를 호스팅하거나 요청을 리다이렉션할 수 있습니다.
Step 1. 콘솔 접속
1. 콘솔 > Object Storage > Bucket Management 메뉴로 이동합니다.
2. 버킷 목록에서 정적 웹 사이트 호스팅 기능을 이용할 버킷의 우측 상세 메뉴 버튼을 클릭합니다.
3. [정적 웹 사이트 호스팅] 버튼을 클릭합니다.
4. 정적 웹 사이트 활성화 버튼을 활성화합니다.
Step 2. 정적 웹 사이트 호스팅 설정
1. 호스팅 유형 설정
호스팅 유형은 두가지입니다.
- 정적 웹 사이트 호스팅 : 버킷 엔드포인트를 웹 주소로 사용합니다. 웹 사이트 엔드포인트의 콘텐츠에 접근 할 수 있게 하려면 버킷 내의 모든 파일을 공개 설정해야 합니다.
- 파일에 대한 요청 리다이렉션 : 요청을 다른 버킷 또는 도메인으로 리다이렉션합니다.
2. 세부 사항 설정
2-1. 인덱스 파일 및 오류 파일 설정
정적 웹 사이트 호스팅 설정을 선택한 경우, 인덱스 파일 및 오류 파일을 설정합니다.
- 인덱스 파일 : 웹사이트의 기본 페이지이며, 정적 웹 사이트 호스팅 기능 사용을 위해 필수적으로 설정해야합니다.
- 오류 파일 : 오류 발생 시 반환할 사용자 오류 페이지를 설정합니다.
2-2. 리다이렉션할 호스트 설정
파일에 대한 요청 리다이렉션을 선택한 경우, 리다이렉션할 호스트를 설정합니다.
- 호스트 이름 : 대상 버킷 웹 사이트 주소 혹은 개인 도메인을 입력합니다.
- 프로토콜 : 환경에 맞게 없음, http, https 중 하나를 선택합니다.
3. 정적 웹 사이트 호스팅 설정 완료
[확인] 버튼을 눌러 정적 웹 사이트 호스팅 설정을 완료합니다.
설정한 페이지는 버킷 웹 사이트 엔드포인트 링크로 이용하실 수 있습니다.
추후 설정을 변경할 경우 변경 사항이 적용될 때까지 시간이 소요될 수 있습니다.
이벤트 알람 이용
버킷에서 특정 이벤트가 발생했을 시 알람을 전달합니다.
콘솔에서는 다음과 같은 절차로 이벤트 알람을 설정할 수 있습니다.
Step 1. 콘솔 접속 및 버킷 선택
1. 콘솔 > Object Storage > Bucket Management 메뉴로 이동합니다.
2. 버킷 목록에서 이벤트 알람을 설정할 버킷의 우측 상세 메뉴 버튼을 클릭합니다.
3. [이벤트 관리] 를 클릭합니다.
4. [생성] 버튼을 클릭합니다.
Step 2. 버킷 이벤트 생성
1. 이벤트 이름 입력
- 이벤트 이름은 영문, 숫자, 특수문자 -(하이픈), _(언더라인)만 가능합니다. 첫 글자는 영문, 숫자만 허용합니다.
2. 필터 선택
필터를 선택할 수 있습니다.
- 필터는 특정 객체에 대해서 이벤트 필터링할 때 사용할 조건을 정규 표현식으로 입력합니다.
- 조건은 객체 경로에 적용되며, 필터를 입력하지 않으면 모든 객체에 대해 이벤트가 발생합니다.
3. 이벤트 유형 선택
4. 대상 선택
- 이벤트 알람이 전달될 목적지를 선택합니다. 대상은 현재 Cloud Functions를 지원하고있습니다.
5. 트리거 선택
5-1. 트리거를 선택합니다.
5-2. 트리거가 없다면 [트리거 생성] 버튼을 클릭하여 생성합니다.
- Object Storage Trigger 사용 가이드를 참고하여 진행합니다.
6. 이벤트 생성 완료
[생성] 버튼을 클릭하여 이벤트를 생성합니다.
이벤트 종류와 내용
Object Storage는 다음과 같은 이벤트를 전달할 수 있습니다.
이벤트 종류 | 내용 |
---|---|
객체 생성 전체 (ObjectCreated:*) 생성 (ObjectCreated:PUT) 생성 (ObjectCreated:POST) 복사 (ObjectCreated:COPY) 멀티 파트 업로드 완료 (ObjectCreated:COMPLETE_UPLOAD) | 객체 생성에 대한 이벤트 멀티 파트 업로드 완료는 CompleteMultipartUpload요청에서 발생함. 실패한 요청은 이벤트 발생하지 않음. |
객체 삭제 (ObjectRemoved:DELETE) | 객체 삭제에 대한 이벤트 DeleteMultipleObjects 요청은 각 객체에 대해 따로 이벤트가 발생함. 실패한 요청은 이벤트가 발생하지 않음. |
이벤트 알람 메시지
Object Storage에서 보내는 알람 메세지 구조는 다음과 같습니다.
{
"container_name": "버킷 이름",
"event_name": "이벤트 이름",
"event_type": "이벤트 종류",
"event_version": "1.0",
"object_length": "객체 크기",
"object_name": "객체 키",
"region": "리전 이름",
"remote_address": "요청 IP",
"remote_user_sha256": "사용자 Access Key의 SHA256 hash hex값",
"remote_user_type": "사용자 종류",
"request_method": "요청 Method",
"request_type": "요청 종류",
"timestamp_finish": "요청 처리가 끝난 시간, 유닉스 시간, 밀리초",
"timestamp_start": "요청 처리를 시작한 시간, 유닉스 시간, 밀리초"
}
remote_user_type이 user가 아닌 경우 remote_address와 remote_user_sha256은 null이 들어갑니다.
알람 메세지 예시는 다음과 같습니다.
{
"container_name": "mybucket",
"event_name": "testevent",
"event_type": "ObjectCreated:PUT",
"event_version": "1.0",
"object_length": "1000",
"object_name": "test.png",
"region": "KR",
"remote_address": "127.0.0.1",
"remote_user_sha256": "ef5dd4b34d9de8d98182a9be416576efbd162b9a915d8b302ba8c3fa0c81b764",
"remote_user_type": "user",
"request_method": "PUT",
"request_type": "REST.PUT.OBJECT",
"timestamp_finish": "1609426801000",
"timestamp_start": "1609426800000"
}
- Cloud Functions와 연동시 트리거에 연결된 액션이 Object Storage 버킷을 사용하고 있는지 확인해야 합니다.
- 동일한 버킷을 사용할 경우 재귀 호출이 생성될 위험이 증가하여 Cloud Functions 사용량 증가 및 비용 증가를 발생시킬 수 있습니다.
- 입력과 출력을 동일한 버킷에 사용하는 것은 권장되지 않으며, 이 구성으로 인해 재귀 호출, Cloud Functions 사용량 증가 및 비용 증가가 발생할 수 있습니다.