1. 사용기에 앞서
정말 사용기랄 것도 없다. 아무튼 AWS 프리 티어를 통해 S3 스토리지를 이용해보았다.
"5GB Amazon S3 표준 스토리지, Get 요청 20,000건, Put 요청 2,000건"
2. 특징
- 생성할 Bucket 이름은 전 세계적으로 unique해야 한다.
- Bucket이 생성되면 파일 탐색기 (같은..) 화면이 뜬다.
- 하위 폴더를 만들 수 있고, 루트 경로에 바로 업로드를 할 수도 있다.
- 모든 파일은 각각 http 주소를 갖는다. 다만 기본적으로는 외부에서 접근할 수 없으므로 권한을 부여해야 한다. (예: to everyone, read)
- 파일은 이동 가능하다. (예: cut, paste)
- Bucket 사용 제한 : AWS 계정 당 최대 100개
3. 프리티어 모니터링
프리티어 사용량 모니터링 방법은 다음 링크를 확인해 보시오.
https://aws.amazon.com/ko/blogs/korea/new-monitor-your-aws-free-tier-usage/
다음은 대금 및 비용 관리 대시보드를 통해 모니터링한 화면이다.
4. S3 RRS란?
"Reduced Redundancy Storage(RRS)는 중요하지 않고 재생성 가능한 데이터를 Amazon S3 스탠다드 스토리지보다 낮은 수준의 중복성으로 저장할 수 있는 Amazon S3의 스토리지 옵션입니다."
5. 응용
5-1. 특정 사용자에게만 특정 컨텐츠를 보여주고자 한다면?
Pre-signed object URL 기법을 사용하면 된다. 다음 링크를 참고하라.
AWS SDK for Java를 사용하여 미리 서명된 객체 URL 생성
샘플 코드는 다음과 같다.
AmazonS3 s3client = new AmazonS3Client(new ProfileCredentialsProvider()); java.util.Date expiration = new java.util.Date(); long msec = expiration.getTime(); msec += 1000 * 60 * 60; // 1 hour. expiration.setTime(msec); GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, objectKey); generatePresignedUrlRequest.setMethod(HttpMethod.GET); // Default. generatePresignedUrlRequest.setExpiration(expiration); URL s = s3client.generatePresignedUrl(generatePresignedUrlRequest);
5-2. RRS
이미지 섬네일 저장 등에 활용 가능하다.