๐Ÿ”ฅ TIL - Day 9

Kim Dae Hyunยท2021๋…„ 9์›” 22์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
10/93

๐Ÿ“Œ AWS - S3 bucket

์ด์ „์— ๊ฒฝํ—˜ํ–ˆ๋˜ AWS์˜ EC2๋Š” AWS๋กœ๋ถ€ํ„ฐ ์ปดํ“จํ„ฐ ํ•œ ๋Œ€๋ฅผ ๋นŒ๋ฆฌ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์•˜๋‹ค. S3๋Š” ๋ฌด์—‡์„ AWS๋กœ๋ถ€ํ„ฐ ๋นŒ๋ ค ์“ฐ๋Š” ๊ฒƒ์ผ๊นŒ ?

S3๋Š” ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์œ„ํ•œ ์„œ๋น„์Šค์ด๋‹ค. HDD, SDD์™€ ๊ฐ™์€ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๋นŒ๋ ค์“ฐ๋Š” ๊ฒƒ๊ณผ ์–ด๋Š์ •๋„ ๋™์ผํ•œ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋‹จ์ˆœํžˆ ์ €์žฅ์†Œ์˜ ์—ญํ• ๋งŒ ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.

CLI ํ˜น์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ์—ฐ๋™ํ•˜์—ฌ ํŒŒ์ผ ์—…๋กœ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ  ์ •์  ํŒŒ์ผ์„ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์„œ ์ •์  ์›น ํŽ˜์ด์ง€๋ฅผ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ๋‹ค.


โœ”๏ธ CLI ๋ฐฉ์‹ ํŒŒ์ผ ์—…๋กœ๋“œ

  1. aws sdk๊ฐ€ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธ
> aws --version
  1. aws configure (IAM, region, ์ถœ๋ ฅํ˜•์‹) ์„ค์ •
> aws configure
  1. ํŒŒ์ผ ์—…๋กœ๋“œ
aws s3 cp {ํŒŒ์ผ๋ช…} s3://{๋ฒ„ํ‚ท์ด๋ฆ„} --acl public-read

โœ”๏ธ Flask์—์„œ s3์— ํŒŒ์ผ ์—…๋กœ๋“œ

  1. flask์—์„œ s3์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด boto3 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”
> pip install boto3
  1. boto3๋ฅผ ์ด์šฉํ•ด์„œ s3์— ์—ฐ๊ฒฐ ๋ฐ ํŒŒ์ผ ์—…๋กœ๋“œ
s3 = boto3.client('s3')
s3.put_object(
	ACL="public-read",
	Bucket="S3๋ฒ„ํ‚ท์ด๋ฆ„",
	Body=[์—…๋กœ๋“œ๋œ ํŒŒ์ผ],
	Key=[์—…๋กœ๋“œ๋œ ํŒŒ์ผ์˜ ํŒŒ์ผ๋ช…], # S3์— ์—…๋กœ๋“œ๋˜๋Š” ํŒŒ์ผ์˜ ์ด๋ฆ„
	ContentType=[์—…๋กœ๋“œ๋œ ํŒŒ์ผ์˜ content_type]
)

์ด๋Ÿฐ ์‹์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ด์šฉํ•ด์„œ ์›๊ฒฉ์˜ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด S3์˜ ๊ฐ•์  ์ค‘ ํ•˜๋‚˜์ด๋‹ค.


โœ”๏ธ S3 ์ •์  ํ˜ธ์ŠคํŒ…

S3๋Š” ์—…๋กœ๋“œ ๋œ ์›น ์ •์  ๋ฆฌ์†Œ์Šค(html, css, js)์— ๋Œ€ํ•ด ํ˜ธ์ŠคํŒ… ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์›น ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜์ง€ ์•Š๊ณ  ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ ํ˜ธ์ŠคํŒ… ํ•  ์ˆ˜ ์žˆ๋Š” ๊ต‰์žฅํ•œ!! ์„œ๋น„์Šค์ด๋‹ค. ๐Ÿ‘


profile
์ข€ ๋” ์ฒœ์ฒœํžˆ ๊นŒ๋จน๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๐Ÿง

0๊ฐœ์˜ ๋Œ“๊ธ€