🔎 S3 ?
AWS(Amazon Web Service)에서 제공하는 인터넷 스토리지 서비스입니다.
S3(Simple Storage Service) 를 뜻합니다.
이미지 저장, 활용등 백엔드에서 수행할 때 로컬에서 저장하고 활용할 수 있지만, AWS S3를 활용해서 저장하는 것
🤔 왜 S3를 사용할 까?
🗺️ 사용 방법
s3 버킷 만들기
객체(Object) ? 버킷(bucket)?
객체 - 파일, 파일 정보로 구성된 저장단위 -> 그냥 파일
버킷 - 파일 정보 저장, 관리하는 컨테이너 -> 파일관리 시스템
버킷 이름 + region 선택
public access 설정 -> 모두 해제(그래야 업로드한 사진 확인가능)
버킷 버전관리 + 기본 암호화 설정
버킷 정책 편집
권한 -> 버킷정책 -> 편집 -> 버킷정책 -> 버킷 ARN 복사 후 정책 생성기 클릭
정책 설정
Policy -> S3 Bucket Policy
Principal ->
Actions -> All Actions 클릭
Amazon Resource name : 복사한 ARN + "/ *"
Add Statement 클릭
Generate Policy 클릭
Policy JSON Document를 복사후 닫기
복사한 Json을 붙여넣음
변경사항 저장
이미지 업로드 테스트
객체로 이동 -> 업로드 해서 이미지 업로드 -> 업로드 된거 클릭 -> 객체 url 클릭 -> 정상적으로 사진이 보일겁니다
만약 안보인다? public access 차단 해제했는지 확인하러 ㄱㄱ
해제하는 방법 : 퍼블릭 액세스 차단 수정
권한 -> 퍼블릭 액세스 차단 -> 편집 -> 체크 모두 해제 -> 변경사항 저장
CORS 권한설정
권한 탭 클릭 -> CORs에서
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"DELETE"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [
"x-amz-server-side-encryption",
"x-amz-request-id",
"x-amz-id-2"
],
"MaxAgeSeconds": 3000
}
]
ctrl+v하면?
이미지 업로드 위한 버켓 + 권한설정 끝!!
S3에 접근 하려면 IAM 생성하고, 접근 권한을 부여한 다음, 액세스 key, 비밀 액세스 Key로 접근해야 한다.
aws 콘솔 검색창에 IAM 검색 -> 액세스 관리 -> 사용자
사용자 이름 입력 -> 다음 클릭 -> 직접 권한 설정 클릭 -> 검색창에서 s3 입력 후 선택 -> 사용자 생성
⚠️ 키 생성이 완료되면 공개 key와 비밀 key를 확인할 수 있는데, 이때만 확인 할 수 있어서 무조건 .csv파일 저장하기
스프링부트 코드와 함께 s3에 이미지 올리려면 아래 velog로 가주세요 🫰
s3 이미지 실습하는 velog로 이동하기
감사합니다.