11C. S3 ์ธ๋ถ ์ค์ ํ๊ธฐ
11C. S3 ์ธ๋ถ ์ค์ ํ๊ธฐ ๊ด๋ จ
์ด์ S3์ ๋ค์ํ ๊ธฐ๋ฅ์ ํ์ฉํด๋ณด๊ฒ ์ต๋๋ค. S3๋ ๋ฒํท๊ณผ ๊ฐ์ฒด๋ฅผ ์ด๋ป๊ฒ ์ค์ ํ๋๋์ ๋ฐ๋ผ ๊ธฐ๋ฅ์ด ๋ฌ๋ผ์ง๋๋ค. ๊ถํ ์ค์ ์ ํ์ผ์ ์ ์ฒด ๊ณต๊ฐํ๊ฑฐ๋ ํน์ ์ฌ์ฉ์์๊ฒ๋ง ๊ณต๊ฐํ๊ณ ์ถ์ ๋ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฒํท ์ ์ฑ ์ ์ค์ ํ๋ ๊ฒ์ ๋ฐ๋ผ ๋ค์ํ ์ ๊ทผ ์ ์ด๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ๋ฐ๋ผ์ ํน์ ๋๋ฉ์ธ์์๋ง S3 ๊ฐ์ฒด๋ฅผ ๋งํฌํ ์ ์๋๋ก ํ์ฉํ๊ณ ์ถ์ ๋, HTTP Referer(Referrer) ์ ๊ทผ ์ ์ด ์ค์ ์ ํ์ฉํ ์ ์์ต๋๋ค.
๋ฒํท์ ์ ์ ์น ์๋ฒ(์ ์ ์น ํธ์คํ )๋ก ์ฌ์ฉํ๋๋ก ์ค์ ํ๋ฉด ๋ฒํท ์์ฒด๋ก ๊ฐ๋จํ ์น์ฌ์ดํธ ์ด์์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ํ, ๋ฒํท ๋ก๊ทธ ๊ธฐ๋ก ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฒด์ ์คํ ๋ฆฌ์ง ์ต์ , ๋ฒ์ ๋, ์๋ช ์ฃผ๊ธฐLifecycle ๊ด๋ฆฌ๋ ํ ์ ์์ต๋๋ค.
S3 ๊ฐ์ฒด ๊ถํ ๊ด๋ฆฌํ๊ธฐ
S3์ ์ฌ๋ผ๊ฐ ํ์ผ์ ๊ฐ์ฒด๋ผ๊ณ ํํํฉ๋๋ค. S3์์๋ ์ด ๊ฐ์ฒด๋ง๋ค ๊ฐ๊ฐ์ ์ ๊ทผ ๊ถํ์ ์ค์ ํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ์์ ๋ก S3์ ์ฌ๋ฆฐ ํ์ผ์ ์ธํฐ๋ท์ ๊ณต๊ฐํด๋ณด๊ฒ ์ต๋๋ค. S3 ๋ฒํท์ ๊ฐ์ฒด ๋ชฉ๋ก์์ ํ์ผ์ ์ ํํ๊ณ ์์ชฝ์ Properties ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๊ทธ๋ฆผ 11-17๊ณผ ๊ฐ์ด ๊ฐ์ฒด์ ์ธ๋ถ ๋ด์ฉ์ด ํ์๋ฉ๋๋ค(ํ์ผ์ ์ ํํ๊ณ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญํด์ ๋์ค๋ ํ์ ๋ฉ๋ด์๋ Properties๊ฐ ์์ต๋๋ค). ์ฌ๊ธฐ์ Link ๋ถ๋ถ์ ๋ณด๋ฉด ๊ทธ๋ฆผ ํ์ผ์ URL์ด ํ์๋ฉ๋๋ค.
์น ๋ธ๋ผ์ฐ์ ์ ์ ์ฐฝ์ด ์ด๋ฆฌ๊ณ ๋งํฌ์ ๋ด์ฉ์ด ํ์๋ฉ๋๋ค.
S3 ๊ฐ์ฒด ๋ชฉ๋ก์์ ํ์ผ์ ์ ํํ๊ณ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํ์ ๋ฉ๋ด๊ฐ ๋์ต๋๋ค(์์ชฝ Actions ๋ฒํผ์ ํด๋ฆญํด๋ ๊ฐ์ ๋ฉ๋ด๊ฐ ๋์ต๋๋ค).
Make Public์ด ์๋ฃ๋์๋ค๋ ๊ฒ์ด ์ค๋ฅธ์ชฝ์ ํ์๋ฉ๋๋ค.
Link ๋ถ๋ถ์ ๋ณด๋ฉด ๋ ธ๋์ ์๋ฌผ์ ์์ด์ฝ์์ ํ๋์ ์ ํ ์์ด์ฝ์ผ๋ก ๋ฐ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์น ๋ธ๋ผ์ฐ์ ์ S3 ๊ฐ์ฒด์ ๋งํฌ ๋ด์ฉ์ด ์ ํ์๋ฉ๋๋ค.
๋ง์ ํ์ผ์ ํ๋ํ๋ Make Public์ผ๋ก ์ค์ ํ๊ธฐ์๋ ๊ท์ฐฎ์ ๋ฉด์ด ์์ต๋๋ค. ์ด๋ด ๋์๋ ์ฒ์์ ํ์ผ์ ์ฌ๋ฆด ๋ S3 ๋ฒํท์ ํ์ผ ์ฌ๋ฆฌ๊ธฐ ๋ถ๋ถ์์ Set Permissions ํ๋ฉด์ Make everything public์ ์ฒดํฌํ๋ฉด ๋ฉ๋๋ค.
์ด๋ฏธ ํ์ผ์ ์ฌ๋ ธ๋ค๋ฉด S3 ๊ฐ์ฒด ๋ชฉ๋ก์ ํ์ผ์ ์ฌ๋ฌ ๊ฐ ์ ํํ ์ ์์ผ๋ฏ๋ก ๊ณต๊ฐํ๊ณ ์ ํ๋ ํ์ผ์ ๋ชจ๋ ์ ํํ ๋ค Make Public์ผ๋ก ์ค์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค. ๋ฐฉ๊ธ ๊ณต๊ฐํ ๊ทธ๋ฆผ ํ์ผ์ ์ ํํ๊ณ [Properties]
๋ฒํผ์ ํด๋ฆญํ ๋ค [Permissions]
ํญ์ ํด๋ฆญํฉ๋๋ค.
.[Permissions]
ํญ์์ ์๋์ผ๋ก Grantee์ Everyone์ ์ค์ ํ๊ณ Open/Download์ ์ฒดํฌํ ํ [Save]
๋ฒํผ์ ํด๋ฆญํ๋ฉด Make Public์ ์คํํ ๊ฒ๊ณผ ๋๊ฐ์ ํจ๊ณผ๋ฅผ ๊ฐ์ง๋๋ค.
.[Permissions]
ํญ์์ [Add more permission]
๋ฅผ ํด๋ฆญํ์ ๋ ๋ค์ ํญ๋ชฉ์ ๋ณผ ์ ์์ต๋๋ค.
**Grantee
: ๊ถํ์ ๋ถ์ฌํ ๋์์ ๋๋ค. ๋ณดํต ์ฌ๊ธฐ์๋ Everyone๊ณผ ์๊ธฐ ์์ ์ ID(Me๋ ์๊ธฐ์์ ์ ID๋ฅผ ๋ปํฉ๋๋ค.)์ ์ ํํฉ๋๋ค.- ์ถ๊ฐ์ ์ผ๋ก ๊ณ์ ์ ๋ฐ๊ธํ์ฌ ๊ณ์ ๋ณ๋ก ๊ถํ์ ๋ถ์ฌํ๊ณ ์ถ์ ๋๊ฐ ์์ต๋๋ค. '16์ฅ ์ฌ์ฉ์์ ๊ทธ๋ฃน์ ์์ฑํ์ฌ ์ ๊ทผ์ ์ด ๋ฐ ๊ถํ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํ๋ IAM' ๋ถ๋ถ์ ์ฐธ์กฐํ์ฌ ๊ณ์ ์ ์์ฑํ๋ฉด ์ด๊ณณ์์ ์ ํํ ์ ์๊ฒ ๋ฉ๋๋ค. IAM ๊ณ์ ์ Access Key์ Secret Key๋ฅผ ์ด์ฉํ์ฌ API๋ก ์ ๊ทผ ํ ๋ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
- Open/Download: ํ์ผ์ ์ด๊ณ ๋ค์ด๋ก๋ํ ์ ์๋ ๊ถํ์ ๋๋ค.
- View Permissions: ๊ถํ ๋ด์ญ์ ๋ณผ ์ ์๋ ๊ถํ์ ๋๋ค.
- Edit Permissions: ๊ถํ์ ์์ ํ ์ ์๋ ๊ถํ์ ๋๋ค. ๋ณดํต ์ด๋ฐ ๊ฒฝ์ฐ S3 ๊ฐ์ฒด ๋ชฉ๋ก์ ์ด์ฉํ์ง ์๊ณ IAM ๊ณ์ ์ ํตํด API๋ก ์ ๊ทผํ๊ฒ ๋ฉ๋๋ค.
S3 ๋ฒํท ๊ถํ ๊ด๋ฆฌํ๊ธฐ
์ด์ ๋ฒํท์ ๊ถํ์ ์ค์ ํด๋ณด๊ฒ ์ต๋๋ค. ๋ฒํท์ ๊ถํ์ ์ค์ ํ๋ฉด ๋ฒํท ์์ ๋ ๋ชจ๋ ๊ฐ์ฒด์ ์ ์ฉ๋ฉ๋๋ค. ์์ ๋ก ๋ฒํท์ ๋ด์ฉ ์ ์ฒด๋ฅผ ์ธํฐ๋ท์ ๊ณต๊ฐํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค.
'11.2 S3 ๋ฒํท์ ํ์ผ ์ฌ๋ฆฌ๊ธฐ/๋ฐ๊ธฐ'๋ฅผ ์ฐธ์กฐํ์ฌ ๋ฒํท์ ๊ทธ๋ฆผ ํ์ผ์ ํ๋ ๋ ์ฌ๋ฆฝ๋๋ค. ์ ๋ Jellyfish.jpg
๋ผ๋ ๊ทธ๋ฆผ ํ์ผ์ ์๋ก ์ฌ๋ ธ์ต๋๋ค. ์๋ก ์ฌ๋ฆฐ ํ์ผ์ ์ ํํ๊ณ ์์ชฝ์ [Properties]
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. Link ๋ถ๋ถ์ ๋ณด๋ฉด URL์ ์์ด์ฝ์ด ๋
ธ๋์ ์๋ฌผ์ ๋ชจ์์ธ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์์ชฝ์ All Bucket์ ํด๋ฆญํ๋ฉด ๋ชจ๋ ๋ฒํท์ ๋ชฉ๋ก์ด ํ์๋ฉ๋๋ค.
Info
Add more permissions๋ฅผ ํด๋ฆญํ์ ๋ ๋์ค๋ ๋ด์ฉ์ '11.3.1 S3 ๊ฐ์ฒด ๊ถํ ๊ด๋ฆฌํ๊ธฐ'์ ๋์ผํฉ๋๋ค. ๋จ ์ฌ๊ธฐ์๋ ๋ฒํท ์ ์ฒด์ ๋ํด ์ค์ ํ๋ ๊ฒ์ด๋ฏ๋ก ๋ฒํท ์์ ๋ค์ด์๋ ๋ชจ๋ ๊ฐ์ฒด์ ์ ์ฉ๋ฉ๋๋ค.
๋ฒํท ์ ์ฑ ํธ์ง๊ธฐBucket Policy Editor๊ฐ ํ์๋ฉ๋๋ค. ์ด๊ณณ์ JSONJavaScript Object Notation ํํ์ ์ ์ฑ ์ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค. ์ด ์ ์ฑ ์ ๋ค์ ๋ณต์กํ๊ธฐ ๋๋ฌธ์ AWS์์๋ ์ด ์ ์ฑ ์ ์์ฑํด์ฃผ๋ ํ์ด์ง๋ฅผ ์ ๊ณตํ๊ณ ์์ต๋๋ค. ์๋์ชฝ AWS Policy Generator ๋งํฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๊ทธ๋ฆผ 11-19์ฒ๋ผ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์ฐฝ์์ AWS Policy Generator ํ์ด์ง๊ฐ ์ด๋ ธ์ต๋๋ค.
**Select Type of Policy
: SNS Topic Policy, IAM Policy, SQS Queue Policy, S3 Bucket Policy๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ S3 Bucket Policy๋ฅผ ์ ํํฉ๋๋ค.**Effect
: ํ์ฉ(Allow), ๊ฑฐ๋ถ(Deny)๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก Allow๋ฅผ ์ ํํฉ๋๋ค.**Principal
: ๊ถํ์ ์ ์ฉํ ์ฌ์ฉ์์ ๋๋ค. IAM ๊ณ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ์ธํฐ๋ท์ ์ ์ฒด ๊ณต๊ฐํ ๊ฒ์ด๋ฏ๋ก*
์ ์ ๋ ฅํฉ๋๋ค.**AWS Service
: ์ฒ์ Select Type of Policy๋ฅผ ์ ํํ๋ฉด ๊ทธ์ ๋ง๋ ์๋น์ค๊ฐ ์๋์ผ๋ก ์ ํ๋ฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.**Actions
: S3์ ๋ชจ๋ ์ก์ ์ด ํ์๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ ํ์ผ์ ๋ฐ๋ ์ก์ ๋ง ์ฌ์ฉํ ๊ฒ์ด๋ฏ๋ก GetObject๋ฅผ ์ ํํฉ๋๋ค.**Amazon Resource Name(ARN)
: ์๋ง์กด์ ๋ฆฌ์์ค๋ฅผ ๊ณ ์ ํ๊ฒ ํํํ๋ ๋ฐฉ์์ ๋๋ค.arn:aws:s3:::examplebucket10/*
์ ์ ๋ ฅํฉ๋๋ค. ์ด๊ฒ์ AWS์ S3์์ examplebucket10 ์๋ ๋ชจ๋ ํ์ผ์ ๋ปํฉ๋๋ค./*
๋์/Jellyfish.jpg
๋ฑ์ผ๋ก ํน์ ํ์ผ์ ์ง์ ํด ์ค ์๋ ์์ต๋๋ค.
Add Conditions์์ UserAgent, SourceIP ๋ฑ ๋ค์ํ ์กฐ๊ฑด์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ๋ฌ๋ถ๋ค์ด ํ์ํ ๋ ํ๋ํ๋ ์ฌ์ฉํด๋ณด๊ธฐ ๋ฐ๋๋๋ค.
์ค์ ํ ๋ด์ฉ์ด Statements ๋ชฉ๋ก์ ์ถ๊ฐ๋์์ต๋๋ค.
AWS ์ ์ฑ ์ด ์์ฑ๋์์ต๋๋ค. ์ด JSON ํ ์คํธ๋ฅผ ์ ์ฒด ์ ํ ํ ๋ค ๋ณต์ฌํฉ๋๋ค.
์ด์ ๋ค์ ๋ฒํท ์ ์ฑ ํธ์ง๊ธฐBucket Policy Editor์ ๋ฐฉ๊ธ AWS Policy Generator์์ ๋ณต์ฌํ JSON ํ ์คํธ๋ฅผ ๋ถ์ฌ๋ฃ์ต๋๋ค.
S3 ๋ฒํท(examplebucket10
)์ ํด๋ฆญํ์ฌ ๊ฐ์ฒด ๋ชฉ๋ก์ผ๋ก ๋ค์ด์ต๋๋ค.
์น ๋ธ๋ผ์ฐ์ ์์ ๊ทธ๋ฆผ ํ์ผ์ด ์ ํ์๋ฉ๋๋ค.
S3 ์ ์ ์น์ฌ์ดํธ ํธ์คํ ์ฌ์ฉํ๊ธฐ
S3์ ์น ์๋ฒ ํํ๋ก ์ฌ์ฉํด๋ณด๊ฒ ์ต๋๋ค. ์ฌ์ค ์ ์ ์น์ฌ์ดํธ ํธ์คํ ์ค์ ์ ํ์ง ์๋๋ผ๋ S3์ ํ์ผ์ ์ฌ๋ฆฌ๋ฉด ์น ๋ธ๋ผ์ฐ์ ๋ก ํ์ผ์ ์ ๊ทผํ ์ ์์ต๋๋ค. ํ์ง๋ง, ๊ทธ๋ฅ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ์ ์ ์น์ฌ์ดํธ ํธ์คํ ์ค์ ์ ์ฌ์ฉํ๋ ๊ฒ์ ํฐ ์ฐจ์ด์ ์ด ์์ต๋๋ค.
๋ค์์ ์ผ๋ฐ์ ์ธ S3์ URL ํํ์ ๋๋ค.
http://s3-ap-northeast-1.amazonaws.com/examplebucket10/Jellyfish.jpg
s3-<๋ฆฌ์ ์ด๋ฆ>.amazonaws.com/<๋ฒํท ์ด๋ฆ>/<ํ์ผ ์ด๋ฆ>
๋ค์์ ์ ์ ์น์ฌ์ดํธ ํธ์คํ ์ ์ฌ์ฉํ S3์ URL ํํ์ ๋๋ค.
http://examplebucket10.s3-website-ap-northeast-1.amazonaws.com/Jellyfish.jpg
<๋ฒํท ์ด๋ฆ>.s3-website-<๋ฆฌ์ ์ด๋ฆ>.amazonaws.com/<ํ์ผ ์ด๋ฆ>
- ์ด๊ฒ์ S3 Website Endpoint๋ผ๊ณ ๋งํฉ๋๋ค.
์ด์ฒ๋ผ URL ํํ์ ํฐ ์ฐจ์ด์ ์ด ์์ต๋๋ค. ์๋ URL ํํ์ฒ๋ผ ๋ฒํท ์ด๋ฆ์ด ์๋ธ ๋๋ฉ์ธ ํํ๋ก ๋ค์ด๊ฐ์ผ DNS ์๋ฒ์์ CNAME ์ค์ ์ ํด ์ค ์ ์์ต๋๋ค. ์ฆ example.com
๋๋ฉ์ธ์ CNAME์ examplebucket10.s3-website-ap-northeast-1.amazonaws.com
๋ก ์ค์ ํ๋ฉด example.com
์ผ๋ก ์ ์ํ์ ๋ ๋ฒํท(examplebucket10
)์ ๋ด์ฉ์ด ๋ฐ๋ก ํ์๋ฉ๋๋ค.
์ด CNAME ์ค์ ์ AWS์ DNS ์๋น์ค์ธ Route 53์์ ์ค์ ๊ฐ๋ฅํฉ๋๋ค. ๋ํ, Route 53๊ฐ ์๋๋๋ผ๋ BIND์ ๊ฐ์ ์ผ๋ฐ์ ์ธ DNS ์๋ฒ์์๋ ์ค์ ์ด ๊ฐ๋ฅํฉ๋๋ค. Route 53์์ S3์ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ '17.3 Route 53์ S3 ์ฐ๋ํ๊ธฐ'๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค.
์ ์ ์น์ฌ์ดํธ ํธ์คํ
์ค์ ์ ์ด์ฉํ๋ฉด ์ธ๋ฑ์ค ํ์ด์ง์ ์๋ฌ ํ์ด์ง์ ํ์ผ๋ช
์ ๋ฐ๋ก ์ง์ ํด ์ค ์ ์๊ณ , ๋ค์ํ ๋ฆฌ๋ค์ด๋ ์
Redirection ํ๋์ ํ ์ ์์ต๋๋ค. ์ฆ S3 ๋ฒํท ๋๋ฉ์ธ์ธ examplebucket10.s3-website-ap-northeast-1.amazonaws.com
๋ฅผ example.com
๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋๋ฉ์ธ์ผ๋ก ๋ฆฌ๋ค์ด๋ ์
ํ ์๋ ์์ต๋๋ค.
์ ์ ์น์ฌ์ดํธ ํธ์คํ ์ฉ ๋ฒํท์ ์๋ก ๋ง๋ ๋ค ๊ฐ๋จํ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
S3 ๋ฒํท์ ์์ฑํฉ๋๋ค.
**Bucket Name
: ์ฌ์ฉํ ๋ฒํท ์ด๋ฆ์ ์ค์ ํฉ๋๋ค(examplewebhosting
์ ์ด ์ฑ ์ ์ฐ๋ ์์ ์ ์ ๊ฐ ์ด๋ฏธ ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก ๊ฐ์ ์ด๋ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฆผ 11-37๊ณผ๋ ๋ค๋ฅธ ์ด๋ฆ์ ์ค์ ํฉ๋๋ค).**Region
: ๋ฒํท์ด ์์นํ ๋ฆฌ์ ์ ๋๋ค. Tokyo๋ฅผ ์ ํํฉ๋๋ค.
๋จผ์ ์น์ฌ์ดํธ์ด๋ฏ๋ก ๋ฒํท์ ์ฌ๋ผ๊ฐ๋ ๋ชจ๋ ํ์ผ์ ์ธํฐ๋ท์ ๊ณต๊ฐํ๋๋ก ๊ถํ ์ค์ ์ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
๋ฒํท ์ ์ฑ ํธ์ง๊ธฐ ํ๋ฉด์ด ๋์ต๋๋ค. ์ด๊ณณ์ ์๋ JSON ํ ์คํธ๋ฅผ ์ ๋ ฅํฉ๋๋ค. ์ธํฐ๋ท์ ๋ฒํท์ ๋ชจ๋ ํ์ผ์ ๊ณต๊ฐํ๋ ์ ์ฑ ์ AWS Policy Generator์์ ์์ฑํ ์ ์์ต๋๋ค. AWS Policy Generator์ ๊ด๋ จ๋ ๊ฒ์ '11.3.2 S3 ๋ฒํท ๊ถํ ๊ด๋ฆฌํ๊ธฐ'๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค.
{
"Version": "2008-10-17",
"Id": "Policy1397993518062",
"Statement": [
{
"Sid": "Stmt1397993241249",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::examplewebhosting/*"
}
]
}
::: warn
๋ฒํท ์ ์ฑ
์ ๋ด์ฉ ์ค์์ Resources์ arn:aws:s3:::examplewebhosting/*
์์ examplewebhosting
๋ถ๋ถ์ ์ฌ๋ฌ๋ถ๋ค์ด ์์ฑํ ๋ฒํท ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ์ฃผ์ด์ผ ํฉ๋๋ค. ์ฑ
์ ์๋ ๊ทธ๋๋ก ์
๋ ฅํ๋ฉด ์๋ฉ๋๋ค.
:::
๊ฐ์ ๋ฒํท(examplewebhosting
)์ Properties
์์ [Static Website Hosting]
ํญ์ ํด๋ฆญํฉ๋๋ค.
- Do not enable website hosting: ์ ์ ์น์ฌ์ดํธ ํธ์คํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
- Enable website hosting: ์ ์ ์น์ฌ์ดํธ ํธ์คํ ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค.
- Redirect all request to another host name: ๋ชจ๋ ์์ฒญ์ ๋ค๋ฅธ ๋๋ฉ์ธ์ผ๋ก ๋ฆฌ๋ค์ด๋ ์ ํฉ๋๋ค.
.[Enable website hosting]
์ ์ ํํฉ๋๋ค.
- Index Document: ์ธ๋ฑ์ค ํ์ด์ง์ ํ์ผ๋ช ์ ๋๋ค. index.html์ ์ค์ ํฉ๋๋ค.
- Error Document: ์๋ฌ ํ์ด์ง์ ํ์ผ๋ช ์ ์ค์ ํฉ๋๋ค. ์๋ฌ ํ์ด์ง๋ฅผ ๋ฐ๋ก ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ๋ ์ค์ ํ๋ฉด ๋ฉ๋๋ค.
- Edit Redirection Rules: ์ธ์ธํ ๋ฆฌ๋ค์ด๋ ์
๊ท์น์ ์ค์ ํฉ๋๋ค. docs/hello.html๋ก ์ ๊ทผํ๋ค๋ฉด documents/
hello.html
์ ๋ณด์ฌ์ฃผ๋ ์์ผ๋ก ๊ท์น ์ค์ ์ด ๊ฐ๋ฅํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋งํฌ๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค
์ด์ ๊ฐ๋จํ ์น ํ์ด์ง๋ฅผ ์์ฑํ์ฌ ์ฌ๋ฆด ์ฐจ๋ก์
๋๋ค. ๋ฉ๋ชจ์ฅ์ด๋ ๊ธฐํ ํ
์คํธ ํธ์ง๊ธฐ๋ฅผ ์ด๊ณ ์๋์ ๊ฐ์ด ์์ฑํ ๋ค index.html
๋ก ์ ์ฅํฉ๋๋ค.
index.html
<head>
<title>S3 Example Website Hosting</title>
</head>
<body>
<p>Hello S3</p>
<body>
</html>
.index.html
์ ์ ์ ์น์ฌ์ดํธ ํธ์คํ
์ ์ค์ ํ ๋ฒํท(examplewebhosting
)์ ์ฌ๋ฆฝ๋๋ค. ํ์ผ์ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ์ '11.2 S3 ๋ฒํท์ ํ์ผ ์ฌ๋ฆฌ๊ธฐ/๋ฐ๊ธฐ'๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค.
๊ทธ๋ฆผ ์์ชฝ์ ์ ์ ์น์ฌ์ดํธ ํธ์คํ
์ ์ค์ ํ ๋ฒํท ์ด๋ฆ(๊ทธ๋ฆผ 11-42์์๋ examplewebhosting
)์ ํด๋ฆญํ ๋ค [Properties]
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ [Static Website Hosting]
ํญ์ ํด๋ฆญํฉ๋๋ค.
S3 ์ ์ ์น์ฌ์ดํธ ํธ์คํ ํ์ฉ
์์ฆ ๋ง์ด ์ฐ๋ jQuery, jQuery UI, Bootstrap ๋ฑ์ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ EC2์์ ์น ์๋ฒ๋ฅผ ๊ตฌ์ถํ์ฌ ์๋น์คํ๋ ๊ฒ๋ณด๋ค, S3 ์ ์ ์น์ฌ์ดํธ ํธ์คํ ์ ํ์ฉํ์ฌ ์๋น์คํ๋ ๊ฒ์ด ํจ์ฌ ์ ๋ฆฌํฉ๋๋ค. ๋ํ, ์ด๋ฏธ์ง ํ์ผ์ด๋, CSS ํ์ผ ๋ฑ๋ S3 ์ ์ ์น์ฌ์ดํธ ํธ์คํ ์ ํ์ฉํ๋ ๊ฒ์ด ํจ๊ณผ์ ์ ๋๋ค.
HTTP Referer๋ก S3 ์ ๊ทผ ์ ํํ๊ธฐ
S3์ ์ฌ๋ ค์ง ๊ทธ๋ฆผ ํ์ผ์ ์ํ๋ ๋๋ฉ์ธ์์๋ง ๋ณด์ฌ์ค ์ ์๋๋ก ์ค์ ํด๋ณด๊ฒ ์ต๋๋ค. S3์ ๋ฐ์ดํฐ ์ ์ก๋์ ๋ฐ๋ผ ์๊ธ ์ฑ ์ ํ๊ธฐ ๋๋ฌธ์ ์ํ์ง ์๋ ๋๋ฉ์ธ์์์ ๋งํฌ๋ฅผ ๋ง๋๋ค๋ฉด ๊ทธ๋งํผ ๋น์ฉ์ ์ ๊ฐํ ์ ์์ต๋๋ค.
HTTP Referer๋ HTTP ํค๋๊ฐ์ผ๋ก์ ์น ๋ธ๋ผ์ฐ์ ์์ ์์ฑํ๋ ๋ฐ์ดํฐ์
๋๋ค. ์๋ฅผ ๋ค๋ฉด http://example.com
์ด๋ผ๋ ์น์ฌ์ดํธ์์ http://hello.com
์ ๋งํฌ๋ฅผ ํด๋ฆญํ๊ฑฐ๋ <img>
ํ๊ทธ๋ก ๊ทธ๋ฆผ ํ์ผ์ ๋ณด์ฌ์ค ๋, http://hello.com
์ผ๋ก ๋ณด๋ด๋ HTTP ํค๋์ Referer ๊ฐ์ http://example.com
์ด ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋งํฌ๋ฅผ ์ด๋์ ํด๋ฆญํ๋๋, ๊ทธ๋ฆผ ํ์ผ์ ์ด๋์ ๋ณด์ฌ์คฌ๋๋๋ฅผ ์ ์ ์์ต๋๋ค. S3์์๋ ์ด Referer ๊ฐ์ ํ๋จํด์ ํ์ผ์ ๋ณด์ฌ์ค์ง ๋ง์ง ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
์ด๋ฒ์๋ ๋ฒํท์ 2๊ฐ ์ฌ์ฉํ๊ฒ ์ต๋๋ค. ๋ฒํท ํ๋์ ์น์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ๊ณ HTTP Referer๋ฅผ ์ค์ ํ๋ค๋ฉด ์ ์ ์น์ฌ์ดํธ์ HTML ํ์ผ์ ๋ณผ ๋์๋ HTTP Referer ์ค์ ์ ๋งํ๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์์์ ์์ฑํ๋ ๋ฒํท(examplebucket10
)์ ๊ทธ๋ฆผ ํ์ผ ์ ์ฅ ์ ์ฉ ๋ฒํท์ผ๋ก ์ฌ์ฉํ๊ณ , HTTP Referer ์ค์ ์ ํ ๊ฒ์ด๋ฉฐ ์ ์ ์น์ฌ์ดํธ ํธ์คํ
์ ์ค์ ํ๋ ๋ฒํท(examplewebhosting
)์์ ๊ทธ๋ฆผ ํ์ผ์ ๋งํฌํด๋ณด๊ฒ ์ต๋๋ค.
์ ์ฅ์์ ๋ฒํท์ ์์ฑํ์ง ์๊ณ ์ด๋ฒ ์ฅ๋ถํฐ ๋ณธ ๋ ์๋ค์ '11.1 S3 ๋ฒํท ์์ฑํ๊ธฐ', '11.2 S3 ๋ฒํท์ ํ์ผ ์ฌ๋ฆฌ๊ธฐ/๋ฐ๊ธฐ', '11.3.2 S3 ๋ฒํท ๊ถํ ๊ด๋ฆฌํ๊ธฐ', '11.3.3 S3 ์ ์ ์น์ฌ์ดํธ ํธ์คํ ์ฌ์ฉํ๊ธฐ'๋ฅผ ์ฐธ์กฐํ์ฌ ๊ทธ๋ฆผ ํ์ผ์ ์ ์ฅํ ๋ฒํท์ ์์ฑํ๊ธฐ ๋ฐ๋๋๋ค.
๋ฒํท ์ ์ฑ ํธ์ง๊ธฐ์ ์๋์ ๊ฐ์ด ์ ๋ ฅํฉ๋๋ค.
{
"Version": "2012-10-17",
"Id": "http referer policy example",
"Statement": [
{
"Sid": "Allow get requests originated from www.example.com and example.com",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::examplebucket10/*",
"Condition": {
"StringLike": {
"aws:Referer": "http://examplewebhosting.s3-website-ap-northeast-1.amazonaws.com/*"
}
}
}
]
}
์ค์ํ ๋ถ๋ถ๋ง ์ค๋ช ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Effect
: ์ง์ ํ ๋๋ฉ์ธ๋ง ํ์ฉํ ๊ฒ์ด๋ฏ๋ก ํ์ฉ(Allow) ์ ๋๋ค.Principal
: ์ ์ฑ ์ ์ ์ฉํ ๋์์ ๋๋ค. ์ธํฐ๋ท ์ ์ฒด์ ๊ณต๊ฐํ ๊ฒ์ด๋ฏ๋ก *์ ๋๋ค..Action
: ํ์ผ์ ๋ณด์ฌ์ฃผ๋(๋ค์ด๋ก๋) ์ํฉ์ด๋ฏ๋ก s3:GetObject ์ ๋๋ค.Condition
: ์กฐ๊ฑด์ ์ ๋๋ค. ์ด๊ณณ์ ์ค์ ํ ์กฐ๊ฑด์ ๋ง์ผ๋ฉด ํ์ฉ(Allow) ๋๋ ๊ฑฐ๋ถ(Deny) ํฉ๋๋ค.StringLike
: ์กฐ๊ฑด์ ์์ ์ฌ์ฉํ๋ ์กฐ๊ฑด๋ฌธ์ ๋๋ค. ๋ป์ ๋ฌธ์์ด์ ํฌํจํ๊ณ ์์ ๋ ์ ๋๋ค.aws:Referer
: Referer ๊ฐ์ ์ง์ ํฉ๋๋ค. ๋ณดํต ๋๋ฉ์ธ์ ์ค์ ํ๋ฉฐ ๋งจ ๋ค์ /*๋ฅผ ๋ถ์ฌ์ฃผ์ด, ๋๋ฉ์ธ ์ดํ ๋ชจ๋ ๊ฒฝ๋ก์ ๋ํด ํ์ฉํฉ๋๋ค. /hello.html ์ฒ๋ผ ํน์ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ ์๋ ์์ต๋๋ค. ์ฌ๋ฌ ๋๋ฉ์ธ์ ์ง์ ํ๋ ค๋ฉด ,(์ฝค๋ง)๋ก ๊ตฌ๋ถํ๋ฉด ๋ฉ๋๋ค.
::: warn
๋ฒํท ์ ์ฑ
์ ๋ด์ฉ ์ค์์ aws:Referer
์ http://examplewebhosting.s3-website-ap-northeast-1.amazonaws.com/*
์์ examplewebhosting
๋ถ๋ถ์ ์ฌ๋ฌ๋ถ์ด ์์ฑํ ์ ์ ์น์ฌ์ดํธ ํธ์คํ
๋ฒํท์ ์ฃผ์๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค. ์ฑ
์ ์๋ ๊ทธ๋๋ก ์
๋ ฅํ๋ฉด ์๋ฉ๋๋ค.
:::
Restricting Access to a Specific HTTP Referrer
๋ ์์ธํ ๋ด์ฉ์ ๋ค์ ๋งํฌ์ Restricting Access to a Specific HTTP Referrer๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค.
์ด์ ํ
์คํธ๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฆผ ํ์ผ์ด ๋ค์ด์๋ ๋ฒํท(examplebucket10
)์ ๊ฐ์ฒด ๋ชฉ๋ก์์ ๊ทธ๋ฆผ ํ์ผ์ ์ ํํ๊ณ Properties ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. Permissions ํญ์ ํด๋ฆญํ๊ณ Grantee๊ฐ Everything๋ก ์ค์ ๋ ๊ฒ์ด ์๋์ง ํ์ธํฉ๋๋ค. Everything์ผ๋ก ๊ถํ์ด ์ค์ ๋์ด ์์ผ๋ฉด Referer ์ค์ ์ ๋ฌด์ํ๊ฒ ๋๋ฏ๋ก ์ฃผ์ํฉ๋๋ค.
์ด์ ์ ์ ์น์ฌ์ดํธ ํธ์คํ ์ ์ค์ ํ ๋ฒํท์์ ๊ทธ๋ฆผ ํ์ผ์ ๋ถ๋ฌ์ค๋๋ก ํ๊ฒ ์ต๋๋ค.
์๋์ ๊ฐ์ด index.html
ํ์ผ์ ์์ฑํ ๋ค S3 ๋ฒํท์ ์ฌ๋ฆฝ๋๋ค (ํ์ผ์ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ์ '11.2 S3 ๋ฒํท์ ํ์ผ ์ฌ๋ฆฌ๊ธฐ/๋ฐ๊ธฐ'๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค).
index.html
<html>
<head>
<title>S3 Example Website Hosting</title>
</head>
<body>
<p>Hello S3</p>
<img src="https://s3-ap-northeast-1.amazonaws.com/examplebucket10/Jellyfish.jpg" width="320" height="240">
</body>
</html>
์์ชฝ ๋ฒํท ์ด๋ฆ(examplewebhosting
)์ ํด๋ฆญํ ๋ค [Properties]
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ [Static Website Hosting]
ํญ์ ํด๋ฆญํฉ๋๋ค.
S3 ๊ฐ์ฒด์ URL๋ก ์ ์ํ์ ๋ ์ด๋ฆฌ์ง ์๋ ๊ทธ๋ฆผ ํ์ผ์ด index.html
์์๋ ์ ์ด๋ฆฝ๋๋ค.
S3 ๊ฐ์ฒด ์คํ ๋ฆฌ์ง ํด๋์ค, ์ํธํ ์ค์ ํ๊ธฐ
S3 ๊ฐ์ฒด๋ฅผ ์ด๋ค ์คํ ๋ฆฌ์ง์ ์ ์ฅํ ์ง ๊ทธ๋ฆฌ๊ณ ์ ์ฅํ ๋ ์ํธํ ์ฌ๋ถ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
์ด๋ฒ ์ฅ๋ถํฐ๋ ์ค์ต์ด ์ฝ์ง ์์ ๋ถ๋ถ์ด ๋ง์์, ๋ฐ๋ก ์ค์ต์ ํ์ง ์๊ณ ์ค์ ์ ๋ํ ์์ธํ ์ค๋ช ์ผ๋ก ๋์ ํ๊ฒ ์ต๋๋ค.
- ์คํ ๋ฆฌ์ง ํด๋์ค(Storage Class): Standard์ Reduced Redundancy๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ด๋ค ์คํ ๋ฆฌ์ง์ ์ ์ฅํ ์ง ์ค์ ํ๋ ์ต์ ์ ๋๋ค. ๊ฐ ์ต์ ์ ๋ํ ์์ธํ ์ค๋ช ์ ์ด ์ฅ์ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค.
- Standard: ๋ฐ์ดํฐ ์์ค ๊ฐ๋ฅ์ฑ์ด ๊ฑฐ์ ์๋ ์คํ ๋ฆฌ์ง์ ๋๋ค(๋ด๊ตฌ์ฑ 99.999999999%).
- Reduced Redundancy: ์ด๋ ์ ๋ ๋ฐ์ดํฐ ์์ค ๊ฐ๋ฅ์ฑ์ด ์์ง๋ง ์ ์ฅ ๋น์ฉ์ด ์ ๋ ดํ ์คํ ๋ฆฌ์ง์ ๋๋ค(๋ด๊ตฌ์ฑ 99.99%).
- Server Side Encryption: None๊ณผ AES-256์ ์ ํํ ์ ์์ต๋๋ค. S3์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํด์ ์ ์ฅํ๋ ์ต์ ์ ๋๋ค. ์ค์ํ ๋ฐ์ดํฐ๋ฅผ ์ข๋ ์์ ํ๊ฒ ์ ์ฅํ๊ณ ์ถ์ ๋ ์ฌ์ฉํฉ๋๋ค. ๋ณตํธํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ด๋ฃจ์ด์ง๋๋ค.
S3 ๊ฐ์ฒด ๋ฉํ๋ฐ์ดํฐ ์ค์ ํ๊ธฐ
S3 ๊ฐ์ฒด์ ๋ค์ํ ๊ธฐ๋ฅ์ ํ๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ๋ฉํ๋ฐ์ดํฐ๋ HTTP 1.1 ํ์ค์ ์ ์๋ ๋ฉํ๋ฐ์ดํฐ์ S3 ์ ์ฉ ๋ฉํ๋ฐ์ดํฐ๋ก ๋๋ฉ๋๋ค. S3 ๊ฐ์ฒด ๋ชฉ๋ก์์ ํ์ผ์ ์ ํํ ๋ค ์์ชฝ [Properties]
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ [Metadata]
ํญ์ ํด๋ฆญํฉ๋๋ค.
S3 ๊ฐ์ฒด์ HTTP ํค๋Header๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ์ด ํค๋๋ HTTP 1.1์ ์ ์๋ ๊ฒ์ ๋๋ค.
Cache-Control
: ๋ธ๋ผ์ฐ์ ์บ์ ์ ์ฑ ์ ์ค์ ํฉ๋๋ค. Value์max-age=3600
๊ณผ ๊ฐ์ ์์ผ๋ก ๋ฐ์ดํฐ ๋ง๊ธฐ ์๊ฐ์ ์ด ๋จ์๋ก ์ง์ ํ ์ ์์ต๋๋ค. ๋ง๊ธฐ ์๊ฐ์ด ์ง๋๊ธฐ ์ ์ ๋ค์ ์์ฒญ์ ํ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ์์๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค์ง ์๊ณ ๋ก์ปฌ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์ค์ ์ AWS์ CDN ์๋น์ค์ธ CloudFront์๋ ์ฐ๊ณ๋ฉ๋๋ค.Cache-Control
์ ๋ํ ๋ด์ฉ์ ์๋นํ ๋ฐฉ๋ํ๋ฏ๋ก ์ธํฐ๋ท์ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค.Content-Disposition
: Value์attachment
๋ก ์ค์ ํ๋ฉด JPG ํ์ผ ๊ฐ์ ๊ฒฝ์ฐ ์น ๋ธ๋ผ์ฐ์ ์์ ๊ทธ๋ฆผ ํ์ผ์ ๋ณด์ฌ์ฃผ์ง ์๊ณ ๋ฐ๋ก ๋ค์ด๋ก๋ํฉ๋๋ค. ๊ทธ๋ฆผ ํ์ผ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ํ์์ ํ์ผ์๋ ์ง์ ํ ์ ์์ต๋๋ค.Content-Type
: ์น ๋ธ๋ผ์ฐ์ ์์ ํ์ผ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํด์ผ ํ๋์ง ์๋ ค์ฃผ๋ ๋ฉํ๋ฐ์ดํฐ ์ ๋๋ค. ๋ณดํต ํ์ฅ์์ ๋ฐ๋ผ ์๋์ผ๋ก ์ค์ ๋ฉ๋๋ค. ํ์ฅ์๊ฐ ์๋ ํ์ผ์ ์ด ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํตํด ๊ฐ์ ๋ก ํ์์ ์ง์ ํด ์ค ์ ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด HTML์ ๋ด๊ณ ์๋ hello๋ผ๋ ํ์ผ์ ์ฌ๋ฆฌ๊ณ , ์น ๋ธ๋ผ์ฐ์ ์์ ์ด๋ฉด ๋ด์ฉ์ด ๋ณด์ด์ง ์๊ณ ๋ฐ๋ก ๋ค์ด๋ก๋๊ฐ ๋์ด๋ฒ๋ฆฝ๋๋ค. ๊ทธ๋์ hello๋ผ๋ ํ์ผ์Content-Type
์text/html
๋ก ์ค์ ํด์ฃผ๋ฉด ์น ๋ธ๋ผ์ฐ์ ์์ HTML ํ์ผ๋ก ์ธ์ํด์ ๋ด์ฉ์ ๋ณด์ฌ์ฃผ๊ฒ ๋ฉ๋๋ค.Content-Language
: ํ ์คํธ๋ก ๋ ํ์ผ(HTML ๋ฑ)์ ์ธ์ด๋ฅผ ์ง์ ํฉ๋๋ค.en
,ko
,jp
ํน์en-us
,ko-kr
,ja-jp
๋ฑ์ผ๋ก ์ง์ ํฉ๋๋ค.Expires
:Cache-Control
๊ณผ ๊ฐ์ ๋์์ ํ์ง๋ง ์ด ๋จ์๊ฐ ์๋ ํน์ ๋ ์ง์ ์๊ฐ์ ์ง์ ํ์ฌ ๋ง๊ธฐ ์๊ฐ์ ์ค์ ํฉ๋๋ค. Tue, 22 Apr 2014 20:00:00 GMT์ ๊ฐ์ ํ์์ผ๋ก ์ง์ ํด์ผ ํฉ๋๋ค.Content-Encoding
: ๋ฐ์ดํฐ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ๋๋ค. Value์ gzip์ ์ง์ ํ ์ ์์ผ๋ฉฐ ์ด๋์๋ ๋ฐ์ดํฐ๋ฅผ ์์ถํ์ฌ ์ ์กํ ๋ค ์น ๋ธ๋ผ์ฐ์ ์์๋ ์์ถ์ ํด์ ํ์ฌ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ํ ์คํธ ๋ฐ์ดํฐ๊ฐ ๋ง๊ณ ์ฉ๋์ด ํฐ ๊ฒฝ์ฐ ์ด ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ์ ์ก ๋น์ฉ์ ์ ๊ฐํ ์ ์์ต๋๋ค(JPG๋ PNG ๋ฑ์ ๊ทธ๋ฆผ ํ์ผ์ ์ด๋ฏธ ํฌ๋งท ์์ฒด๊ฐ ์์ถ ๋ฐ์ดํฐ์ด๋ฏ๋ก gzip์ ์ค์ ํ๋๋ผ๋ ์ฉ๋์ด ํฌ๊ฒ ์ค์ด๋ค์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ทธ๋ฆผ ํ์ผ์๋ ์ด ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ค์ ํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค).gzip
์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ฉฐdeflate
๋ ์ง์ ํ ์ ์์ต๋๋ค.
๋ค์์ S3 ์ ์ฉ ๋ฉํ๋ฐ์ดํฐ์ ๋๋ค.
Website Redirect Location
: ์น ๋ธ๋ผ์ฐ์ ๋ก ํด๋น ํ์ผ์ ์ ์ํ์ ๋ ๋ค๋ฅธ ํ์ผ์ด๋ URL๋ก ๋ฆฌ๋ค์ด๋ ์ ํ๋ ๊ธฐ๋ฅ์ ๋๋ค./hello.html
์ฒ๋ผ S3์ ์ฌ๋ผ๊ฐ ์๋ ํ์ผ๋ช ์ ์ง์ ํ ์ ์์ต๋๋ค.(์ด ๋์๋/
๋ก ์์ํด์ผ ํฉ๋๋ค.) ๋๋http://www.example.com
์ฒ๋ผ ์ธ๋ถ ๋๋ฉ์ธ ๋๋ URL์ ์ง์ ํ ์๋ ์์ต๋๋ค. ์ด ์ค์ ์ ๋ฒํท์ ์ ์ ์น์ฌ์ดํธ ํธ์คํ ์ผ๋ก ์ค์ ํ ๋ค S3 Website Endpoint๋ก ์ ์ํด์ผ ๋์ํฉ๋๋ค(x-amz-website-redirect-location
).- ์ฌ์ฉ์ ์ ์ ๋ฉํ๋ฐ์ดํฐ
x-amz-meta-
: ์ฌ์ฉ์ ๋ง์๋๋ก ์ฌ์ฉํ ์ ์๋ ๋ฉํ๋ฐ์ดํฐ์ ๋๋ค. ๊ฐ์ฒด์ ์ถ๊ฐ์ ์ธ ์ค๋ช ์ ๋ฃ๊ณ ์ถ์ ๋ ์ฌ์ฉํฉ๋๋ค.x-amz-meta-
๋ค์ ์์๋ก ์ด๋ฆ์ ๋ถ์ฌx-amz-meta-user-id
์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.- S3 ์์คํ ์ ์ ๋ฉํ๋ฐ์ดํฐ. ์ผ๋ถ S3 ์ธ๋ถ ์ค์ ๋ค์ ์ด ๋ฉํ๋ฐ์ดํฐ๋ก ๋์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ S3 ์ฝ์์์ ์ค์ ํ ์ธ๋ถ ์ค์ ๋ค์ HTTP Response Header์ ์๋ ํค๋ก ํํ๋ฉ๋๋ค.
x-amz-server-side-encryption
: ๋ฐ์ดํฐ ์ํธํ ์ต์ ์ ๋๋ค. Properties์ Details์์ Server Side Encryption ์ค์ ์ ๋์ ํ ์ ์์ผ๋ฉฐ AES256์ ๊ฐ์ผ๋ก ๊ฐ์ง๋๋ค.x-amz-version-id
: S3 ๋ฒํท์ ๋ฒ์ ๋ ๊ธฐ๋ฅ์ ์ผฐ์ ๋, ํ์ผ์ ๋ฒ์ ์ ํ์ํฉ๋๋ค(์ฌ์ฉ์๊ฐ ํธ์งํ ์ ์๋ ๋ฉํ๋ฐ์ดํฐ).x-amz-delete-marker
: S3 ๋ฒํท์ ๋ฒ์ ๋ ๊ธฐ๋ฅ์ ์ผ๊ณ , ํ์ผ์ ์ญ์ ํ๋ฉด ํ์ผ์ด ์์ ํ ์ญ์ ๋์ง ์๊ณ ์ญ์ ํ์(delete-marker) ์ค์ ์ด ๋ฉ๋๋ค. true๋ฅผ ๊ฐ์ผ๋ก ๊ฐ์ง๋๋ค (์ฌ์ฉ์๊ฐ ํธ์งํ ์ ์๋ ๋ฉํ๋ฐ์ดํฐ).x-amz-storage-class
: ์คํ ๋ฆฌ์ง ํด๋์ค ์ต์ ์ ๋๋ค. Properties์ Details์์ ์คํ ๋ฆฌ์ง ํด๋์ค(Storage Class) ์ค์ ์ ๋์ ํ ์ ์์ผ๋ฉฐSTANDARD
์REDUCED_REDUNDANCY
๋ฅผ ๊ฐ์ผ๋ก ๊ฐ์ง๋๋ค.
Object Key and Metadata
๋ฉํ๋ฐ์ดํฐ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์ ๋งํฌ๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค.
S3 ๋ฒํท ๋ก๊ทธ ์ค์ ํ๊ธฐ
S3์ ์ ์ฅ๋ ๊ฐ์ฒด์ ์ ์ ๋ก๊ทธLogging๋ฅผ ํ
์คํธ ํ์ผ ํํ๋ก ์ ์ฅํ ์ ์์ต๋๋ค. ์ด์ ๋ฒํท์ Properties ์ค์ ํ๋ ๊ฒ์ ์ต์ํด์ก์ ๊ฒ์
๋๋ค. ๋ฒํท์ Properties์์ [Logging]
ํญ์ ํด๋ฆญํฉ๋๋ค.
- Enabled: ์ด๊ณณ์ ์ฒดํฌ๋ฅผ ํด์ผ ๋ก๊ทธ๋ฅผ ๋จ๊ธธ ์ ์์ต๋๋ค.
- Target Bucket: ํ์ฌ ์ ํ๋ ๋ฒํท์ ๋ก๊ทธ๋ฅผ ๋จ๊ธธ ์๋ ์๊ณ , ๋ค๋ฅธ ๋ฒํท์ ๋ก๊ทธ๋ฅผ ๋จ๊ธธ ์๋ ์์ต๋๋ค. ๋ชฉ๋ก์ ํด๋ฆญํ๋ฉด ์ ํํ ์ ์๋ ๋ฒํท ๋ชฉ๋ก์ด ํ์๋ฉ๋๋ค.
- Target Prefix: ๊ธฐ๋ณธ๊ฐ์
logs/
์ ๋๋ค. ๋ก๊ทธ ํ์ผ์ด ์ ์ฅ๋ ํด๋ ์ด๋ฆ์ ๋๋ค.
๋ก๊ทธ ํ์ผ์ ๋๋ธ ํด๋ฆญํ๋ฉด ๋ก๊ทธ ํ์ผ์ ๋ด์ฉ์ ๋ณผ ์ ์์ต๋๋ค.
S3 ๋ฒํท ๋ฒ์ ๋ ์ค์ ํ๊ธฐ
S3์ ์์ฒด์ ์ผ๋ก ํ์ผ ๋ฒ์ ๊ด๋ฆฌVersion Control ๊ธฐ๋ฅ์ ๋ด์ฅํ๊ณ ์์ต๋๋ค. ์ด ๋ฒ์ ๋Versioning ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด ํ์ผ์ ์ด์ ๋ด์ฉ์ผ๋ก ๋๋๋ฆด ์ ์๊ณ , ์ญ์ ํ ํ์ผ๋ ๋ณต์ํ ์ ์์ต๋๋ค. ๋จ ๊ทธ๋งํผ ํ์ผ ์ ์ฅ ์ฉ๋์ด ๋์ด๋๋ฏ๋ก ์ฌ์ฉ ์๊ธ์ด ๋์ด๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ฉ๋์ด ์์ ํ์ผ์ด ๋๋ถ๋ถ์ผ ๋ ์ฌ์ฉํ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.
๋ฒํท์ Properties์์ [Enable Versioning]
ํญ์ ํด๋ฆญํฉ๋๋ค.
์ด ๋ฒํท์์ ๋ฒ์ ๋ ๊ธฐ๋ฅ์ ํ๋ฒ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๋ค์๋ ์ด ๊ธฐ๋ฅ์ ๋ ์ ์๊ฒ ๋๋ ์ฃผ์ํด์ผ ํฉ๋๋ค. ๋ํ, ๋ฒ์ ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉด ์๋ช ์ฃผ๊ธฐLifecycle ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค. ๋ฒ์ ๋ ๊ธฐ๋ฅ์ ํ์ฑํ ํ ๋ค S3 ๊ฐ์ฒด ๋ชฉ๋ก์์ ์์ชฝ Versions์ Show ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํ์ผ๋ค์ ๋ฒ์ ์ด ํ์๋ฉ๋๋ค(ํ์ผ์ ๊ณ์ ์์ ํด์ ์ฌ๋ ธ์ ๊ฒฝ์ฐ).
.hello.html
ํ์ผ์ด 2๋ฒ ๋ฐ๋์๊ณ ์ญ์ ๋์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์ญ์ ๋ ํ์ผ์ Delete Marker๋ผ๊ณ ํ์๋ฉ๋๋ค. ์ด Delete Marker๋ฅผ ์ ํํ๊ณ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํ์
๋ฉ๋ด๊ฐ ๋์ต๋๋ค.
S3 ๋ฒํท ์๋ช ์ฃผ๊ธฐ ์ค์ ํ๊ธฐ
S3์ ๋ฒํท์ ์ ์ฅ๋ ๊ฐ์ฒด์ ์๋ช ์ฃผ๊ธฐLifecycle๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ผ์ ์๊ฐ์ด ์ง๋ฌ์ ๋ ์ฌ์ฉ๋์ง ์๋ ํ์ผ๋ค์ ์ญ์ ํ๊ฑฐ๋ ๋ค๋ฅธ ๊ณณ์ ๋ฐฑ์ ํ์ฌ S3 ์ ์ฅ ๊ณต๊ฐ์ ์ ์ฝํ๊ณ ์ถ์ ๋ ์ฌ์ฉํฉ๋๋ค.
S3 ๋ฒํท ๋ชฉ๋ก์์ ๋ฒํท์ ์ ํํ๊ณ ์์ชฝ Properties ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ Lifecycle ํญ์ ํด๋ฆญํฉ๋๋ค. ์ฌ๊ธฐ์ ์๋ช ์ฃผ๊ธฐ ๊ท์นLifecycle Rule์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์๋ช ์ฃผ๊ธฐ ๊ท์น์ ์ค์ ํฉ๋๋ค.
- Enabled: ์ด ๊ท์น์ ์ฌ์ฉ์ฌ๋ถ๋ฅผ ์ค์ ํฉ๋๋ค.
- Name(Optional): ๊ท์น ์ด๋ฆ์ ๋๋ค. ์ ๋ ฅํ์ง ์์ผ๋ฉด ์๋ ์์ฑ๋ฉ๋๋ค.
- Apply to Entire Bucket: ์ด ๊ท์น์ ๋ฒํท ์์ ์๋ ๋ชจ๋ ๊ฐ์ฒด์ ์ ์ฉํ ์ง ์ฌ๋ถ๋ฅผ ์ค์ ํฉ๋๋ค. ์๋ Prefix ์ค์ ์ ๋ฌด์๋ฉ๋๋ค.
- Prefix: ๊ท์น์ ์ ์ฉํ ๊ฐ์ฒด๋ฅผ ์ง์ ํฉ๋๋ค.
logs/
๋ผ๊ณ ์ค์ ํ๋ฉดlogs
ํด๋์ ๊ท์น์ด ์ ์ฉ๋ฉ๋๋ค. - Time Period Format: ๊ท์น์ ์ ์ฉํ ๋ ์ง ์ค์ ์ ๋๋ค.
- Days from the creation date: ๊ฐ์ฒด์ ์์ฑ ๋ ์ง๋ถํฐ ์ ์ฉํฉ๋๋ค.
- Effective from date: ํน์ ๋ ์ง๋ถํฐ ์ ์ฉํฉ๋๋ค.
- Move to Glacier: ์ค์ ํ ๋ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ด ๋ฐ ๋ฐฑ์ ์ ์ฉ ์คํ ๋ฆฌ์ง์ธ Glacier๋ก ์ด์ ํฉ๋๋ค. Glacier์ ๊ดํด์๋ '21์ฅ ๋ฐ์ดํฐ ๋ณด๊ด ๋ฐ ๋ฐฑ์ ์ ์ํ ๋งค์ฐ ์ ๋ ดํ ์คํ ๋ฆฌ์ง ์๋น์ค Glacier'๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค.
- Expiration: ์ค์ ํ ๋ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ ์ญ์ ํฉ๋๋ค.
์ด ์๋ช ์ฃผ๊ธฐ ๊ท์นLifecycle Rule์ ์ถ๊ฐํ๊ฒ ๋๋ฉด ๋ฒ์ ๋Versioning ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.
S3 ๋ฒํท ๊ธฐํ ์ค์
S3 ๋ฒํท์ ์์ ์ค๋ช ํ ๊ฒ ์ด์ธ์๋ ๋ค์ํ ์ค์ ์ด ๊ฐ๋ฅํฉ๋๋ค. ์๋ ์ค์ ๋ค์ ๊ฐ๋ตํ ์ค๋ช ์ผ๋ก ๋์ ํ๊ฒ ์ต๋๋ค.
- Notifications: ๋ฎ์ ์ค๋ณต ์คํ ๋ฆฌ์ง(Reduced Redundancy Storage)๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ฒด๊ฐ ์ ์ค๋์์ ๋ SNS(Simple Notification Service)๋ก ์๋ฆผ์ ์ ์กํด์ฃผ๋ ๊ธฐ๋ฅ์ ๋๋ค.
- Tags: ๋ฒํท์ ํ๊ทธ๋ฅผ ์ค์ ํฉ๋๋ค. AWS์ Cost Allocation Reports์์ S3์ ๋น์ฉ ๋ด์ญ์ ๋ณผ ์ ์์ผ๋ฉฐ ์ด ๋ณด๊ณ ์์๋ ์ฌ๊ธฐ์ ์ค์ ํ ํ๊ทธ ๋ณ๋ก ์ง๊ณ๋ ์ฌ์ฉ ๋ด์ญ ๋ฐ ๋น์ฉ์ด ํ์๋ฉ๋๋ค.
- Requester Pays: ๊ธฐ๋ณธ์ ์ผ๋ก S3 ๋ฒํท ์์ ์๋ ์ฌ์ฉ ๊ณต๊ฐ ๋ฐ ๋ฐ์ดํฐ ์ ์ก๋์ ๋ฐ๋ฅธ ์๊ธ์ ์ง๋ถํ๊ฒ ๋ฉ๋๋ค. ์ด ์ค์ ์ ์ฌ์ฉํ๋ฉด ๋ฒํท ์์ ์๋ ์ฌ์ฉ ๊ณต๊ฐ์ ๋ํด์๋ง ์๊ธ์ ์ง๋ถํ๋ฉด ๋๊ณ , ๋ฐ์ดํฐ ์ ์ก๋์ ๋ฐ๋ฅธ ์๊ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ ์ฌ์ฉ์๊ฐ ์ง๋ถํ๊ฒ ๋ฉ๋๋ค. ์ด ์ค์ ์ ์ฌ์ฉํ๋ฉด ๋ฒํท์ ๋ํ ์ต๋ช ์ ๊ทผ์ ๋ชจ๋ ์ฐจ๋จ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋งํฌ๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค