🍏 M1 맥북을 기준으로 작성하였습니다.🍎
S3는 Simple Storage Service의 약자로, AWS에서 제공하는 인터넷 스토리지 서비스이다. 주로 이미지나 동영상을 저장하는 파일 서버로 사용된다.
객체
- S3에 저장된 데이터 하나 하나를 객체라고 한다. 하나 하나의 파일이라고 생각하면 된다.버킷
- 객체가 파일이라면, 버킷은 연관된 객체들을 그룹핑한 최상위 디렉토리라고 할 수 있다. 버킷 단위로 지역을 지정할 수 있고, 버킷에 포함된 모든 객체에 대해서 일괄적으로 인증과 접속 제한을 걸 수 있다.S3도 EC2나 RDS 처럼 일정 범위 내에서 무료로 사용 가능하다.
S3의 프리티어 조건은 아래와 같다.
S3에 대해 간단하게 알아보았으니 S3 버킷을 직접 만들고 Spring boot 프로젝트에 적용해보자.
먼저 버킷 만들기 버튼을 클릭한다.
버킷 이름을 설정하고, AWS 리전을 서울로 설정해준다.
기본적으로는 모든 퍼블릭 액세스 차단
체크박스가 활성화되어 있는데, 사진과 같이 체크박스를 해제해준다.
퍼블릭 액세스 차단을 모두 해제하면, 직접 S3에 접근할 수 있는 URL을 입력하여 이미지가 정상적으로 업로드될 수 있도록 할 수 있다.
필요에 따라 버킷 버전 관리나 기본 암호화도 활성화 해준다.
버킷 생성이 완료되었다 😄
위에서 생성한 버킷의 이름을 클릭하고, 권한
탭으로 들어간다.
스크롤을 내리면 버킷 정책을 볼 수 있다. 편집 버튼을 눌러 버킷 정책을 추가해주자.
정책 생성기를 클릭하자.
초록색 박스 친 것처럼 설정을 해준다.
GetObject
를 선택해준다. (필요에 따라 PutObject, DeleteObject 등을 추가해준다.)/*
을 붙인다.그 다음 Add Statement 버튼을 누르고, Generate Policy 버튼을 누른다.
해당 창에 나온 JSON 코드를 복사해준다.
그 다음 정책 칸에 붙여넣기를 하고, 변경 사항을 저장한다.
이렇게 하면 버킷 생성이 완료되었다!
인 줄 알았는데 The bucket does not allow ACLs
오류가 발생하였다.
이 글을 참고하여 권한 탭 > 객체 소유권에서 ACL 활성화됨
으로 설정을 바꿔주었다.
파일을 직접 업로드하여 잘 만들었는지 확인해보자.
업로드와 링크를 접속했을 때 사진도 잘 뜨는 것을 알아볼 수 있다.