Contents

14. S3 Storage and Data Management

AWS Certified SAA-C02 ์‹œํ—˜์ค€๋น„

Amazon S3

  • Amazon S3์€ AWS์˜ ์ฃผ์š”ํ•œ ์„œ๋น„์Šค ์ค‘ ํ•˜๋‚˜์ด๋‹ค.
  • ๋ฌดํ•œ ํ™•์žฅinfinitely scaling ๊ฐ€๋Šฅํ•œ storage
  • ๋งŽ์€ ์›น์‚ฌ์ดํŠธ์—์„œ Amazon S3์„ backbone์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
  • AWS์˜ ๋‹ค์ˆ˜์˜ ์„œ๋น„์Šค์—์„œ๋„ Amazon S3 ํ†ตํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Amazon S3 Overview

Buckets

  • Amazon S3์—์„œ๋Š” object(files) ์„ buckets(directories) ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฒ„์ผ“์€ ๋ฐ˜๋“œ์‹œ ์ „์—ญ์ ์œผ๋กœ ์œ ์ผglobally unique name ํ•ด์•ผ ํ•œ๋‹ค.
  • ๋ฒ„์ผ“์€ region level ์ •์˜๋œ๋‹ค. (S3๋Š” ์ „์—ญ์„œ๋น„์Šค์ง€๋งŒ ๋ฒ„์ผ“์€ ๋ฆฌ์ „๋ฆฌ์†Œ์Šค)
  • Naming convention
    • ๋Œ€๋ฌธ์ž ๋ถˆ๊ฐ€
    • _ ๋ถˆ๊ฐ€
    • ๊ธธ์ด๋Š” 3~63 ์ž๋ฆฌ
    • IP ์ฃผ์†Œ๊ฐ€ ์•„๋‹ ๊ฒƒ
    • ๋ฐ˜๋“œ์‹œ ์†Œ๋ฌธ์ž๋กœ ๋˜๋Š” ์ˆซ์ž๋กœ ์‹œ์ž‘

Objects

  • Object๋Š” ํŒŒ์ผ์ด๋ฉฐ ํ‚ค๋ฅผ ๊ฐ€์ง
  • key๋Š” ์ „์ฒด๊ฒฝ๋กœfull path๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค
    • s3://my-bucket/my_file.txt : my_file.txt์ด ํ‚ค ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    • s3://my-bucket/my_folder1/another_folder/my_file.txt : my_folder1/another_folder/my_file.txt์ „์ฒด ๊ฒฝ๋กœ๊ฐ€ ํ‚ค ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • ํ‚ค๋Š” prefix + object name์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์Œ.
    • s3://my-bucket/my_folder1/another_folder/my_file.txt
    • prefix : my_folder1/another_folder/
    • object name : my_file.txt
  • ๋ฒ„์ผ“์—๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๊ฐœ๋…์ด ์—†๋‹ค. (UI๋งŒ ๊ทธ๋Ÿด๋ฟ)
  • ์Šฌ๋ž˜์‹œ("/")๊ฐ€ ํฌํ•จ๋œ ๊ธด ์ด๋ฆ„๋งŒ ํ‚ค๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.
  • Object์˜ ๊ฐ’์€ ์ปจํ…์ธ ์˜ ๋‚ด์šฉ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    • ์ตœ๋Œ€ Object ํฌ๊ธฐ๋Š” 5TB(5000GB)
    • 5GB ์ด์ƒ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ Multi-part ์—…๋กœ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • Metadata : ํ‚ค/๊ฐ’ ์Œ์œผ๋กœ ์ •์˜๋œ ๋ฆฌ์ŠคํŠธ. ์‹œ์Šคํ…œ ๋˜๋Š” ์‚ฌ์šฉ์ž ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋กœ ์‚ฌ์šฉ
  • Tags : Unicode ํ‚ค/๊ฐ’ ์Œ. ์ตœ๋Œ€ 10๊ฐœ๊นŒ์ง€ ์ •์˜. ๋ณด์•ˆ, lifecycle ์ •๋ณด๋ฅผ ์ง€์ •์‹œ ์œ ์šฉ
  • Version ID : versioning์„ ํ™œ์„ฑํ™” ํ•œ ๊ฒฝ์šฐ Object์˜ ๋ฒ„์ „๋ณ„๋กœ ID๋กœ ๊ด€๋ฆฌ

Versioning

  • Amazon S3์€ ํŒŒ์ผ์— ๋ฒ„์ „์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฒ„์ผ“ ์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™” ๊ฐ€๋Šฅ
  • ๊ฐ™์€ ํ‚ค๋กœ object๋ฅผ overwrite ํ–ˆ์„ ๋•Œ ๋ฒ„์ „์ด ์ฆ๊ฐ€๋œ๋‹ค.
  • ๋ฒ„์ผ“์—๋Š” ๋ฒ„์ „์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

๋ฒ„์ผ“์— ๋ฒ„์ „์„ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” ์ด์œ 

  • ์˜๋„ํ•˜์ง€ ์•Š์€ ์‚ญ์ œ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ. ๋ฒ„์ „ ๋ณต์› ๊ฐ€๋Šฅ
  • ์ด์ „ ๋ฒ„์ „์œผ๋กœ ์‰ฝ๊ฒŒ ๋กค๋ฐฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
Note
  • versioning์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์ „ ์ €์žฅ๋˜์–ด ๋ฒ„์ „์ด ์ง€์ •๋˜์ง€ ์•Š์€ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๋ฒ„์ „์€ “null"์ด๋‹ค.
  • ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์ผ์‹œ ์ค‘๋‹จํ•ด๋„ ์ด์ „ ๋ฒ„์ „์€ ์‚ญ์ œ๋˜์ง€ ์•Š์Œ.

S3 Object์˜ ์•”ํ˜ธํ™”

S3 Object ์•”ํ˜ธํ™” ๋ฐฉ์‹

  • Amazon S3์— ์—…๋กœ๋“œ ๋œ object๋Š” AWS ์„œ๋ฒ„๋‚ด์— ์กด์žฌํ•˜๋ฏ€๋กœ ๊ฐ์ฒด๋กœ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ณดํ˜ธํ•ด์•ผ ํ•œ๋‹ค.
  • object์˜ ์•”ํ˜ธํ™”๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฐฉ๋ฒ• ์„ค๋ช…
SSE-S3 AWS์—์„œ objects์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค๋ฅผ ์ฒ˜๋ฆฌ ๋ฐ ๊ด€๋ฆฌ
SSE-KMS AWS Key Management Service๋ฅผ ํ†ตํ•ด ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ๊ด€๋ฆฌ
SSE-C ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ๊ด€๋ฆฌ
Client Side Encryption ํด๋ผ์ด์–ธํŠธ์—์„œ ์•”ํ˜ธํ™” ์ฒ˜๋ฆฌ

SSE-S3

  • Amazon S3๊ฐ€ ์•”ํ˜ธํ™” ์‹œ ์‚ฌ์šฉํ•  ํ‚ค๋ฅผ ์ฒ˜๋ฆฌ ๋ฐ ๊ด€๋ฆฌ
  • Object๋Š” ์„œ๋ฒ„ ์ธก์—์„œ ์•”ํ˜ธํ™” ๋œ๋‹ค.
  • ์œ ํ˜•์€ AES-256 ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉ
  • SSE-S3 ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์•„๋ž˜ ํ—ค๋”๋ฅผ ๋ฐ˜๋“œ์‹œ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.
    • โ€œx-amz-server-side-encryption": “AES256”
  • ์•”ํ˜ธํ™” ํ‚ค๋Š” S3๊ฐ€ ์†Œ์œ ํ•˜๊ณ  S3๊ฐ€ ๊ด€๋ฆฌํ•œ๋‹ค.
SSE-S3 ์•”ํ˜ธํ™” ๊ณผ์ •
  1. Object HTTP/S๋กœ ํ—ค๋”๊ฐ’์„ ์ง€์ •ํ•˜์—ฌ ์—…๋กœ๋“œ
  2. ํ—ค๋”๋ฅผ ํ†ตํ•ด Amazon S3๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ์ดํ„ฐํ‚ค๋ฅผ ํ†ตํ•ด object๋ฅผ encryptionํ•˜์—ฌ ๋ฒ„์ผ“์— ์ €์žฅ

SSE-KMS

  • AWS Key Management Service(KMS)๊ฐ€ ์•”ํ˜ธํ™” ์‹œ ์‚ฌ์šฉํ•  ํ‚ค๋ฅผ ์ฒ˜๋ฆฌ ๋ฐ ๊ด€๋ฆฌํ•œ๋‹ค.
  • KMS์—์„œ ์‚ฌ์šฉ์ž ์ œ์–ด ๋ฐ ๊ฐ์‹œ๋ฅผ ์ถ”์ ํ•œ๋‹ค.
  • Object๋Š” ์„œ๋ฒ„ ์ธก์—์„œ ์•”ํ˜ธํ™” ๋œ๋‹ค.
  • SSE-KMS ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์•„๋ž˜ ํ—ค๋”๋ฅผ ๋ฐ˜๋“œ์‹œ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.
    • โ€œx-amz-server-side-encryption": โ€aws:kms"
SSE-KMS ์•”ํ˜ธํ™” ๊ณผ์ •
  1. Object HTTP/S๋กœ ํ—ค๋”๊ฐ’์„ ์ง€์ •ํ•˜์—ฌ ์—…๋กœ๋“œ
  2. ํ—ค๋”๋ฅผ ํ†ตํ•ด Amazon S3์—์„œ๋Š” KMS์˜ ์‚ฌ์šฉ์ž์˜ ๋งˆ์Šคํ„ฐํ‚ค๋ฅผ ์‚ฌ์šฉ
  3. KMS์—์„œ ๊ฐ€์ ธ์˜ค๋Š ์‚ฌ์šฉ์ž์˜ ๋งˆ์Šคํ„ฐํ‚ค๋กœ object๋ฅผ encryptionํ•˜์—ฌ ๋ฒ„์ผ“์— ์ €์žฅ

SSE-C

  • AWS ๋ฐ–์—์„œ ๊ณ ๊ฐ์ด ๊ด€๋ฆฌํ•˜๋Š” ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์ธก์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”
  • ๊ณ ๊ฐ์ด ์ œ๊ณตํ•˜๋Š” ์•”ํ˜ธํ™” ํ‚ค๋ฅผ Amazon S3์—์„œ๋Š” ์ €์žฅํ•˜์ง€ ์•Š์Œ
  • HTTPS๋ฅผ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉ
  • ์•”ํ˜ธํ™” ํ‚ค๋Š” ๋งค ์š”์ฒญ์‹œ ๋งˆ๋‹ค HTTP ํ—ค๋”์— ๋ฐ˜๋“œ์‹œ ์ถ”๊ฐ€ํ•˜์—ฌ ์ „์†ก
SSE-C ์•”ํ˜ธํ™” ๊ณผ์ •
  1. Object๋Š” ๋ฐ˜๋“œ์‹œ HTTPS ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ ํ—ค๋”์—๋Š” ๊ณ ๊ฐ์ด ๊ด€๋ฆฌํ•˜๋Š” ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ํฌํ•จ
  2. ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•œ ์•”ํ˜ธํ™” ํ‚ค๋กœ Object๋ฅผ ์•”ํ˜ธํ™” ํ•˜์—ฌ ๋ฒ„์ผ“์— ์ €์žฅ
  3. ๋ฒ„์ผ“์—์„œ obejct๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ์—๋Š” ์ €์žฅ๋‹น์‹œ ์•”ํ˜ธํ™” ํ–ˆ๋˜ ํ‚ค๋ฅผ ์ œ๊ณต

Client Side Encryption

  • Amazon S3 Encryption Client์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์•”ํ˜ธํ™”.
  • S3๋กœ ์ „์†กํ•˜๊ธฐ ์ „์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•ด์•ผ ํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณตํ˜ธํ™”ํ•ด์•ผ ํ•œ๋‹ค.
  • ๊ณ ๊ฐ์€ ๋ชจ๋“  ํ‚ค์™€ ์•”ํ˜ธํ™” ์‹ธ์ดํด์€ ์ง์ ‘ ๊ด€๋ฆฌ ํ•ด์•ผํ•œ๋‹ค.

์ „์†ก ์•”ํ˜ธํ™” Encryption in transit (SSL/TLS)

Amazon S3 endpoint

  • HTTP endpoint : ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์Œ

  • HTTPS endpoint : encryption in flight

  • ์›ํ•˜๋Š” endpoint๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ

  • ๋Œ€๋ถ€๋ถ„์˜ ํด๋ผ์ด์–ธํŠธ๋Š” HTTPS endpoint๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

  • SSE-C ๋ฐฉ์‹์—์„œ๋Š” ๋ฐ˜๋“œ์‹œ HTTPS๊ฐ€ ํ•„์ˆ˜์‚ฌํ•ญ

  • ์ „์†ก๊ณ„์ธต ์ƒ์˜ ์•”ํ˜ธํ™”๋ฅผ SSL/TLS ๋ผ๊ณ  ํ•œ๋‹ค.