๋ฐ์ํ
์คํ ๋ฆฌ์ง๋
- ์คํ ๋ฆฌ์ง๋ ์ปดํจํฐ ์์คํ ์์ ๋ช ๋ น์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ฅ์น์ ๋๋ค.
- AWS๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ฒด ์คํ ๋ฆฌ์ง(S3), ๋ธ๋ก ์คํ ๋ฆฌ์ง(EBS), ํ์ผ ์คํ ๋ฆฌ์ง(EFS, Fsx)๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๊ฐ์ฒด ์คํ ๋ฆฌ์ง๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด(Object)๋ผ๋ ๊ฐ๋ณ ๋จ์๋ก ์ ์ฅํ๊ณ ๊ด๋ฆฌํฉ๋๋ค. ๋ฌธ์, ์ด๋ฏธ์ง์ ๊ฐ์ ์ค์ ๋ฐ์ดํฐ์ ๊ฐ์ฒด์ ๋ํ ์ถ๊ฐ ์ ๋ณด์ธ ๋ฉํ ๋ฐ์ดํฐ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ฐ์ฒด ์คํ ๋ฆฌ์ง๋ ๋์ฉ๋ ๋น์ ํ ๋ฐ์ดํฐ์ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค.
- ๋ธ๋ก ์คํ ๋ฆฌ์ง๋ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ธ๋ก์ผ๋ก ๋๋์ด ๊ฐ๋ณ ๋จ์๋ก ์ ์ฅํ๋ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค. ๊ณ ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ์งง์ ๋ ์ดํด์๋ฅผ ์ ๊ณตํ๋ฉฐ ๋ฐ์ดํฐ์ ๋น ๋ฅด๊ฒ ์ก์ธ์คํด์ผํ๋ ๋ชจ๋ ์๋น์ค์ ์ ํฉํฉ๋๋ค.
- ํ์ผ ์คํ ๋ฆฌ์ง๋ ํ์ผ ๋ฐ์ดํฐ์ ๋ํ ๊ณต์ ์ก์ธ์ค๋ฅผ ๊ณ์ธต์ ์คํ ๋ฆฌ์ง์ ๋๋ค. ์ฌ์ฉ์๊ฐ ๋์์ ์ก์ธ์คํด์ผ ํ ๋ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค.
- ํ์ฅ์ฑ์ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง, ๋ธ๋ก ์คํ ๋ฆฌ์ง, ํ์ผ ์คํ ๋ฆฌ์ง ์์ผ๋ก ์ข์ต๋๋ค.
S3์ Bucekt, Object
- Amazon S3(Simple Storage Service)๋ ํ์ฅ์ฑ, ๊ฐ์ฉ์ฑ, ๋ณด์ ๋ฐ ์ฑ๋ฅ์ด ์ฐ์ํ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง ์๋น์ค์ ๋๋ค.
- S3๋ ๋ฐ์ดํฐ ๋ ์ดํฌ, ์น ์ฌ์ดํธ, ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ , ๋ฐฑ์ ๋ฐ ๋ณต์, ์์นด์ด๋ธ, ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ , IoT ๋๋ฐ์ด์ค, ๋น ๋ฐ์ดํฐ ๋ถ์ ๋ฑ ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก์์ ์ํ๋ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ณดํธํ ์ ์์ต๋๋ค.
- Object(๊ฐ์ฒด)๋ S3์ ์ ์ฅ๋๋ ๋จ์๋ก Ojbect data(๋๋ value)์ metadata๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. metadata๋ ๊ฐ์ฒด๋ฅผ ์ค๋ช ํ๋ name-value์ ์งํฉ์ ๋๋ค.
- 1๊ฐ์ Object๋ ์ต๋ 5TB๊น์ง ๊ฐ๋ฅํฉ๋๋ค. Object๊ฐ 100MB๊ฐ ๋๋ ๊ฒฝ์ฐ Multipart upload ํ ๊ฒ์ ๊ถ์ฅํ๋ฉฐ 5GB ์ด์์ธ ๊ฒฝ์ฐ ๋ฐ๋์ Multipart upload๋ก ์ ๋ก๋ํด์ผ ํฉ๋๋ค.
- Bucket(๋ฒํท)์ Object๋ฅผ ์ ์ฅํ๋ ์ ์ฅ์๋ก ๋ฒํท์ ์ ์ฅํ ์ ์๋ Object ์์๋ ์ ํ์ด ์์ต๋๋ค.
- Bucket ์ด๋ฆ์ partition ๋ด์ ๋ชจ๋ AWS ๋ฆฌ์ ๊ณผ ๋ชจ๋ AWS ๊ณ์ ์์ ๊ณ ์ ํด์ผํฉ๋๋ค. partition์ AWS ๋ฆฌ์ ๊ทธ๋ฃน์ผ๋ก aws(ํ์ค ๋ฆฌ์ ), aws-cn(์ค๊ตญ ๋ฆฌ์ ), aws-us-gov(๋ฏธ๊ตญ ์ ๋ถ ๋ฆฌ์ ) 3๊ฐ์ ํํฐ์ ์ด ์์ต๋๋ค.
- ์ ์ ์น ์ฌ์ดํธ ํธ์คํ ์๋ง ์ฌ์ฉ๋๋ ๋ฒํท์ ์ ์ธํ๊ณ ๋ฒํท ์ด๋ฆ์ ์ (.)์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
- Object Key(๋๋ Key name)๋ ๊ฐ์ฒด์ ํ ๋นํ ์ด๋ฆ์ผ๋ก ๋ฒํท์์ ๊ฐ์ฒด๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ๋๋ฐ ์ฌ์ฉ๋๋ฉฐ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค.
- Object Key๋ Prefix(์ ๋์ฌ)์ Object ์ด๋ฆ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. Prefix๋ Object key์ ์์ ๋ถ๋ถ์ ์๋ ๋ฌธ์์ด์ ๋๋ค.
- S3์๋ ๊ณ์ธต ๊ตฌ์กฐ๊ฐ ์์ผ๋ ํค ์ด๋ฆ์ ์ ๋์ฌ์ ๊ตฌ๋ถ ๊ธฐํธ(’/’)๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ์์์ ๋ ผ๋ฆฌ์ ์ธ ๊ณ์ธต ๊ตฌ์กฐ(ํด๋ ๊ฐ๋ )๋ฅผ ๋์ ํ ์ ์์ต๋๋ค.
Object metadata
- Metadata๋ Object ๊ด๋ จ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํ name-value ์์ ์งํฉ์ ๋๋ค.
- Object์ metadata๋ system-defined metadata(์์คํ ์ ์ ๋ฉํ๋ฐ์ดํฐ)์ user-defined metadata(์ฌ์ฉ์ ์ ์ ๋ฉํ๋ฐ์ดํฐ)๋ผ๋ 2๊ฐ์ง ์ข ๋ฅ๊ฐ ์์ต๋๋ค.
- REST API๋ก ๊ฐ์ฒด๋ฅผ ์ ๋ก๋ ํ ๋ ์ฌ์ฉ์ ์ ์ ๋ฉํ๋ฐ์ดํฐ(user-defined metadata)์ ์ด๋ฆ์ ๋ค๋ฅธ HTTP ํค๋์ ๊ตฌ๋ถํ ์ ์๋๋ก x-amz-meta-๋ก ์์ํด์ผํฉ๋๋ค.
S3 Bucket Policy์ ACL
- S3๋ ์์ฒญ์ ๋ฐ์ผ๋ฉด ์์ฒญ์๊ฐ ํ์ํ ๊ถํ์ ๋ณด์ ํ๊ณ ์๋์ง ํ์ธํ๊ณ ๋ชจ๋ ์ก์ธ์ค ์ ์ฑ ๊ณผ User policy์ Resource-based policy๋ฅผ ํ๊ฐํ์ฌ ์น์ธ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
- Bucket policy๋ ๋ฒํท๊ณผ ๋ด๋ถ ๊ฐ์ฒด์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ ์ ์๋ ๋ฆฌ์์ค ๊ธฐ๋ฐ ์ ์ฑ (resource-based policy)์ ๋๋ค.
- Bucket Access control list๊ณผ Object Access control list๋ ๋ฒํท๊ณผ ๊ฐ์ฒด์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ๋ฆฌ์์ค ๊ธฐ๋ฐ ์ ์ฑ (resource-based policy)์ ๋๋ค.
- S3์ ์ต์ ์ฌ์ฉ ์ฌ๋ก์ ๋๋ถ๋ถ์์๋ ๋ ์ด์ ACL์ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค. ๊ฐ ๊ฐ์ฒด์ ๋ํด์ ์ก์ธ์ค๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ์ ์ดํ ํ์๊ฐ ์๋ ๋๋ฌธ ์ํฉ์ ์ ์ธํ๊ณ ๋ ACL์ ๋นํ์ฑํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
S3 Versioning
- S3 Versioning์ ๊ฐ์ ๋ฒํท ์์์ ์ฌ๋ฌ ๋ฒ์ ์ Object๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ key๋ก ๊ฐ์ฒด๋ฅผ ์ ๋ก๋ํ๋ฉด ํ์ผ์ ๋ฎ์ด์ฐ๋ ๊ฒ์ด ์๋๋ผ ๋ค๋ฅธ ๋ฒ์ ์ผ๋ก ๋ชจ๋ ๊ฐ์ฒด๊ฐ ์ ์ฅ๋ฉ๋๋ค.
- Versioning์ ์ฌ์ฉํ๋ฉด ์๋์น ์์ ์ญ์ ์ ๋์ํ ์ ์์ต๋๋ค. Versioning์ด ์ค์ ๋ ๋ฒํท์์ ์ด๋ค ๋ฒ์ ์ ๊ฐ์ฒด์ ์ญ์ ํ๋ฉด ๋จ์ง ์ญ์ ๋ง์ปค๋ฅผ ์ถ๊ฐ๋๋ ๊ฒ์ผ๋ก ์ญ์ ๋ง์ปค๊ฐ ํ์ฌ ๋ฒ์ ์ด ๋ฉ๋๋ค. ์ค์ ๋ก ์ญ์ ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ธ์ ๋ ์ง ์ด์ ๋ฒ์ ์ผ๋ก ๋ณต์ํ ์ ์์ต๋๋ค.
- Versioning์ ๋ฒํท ๋จ์๋ก ์ค์ ์ด ๊ฐ๋ฅํ๋ฉฐ Versioning์ ํ์ฑํํ๊ธฐ ์ด์ ์ ์ ์ฅ๋ ๊ฐ์ฒด์ ๋ฒ์ ์ null์ ๋๋ค.
- Versioning์ ๋นํ์ฑํํ์ฌ๋ ๊ธฐ์กด ๊ฐ์ฒด๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ์ดํ ์์ฒญ์ ๋ํด์ S3๊ฐ ๊ฐ์ฒด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ๋ง ๋ณ๊ฒฝ๋ฉ๋๋ค.
S3 Storage Class
- S3๋ ์ฑ๋ฅ, ๋น์ฉ ๋ฑ์ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ์ ํํ ์ ์๋ ๋ค์ํ Storage class๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์์ฃผ ์ก์ธ์คํ๋ ๊ฐ์ฒด๋ฅผ ์ํ ์คํ ๋ฆฌ์ง ํด๋์ค(S3 Standard๊ณผ S3 Express One Zone)์ ์์ฃผ ์ก์ธ์คํ์ง ์๋ ๊ฐ์ฒด๋ฅผ ์ํ ์คํ ๋ฆฌ์ง ํด๋์ค(S3 Standard-IA, S3 One Zone-IA), ๊ฐ์ฒด ์์นด์ด๋น์ ์ํ ์คํ ๋ฆฌ์ง ํด๋์ค(S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval ๋ฐ S3 Glacier Deep Archive), ์ก์ธ์ค ํจํด์ ์ ์ ์๋ ๊ฒฝ์ฐ ์๋์ผ๋ก ์ต์ ํํ๋ ์คํ ๋ฆฌ์ง ํด๋์ค(S3 Intelligent-Tiering)๊ฐ ์์ต๋๋ค.
- ๋ชจ๋ S3 Storage Class๋ 99.999999999%(11 nines) ๋ด๊ตฌ์ฑ์ ์ ๊ณตํ์ง๋ง ๋ณด๊ด๋๋ ๊ฐ์ฉ์์ญ ์ต์ ๋ณด๊ด ๊ธฐ๊ฐ ๋ฑ์ด ๋ฌ๋ผ์ง๋๋ค.
S3 RSS(Reduced Redundancy Storage)๋ 99.99% ๋ด๊ตฌ์ฑ์ ์ ๊ณตํ๊ณ ์ ๋ ดํ ์ต์ ์ ์ ๊ณตํ์ง๋ง ์ฌ์ฉํ์ง ์๋๊ฒ์ด ์ข์ต๋๋ค.
S3 Life Cycle
- Lifecycle์ ์ค์ ํ์ฌ ์๋ช ์ด ๋คํ ๊ฐ์ฒด๋ฅผ ์ญ์ (Expiration)ํ๊ฑฐ๋ ์ ๋ ดํ ์คํ ๋ฆฌ์ง๋ก ์ ํ(Transition)ํ์ฌ ๋น์ฉ ํจ์จ์ ์ผ๋ก ๊ฐ์ฒด๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค.
- Lifecycle์ Transition action(์ ํ ์์ )๊ณผ Expiration action(๋ง๋ฃ ์์ ) ์์ ์ ํ์ด ์์ต๋๋ค.
- Transition action(์ ํ ์์ )์ ์ ํด์ง ๊ธฐ๊ฐ์ด ์ง๋๋ฉด ๋ ์ ๋ ดํ ์คํ ๋ฆฌ์ง๋ก ์ ํํ๊ฑฐ๋ ์์นด์ด๋ธํฉ๋๋ค.
- Expiration action(๋ง๋ฃ ์์ )์ ์ ํด์ง ๊ธฐ๊ฐ์ด ์ง๋๋ฉด ๊ฐ์ฒด๋ฅผ ์๋์ผ๋ก ์ญ์ ํฉ๋๋ค.
- Key prefix(ํค ์ ๋์ฌ)์ Object tag(ํ๊ทธ)๋ฅผ ํ์ฉํ์ฌ ๋ฒํท ์ ์ฒด ๋๋ ํ์ ์งํฉ์ Lifecycle์ ์ ์ฉํ ์ ์์ต๋๋ค.
- Lifecycle์ ์ค์ ํ๊ณ ์ ์ฉํ๋ ๋ฐ๋ ์ถ๊ฐ ๋น์ฉ์ด ๋ค์ง ์์ต๋๋ค. ํ์ง๋ง ๊ฐ์ฒด๊ฐ Transition ๋๋ ๊ฒฝ์ฐ ๊ฐ์ฒด ๋ณ๋ก Lifecycle Transition request ๋น์ฉ์ด ๋ฐ์(Object PUT ๋น์ฉ๊ณผ ๋์ผ)ํฉ๋๋ค.
S3 Replication
- S3 Replication์ ํตํด ๊ฐ์ฒด๋ฅผ ๋น๋๊ธฐ์์ผ๋ก ์๋ ๋ณต์ฌํ ์ ์์ต๋๋ค. Source bucket(์์ค ๋ฒํท)๊ณผ Destination bucket(๋์ ๋ฒํท)์ ์์น์ ๋ฐ๋ผ Cross-Region Replication(CRR)๊ณผ Single-Region Replication(SRR)๋ก ๋๋ฉ๋๋ค.
- Destination bucket์ ๋์ผํ AWS ๊ณ์ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๊ณ์ ์๋ ์กด์ฌํ ์ ์์ต๋๋ค. 1๊ฐ์ Source ๋ฒํท์์ ์ฌ๋ฌ ๋์ ๋ฒํท์ ๋ณต์ ํ ์๋ ์์ต๋๋ค.
- ์์ค ๋ฒํท๊ณผ ๋์ ๋ฒํท ๋ชจ๋์์ Versioning์ ์ค์ ํด์ผํ๊ณ ์์ค ๋ฒํท์ S3 ๊ฐ์ฒด ์ ๊ธ์ด ์ค์ ๋์ด ์๋ ๊ฒฝ์ฐ์ ๋์ ๋ฒํท์๋ S3 ๊ฐ์ฒด ์ ๊ธ์ด ์ค์ ๋์ด ์์ด์ผ ํฉ๋๋ค.
- Replication๋ฅผ ์ค์ ํ๊ธฐ ์ ์ ์ ๋ก๋๋ ๊ฐ์ฒด๋ ์๋์ผ๋ก ๋ณต์ ๋์ง ์์ต๋๋ค. Replication๋ฅผ ์ค์ ํ๊ธฐ ์ ์ ์ ๋ก๋๋ ๊ฐ์ฒด๋ฅผ ๋ณต์ ํ๋ ค๋ฉด S3 Batch Replication๋ฅผ ์ฌ์ฉํด์ผํฉ๋๋ค.
- ์ฌ์ฉ์๊ฐ Source bucket์์ ๊ฐ์ฒด๋ฅผ ์ญ์ ํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก Source bucket์๋ง ์ญ์ ๋ง์ปค๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ญ์ ๋ง์ปค๋ฅผ ๋ณต์ ํ๊ธฐ ์ํด์๋ ์ถ๊ฐ์ ์ธ ์์(Filter)๋ฅผ ์ง์ ํด์ค์ผ ํฉ๋๋ค.
- ์ฌ์ฉ์๊ฐ Source bucket์์ ๋ฒ์ ID๋ฅผ ์ง์ ํ์ฌ ์ญ์ (์๊ตฌ์ ์ธ ์ญ์ )ํ๋ ๊ฒฝ์ฐ์ Destination bucket์ ๋ณต์ ๋ณธ์ ์ญ์ ๋์ง ์์ต๋๋ค.
- ๋ฒํท A๊ฐ ์์ค์ด๊ณ ๋ฒํท B๊ฐ ๋์์ธ Replication์ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ. ๋ฒํท B๊ฐ ์์ค์ด๊ณ ๋ฒํท C๊ฐ ๋์์ธ Replication์ ์ถ๊ฐ๋ก ๊ตฌ์ฑํ๋ค๊ณ ํ์๋ ๋ฒํท B์ ์กด์ฌํ๋ ๋ฒํท A์ ๋ณต์ Object๋ ๋ฒํท C์ ๋ณต์ ๋์ง ์์ต๋๋ค.
S3 Static Website Hosting
- S3๋ฅผ ์ฌ์ฉํด์ ์ ์ ์น ์ฌ์ดํธ๋ฅผ ํธ์คํ ํ ์ ์์ต๋๋ค. ์ ์ ์น ์ฌ์ดํธ๋ client-side ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
- ์น ํธ์คํ
์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ index document(์ธ๋ฑ์ค ๋ฌธ์)๋ฅผ ๊ตฌ์ฑํ๊ณ ์
๋ก๋ํด์ผํฉ๋๋ค.
index document๋ ์นํ์ด์ง์ home page์ด๊ฑฐ๋ default page(๊ธฐ๋ณธํ์ด์ง)์ ๋๋ค. - ์ธํฐ๋ท์ ๊ณต๊ฐ๋๋ ์ ์ ์น์ฌ์ดํธ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด์๋ ๋ฒํท์ ํผ๋ธ๋ฆญ ์ฝ๊ธฐ ๊ถํ์ ๋ถ์ฌํด์ผํฉ๋๋ค.
๋ฒํท์ ํผ๋ธ๋ฆญ ์ฝ๊ธฐ ๊ถํ์ ๋ถ์ฌํ์ง ์๊ณ ์น์ฌ์ดํธ๋ฅผ ์ธํฐ๋ท์ ๊ณต๊ฐํ๊ณ ์ถ๋ค๋ฉด CloudFront distribution๋ฅผ ์ด์ฉํ์ฌ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. - ๋ฆฌ์ ์ ๋ฐ๋ผ S3 ์น์ฌ์ดํธ ์๋ํฌ์ธํธ๋ http://bucket-name.s3-website-Region.amazonaws.com ๋๋ http://bucket-name.s3-website.Region.amazonaws.com๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฌํ URL์ index document๋ฅผ ๋ฐํํฉ๋๋ค.
- S3 ์น ์ฌ์ดํธ ์๋ํฌ์ธํธ๋ HTTPS๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. HTTPS๋ฅผ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ CloudFront๋ฅผ ์ถ๊ฐ๋ก ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
S3 Event Notifications
- S3 Event Notifications๋ฅผ ์ฌ์ฉํ๋ฉด S3 ๋ฒํท์ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ notification์ ๋ฐ์ ์ ์์ต๋๋ค.
- S3๋ SNS, SQS, Lambda, EventBridge๋ก notification์ ๋ณด๋ผ ์ ์์ต๋๋ค.
- SNS topic, SQS queue, Lambda function์ ์ฐ๊ฒฐ๋ IAM ์ ์ฑ ์ S3๊ฐ ์ด๋ฒคํธ๋ฅผ ์ ์กํ ์ ์๋๋ก ๊ถํ(Resource-based policies)์ ๋ถ์ฌํด์ผ ํฉ๋๋ค.
S3 Access Log
- S3 ๋ฒํท์ ์ ๋ฌ๋๋ ๋ชจ๋ ์์ฒญ์ ๋ํด Access Log๋ฅผ ์์ฑํ๋๋ก ๋ฒํท์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- Access Log๋ฅผ ํ์ฑํํ๋ฉด S3๋ Destination bucket(๋๋ target bucket)์ Source bucket์ ๋ํ Access Log๋ฅผ ์ ์กํฉ๋๋ค.
- Source bucket๊ณผ Destination bucket์ ๋์ผํ ๊ณ์ ์ ๋์ผํ ๋ฆฌ์ ์ ์กด์ฌํด์ผํฉ๋๋ค.
- Destination bucket์ Access Log๋ฅผ ํ์ฑํํ๋ฉด ์๋ฉ๋๋ค.
- Source bucket๊ณผ Destination bucket์ ๋์ผํ๊ฒ ์ค์ ํ๋ฉด ๋ฌดํ ๋ฃจํ๊ฐ ๋ฐ์ํ๋ฏ๋ก ๊ถ์ฅํ์ง ์์ต๋๋ค.
- Access Log๋ Best-effort์ ๊ธฐ๋ฐํ์ฌ ํญ์ ๋ชจ๋ ๋ ์ฝ๋๊ฐ ์ ์ก๋๋ค๊ณ ๋ณด์ฅํ ์๋ ์์ต๋๋ค.
S3 Presigned URL
- Presigned URL(๋ฏธ๋ฆฌ ์๋ช ๋ URL)์ ์ฌ์ฉํ๋ฉด ๋ฒํท์ ์ ์ฑ ์ ์ ๋ฐ์ดํธํ์ง ์์๋ ๊ฐ์ฒด๋ฅผ ๋ค์ด๋ก๋ํ๊ฑฐ๋ ์ ๋ก๋ํ๋๋ก ํ์ฉํ ์ ์์ต๋๋ค.
- Presigned URL์ URL์ ์์ฑํ ์ ์ ์ ๊ถํ์ ์ฌ์ฉํ๊ฒ ๋๋ฉฐ ๋ง๋ฃ ์๊ฐ๊น์ง ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํ ์์์ต๋๋ค.
S3 CORS
- Cross-Site Request Forgery(CSRF)๋ ํด๋ผ์ด์ธํธ์ ๋ธ๋ผ์ฐ์ ์์ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๊ฐ์ง ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ ์กํ๋๋ก ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ฑฐ์ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ๋์ผ ์ค๋ฆฌ์ง ์ ์ฑ (Same-origin policy)์ ๊ฐ์ ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด “http://store.aws.com/dir/page.html”๊ณผ "http://store.aws.com/dir2/new.html”๋ ๊ฐ์ origin์ด๊ณ ,
”http://store.aws.com/dir/page.html”๊ณผ “https://store.aws.com/page.html”๋ ํ๋กํ ์ฝ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ origin์ ๋๋ค.
๋ํ "http://store.aws.com/dir/page.html”๊ณผ “http://news.aws.com/dir/page.html” ๋ ํธ์คํธ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ origin์ ๋๋ค. - Same-origin policy๋ ๋งค์ฐ ์์ ํ์ง๋ง ์ค์ ์ฌ์ฉ ์ฌ๋ก์์๋ ์ ์ฐํ์ง ๋ชปํฉ๋๋ค. CORS๋ Same-origin policy๋ฅผ ํ์ฅํ ๊ฒ์ผ๋ก ๋ค๋ฅธ ์ค๋ฆฌ์ง(์ธ๋ถ)์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ ๊ฒฝ์ฐ CORS๊ฐ ํ์ํฉ๋๋ค.
- S3์์ CORS๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์ํ ํด๋ผ์ด์ธํธ ์ธก ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ณ , S3 ๋ฆฌ์์ค์ ๋ํ Cross-Origin ์ก์ธ์ค๋ฅผ ์ ํ์ ์ผ๋ก ํ์ฉํ ์ ์์ต๋๋ค.
- S3 CORS configuration์๋ ๋ฒํท ์ก์ธ์ค๋ฅผ ํ์ฉํ ์ค๋ฆฌ์ง, HTTP ๋ฉ์๋ ๋ฑ์ด ํฌํจ๋ฉ๋๋ค.
S3 Encryption
- S3์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๋ ๋ฐฉ๋ฒ์๋ Server-side encryption(์๋ฒ ์ธก ์ํธํ)์ Client-side encryption(ํด๋ผ์ด์ธํธ ์ธก ์ํธํ)๊ฐ ์์ต๋๋ค.
- ์๋ฒ ์ธก ์ํธํ๋ AWS ๋ฐ์ดํฐ ์ผํฐ์ ๋์คํฌ์ ์ ์ฅ๋๊ธฐ ์ ์ S3๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ ๋ ๋ณตํธํํฉ๋๋ค.
- ๋์ผํ ๊ฐ์ฒด์ ์๋ก ๋ค๋ฅธ ์๋ฒ ์ธก ์ํธํ ์ ํ์ ๋์์ ์ ์ฉํ ์๋ ์์ต๋๋ค.
- ํด๋ผ์ด์ธํธ ์ธก ์ํธํ๋ S3์ ์ ๋ก๋ํ๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ์ ๋ก๋ํ๋ ๋ฐฉ์์ ๋๋ค. ์ด ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์ํธํ ํ๋ก์ธ์ค์ ํค๋ฅผ ๊ด๋ฆฌํด์ผํฉ๋๋ค.
- ์๋ฒ ์ธก ์ํธํ๋ Server-side encryption with Amazon S3 managed keys(SSE-S3), Server-side encryption with AWS KMS keys(SSE-KMS), Dual-layer server-side encryption with AWS KMS keys(DSSE-KMS), Server-side encryption with customer-provided keys(SSE-C) 4๊ฐ์ง ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
- SSE-S3๋ S3์ ๊ธฐ๋ณธ ์ํธํ ๋ฐฉ์์ผ๋ก ์ํธํ ๋ฐฉ์์ ์ง์ ํ์ง ์์ผ๋ฉด ์๋์ผ๋ก ์ ์ฉ๋๋ฉฐ ์ํธํํค๋ S3๊ฐ ๊ด๋ฆฌํฉ๋๋ค.
- SSE-KMS๋ KMS๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํํ๋ ๋ฐฉ์์ผ๋ก AWS managed key ๋๋ customer managed key๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- DSSE-KMS๋ KMS๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๊ณ์ธต ์ํธํ๋ฅผ ์ ์ฉํ๋ ๋ฐฉ์์ผ๋ก ๋ณต์กํ ์ปดํ๋ผ์ด์ธ์ค๋ฅผ ์ฝ๊ฒ ์ค์ํ ์ ์์ต๋๋ค.
- SSE-C๋ ๊ณ ๊ฐ์ด ์ ๊ณตํ ํค(customer-provided keys)๋ก ์ํธํํ๋ ๋ฐฉ์์ผ๋ก S3๋ ๊ณ ๊ฐ์ด ์ํธํ์ ์ฌ์ฉํ ํค๋ ์ ์ฅํ์ง ์๊ณ Hash-based Message Authentication Code(HMAC)๋ก ๊ฒ์ฆํฉ๋๋ค.
S3 Performance
- S3๋ ์์ฒญ ๋น๋์ ๋ฐ๋ผ ์๋์ผ๋ก ํ์ฅ๋ฉ๋๋ค. S3๊ฐ ์์ฒญ ๋น๋์ ๋ฐ๋ผ ํ์ฅ๋๋ ๋์ 503 ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ ํฌ๊ธฐ ์กฐ์ (scaling)์ด ์๋ฃ๋๋ฉด ์ฌ๋ผ์ง๋๋ค.
- ๋ฒํท์ prefix๋ง๋ค ์ด๋น ์ต์ ์ 3,500๊ฐ์ PUT/COPY/POST/DELETE ๋๋ 5,500๊ฐ์ GET/HEAD ์์ฒญ์ ๋ฌ์ฑํ ์ ์์ต๋๋ค. ๋ฒํท์ prefix 10๊ฐ๋ฅผ ๋ง๋ค์ด ๋ณ๋ ฌํํ๋ ๊ฒฝ์ฐ ์ด๋น ์ฝ๊ธฐ ์ฑ๋ฅ์ 55,000๊ฐ๋ก ์กฐ์ ํ ์ ์์ต๋๋ค.
S3 Select
- S3 Select๋ ๊ฐ์ฒด์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค์ง ์๊ณ SQL ์ฟผ๋ฆฌ๋ก ์ํ๋ ๋ฐ์ดํฐ๋ง ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- S3 Select๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด ์์ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋ง(์ฟผ๋ฆฌ)ํ๋ฉด S3๊ฐ ์ ์กํ๋ ๋ฐ์ดํฐ ์์ ์ค์ด๊ณ ๊ฒ์ํ๋๋ฐ ๋๋ ๋น์ฉ๊ณผ ์ง์ฐ ์๊ฐ์ด ์ค์ด๋ญ๋๋ค.
- S3 Select์ ํ ๋ฒ์ ํ๋์ ๊ฐ์ฒด๋ง ์ฟผ๋ฆฌํ ์ ์์ผ๋ฉฐ CSV, JSON ๋๋ Apache Parquet ํ์์ผ๋ก ์ ์ฅ๋ ๊ฐ์ฒด์ ์๋ํฉ๋๋ค.
S3 Access Point
- S3 access point๋ bucket์ ์ฐ๊ฒฐ๋ ๋คํธ์ํฌ ์๋ํฌ์ธํธ๋ก S3 ๊ฐ์ฒด์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ๊ฐ์ํํฉ๋๋ค.
- ๊ฐ S3 access point๋ 1๊ฐ์ bucket์ด ์ฐ๊ฒฐ๋๊ณ Access point policy๊ฐ ์ ์ฉ๋ฉ๋๋ค.
- bucket์ ์ด๋ฆ๊ณผ account id๋ฅผ ์ฌ์ฉํด์ cross account access point๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
S3 Object Lambda
- S3 Object Lambda๋ S3๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๊ธฐ ์ ์ ์์ฒด ์ฝ๋๋ฅผ ์ถ๊ฐํ์ฌ ์ฒ๋ฆฌํ ์ ์๋ ๊ธฐ๋ฅ์ ๋๋ค.
- Lambda ํจ์๋ ํ์ค S3 GET, LIST, HEAD ์์ฒญ์ ์ธ๋ผ์ธ์ผ๋ก ํธ์ถ๋๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค.
- Lambda ํจ์๋ฅผ ๊ตฌ์ฑํ ํ S3 Object Lambda Access Point์ ์ฐ๊ฒฐํฉ๋๋ค. Object Lambda Access Point๋ Supporting Access Point๋ผ๊ณ ๋ถ๋ฆฌ๋ S3 Access Point๋ฅผ ์ฌ์ฉํ์ฌ S3์ ์ก์ธ์คํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ ์ถ์ ๋ง๊ธฐ ์ํด ์ฌ์ฉ์๋ง๋ค ๋ค๋ฅธ ์ํฐ๋งํฌ๋ฅผ ๋ฃ๋ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๊ธฐ ์ ์ ๋ฏผ๊ฐ ์ ๋ณด๊ฐ ์๋์ง ์ค์บํ๋ ๊ฒฝ์ฐ, ๋ง์ผํ ์ ํ์ฉ๋๋ ๋ฐ์ดํฐ์ ์ถ๊ฐ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณด๊ฐํ๋ ๊ฒฝ์ฐ ๋ฑ์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
S3 MFA Delete
- S3 ๋ฒํท์ Versioning์ด ํ์ฑํ๋ ๊ฒฝ์ฐ MFA Delete๋ฅผ ์ค์ ํ์ฌ ์ถ๊ฐ์ ์ธ ๋ณด์ ์ค์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
- MFA Delete๋ ๊ฐ์ฒด ๋ฒ์ ์ ์๊ตฌ์ ์ธ ์ญ์ , ๋ฒํท์ ๋ฒ์ ๊ด๋ฆฌ ์ํ ๋ณ๊ฒฝ์ ๋ํด ์ถ๊ฐ์ ์ธ ์ธ์ฆ์ ์๊ตฌํฉ๋๋ค.
๋ฐ์ํ
'๐ AWS > AWS Developer - Associate' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS] Developer Associate #8 ๋ฉ์ธ์ง(SQS, SNS) (0) | 2024.09.22 |
---|---|
[AWS] Developer Associate #7 CloudFront (0) | 2024.08.03 |
[AWS] Developer Associate #5 ElastiCache (0) | 2024.05.24 |
[AWS] Developer Associate #4 ์ปจํ ์ด๋(ECR, ECS, EKS) (0) | 2024.05.12 |
[AWS] Developer Associate #3 Elastic Load Balancing(ELB) (0) | 2024.04.14 |