0. AWS S3๋?
AWS S3(Simple Storage Service)๋ ํ์ผ์๋ฒ ์ญํ ์ ํ๋ ์ธํฐ๋ท ์คํ ๋ฆฌ์ง ์๋น์ค๋ก, ์ฉ๋์ ๊ด๊ณ์์ด ํ์ผ์ ์ ์ฅํ๊ณ ์น์์ ์ ๊ทผํ ์ ์๋ค
- ๋ฒํท : ํ์ผ(๊ฐ์ฒด)์ ์ ์ฅํ๋ ์์ ๋๋ ํ ๋ฆฌ์ด๊ณ , ์ด๋ฆ์ S3 ๋ฆฌ์ ์์์ ์ ์ผํด์ผ ํ๋ค

- ๊ฐ์ฒด : S3์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด๋ผ๊ณ ํ๋ค
1. AWS S3 ๋ฒํท ์์ฑ

๐ ๋ฐ์ ์ค์ ์ ํด์ฃผ์ง ์์ผ๋ฉด, ์คํ๋ง๋ถํธ ๋ด์ ACLs์๋ฌ๊ฐ ๋จ


2. IAM ์ฌ์ฉ์ ์์ฑ ๋ฐ ๊ถํ ์ถ๊ฐ
S3์ ์ ๊ทผํ๊ธฐ ์ํด์ IAM ์ฌ์ฉ์์๊ฒ ๊ถํ์ ์ค์ผ ํจ
(1) ๊ณ์ → ๊ฒฐ์ ์ ๋ณด์ ๋ํ IAM ์ฌ์ฉ์ ๋ฐ ์ญํ ์ก์ธ์ค → ํ์ฑํ

(2) IAM ์๋น์ค → ์ฌ์ฉ์ → ์ฌ์ฉ์ ์ถ๊ฐ

(3) ๊ถํ ์ค์ -> ์ง์ ์ ์ฑ ์ฐ๊ฒฐ -> AmazonS3FullAccess ์ถ๊ฐ

3. ์ก์ธ์ค ํค ๋ฐ๊ธ
S3 ๊ถํ์ ๊ดํ ๊ทธ๋ฆฌ๊ณ ํ๊ฒฝ๋ณ์์ ๋ฃ์ด์ค secret key์ access key
(1) ์ฌ์ฉ์ → ๋ณด์ ์๊ฒฉ ์ฆ๋ช → ์ก์ธ์ค ํค ๋ง๋ค๊ธฐ

(2) ๋ฐ๊ธ ํ ์ ์ฅ
csvํ์ผ์ ๊ผญ ๋ณธ์ธ ๋ก์ปฌ์ ์ ์ฅ ํด๋์ผ์ธ์โโโ

4. ๋ฒํท ์ ์ฑ ํธ์ง
(1) ๋ฒํท → ๊ถํ → ๋ฒํท ์ ์ฑ → ํธ์ง
(2)๋ฒํท ARN์ ๋ณต์ฌํ๊ณ ์ ์ฑ ์์ฑ๊ธฐ ํด๋ฆญ

- Select Type of Policy : S3 Bucket Policy
- Principal : *
- Action : DeleteObject, GetObject, PutObject
- ARN : ๋ณต์ฌํ ARN + /*
(3) ์ ์ฑ ํธ์ง ํ ์ ์ฅ


5. SpringBoot ์ค์
(1) ์์กด์ฑ ์ถ๊ฐ
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'
๋ณธ์ธ ํ๋ก์ ํธ์ ๋ง๋ ์์กด์ฑ ๋ฒ์ ์ ์ถ๊ฐํ์๋ฉด ๋ฉ๋๋ค
(2) application.yml ์์ฑ

(3) ํ๊ฒฝ ๋ณ์ ์ค์
ํด๋น ์ ๋ณด๋ค์ ymlํ์ผ์๋ ์ฌ๋ฆฌ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ์ง์ ํ๊ฒฝ๋ณ์๋ก ๋ฃ์ด์คฌ์ต๋๋คโโโโโโ

์ฐธ๊ณ ํ ๊ธ
https://jojoldu.tistory.com/300
SpringBoot & AWS S3 ์ฐ๋ํ๊ธฐ
์๋ ํ์ธ์? ์ด๋ฒ ์๊ฐ์ SpringBoot & AWS S3 ์ฐ๋ํ๊ธฐ ์์ ๋ฅผ ์งํํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ชจ๋ ์ฝ๋๋ Github์ ์๊ธฐ ๋๋ฌธ์ ํจ๊ป ๋ณด์๋ฉด ๋ ์ดํดํ๊ธฐ ์ฌ์ฐ์ค ๊ฒ ๊ฐ์ต๋๋ค. (๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ๋ Github์
jojoldu.tistory.com
https://earth-95.tistory.com/117
[SpringBoot] SpringBoot๋ฅผ ์ด์ฉํ AWS S3์ ์ฌ๋ฌ ํ์ผ ์ ๋ก๋ ๋ฐ ์ญ์ ๊ตฌํํ๊ธฐ
๋ค์ด๊ฐ๊ธฐ ์ ์ ์๋๋ AWS API Gateway + AWS lambda + AWS S3 ๋ฐฉ์์ผ๋ก ์ด๋ฏธ์ง ์ ๋ก๋ ๋ฐ ์ญ์ ๋ฅผ ๊ตฌํํ๊ณ ์ ํ์ต๋๋ค. ์ด๋, ์ผ๋ฐ์ ์ผ๋ก javascript๋ python์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๋ณด์๋๋ฐ ํด๋น ์ธ์ด๋ก ๊ตฌํํ
earth-95.tistory.com