AWS S3 버킷 생성

라모스·2023년 6월 1일
0
post-thumbnail

AWS S3란?

공식 문서에 따르면, AWS S3(Amazon Simple Storage Service)란 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스라고 한다.

모든 규모와 업종의 고객은 Amazon S3를 사용하여 데이터 레이크, 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅 데이터 분석 등 다양한 사용 사례에서 원하는 양의 데이터를 저장하고 보호할 수 있으며 Amazon S3는 특정 비즈니스, 조직 및 규정 준수 요구 사항에 맞게 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능을 제공한다고 한다.

S3의 장점

  • 많은 사용자가 접속을 해도 이를 감당하기 위해서 시스템적인 작업을 하지 않아도 된다.
  • 저장할 수 있는 파일 수의 제한이 없다.
  • 최소 1바이트에서 최대 5TB의 데이터를 저장하고 서비스 할 수 있다.
  • 파일에 인증을 붙여서 무단으로 엑세스 하지 못하도록 할 수 있다.
  • HTTP와 BitTorrent 프로토콜을 지원한다.
  • REST, SOAP 인터페이스를 제공한다.
  • 데이터를 여러 시설에서 중복으로 저장해 데이터의 손실이 발생할 경우 자동으로 복원한다.
  • 버전관리 기능을 통해서 사용자에 의한 실수도 복원이 가능하다.
  • 정보의 중요도에 따라서 보호 수준을 차등 할 수 있고, 이에 따라서 비용을 절감 할 수 있다. (RSS)

S3 버킷 사용 사례

  • 정적 웹 호스팅 버킷
  • 정적 리소스 파일 서빙용 버킷
  • 원격 파일 저장용 버킷
  • Presigned-URL을 활용한 버킷
  • 민감한 정보 저장용 버킷
  • CI/CD Pipeline 구축

버킷을 직접 만들어보자.

AWS S3를 사용하기 위해선 먼저 버킷을 생성해야 한다.

공식 문서에 따르면, 버킷은 Amazon S3에 저장된 객체에 대한 컨테이너다. 버킷에 저장할 수 있는 객체 수에는 제한이 없다. 또한 계정에 버킷을 최대 100개까지 포함할 수 있다.

차근차근 진행해보자.

버킷 이름을 작성하고 리전을 선택하자. Korean🇰🇷 이기 때문에 서울 리전을 선택해봤다.
// 별다른 이유는 없음. 테스트 용도니까...

해당 버킷의 퍼블릭 액세스를 설정하는 항목인데, 실무에선 모든 퍼블릭 액세스를 차단하는 것이 보안을 위해 좋다.

S3에 대한 보안 가이드는 어제(2023년 5월 31일) 진행됐던 우아한형제들 이주호 엔지니어님의 우아한 테크세미나를 참고하는 것이 좋을 것 같다.

버킷의 버전을 관리하는 항목인데 AWS S3 버킷 내에 저장된 모든 객체의 버전을 보존, 검색 및 복원에 대한 기능을 활성화 하는지 선택하는 사항이다. 일단 활성화를 선택한 후 콘솔에서 어떻게 보이는지 확인해보자.

기본 암호화는 default 상태로 두고 객체 잠금은 비활성화를 선택했다.

버킷을 생성하면 다음과 같이 버킷이 생성된다.

테스트 목적으로 이미지 파일을 하나 올려보자.

객체의 세부정보를 확인해보면,

하지만 객체 URL을 통해 업로드한 이미지 파일을 확인해보면 Access Denied 오류가 발생한다.

이는 앞서 버킷을 생성할 때, 모든 퍼블릭 액세스를 차단했기 때문이다. 정책을 편집해야 해당 파일에 접근할 수 있다. 먼저 퍼블릭 액세스를 모두 허용으로 바꾼 뒤 정책을 편집하자.

arn:aws:s3:::{BucketName}/{ObjectName} 형식이니 내가 생성한 버킷에 전체 객체에 대해 ARN을 적용하도록 하자.

객체를 불러오는 action을 지정하고, principal은 전체 허용으로 해보자.

이후 생성하면, 오류가 발생하는데... action에 대해 s3:*로 전체 허용으로 해보자. (이 방법은 좋지않음;)

정상적으로 이미지 파일이 보인다.

References

profile
Step by step goes a long way.

0개의 댓글