본문 바로가기
AWS

[AWS] Amazon S3 버킷 생성하기

by nimij 2022. 3. 28.

오늘은 Amazon S3에 대해 알아보는 시간을 가져볼 것입니다. 뭔가 옛날 게임 만들었을 때 닉네임 앞뒤에 붙였던 S2와 비슷한 느낌이었어서 이름 자체에는 친숙함이 느껴졌습니다. Amazon S3의 정식 풀네임은 Amazon Simple Storage Service입니다. 풀네임에도 알 수 있듯이 Amazon S3는 Amazon에서 제공하는 객체 스토리지 서비스입니다. Amazon S3를 사용하여 데이터 레이크, 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅 데이터 분석 등 다양한 사용 사례에서 원하는 양의 데이터를 저장하고 보호할 수 있습니다. Amazon S3는 특정 비즈니스, 조직 및 규정 준수 요구 사항에 맞게 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능을 제공하고 있습니다.

 

S3의 작동방식은  데이터를 버킷 내의 객체로 저장하는 객체 스토리지 서비스 방식입니다. 여기서 객체는 해당 파일을 설명하는 모든 메타데이터입니다. 버킷은 객체에 대한 컨테이너입니다.

 

공식 홈페이지 설명 참조(링크)

 

AWS의 설명에 따르면 S3의 기능은 크게 7가지로 나뉘어져 있습니다.

  • 다양한 스토리지 클래스 제공
  • 비용관리 , 규정 요구 사항 충족, 대기 시간 단축, 규정 준수 요구 사항에 맞게 여러 개의 개별 데이터 복제본 저장을 수행할 수 있는 스토리 관리 기능 포함
  • 버킷 및 객체에 대한 엑세스 감사 및 관리 기능을 제공
  • 데이터 처리
  • 스토리지 로깅 및 모니터링
  • 분석 및 인사이트
  • 강력한 일관성(AWS 리전의 Amazon S3 버킷에 있는 객체의 PUT 및 DELETE 요청에 대해 강력한 쓰기 후 읽기(read-after-write) 일관성을 제공)

 

이번에는 실제로 AWS에 로그인 하여 Amazon S3 생성을 해보겠습니다.

AWS에 들어가서 [서비스 - 스토리지 - S3] 순으로 들어가면 됩니다.

 

그리고 왼쪽 버킷 탭을 눌러서 우측의 버킷 만들기를 클릭합니다.

 

버킷 이름과 리전을 선택합니다.

버킷 이름은 고유값으로 설정해야합니다. 자세한 건 '버킷 이름 지정 규칙 참조'를 클릭해보시면 알 수 있습니다.

 

S3 퍼블릭 엑세스 권한을 설정합니다.

※ 외부에 S3을 공개할 경우 모든 퍼블릭 액세스 차단을 체크를 해제하고, 공개하지 않는다면 체크를 해주시면 됩니다.

퍼블릭 액세스를 차단할경우, IAM에서 AWSAccessKeyId, AWSSecretKey를 발급받고 키를 이용해서 S3 객체에 접근할 수 있습니다.

저는 퍼블릭 엑세스를 위해 체크를 해제합니다.

 

버킷 버전 관리 및 암호화는 변경하지 않고 버킷을 생성하도록 합니다.

 

 

위 과정이 끝나면 버킷은 생성됩니다.  그렇지만 '객체를 퍼블릭으로 설정할 수 있음' 상태이기 때문에 버킷 정책을 절 정해주어야 외부 설정이 가능합니다. 

우선 아래의 사이트로 가서 표시된 부분을 수정합니다.

http://awspolicygen.s3.amazonaws.com/policygen.html

 

AWS Policy Generator

Click below to edit. To save the policy, copy the text below to a text editor. Changes made below will not be reflected in the policy generator tool.

awspolicygen.s3.amazonaws.com

  • Select Type of Policy: S3 Buckey Policy
  • Effect: Allow
  • Principal: *
  • Actions: GetObject (조회만 가능하도록 getObject 권한만 체크)
  • Amazon Resource Name (ARN)arn:aws:s3:::{버킷이름}/*

그리고 Add Statement 버튼을 클릭해주면 됩니다.

 

그 후 Gernerate Policy 버튼을 클릭합니다.

여기서 생성된 json 값을 복사합니다.

 

그러므로 옆의 버킷이름을 클릭 후 권한 탭을 클릭하고 아래로 내리면 버캣 정책 부분을 찾을 수 있습니다.

편집을 클릭합니다.

 

복사한 json을 집어넣습니다. 그 후 변경 사항 저장합니다.

 

엑세스에 다음과 같이 퍼블릭 표시가 나타났다면 외부에서 S3 접근이 가능한 상태입니다.

위에서 정책을 getObject(조회) 만 가능하도록 설정했으므로, 현재 S3에 조회만 가능합니다.

 

버킷에 이미지를 등록한 후 객체 Url을 입력하면 정장적으로 입력 가능합니다.

다음 장에는 python으로 이미지 업로드 하는 과정을 알아보도록 하겠습니다.