1. 사용기에 앞서

정말 사용기랄 것도 없다. 아무튼 AWS 프리 티어를 통해 S3 스토리지를 이용해보았다.

"5GB Amazon S3 표준 스토리지, Get 요청 20,000건, Put 요청 2,000건"


2. 특징

  1. 생성할 Bucket 이름은 전 세계적으로 unique해야 한다.
  2. Bucket이 생성되면 파일 탐색기 (같은..) 화면이 뜬다.
  3. 하위 폴더를 만들 수 있고, 루트 경로에 바로 업로드를 할 수도 있다.
  4. 모든 파일은 각각 http 주소를 갖는다. 다만 기본적으로는 외부에서 접근할 수 없으므로 권한을 부여해야 한다. (예: to everyone, read)
  5. 파일은 이동 가능하다. (예: cut, paste)
  6. 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

이미지 섬네일 저장 등에 활용 가능하다.