Amazon S3는 Amazon Simple Storage Service의 약자로 데이터를 객체 단위로 관리하는 오브젝트 스토리지 서비스이다.
가끔 프로젝트를 진행하다보면 이미지나 동영상 같은 파일들을 서버에 업로드하는 기능이 필요할 때가 있다.
이럴 때 S3를 사용하여 스토리지에 보관해두면 쉼고 간단하게 파일들을 업로드하여 관리할 수 있다.
s3는 이외에도 웹 서버 역할을 수행하기도 하고 쿼리를 사용하여 집계 기능도 수행할 수 있다.
s3 용어
- 버킷 : 객체를 저장하는 공간
- 객체 : 이미지나 동영상 같은 파일
- 버킷명 : 유일한 이름
- 객체 키 : 객체 식별자. 모든 객체가 하나씩 가지고 있음
이제 s3를 사용하여 버킷을 생성 후 파일을 업로드해보려 한다.
aws에서는 가입 후 1년 동안 다음과 같은 조건하에 s3를 무료로 사용할 수 있다.
<프리티어 무료 계정 생성>
https://growth-coder.tistory.com/113
AWS S3 버킷 생성
1. aws에서 s3를 검색 후 우측에 있는 버킷 생성을 클릭한다.
2. 버킷 이름과 리전을 정한다. 버킷 이름과 리전은 변경할 수 없다.
버킷 이름은 유일해야 하며(다른 사용자가 쓰고 있는 이름은 사용 불가)
아래 링크를 참고하여 유효한 버킷 이름을 정한다.
https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html
3. 객체 소유권에서 ACL을 비활성화하여 버킷의 소유자가 버킷의 모든 객체를 소유하고 관리한다.
4. 퍼블릭 액세스에 관한 설정을 한다. 예외 케이스 (버킷 안의 객체들을 외부에 공개해야하는 케이스 등등..)가 아닌 이상 퍼블릭 액세스는 차단하는게 좋다.
지금은 버킷 생성 후 업로드 및 삭제에 관한 테스트를 하는 중이므로 모든 퍼블릭 액세스 차단을 해제한다.
5. 버전 관리가 필요하면 활성화하지만 지금은 테스트이므로 비활성화를 선택한다.
6. 태그를 추가하면 스토리지를 분류하는데 도움이 된다. 지금은 테스트이므 태그를 사용하지 않는다.
7. 암호화에 관련된 설정을 한다. 기본인 SSE-S3을 선택한다. SSE-KMS를 선택하면 암호화 비용을 줄일 수 있다고 한다.
이제 버킷을 생성하면 다음과 같이 버킷에 대한 정보를 확인할 수 있다.
이제 버킷 정책을 설정할 차례이다.
버킷에서 "권한"에 들어간다.
편집을 누른다.
정책 생성기를 사용하면 버킷 정책을 쉽게 만들수 있다.
정책 타입을 S3 Bucket Policy로 선택한다.
- Effect : 적용 여부.
- Principal : 권한을 부여할 계정. (*을 입력하면 모두에게 부여)
- Actions : 부여할 권한. (GetObject : 읽기, PutObject : 쓰기)
- 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
'공부 > AWS' 카테고리의 다른 글
[AWS][Lambda] Lambda 개념 및 Lambda 함수 생성 방법 (1) (0) | 2023.04.02 |
---|---|
[AWS][Error] S3 버킷 정책에 DeleteObject를 허용해도 403 Access Denied 오류 (0) | 2023.02.26 |
[AWS] 스프링에서 S3 버킷에 이미지 업로드하기 (0) | 2023.02.24 |
[AWS] Identity Center를 활용한 관리자 IAM 사용자 생성 (관리자 IAM 사용자를 사용하는 이유) (2) | 2023.02.22 |
[AWS] AWS 프리티어 무료 계정 생성하기 (0) | 2023.02.19 |
댓글