๐ชฃ Amazon S3 (Simple Storage Service)
AWS์ ํต์ฌ ๋น๋ฉ ๋ธ๋ก โ โ๋ฌดํํ ํ์ฅ ๊ฐ๋ฅํโ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง
๋ด๊ตฌ์ฑ 99.999999999%(11 9โs), ์ํ ์ ์์ญ์์ ๊ณ ๋น๋ ์ถ์
๋ชฉ์ฐจ
- S3 ๊ธฐ๋ณธ ๊ฐ๋
- S3 ๋ณด์ (Security) ๊ฐ์
- ์ ์ ์น์ฌ์ดํธ ํธ์คํ (Static Website Hosting)
- ๋ฒ์ ๋ (Versioning)
- ๋ณต์ (Replication)
- ์คํ ๋ฆฌ์ง ํด๋์ค (Storage Classes)
- S3 Lifecycle
- ์ฑ๋ฅ (Performance)
- S3 Batch Operations
- S3 Event Notifications
- S3 Analytics - Storage Class Analysis
- S3 Storage Lens
- Requester Pays
- ํต์ฌ ์์ฝ & ์ํ ํฌ์ธํธ
- ์ฐธ๊ณ ์๋ฃ
1. S3 ๊ธฐ๋ณธ ๊ฐ๋
๐ชฃ ๋ฒํท (Buckets)
- ๊ฐ์ฒด(ํ์ผ)๋ฅผ ์ ์ฅํ๋ ์ปจํ ์ด๋ (= ๋๋ ํฐ๋ฆฌ)
- ๋ฒํท ์ด๋ฆ์ ์ ์ธ๊ณ ๋ชจ๋ ๊ณ์ ์์ ๊ณ ์ (Globally Unique Name)
- ๋ฒํท์ ๋ฆฌ์ (Region) ๋ ๋ฒจ์์ ์์ฑ๋จ โ ๊ธ๋ก๋ฒ ์๋น์ค์ฒ๋ผ ๋ณด์ด์ง๋ง ์ค์ ๋ ๋ฆฌ์ ๋ณ
๋ฒํท ์ด๋ฆ ๊ท์น:
- ์๋ฌธ์, ์ซ์, ํ์ดํ๋ง ์ฌ์ฉ
- 3~63์
- IP ์ฃผ์ ํํ ๋ถ๊ฐ
- ์๋ฌธ์ ๋๋ ์ซ์๋ก ์์
xn--์ ๋์ฌ ๋ถ๊ฐ,s3alias์ ๋ฏธ์ฌ ๋ถ๊ฐ
๐ ๊ฐ์ฒด (Objects)
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| ํค (Key) | ๊ฐ์ฒด์ ์ ์ฒด ๊ฒฝ๋ก (prefix + ๊ฐ์ฒด๋ช ) |
| ์ต๋ ๊ฐ์ฒด ํฌ๊ธฐ | 5TB |
| 5GB ์ด๊ณผ ์ ๋ก๋ | ๋ฉํฐํํธ ์ ๋ก๋ (Multi-part Upload) ํ์ |
| ๋ฉํ๋ฐ์ดํฐ | ํ ์คํธ ํค/๊ฐ ์ (์์คํ ๋๋ ์ฌ์ฉ์ ์ ์) |
| ํ๊ทธ (Tags) | ์ ๋์ฝ๋ ํค/๊ฐ ์, ์ต๋ 10๊ฐ (๋ณด์/๋ผ์ดํ์ฌ์ดํด ํ์ฉ) |
| Version ID | ๋ฒ์ ๋ ํ์ฑํ ์ ๋ถ์ฌ |
s3://my-bucket/images/2025/photo.jpg โโโโโโprefixโโโโโโโโโnameโโNOTEโ ๏ธ S3์๋ ์ค์ โ๋๋ ํฐ๋ฆฌโ ๊ฐ๋ ์ด ์์ โ ํค์ ์ฌ๋์(/)๊ฐ ๊ตฌ์กฐ์ฒ๋ผ ๋ณด์ด๊ฒ ํ๋ ๊ฒ๋ฟ.
๐ฏ ์ฃผ์ Use Cases
๋ฐฑ์
/์คํ ๋ฆฌ์ง, ์ฌํด ๋ณต๊ตฌ(DR), ์์นด์ด๋ธ, ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง,์ ํ๋ฆฌ์ผ์ด์
ํธ์คํ
, ๋ฏธ๋์ด ํธ์คํ
, ๋ฐ์ดํฐ ๋ ์ดํฌ/๋น
๋ฐ์ดํฐ ๋ถ์,์ํํธ์จ์ด ๋ฐฐํฌ, ์ ์ ์น์ฌ์ดํธ2. S3 ๋ณด์ (Security) ๊ฐ์
๐ ์์ธ ๋ด์ฉ์ ๋ณ๋ ํ์ผ ์ฐธ๊ณ :
AWS_S3_Security_Notes.md(Encryption, Access Points, Object Lambda, MFA Delete, Object Lock, CORS, Pre-signed URL, Access Logs ํฌํจ)
๋ณด์ ์ ์ฑ ๊ณ์ธต
| ๋ ์ด์ด | ์ข ๋ฅ | ์ค๋ช |
|---|---|---|
| User-based | IAM Policies | ํน์ IAM User/Role์ API ํ์ฉ ์ ์ |
| Resource-based | Bucket Policy | Bucket-wide JSON ์ ์ฑ , Cross-Account ๊ฐ๋ฅ |
| Resource-based | Object/Bucket ACL | ์ธ๋ฐํ ๊ฐ์ฒด ๋จ์ ์ ์ด (๋นํ์ฑํ ๊ฐ๋ฅ) |
| ๊ณ์ ๋ ๋ฒจ | Block Public Access | ์ ์ฒด ๊ณ์ ๋๋ ๋ฒํท ๋จ์ Public ์ฐจ๋จ |
์ ๊ทผ ํ์ฉ ์กฐ๊ฑด (IAM Principal์ด S3 ๊ฐ์ฒด์ ์ ๊ทผํ๋ ค๋ฉด):
(IAM ๊ถํ ALLOW OR Resource Policy ALLOW) AND ๋ช
์์ DENY ์์Bucket Policy ํต์ฌ ํ์ฉ
{ "Version": "2012-10-17", "Statement": [{ "Sid": "PublicRead", "Effect": "Allow", "Principal": "*", "Action": ["s3:GetObject"], "Resource": ["arn:aws:s3:::examplebucket/*"] }]}- Public read ํ์ฉ (์ ์ ์น์ฌ์ดํธ)
- Upload ์ Encryption ๊ฐ์
- Cross-Account ์ ๊ทผ ํ์ฉ
aws:PrincipalOrgID์กฐ๊ฑด์ผ๋ก AWS Organizations ๋จ์ ์ ๊ทผ ์ ์ด
Block Public Access
- ๊ธฐ๋ณธ๊ฐ: ๋ชจ๋ Public ์ ๊ทผ ์ฐจ๋จ (๋ฐ์ดํฐ ์ ์ถ ๋ฐฉ์ง)
- ๊ณ์ ๋ ๋ฒจ ์ค์ ๊ฐ๋ฅ โ ์ ์ฒด ๊ณ์ Bucket ์ผ๊ด ์ฐจ๋จ
- ์ ์ ์น์ฌ์ดํธ ๊ณต๊ฐ ์ ๋ฐ๋์ ๋นํ์ฑํ + Bucket Policy ํ์ฉ ๋ ๋ค ํ์
3. ์ ์ ์น์ฌ์ดํธ ํธ์คํ (Static Website Hosting)
- S3๋ก ์ ์ HTML/CSS/JS ์น์ฌ์ดํธ ํธ์คํ ๊ฐ๋ฅ
- URL ํ์:
http://bucket-name.s3-website-{region}.amazonaws.comhttp://bucket-name.s3-website.{region}.amazonaws.com
์ค์ ์ฒดํฌ๋ฆฌ์คํธ:
โ
Static Website Hosting ํ์ฑํโ
Block Public Access ๋นํ์ฑํโ
Bucket Policy์์ s3:GetObject ํ์ฉ (Principal: *)โ
index.html ์ง์ ๐ก 403 Forbidden ์ค๋ฅ: Bucket Policy๊ฐ Public read๋ฅผ ํ์ฉํ์ง ์๋ ๊ฒ. CloudFront + OAC(Origin Access Control)๋ฅผ ์ฌ์ฉํ๋ฉด S3๋ฅผ Public์ผ๋ก ์ด์ง ์๊ณ ๋ ์น์ฌ์ดํธ ์๋น์ค ๊ฐ๋ฅ.
4. ๋ฒ์ ๋ (Versioning)
- ๋ฒํท ๋ ๋ฒจ์์ ํ์ฑํ โ ๊ฐ์ฒด ๋จ์ ํ์ฑํ ๋ถ๊ฐ
- ๊ฐ์ ํค๋ก ์ ๋ก๋ ์ ๋ฒ์ ๋ฒํธ๊ฐ ์ฆ๊ฐ (1, 2, 3โฆ)
- ์ค์ ์ญ์ ๋ฐฉ์ง + ์ด์ ๋ฒ์ ๋กค๋ฐฑ ๊ฐ๋ฅ
| ์ํฉ | ๋์ |
|---|---|
| ๋ฒ์ ๋ ํ์ฑํ ์ ํ์ผ | ๋ฒ์ ID = null |
| ๋ฒ์ ๋ ๋นํ์ฑํ(Suspend) | ๊ธฐ์กด ๋ฒ์ ์ญ์ ๋์ง ์์ โ ์ ๊ท ์ ๋ก๋๋ง ๋ฒ์ ์์ |
| ํ์ผ ์ญ์ ์ | ์ค์ ์ญ์ ์๋ Delete Marker(์ญ์ ๋ง์ปค) ์ถ๊ฐ |
| Delete Marker ์ญ์ ์ | ํ์ผ ๋ณต์๋จ |
๋ฒ์ 1 โ ๋ฒ์ 2 โ ๋ฒ์ 3 (ํ์ฌ) โ ์ญ์ โผ [Delete Marker] โ ํ์ผ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ Delete Marker ์ญ์ โ ๋ฒ์ 3 ๋ณต์TIP๐ ๋ณต์ (Replication) ์ฌ์ฉ ์: ๋ฒ์ ๋์ด ์์ค/๋์ ๋ฒํท ๋ชจ๋์์ ํ์
5. ๋ณต์ (Replication)
์ข ๋ฅ
| ์ ํ | ์ค๋ช | ์ฃผ์ Use Case |
|---|---|---|
| CRR (Cross-Region Replication) | ๋ค๋ฅธ ๋ฆฌ์ ์ผ๋ก ๋ณต์ | ๊ท์ ์ค์, ์ง์ฐ ์๊ฐ ๊ฐ์, ๊ณ์ ๊ฐ ๋ณต์ |
| SRR (Same-Region Replication) | ๊ฐ์ ๋ฆฌ์ ๋ด ๋ณต์ | ๋ก๊ทธ ์ง๊ณ, ์ด์/ํ ์คํธ ๊ณ์ ๊ฐ ์ค์๊ฐ ๋๊ธฐํ |
์ฃผ์ ํน์ฑ
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| ์ฌ์ ์๊ฑด | ์์ค + ๋์ ๋ฒํท ๋ชจ๋ ๋ฒ์ ๋ ํ์ฑํ ํ์ |
| ๋ณต์ ๋ฐฉ์ | ๋น๋๊ธฐ (Asynchronous) |
| ๊ณ์ | ์๋ก ๋ค๋ฅธ AWS ๊ณ์ ๊ฐ ๋ณต์ ๊ฐ๋ฅ |
| IAM | S3์ ์ ์ ํ IAM ๊ถํ ๋ถ์ฌ ํ์ |
| ๊ธฐ์กด ๊ฐ์ฒด | ๋ณต์ ํ์ฑํ ํ ์ ๊ฐ์ฒด๋ง ์๋ ๋ณต์ |
| ๊ธฐ์กด ๊ฐ์ฒด ๋ณต์ | S3 Batch Replication ์ฌ์ฉ (์คํจ ๊ฐ์ฒด ์ฌ์๋๋ ๊ฐ๋ฅ) |
์ญ์ ๋์
Delete Marker ๋ณต์ : ์ ํ์ ์ค์ (๊ธฐ๋ณธ๊ฐ: ๋ณต์ ์ ํจ)Version ID ํฌํจ ์ญ์ : ๋ณต์ ์ ํจ (์
์์ ์ญ์ ๋ฐฉ์ง)โ ๏ธ ์ฒด์ด๋ ์์
๋ฒํท 1 โ (๋ณต์ ) โ ๋ฒํท 2 โ (๋ณต์ ) โ ๋ฒํท 3
๋ฒํท 1์ ๊ฐ์ฒด๋ ๋ฒํท 2์๋ง ๋ณต์ ๋จ๋ฒํท 3์๋ ์๋ ๋ณต์ ์ ๋จ (No "chaining" of replication)6. ์คํ ๋ฆฌ์ง ํด๋์ค (Storage Classes)
๐ ์ ์ฒด ๋น๊ตํ
| ์คํ ๋ฆฌ์ง ํด๋์ค | ๊ฐ์ฉ์ฑ | ๋ด๊ตฌ์ฑ | AZ ์ | ๊ฒ์ ์๊ฐ | ์ต์ ๋ณด์กด ๊ธฐ๊ฐ | ์ฃผ์ Use Case |
|---|---|---|---|---|---|---|
| S3 Standard | 99.99% | 11 9โs | โฅ3 | ์ฆ์ | ์์ | ์์ฃผ ์ ๊ทผํ๋ ๋ฐ์ดํฐ |
| S3 Standard-IA | 99.9% | 11 9โs | โฅ3 | ์ฆ์ | 30์ผ | ๋น์ ๊ธฐ ์ ๊ทผ, ๋น ๋ฅธ ์กฐํ ํ์ |
| S3 One Zone-IA | 99.5% | 11 9โs | 1 | ์ฆ์ | 30์ผ | ์ฌ์์ฑ ๊ฐ๋ฅํ ๋ณด์กฐ ๋ฐฑ์ |
| S3 Glacier Instant Retrieval | 99.9% | 11 9โs | โฅ3 | ๋ฐ๋ฆฌ์ด | 90์ผ | ๋ถ๊ธฐ๋ณ ์ ๊ทผ, ์ฆ๊ฐ ๋ณต์ |
| S3 Glacier Flexible Retrieval | 99.99% | 11 9โs | โฅ3 | ๋ถ~์๊ฐ | 90์ผ | ๋ฐฑ์ , ์์นด์ด๋ธ |
| S3 Glacier Deep Archive | 99.99% | 11 9โs | โฅ3 | 12~48์๊ฐ | 180์ผ | ์ฅ๊ธฐ ๋ณด๊ด, ์ต์ ๋น์ฉ |
| S3 Intelligent-Tiering | 99.9% | 11 9โs | โฅ3 | ์๋ | ์์ | ์ ๊ทผ ํจํด ์์ธก ๋ถ๊ฐ |
| S3 Express One Zone | 99.95% | ๋์ | 1 | ๋จ์ผ ์๋ฆฟ์ ms | ์์ | ์ด์ ์ง์ฐ, AI/ML |
ํด๋์ค๋ณ ์์ธ
S3 Standard (๋ฒ์ฉ)
- ์์ฃผ ์ ๊ทผํ๋ ๋ฐ์ดํฐ, ๋ฎ์ ์ง์ฐ + ๋์ ์ฒ๋ฆฌ๋
- ๋์ 2๊ฐ ์์ค ์ฅ์ ํ์ฉ (๋ด๊ฒฐํจ์ฑ)
- Use Case: ๋น ๋ฐ์ดํฐ, ๋ชจ๋ฐ์ผ/๊ฒ์, ์ฝํ ์ธ ๋ฐฐํฌ
S3 Standard-IA / S3 One Zone-IA (๋น์ ๊ธฐ ์ ๊ทผ)
- Standard๋ณด๋ค ์ ๋ ดํ๋ ๊ฒ์ ์ ์๊ธ ๋ฐ์
- One Zone-IA: ๋จ์ผ AZ โ AZ ํ๊ดด ์ ๋ฐ์ดํฐ ์์ค, ์ฌ์์ฑ ๊ฐ๋ฅ ๋ฐ์ดํฐ์๋ง
- Use Case: Standard-IA โ DR/๋ฐฑ์ , One Zone-IA โ ์จํ๋ ๋ฏธ์ค ๋ณด์กฐ ๋ฐฑ์ , ์ฌ์์ฑ ๊ฐ๋ฅ ๋ฐ์ดํฐ
S3 Glacier (์์นด์ด๋ธ 3์ข )
| Glacier ์ ํ | ๊ฒ์ ์ต์ | ๊ฒ์ ์๊ฐ | ์ต์ ๋ณด์กด |
|---|---|---|---|
| Glacier Instant | - | ๋ฐ๋ฆฌ์ด | 90์ผ |
| Glacier Flexible | Expedited (๊ธด๊ธ) | 1~5๋ถ | 90์ผ |
| Standard (ํ์ค) | 3~5์๊ฐ | ||
| Bulk (๋๋) | 5~12์๊ฐ (๋ฌด๋ฃ) | ||
| Glacier Deep Archive | Standard | 12์๊ฐ | 180์ผ |
| Bulk | 48์๊ฐ |
S3 Intelligent-Tiering (์๋ ๊ณ์ธต ์ด๋)
- ์๋ณ ์์ก ๋ชจ๋ํฐ๋ง + ์๋ ๊ณ์ธตํ ์์๋ฃ ๋ฐ์
- ๊ฒ์ ์๊ธ ์์ (Intelligent-Tiering์ ํต์ฌ ์ฅ์ )
- ์ ๊ทผ ํจํด์ ๋ฐ๋ผ ์๋ ์ด๋:
Frequent Access (๊ธฐ๋ณธ) โ ์๋Infrequent Access โ 30์ผ ๋ฏธ์ ๊ทผ ์ ์๋ ์ด๋Archive Instant Access โ 90์ผ ๋ฏธ์ ๊ทผ ์ ์๋ ์ด๋Archive Access (์ ํ, ์ค์ ํ์) โ 90~700์ผDeep Archive Access (์ ํ) โ 180~700์ผS3 Express One Zone (์ ๊ท, 2023)
- ๋จ์ผ AZ ๋ด Directory Bucket์ ์ ์ฅ
- ๋จ์ผ ์๋ฆฟ์ ๋ฐ๋ฆฌ์ด (single-digit millisecond) ์ง์ฐ ์๊ฐ
- S3 Standard ๋๋น ์ต๋ 10๋ฐฐ ์ฑ๋ฅ, ๋น์ฉ 50% ์ ๊ฐ
- SageMaker, Athena, EMR, Glue์ ์ต์ ํตํฉ
- Use Case: AI/ML ํ๋ จ, ๊ธ์ต ๋ชจ๋ธ๋ง, HPC, ๋ฏธ๋์ด ์ฒ๋ฆฌ
7. S3 Lifecycle
๊ฐ์
- Lifecycle Rules๋ฅผ ์ฌ์ฉํด ๊ฐ์ฒด๋ฅผ ์๋์ผ๋ก ๋ค๋ฅธ Storage Class๋ก ์ ํํ๊ฑฐ๋ ์ญ์
- ๋น์ฉ ์ต์ ํ์ ํต์ฌ ๊ธฐ๋ฅ โ ์ํ์์ โ๊ฐ์ฅ ๋น์ฉ ํจ์จ์ ์ธ ์คํ ๋ฆฌ์ง ์ ๋ตโ ๋ฌธ์ ์ ์ ๋ต
[Standard] โ(30์ผ)โ [Standard-IA] โ(60์ผ)โ [Glacier Flexible] โ(365์ผ)โ ์ญ์ Lifecycle Rule ์ข ๋ฅ
| ๊ท์น ์ ํ | ์ค๋ช | ์์ |
|---|---|---|
| Transition Actions | ํน์ ์๊ฐ ํ ๋ค๋ฅธ Storage Class๋ก ์ด๋ | ์์ฑ 60์ผ ํ Standard-IA๋ก ์ด๋ |
| Expiration Actions | ํน์ ์๊ฐ ํ ๊ฐ์ฒด ์ญ์ (๋ง๋ฃ) | 365์ผ ํ ๋ก๊ทธ ํ์ผ ์ญ์ |
Transition Actions (์ ํ ๊ท์น)
Standard โ Standard-IA โ Glacier Instant โ Glacier Flexible โ Deep Archive โ โ ์ต์ 30์ผ ์ต์ 90์ผ Standard ์ดํ IA ์ดํ- ์ ํ ๋ฐฉํฅ: ํญ์ ์๋ ๋ฑ๊ธ์ผ๋ก๋ง ๊ฐ๋ฅ (์์ ํด๋์ค๋ก ๋๋์๊ฐ์ง ์์)
- ๊ฐ Storage Class๋ก ์ ํ๋๊ธฐ๊น์ง ์ต์ ๋ณด์กด ๊ธฐ๊ฐ ์ถฉ์กฑ ํ์
Expiration Actions (๋ง๋ฃ ๊ท์น)
| ํ์ฉ | ์ค๋ช |
|---|---|
| ์ค๋๋ ๊ฐ์ฒด ์ญ์ | Access log ํ์ผ 365์ผ ํ ์๋ ์ญ์ |
| ์ด์ ๋ฒ์ ์ญ์ | Versioning ํ์ฑํ ์ non-current version ์ญ์ |
| ๋ถ์์ ํ Multipart Upload ์ญ์ | ์ผ์ ๊ธฐ๊ฐ ์๋ฃ๋์ง ์์ Part ์ ๋ฆฌ |
| Expired Delete Marker ์ญ์ | ๋ถํ์ํ Delete Marker ์๋ ์ ๋ฆฌ |
Rule ์ ์ฉ ๋ฒ์
- Prefix ๊ธฐ๋ฐ: ํน์ ๊ฒฝ๋ก์๋ง ์ ์ฉ (์:
s3://mybucket/logs/*) - Tag ๊ธฐ๋ฐ: ํน์ Tag๊ฐ ์๋ ๊ฐ์ฒด์๋ง ์ ์ฉ (์:
Department:Finance)
์ํ ์๋๋ฆฌ์ค ์์
Q: 6๊ฐ์๊ฐ ์์ฃผ ์ ๊ทผ, ์ดํ 1๋ ๊ฐ ๊ฐ๋ ์ ๊ทผ, ๊ทธ ์ดํ ๋ณด๊ด์ด ํ์ํ ๋ฐ์ดํฐ์ ๋น์ฉ ์ต์ ํ ๋ฐฉ๋ฒ์?
์์ฑ ํ 0~6๊ฐ์: S3 Standard โ Lifecycle Rule: 180์ผ ํ ์ ํ6๊ฐ์~1.5๋
: S3 Standard-IA โ Lifecycle Rule: 365์ผ ํ ์ ํ1.5๋
์ดํ: S3 Glacier Flexible Retrieval8. ์ฑ๋ฅ (Performance)
๐ข S3 Baseline Performance (๊ธฐ์ค ์ฑ๋ฅ ์์น)
๐ ์ํ ํต์ฌ ์์น โ ์์ฃผ ์ถ์ ๋จ
- S3๋ ๋์ ์์ฒญ ์๋์ ์๋์ผ๋ก ์ค์ผ์ผ๋ง (์ง์ฐ ์๊ฐ 100~200ms)
- Prefix๋น ์ด๋น ์์ฒญ ์ฒ๋ฆฌ๋:
- PUT/COPY/POST/DELETE: 3,500 req/s
- GET/HEAD: 5,500 req/s
- ๋ฒํท ๋ด Prefix ์ ์ ํ ์์
- Prefix๋ฅผ 4๊ฐ๋ก ๋ถ์ฐ ์: GET/HEAD 22,000 req/s ๋ฌ์ฑ ๊ฐ๋ฅ
s3://bucket/folder1/sub1/file โ prefix: /folder1/sub1/s3://bucket/folder1/sub2/file โ prefix: /folder1/sub2/s3://bucket/folder2/sub1/file โ prefix: /folder2/sub1/s3://bucket/folder2/sub2/file โ prefix: /folder2/sub2/โ ๊ฐ prefix์์ 5,500 GET/s ร 4 = 22,000 GET/s๐ S3 Transfer Acceleration
- S3 ๋ฒํท์ผ๋ก์ ์ฅ๊ฑฐ๋ฆฌ ํ์ผ ์ ์ก ์๋ ํฅ์
- AWS CloudFront์ **์ฃ์ง ๋ก์ผ์ด์ (Edge Location)**์ ๊ฒฝ์ :
[์ฌ์ฉ์ (์ผ๋ณธ)] โ [CloudFront Edge (์ผ๋ณธ)] โ [AWS ์ ์ฉ ๋ฐฑ๋ณธ๋ง] โ [S3 ๋ฒํท (us-east-1)] ๋น ๋ฅธ ์
๋ก๋ ๊ณ ์ ์ ์ฉ์ - Use Case: ์ ์ธ๊ณ์์ ํ๋์ S3 ๋ฒํท์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ง๊ณํ ๋
- ๋ฒํท ๋ ๋ฒจ์์ ํ์ฑํ, ๋ณ๋ ์๋ํฌ์ธํธ ์ฌ์ฉ
๐ฆ Multipart Upload (๋ฉํฐํํธ ์ ๋ก๋)
- 5GB ์ด๊ณผ ์ ํ์, 100MB ์ด๊ณผ๋ถํฐ ๊ถ์ฅ
- ํ์ผ์ ์ฌ๋ฌ ํํธ๋ก ๋ถํ ํ์ฌ ๋ณ๋ ฌ ์ ๋ก๋ โ ์๋ ํฅ์
- ํํธ ์ ๋ก๋ ์คํจ ์ ํด๋น ํํธ๋ง ์ฌ์๋
[100GB ํ์ผ] โ ๋ถํ โโโ Part 1 (10GB) โโ S3 โโโ Part 2 (10GB) โโ S3 (๋ณ๋ ฌ) โโโ Part N (10GB) โโ S3 โ ์๋ฃ ์ S3๊ฐ ํฉ์ฑ๐ S3 Byte-Range Fetches (๋ฐ์ดํธ ๋ฒ์ ๊ฐ์ ธ์ค๊ธฐ)
- ํ์ผ์ ํน์ ๋ฐ์ดํธ ๋ฒ์๋ง ๋ณ๋ ฌ๋ก GET ์์ฒญ
- ๋ค์ด๋ก๋ ์๋ ํฅ์ (๋ณ๋ ฌ ์ฒ๋ฆฌ)
- ํ์ผ์ ์ผ๋ถ๋ง ์กฐํ ๊ฐ๋ฅ (ํค๋ ๋ฐ์ดํฐ ํ์ฑ ๋ฑ)
๐ S3 Select & Glacier Select
- S3 Select: SQL ์ฟผ๋ฆฌ๋ก S3์์ ํ์ํ ๋ฐ์ดํฐ๋ง ์๋ฒ ์ฌ์ด๋ ํํฐ๋ง
- ์ ์ฒด ํ์ผ ๋ค์ด๋ก๋ ์์ด ํ์ํ ๋ฐ์ดํฐ๋ง ์ถ์ถ โ ๋น์ฉ, ํธ๋ํฝ ์ ๊ฐ
- CSV, JSON, Parquet ํ์ ์ง์
์ ์ฒด CSV ๋ค์ด๋ก๋ ํ ํํฐ๋ง โ [ํฐ ํ์ผ ์ ์ฒด ์ ์ก] โ ๋นํจ์จS3 Select ์ฌ์ฉ โ [ํ์ํ ํ๋ง ๋ฐํ] โ ํจ์จ์ 9. S3 Batch Operations
- ๊ธฐ์กด S3 ๊ฐ์ฒด์ ๋ํด ๋จ์ผ ์์ฒญ์ผ๋ก ๋๊ท๋ชจ ์์ ์ํ
- Job = ๊ฐ์ฒด ๋ชฉ๋ก + ์ํํ Action + ์ ํ์ ํ๋ผ๋ฏธํฐ
์ง์ํ๋ ์์ (Actions)
| Action | ์ค๋ช |
|---|---|
| Copy objects | ๋ฒํท ๊ฐ ๊ฐ์ฒด ๋ณต์ฌ |
| Modify metadata | ๊ฐ์ฒด ๋ฉํ๋ฐ์ดํฐ/์์ฑ ์ผ๊ด ๋ณ๊ฒฝ |
| Encrypt | ๋ฏธ์ํธํ ๊ฐ์ฒด ์ผ๊ด ์ํธํ (SSE-KMS ๋ฑ์ผ๋ก ์ ํ) |
| Modify ACLs/Tags | ACL ๋๋ Tag ์ผ๊ด ์์ |
| Restore from Glacier | Glacier ๊ฐ์ฒด ์ผ๊ด ๋ณต์ |
| Invoke Lambda | ๊ฐ ๊ฐ์ฒด์ ๋ํด Lambda Function ์คํ |
์๋ ํ๋ฆ
S3 Inventory๋ก ๊ฐ์ฒด ๋ชฉ๋ก ์์ฑ โ โผAthena๋ก ํํฐ๋ง (ํน์ ์กฐ๊ฑด์ ๊ฐ์ฒด๋ง ์ ํ) โ โผS3 Batch Operations Job ์์ฑ โ โผ์งํ๋ฅ ์ถ์ + ์ฌ์๋ ์๋ ๊ด๋ฆฌ + ์๋ฃ ์๋ฆผ + ๋ฆฌํฌํธ ์์ฑ๐ก ์ค๋ฌด ํ์ฉ: ๊ธฐ์กด ๋ฏธ์ํธํ ๊ฐ์ฒด๋ฅผ SSE-KMS๋ก ์ผ๊ด ์ ํํ ๋, S3 Replication ํ์ฑํ ์ด์ ์ ๊ธฐ์กด ๊ฐ์ฒด๋ฅผ ๋ณต์ ํ ๋ (S3 Batch Replication)
10. S3 Event Notifications
์ง์ ์ด๋ฒคํธ ์ ํ
S3:ObjectCreated,S3:ObjectRemoved,S3:ObjectRestore,S3:Replication๋ฑ- Object ์ด๋ฆ์ผ๋ก ํํฐ๋ง ๊ฐ๋ฅ (์:
.jpg)
์ด๋ฒคํธ ๋์ (Destinations)
S3 ์ด๋ฒคํธ ๋ฐ์ โ โโโโ SNS Topic โ SNS Resource Policy ํ์ โโโโ SQS Queue โ SQS Resource Policy ํ์ โโโโ Lambda Function โ Lambda Resource Policy ํ์IMPORTANT๐ ์ค์: S3 โ SNS/SQS/Lambda ์ฐ๊ฒฐ ์ IAM Role์ด ์๋ Resource-based Policy(๋ฆฌ์์ค ์ ์ฑ ) ์ค์ ํ์
S3 Event Notifications with Amazon EventBridge
S3 Bucket โ Amazon EventBridge โ(Rules)โ 18๊ฐ ์ด์ AWS ์๋น์คEventBridge ์ฌ์ฉ ์ ์ฅ์ :
- ๊ณ ๊ธ ํํฐ๋ง: JSON Rules๋ก Metadata, Object size, ์ด๋ฆ ๊ธฐ๋ฐ ํํฐ๋ง
- Multiple Destinations: Step Functions, Kinesis Streams/Firehose ๋ฑ
- Archive / Replay Events: ์ด๋ฒคํธ ์ฌ์ฒ๋ฆฌ ๊ฐ๋ฅ
- Reliable delivery: ์ ๋ขฐ์ฑ ๋์ ์ ๋ฌ ๋ณด์ฅ
๐ก ์ ํ ๊ธฐ์ค: ๋จ์ํ ํธ๋ฆฌ๊ฑฐ๋ SNS/SQS/Lambda ์ง์ ์ฐ๊ฒฐ. ๋ณต์กํ ๋ผ์ฐํ ์ด๋ ๋ค์ํ Destination์ด ํ์ํ๋ฉด EventBridge ๊ฒฝ์ .
11. S3 Analytics - Storage Class Analysis
- ์ธ์ ๊ฐ์ฒด๋ฅผ ๋ค๋ฅธ Storage Class๋ก ์ ํํ ์ง ๋ถ์ ๋ฐ ๊ถ์ฅ
- ์ง์ ๋ฒ์: Standard โ Standard-IA ์ ํ ๋ถ์๋ง ๊ฐ๋ฅ
- โ One Zone-IA, Glacier๋ ์ง์ ๋ถ์ ๋ถ๊ฐ
- Report๋ S3 ๋ฒํท์ CSV ํ์์ผ๋ก ์ถ๋ ฅ
- ๋ถ์ ์ด๊ธฐํ ์์ ์๊ฐ: 24~48์๊ฐ
- Daily ์ ๋ฐ์ดํธ
S3 Analytics ๋ถ์ ๊ฒฐ๊ณผ โ โผLifecycle Rules ์ค๊ณ์ ์ถ๋ฐ์ ์ผ๋ก ํ์ฉ๐ก Lifecycle Rules๋ฅผ ์ฒ์ ์ค๊ณํ๊ฑฐ๋ ๊ฐ์ ํ ๋ S3 Analytics๋ฅผ ๋จผ์ ์คํํด์ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ผ๋ก ์ ํ ์์ ๊ฒฐ์ ๊ถ์ฅ
12. S3 Storage Lens
- ์ ์ฒด AWS Organization ์์ค์์ S3 ์คํ ๋ฆฌ์ง ์ฌ์ฉ๋๊ณผ ํ๋์ ๋ถ์ยท์ต์ ํํ๋ ๋๊ตฌ
- 30์ผ๊ฐ ์ฌ์ฉ๋ ๋ฐ ํ๋ ์งํ ์ง๊ณ
- ์ด์ ํ์ง(Anomaly Detection), ๋น์ฉ ํจ์จํ, ๋ฐ์ดํฐ ๋ณดํธ Best Practice ์ ์ฉ
- ์ง๊ณ ๋จ์: Organization, ํน์ Account, Region, Bucket, Prefix
- ๊ธฐ๋ณธ ๋์๋ณด๋(Default Dashboard) ์ ๊ณต ๋๋ ์ปค์คํ ๋์๋ณด๋ ์์ฑ
- ์ผ๋ณ S3 ๋ฒํท์ผ๋ก ๋ฉํธ๋ฆญ ๋ด๋ณด๋ด๊ธฐ ๊ฐ๋ฅ (CSV, Parquet)
Default Dashboard
- Multi-Region, Multi-Account ๋ฐ์ดํฐ ์๊ฐํ
- Amazon S3๊ฐ ์ฌ์ ๊ตฌ์ฑ (Preconfigured)
- ์ญ์ ๋ถ๊ฐ (๋จ, ๋นํ์ฑํ๋ ๊ฐ๋ฅ)
์ฃผ์ Metrics ์นดํ ๊ณ ๋ฆฌ
| ์นดํ ๊ณ ๋ฆฌ | ์ฃผ์ ์งํ | ํ์ฉ ๋ชฉ์ |
|---|---|---|
| Summary Metrics | StorageBytes, ObjectCount | ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์ฆ๊ฐํ๋ Bucket/Prefix ํ์ |
| Cost-Optimization Metrics | NonCurrentVersionStorageBytes, IncompleteMultipartUploadStorageBytes | 7์ผ ์ด์๋ ๋ถ์์ Multipart Upload ํ์ง, ์ ๋น์ฉ ํด๋์ค ์ ํ ํ๋ณด ํ์ |
| Data-Protection Metrics | VersioningEnabledBucketCount, MFADeleteEnabledBucketCount, SSEKMSEnabledBucketCount | ๋ฐ์ดํฐ ๋ณดํธ Best Practice ๋ฏธ์ค์ Bucket ํ์ง |
| Access-Management Metrics | ObjectOwnershipBucketOwnerEnforcedBucketCount | Object Ownership ์ค์ ํํฉ ํ์ |
| Event Metrics | EventNotificationEnabledBucketCount | Event Notification ์ค์ ํํฉ |
| Performance Metrics | TransferAccelerationEnabledBucketCount | Transfer Acceleration ํ์ฑํ ํํฉ |
| Activity Metrics | AllRequests, GetRequests, PutRequests, BytesDownloaded | ์คํ ๋ฆฌ์ง ์์ฒญ ํจํด ํ์ |
| Detailed Status Code Metrics | 200OKStatusCount, 403ForbiddenErrorCount, 404NotFoundErrorCount | HTTP ์ค๋ฅ ํจํด ๋ถ์ |
Free vs. Advanced (Paid)
| ํญ๋ชฉ | Free | Advanced (Paid) |
|---|---|---|
| ์๋ ์ ๊ณต ์ฌ๋ถ | โ ๋ชจ๋ ๊ณ ๊ฐ ์๋ ์ ๊ณต | ์ถ๊ฐ ๋น์ฉ |
| ๊ธฐ๋ณธ Metrics ์ | ~28๊ฐ | ๋ ๋ง์ ์ถ๊ฐ ์งํ |
| ๋ฐ์ดํฐ ๋ณด์กด ๊ธฐ๊ฐ | 14์ผ | 15๊ฐ์ |
| CloudWatch ์ฐ๋ | โ | โ ์ถ๊ฐ ๋น์ฉ ์์ด CloudWatch ๊ฒ์ |
| Prefix ๋ ๋ฒจ ์ง๊ณ | โ | โ |
| Advanced Cost Optimization / Data Protection | โ | โ |
13. Requester Pays
- ๊ธฐ๋ณธ: Bucket ์์ ์๊ฐ ๋ชจ๋ S3 Storage ๋น์ฉ + ๋ฐ์ดํฐ ์ ์ก ๋น์ฉ ๋ถ๋ด
- Requester Pays ํ์ฑํ ์: ์์ฒญ์(Requester)๊ฐ ๋ฐ์ดํฐ ๋ค์ด๋ก๋ ์์ฒญ ๋น์ฉ ๋ถ๋ด
- ๋์ฉ๋ Dataset์ ๋ค๋ฅธ ๊ณ์ ๊ณผ ๊ณต์ ํ ๋ ์ ์ฉ
- ์์ฒญ์๋ ๋ฐ๋์ AWS์ ์ธ์ฆ(Authenticated) ๋์ด์ผ ํจ โ ์ต๋ช (Anonymous) ์ ๊ทผ ๋ถ๊ฐ
์ผ๋ฐ Bucket: [์์ฒญ์] โ(๋ฌด๋ฃ ๋ค์ด๋ก๋)โ [S3] โ ๋น์ฉ: Bucket Owner ๋ถ๋ดRequester Pays: [์์ฒญ์] โ(์ ๋ฃ ๋ค์ด๋ก๋)โ [S3] โ ๋น์ฉ: Requester ๋ถ๋ด14. ํต์ฌ ์์ฝ & ์ํ ํฌ์ธํธ
S3 Architecture Overviewโโโ ๋ณด์: IAM Policy + Bucket Policy + Block Public Access (+ ACL)โโโ ์ํธํ: SSE-S3(๊ธฐ๋ณธ) / SSE-KMS(๊ฐ์ฌ ํ์) / SSE-C(๊ณ ๊ฐ ํค) / CSEโ โ ์์ธ: AWS_S3_Security_Notes.md ์ฐธ๊ณ โโโ ๊ฐ์ฉ์ฑ: Versioning + CRR/SRR Replicationโโโ ๋น์ฉ: Storage Class + Lifecycle Rulesโโโ ์ฑ๋ฅ: Multipart Upload + Transfer Acceleration + Prefix ๋ถ์ฐโโโ ์ด์: Event Notifications + Batch Operations + Storage Lens
Storage Class ๋น์ฉ ์์ (๋น์ โ ์ ๋ ด)Standard > Standard-IA > One Zone-IA > Glacier Instant > Glacier Flexible > Deep Archive
Glacier ์ต์ ๋ณด์กด ๊ธฐ๊ฐโโโ Instant / Flexible Retrieval: 90์ผโโโ Deep Archive: 180์ผ
Glacier Flexible Retrieval ๊ฒ์ ์๊ฐโโโ Expedited: 1~5๋ถโโโ Standard: 3~5์๊ฐโโโ Bulk: 5~12์๊ฐ (๋ฌด๋ฃ)
Glacier Deep Archive ๊ฒ์ ์๊ฐโโโ Standard: 12์๊ฐโโโ Bulk: 48์๊ฐ๐ ์ํ ์์ฃผ ์ถ์ ํฌ์ธํธ ์ด์ ๋ฆฌ
| ํฌ์ธํธ | ๋ด์ฉ |
|---|---|
| Bucket ์ด๋ฆ | ์ ์ธ๊ณ ๊ณ ์ , ์๋ฌธ์/์ซ์/ํ์ดํ๋ง, ๋ฆฌ์ ๋ ๋ฒจ ์์ฑ |
| ์ต๋ Object ํฌ๊ธฐ | 5TB |
| 5GB ์ด๊ณผ ์ ๋ก๋ | Multipart Upload ํ์ |
| ๊ธฐ๋ณธ ์ํธํ (2023~) | SSE-S3 ์๋ ์ ์ฉ, ์ถ๊ฐ ๋น์ฉ ์์ |
| SSE-C ํ์ ์๊ฑด | HTTPS (HTTP ์์ฒญ ์ ๊ฑฐ๋ถ) |
| SSE-KMS Cross-Account | Customer Managed Key(CMK) ํ์ |
| Bucket Policy vs Default Encryption | Bucket Policy๊ฐ ๋จผ์ ํ๊ฐ๋จ |
| MFA Delete ์ค์ ๊ถํ | Bucket Owner (Root ๊ณ์ )๋ง ๊ฐ๋ฅ |
| Versioning Suspend | ๊ธฐ์กด ๋ฒ์ ์ญ์ ์ ๋จ |
| ๋ฒ์ ๋ ์ ํ์ผ Version ID | null |
| Replication ์ ์ ์กฐ๊ฑด | ์์ค+๋์ ๋ชจ๋ Versioning ํ์ฑํ |
| ๊ธฐ์กด ๊ฐ์ฒด ๋ณต์ | S3 Batch Replication ์ฌ์ฉ |
| Replication ์ฒด์ด๋ | ์์ (Bucket 1โ2โ3 ์๋ ๋ณต์ ์ ๋จ) |
| Transfer Acceleration | CloudFront Edge Location ๊ฒฝ์ |
| Baseline Performance | Prefix๋น PUT 3,500/s, GET 5,500/s |
| S3 Select | SQL๋ก ์๋ฒ ์ฌ์ด๋ ํํฐ๋ง, ์ ์ก ๋น์ฉ ์ ๊ฐ |
| S3 Event โ SNS/SQS/Lambda | Resource-based Policy ํ์ (IAM Role ์๋) |
| S3 Event + EventBridge | 18๊ฐ ์ด์ Destination, ๊ณ ๊ธ ํํฐ๋ง, Replay ๊ฐ๋ฅ |
| S3 Analytics ๋์ | Standard โ Standard-IA๋ง (Glacier ๋ถ๊ฐ) |
| S3 Analytics ์์ ์๊ฐ | 24~48์๊ฐ |
| Storage Lens Default Dashboard | ์ญ์ ๋ถ๊ฐ (๋นํ์ฑํ๋ง ๊ฐ๋ฅ) |
| Storage Lens ๋ฐ์ดํฐ ๋ณด์กด | Free: 14์ผ / Advanced: 15๊ฐ์ |
| Requester Pays | ์์ฒญ์ ๋น์ฉ ๋ถ๋ด, ์ต๋ช ์ ๊ทผ ๋ถ๊ฐ |
| Object Lock | WORM, Versioning ํ์ |
| Compliance Mode | Root ํฌํจ ๋๊ตฌ๋ ์์ /์ญ์ ๋ถ๊ฐ |
| Governance Mode | ํน๋ณ ๊ถํ(s3:BypassGovernanceRetention) ์์ผ๋ฉด ์์ ๊ฐ๋ฅ |
| Legal Hold | ๋ณด์กด ๊ธฐ๊ฐ ๋ฌด๊ด, ๋ฌด๊ธฐํ ์ ๊ธ |
| Glacier Vault Lock | ํ ๋ฒ ์ค์ ํ ๋ณ๊ฒฝ ๋ถ๊ฐ |
| Static Website 403 | Block Public Access ๋๋ Bucket Policy ๋ฏธ์ค์ |
| One Zone-IA | ๋จ์ผ AZ, AZ ํ๊ดด ์ ๋ฐ์ดํฐ ์์ค |
| Intelligent-Tiering ์ฅ์ | ๊ฒ์(Retrieval) ์๊ธ ์์ |
| Pre-signed URL ์ ํจ ๊ธฐ๊ฐ | Console 12h / CLI ์ต๋ 604800์ด(7์ผ) |