Seongwon Lim

[AWS] S3 버킷 생성 및 업로드 예제 본문

AWS

[AWS] S3 버킷 생성 및 업로드 예제

limsw 2022. 5. 10. 13:55
반응형

What is S3?

Amazon S3는 Amazon Simple Storage Service 의 약자로 사용자가 가진 파일을 보관할 수 있도록 도와주는 서비스로 확장성 및 높은 가용성을 보장하며 데이터 레이크, 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅 데이터 분석 등 다양한 사례에서 원하는 양의 데이터를 저장하고 보호할 때 사용되는 서비스이다.

S3 구성 요소

  • Bucket : S3의 최상위 디렉토리이며, 하나의 프로젝트가 하나의 버킷이라고 생각할 수 있다.
    • 버킷 생성 시 버킷의 이름은 유일해야 한다.
  • Folder : 여러 파일을 보관하는 공간이다.
  • Object : 버킷에 저장되는 파일을 의미한다.
    • Object로 지칭하는 이유는 파일 뿐만 아니라 파일에 대한 여러가지 부가 정보들이 저장되기 때문에 이러한 것들을 모두 묶어서 Object라고 부른다.

버킷 생성하기

  • 서비스 → 스토리지 → S3 순서로 이동하여 S3 서비스 페이지로 이동한다.
  • 버킷 만들기 버튼을 클릭한다.

버킷 이름은 S3 내에서 유일해야 한다.

사용자의 S3를 외부에 공개하고 싶은 경우에는 모든 퍼블릭 액세스 차단 체크를 해제한다.

(퍼블릭 액세스를 차단을 해제한 경우에는 IAM의 AccessKey, SecretKey 를 이용해서 접근할 수 있다.)

 

퍼블릭 액세스 차단을 해제한 경우 아래 경고 표시를 체크해야 한다.

버전 관리 & 기본 암호화는 변경하지 않았다. (비활성화 유지)

위와 같이 버킷을 설정 후 버킷 만들기 를 누르면 버킷을 생성할 수 있다.


퍼블릭 활성화

액세스 부분에 보면 객체를 퍼블릭으로 설정할 수 있음 메세지가 있는 것을 확인할 수 있다.

이것은 아직 버킷이 퍼블릭으로 설정되지 않았다는 뜻이며 외부에서 접근할 수 없다는 것을 의미한다.

 

따라서 외부에서 해당 버킷에 접근 가능하도록 하기 위해서는 버킷 정책을 수정해야 한다.

AWS Policy Generator

 

 

위 사이트로 이동하여 AWS 퍼블릭 정책을 생성할 수 있다.

  • Actions : GetObject 만 체크하여 조회 기능만 가능하도록 설정
  • Amazon Resource Name (ARN) : arn:aws:s3:::버킷이름

위와 같이 설정 후 Add Statement 버튼 클릭하면 생성된 정책 정보가 나타난다.

Generate Policy 버튼을 클릭하면 아래와 같은 JSON 구조의 코드가 나타난다.

생성된 JSON 코드를 복사한 뒤 Amazon S3 콘솔로 돌아가 생성한 버킷 이름을 클릭한다.

 

권한 의 하단에 있는 버킷 정책 부분에서 편집을 클릭한다.

 

해당 부분에 복사한 JSON 코드를 붙여 넣고 변경 사항 저장 버튼을 클릭한다.

알 수 없는 오류 발생 시

변경 사항 저장 버튼 클릭 시 위와 같은 오류가 발생하면 코드의 Resource 부분 마지막에 /*를 추가한다.

"Resource" : "arn:aws:s3:::lim-test-bucket/*"

다시 콘솔로 돌아와서 버킷을 확인해보면 액세스 부분이 퍼블릭으로 바뀐 것을 확인할 수 있다.


이미지 업로드 하기

버킷 이름을 클릭하여 위 페이지로 이동 후 업로드 버튼 클릭

업로드 할 파일을 업로드 한 뒤 아래 업로드 버튼을 클릭하여 버킷에 파일 업로드를 완료한다.


업로드가 완료되면 업로드 상태가 화면에 나타난다. 닫기 버튼을 통해서 다시 콘솔로 돌아가면 파일이 업로드 된 것을 확인할 수 있다.

또한, 업로드된 파일을 클릭 후 개체 URL 를 이용하면 외부에서도 해당 객체에 접근할 수 있다.


출처

Comments