AWS S3 생성 및 설정

김래영·2022년 5월 6일
0

Backend

목록 보기
1/7
post-thumbnail

사이드 프로젝트를 진행하면서 이미지 파일 관리를 위해 AWS S3를 사용하면서 알게 된 정보를 정리해 보았다.

S3(Simple Storage Service)란?

쉽게 말해 AWS(Amazon Web Service)에서 제공하는 클라우드 파일 저장소이다.

S3를 사용하는 이유?

서버(EC2, ELB)만을 사용해서 파일을 저장을 하게 되면 성능 및 여러 다른 문제들이 생길 수 있는데 S3 파일 저장소를 별도로 따로 두어 관리하면 서버에 의존하지 않아 나중에 확장, 축소를 하기도 쉽고 DB 관리하는 것에도 속도를 유지하는 상태에서 저장소가 무제한이다.

S3는 AWS에서 스스로 서버를 증설하고 성능을 관리하고 보안 및 안전성 등 비용 측면에서도 장점이 많다.

아래와 같은 그림으로 이미지를 관리하게 된다.

AWS S3 버킷 생성

버킷은 S3에 저장되는 데이터 컨테이너다.

  • aws 콘솔 로그인 후 검색창에 s3를 검색한다.

  • 버킷 만들기를 클릭한다.

  • 버킷 이름을 적고 리전은 서울을 선택한다.

  • 프로젝트에서 외부에 공개할 이미지이기 때문에 모든 퍼블릭 액세스 차단 체크박스를 풀어준다. (만약 공개되면 안 되는 파일이라면 체크!!)

  • 이렇게 버킷을 생성하고 버킷에 들어오면 업로드를 통해 일반 구글 클라우드처럼 파일을 저장할 수 있다.

  • 모든 퍼블릭 액세스 차단이 비활성화이지만

  • 이미지를 업로드 후 url을 확인이면 조회가 되지 않는다.

AWS S3 버킷 정책

  • 이를 해결하기 위해 버킷 정책 편집을 클릭한다

  • 정책 생성기 클릭

  • 이미지 조회만 퍼블릭으로 설정할 거기 때문에 GetObject만 선택한다.

  • 버킷 정책 편집에 ARN을 복사한다.

  • 버킷(ARN)에 images 폴더에 모든 파일만 퍼블릭으로 설정한다.
    - 위에 복사한 <YOUR ARN>을 붙여 넣고 /images/*를 추가한다.
    - ex)<YOUR ARN>/images/* 입력

-Add Statement, Generate Policy를 클릭한다

  • 아래와 같은 화면이 나오는데 전체를 복사한다.

  • 복사한 json 문서를 아까 버킷 정책 편집 부분에 붙여넣기 후 저장한다.

  • 버킷에 폴더 만들기images폴더를 만들면 버킷/images 폴더 안에 업로드된 파일들은 퍼블릭으로 조회할 수 있다.

이미지 저장 또는 삭제는 백엔드를 거쳐서 진행되기 때문에 실수를 방지하기 위해 파일 저장 및 삭제를 할 때 권한을 추가로 설정한다.

AWS IAM 정책

  • 사용자 정책을 만들기 위해 콘솔 검색창에 IAM을 검색한다.

  • IAM > 정책 > 정책 생성에서 서비스는 S3를 선택 후 이미지 생성 및 삭제 부분에만 권한을 추가할 거라 DeleteObject, PutObject를 선택한다.

  • 리소스에서 특정을 선택 후 아까 만들어둔 S3 ARN을 추가한다.

  • 계속 다음으로 진행 후 정책 이름을 적고 정책을 생성한다. aws에 기본 정책들이 많아 정책을 찾기 쉽게 예시처럼 작성했다.
    - ex) <s3 버킷 이름>-s3-management

  • IAM > 사용자 > 사용자 추가에서 사용자 이름을 추가하고 프로그래밍 방식을 체크 후 다음으로 넘어간다.

  • 권한 설정에서 기존 정책 연결을 선택 후 이전에 만든(<s3 버킷 이름>-s3-management) 정책을 선택 후 다음으로 넘긴 후 사용자 만들기를 한다.

  • 사용자가 만들어지면 액세스 키 ID비밀 액세스 키를 확인할 수 있다.
    액세스 키 ID비밀 액세스 키를 사용하여 이미지 생성 및 삭제에 권한을 준다.

profile
개발 노트

0개의 댓글