Simple Storage Service
- 목표
🔥 AWS 홈페이지에서 S3를 설정하고 SpringBoot에 연동해 보자!!
- 목차
- IAM 생성 및 설정
- 엑세스 키 발급
- S3 Bucket 생성
- SpringBoot에 S3 연동하기
[ IAM 생성 및 설정 ]
- 검색 - IAM
- 엑세스 관리 / 사용자 / "사용자 생성" 버튼 클릭
- 직접 정책 연결
- S3FullAccess 클릭 후 다음
- 사용자 이름 및 선택한 권한 확인
- 사용자 생성
- IAM 사용자 생성 완료
[ S3 엑세스 키 발급 ]
- 엑세스 키 발급 이유
- S3 버킷에 접근할 때 권한을 인증하기 위해
- Spring Application에서 S3의 API를 호출할 때 엑세스 키와 시크릿 키를 사용하여, AWS 계정 소유자임을 인증
- 설명은 해 되고 안 해도 된다
- 엑세스 키 생성 완료
- "엑세스 키, 비밀 엑세스 키"는 개인적으로 보관하거나,
- ".csv파일 다운로드"를 통하여 보관하도록 하자
[ S3 Bucket 생성 ]
- 검색 - S3
- "버킷 만들기" 버튼 클릭
- 버킷 이름 생성
- 객체 소유권
- 로그인한 역할에 따라서 버킷의 객체의 소유권 결정
- AWS에서는 모든 퍼블릭 액세스 차단을 활성화하도록 권장
- 퍼블릭 DNS인한 접근 허용
- ex) 외부에 DNS가 있어도 차단 정책으로 인해 이미지 파일이 보이지 않게 된다
- 이 외의 다른 설정들은 읽어보고 "버킷 만들기" 버튼 클릭
- 버킷 생성 완료
- 버킷에 업로드된 이미지가 없는 것을 볼 수 있다
[ SpringBoot에 S3 연동하기 ]
build.gradle
- S3 의존성 추가
implementation platform("io.awspring.cloud:spring-cloud-aws-dependencies:3.2.0")
implementation 'io.awspring.cloud:spring-cloud-aws-starter-s3'
application.yml
- AWS / S3 관련 설정 추가
- 발급받은 Access Key, Secret access Key 입력
- S3에서 설정한 버킷 이름 입력
- path에서는 ' / '제거
spring:
application:
name: s3_test
cloud:
aws:
credentials:
access-key: ${ACCESS_KEY}
secret-key: ${SECRET_ACCESS_KEY}
region:
static: ap-northeast-2 # Asia Pacific (Seoul)
datasource:
url: jdbc:mysql://localhost:3306/S3-test
username: ${MYSQL_ID}
password: ${MYSQL_PASSWORD}
driver-class-name: com.mysql.cj.jdbc.Driver
s3:
bucket-name: bucket-pra
path: images
이로서 AWS S3에서 발급한 정보들을 SpringBoot에 적용시켜 보았다.
다음번에는 업로드 및 다운로드를 구현해 보고,
추가로 더 나아가서
1. 업로드 시 이미지 사이즈 제한하기
2.API 응답 속도 향상시키기
를 실습해 보도록 하자.
읽어주셔서 감사합니다 😊
- S3 이미지 업로드 및 다운로드
'해피 코딩 > AWS' 카테고리의 다른 글
S3 이미지 사이즈 제한하기, API 응답 속도 향상시키기 (0) | 2024.10.07 |
---|---|
S3 이미지 업로드 및 다운로드 (1) | 2024.10.04 |