본문 바로가기
공부/AWS

[AWS] Amazon S3 개념 및 파일 업로드 해보기

by 웅대 2023. 2. 20.
728x90
반응형

Amazon S3는 Amazon Simple Storage Service의 약자로 데이터를 객체 단위로 관리하는 오브젝트 스토리지 서비스이다.

 

가끔 프로젝트를 진행하다보면 이미지나 동영상 같은 파일들을 서버에 업로드하는 기능이 필요할 때가 있다.

 

이럴 때 S3를 사용하여 스토리지에 보관해두면 쉼고 간단하게 파일들을 업로드하여 관리할 수 있다.

 

s3는 이외에도 웹 서버 역할을 수행하기도 하고 쿼리를 사용하여 집계 기능도 수행할 수 있다.

 

s3 용어

 

  1. 버킷 : 객체를 저장하는 공간
  2. 객체 : 이미지나 동영상 같은 파일
  3. 버킷명 : 유일한 이름
  4. 객체 키 : 객체 식별자. 모든 객체가 하나씩 가지고 있음

 

 

이제 s3를 사용하여 버킷을 생성 후 파일을 업로드해보려 한다.

 

aws에서는 가입 후 1년 동안 다음과 같은 조건하에 s3를 무료로 사용할 수 있다.

 

<프리티어 무료 계정 생성>

https://growth-coder.tistory.com/113

 

[AWS] AWS 프리티어 무료 계정 생성하기

AWS는 계정을 생성하면 1년 동안 특정 서비스들을 무료로 사용할 수 있는 특전을 제공한다. https://aws.amazon.com/ko/ 클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services aws.amazon.com 위 사이트

growth-coder.tistory.com

AWS S3 버킷 생성

 

 

 

1. aws에서 s3를 검색 후 우측에 있는 버킷 생성을 클릭한다.

2. 버킷 이름과 리전을 정한다. 버킷 이름과 리전은 변경할 수 없다.

버킷 이름은 유일해야 하며(다른 사용자가 쓰고 있는 이름은 사용 불가)

아래 링크를 참고하여 유효한 버킷 이름을 정한다.

https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html

 

Bucket naming rules - Amazon Simple Storage Service

Before March 1, 2018, buckets created in the US East (N. Virginia) Region could have names that were up to 255 characters long and included uppercase letters and underscores. Beginning March 1, 2018, new buckets in US East (N. Virginia) must conform to the

docs.aws.amazon.com

https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html

 

 

 

3. 객체 소유권에서 ACL을 비활성화하여 버킷의 소유자가 버킷의 모든 객체를 소유하고 관리한다.

4. 퍼블릭 액세스에 관한 설정을 한다. 예외 케이스 (버킷 안의 객체들을 외부에 공개해야하는 케이스 등등..)가 아닌 이상 퍼블릭 액세스는 차단하는게 좋다.

 

지금은 버킷 생성 후 업로드 및 삭제에 관한 테스트를 하는 중이므로 모든 퍼블릭 액세스 차단을 해제한다.

5. 버전 관리가 필요하면 활성화하지만 지금은 테스트이므로 비활성화를 선택한다.

6. 태그를 추가하면 스토리지를 분류하는데 도움이 된다. 지금은 테스트이므 태그를 사용하지 않는다.

7. 암호화에 관련된 설정을 한다. 기본인 SSE-S3을 선택한다. SSE-KMS를 선택하면 암호화 비용을 줄일 수 있다고 한다.

 

이제 버킷을 생성하면 다음과 같이 버킷에 대한 정보를 확인할 수 있다.

이제 버킷 정책을 설정할 차례이다.

버킷에서 "권한"에 들어간다.

 

편집을 누른다.

 

정책 생성기를 사용하면 버킷 정책을 쉽게 만들수 있다.

 

정책 타입을 S3 Bucket Policy로 선택한다.

 

  1. Effect : 적용 여부.
  2. Principal : 권한을 부여할 계정. (*을 입력하면 모두에게 부여)
  3. Actions : 부여할 권한. (GetObject : 읽기, PutObject : 쓰기)
  4. ARN : ARN 입력

참고로 ARN을 입력할 때는 ARN 뒤에 /*을 붙여야한다.

 

붙이지 않으면 다음과 같은 오류가 뜬다.

 

Add Statement를 누르면 statement가 추가되고 GeneratePolicy를 누르면 정책이 생성된다.

생성된 JSON 파일을 붙여넣는다.

변경 사항을 저장한다.

 

이제 설정을 끝낸 버킷에 접속하면 아래와 같이 객체들을 확인할 수 있고 파일들을 업로드할 수 있다.

 

 

<이미지 파일을 업로드한 모습>

원하는 파일을 선택 후 다운로드를 누르면 다운로드를 할 수 있다.

객체를 누르면 객체 URL이 존재하는데 이 URL로 접속하면 이미지를 확인할 수 있다.

 

지금까지 S3 콘솔을 사용하여 스토리지에 파일을 업로드하는 방법에 대해 알아보았다.

 

그러나 실제로 사용할 때는 S3 콘솔을 통해 스토리지 안의 파일들을 관리하는 경우는 별로 없을 것이다.

 

다음 포스팅에서는 스프링 프레임워크의 컨트롤러에서 이미지 파일들을 받아 S3에 저장하는 과정을 알아보려한다.

 

참고

https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html

 

Creating a bucket - Amazon Simple Storage Service

Creating a bucket To upload your data to Amazon S3, you must first create an Amazon S3 bucket in one of the AWS Regions. When you create a bucket, you must choose a bucket name and Region. You can optionally choose other storage management options for the

docs.aws.amazon.com

 

728x90
반응형

댓글