Devops/AWS

[AWS] S3λž€? S3 κ΅¬μ„±μš”μ†Œμ™€ 버킷(Bucket), 폴더(Folder) 그리고 객체(Object) 에 λŒ€ν•΄ μ•Œμ•„λ³΄μž

yuri lee 2023. 1. 31. 23:01
λ°˜μ‘ν˜•

Intro

μ•ˆλ…•ν•˜μ„Έμš”. 이 글은 μƒν™œμ½”λ”©μ˜ AWS μ•„λ§ˆμ‘΄ μ›Ή μ„œλΉ„μŠ€(Amazon Web Services) 책을 λ°”νƒ•μœΌλ‘œ μ •λ¦¬ν•œ λ‚΄μš©μž…λ‹ˆλ‹€. 일전에 S3 κ΄€λ ¨ ν¬μŠ€νŒ…μ„ ν•œ 적이 μžˆλŠ”λ°μš”, λ‚΄μš©μ΄ λΆ€μ‹€ν•˜κΈ°λ„ ν•˜κ³  ν•œλ²ˆ 더 μ΄ν•΄ν•˜κΈ° μœ„ν•΄  λ‹€μ‹œ μž‘μ„±ν•΄λ³΄λ € ν•©λ‹ˆλ‹€. ☺

 

S3λž€?

S3λŠ” Simple Storage Service의 μ€„μž„λ§μž…λ‹ˆλ‹€. κ°„λ‹¨ν•œ μ €μž₯ μ„œλΉ„μŠ€λΌκ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λΉ„μœ ν•˜μžλ©΄, S3λŠ” ν•˜λ“œλ””μŠ€ν¬λ‚˜ SSD 와 같은 μ €μž₯ μž₯μΉ˜μž…λ‹ˆλ‹€. S3λŠ” ν•˜λ‚˜μ˜ S3 region λ‚΄ μ΅œμ†Œ 3개의 물리적 κ°€μš©μ˜μ—­(AZ)에 걸쳐 μ—¬λŸ¬ λ””λ°”μ΄μŠ€μ— 객체λ₯Ό 쀑볡 μ €μž₯ν•©λ‹ˆλ‹€. 즉 객체 μ—…λ‘œλ“œ μ‹œ ν•˜λ‚˜μ˜ 컴퓨터에 μœ„μΉ˜ν•˜λŠ” 게 μ•„λ‹ˆλΌ μ—¬λŸ¬ λŒ€μ˜ 컴퓨터에 μ΅œμ†Œ 3개 이상 λ³΅μ œλœλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ νŠΉμ„±μ„ 내ꡬ성이라고 ν•©λ‹ˆλ‹€. 

 

S3의 κ΅¬μ„±μš”μ†Œ

  • 버킷 (Bucket) : ν•˜λ‚˜μ˜ ν”„λ‘œμ νŠΈ
  • 폴더 (Folder) : 버킷 μ•ˆμ— 폴더
  • 였브젝트 (Object): 폴더 μ•ˆμ— λ“€μ–΄ μžˆλŠ” 파일

 

버킷(Bucket) 

버킷(Bucket) 생성

 

λ²„ν‚·μ˜ μ—‘μ„ΈμŠ€ 차단 μ„€μ • : νΌλΈ”λ¦­μ΄λž€ νŒŒμΌμ„ μ—…λ‘œλ“œν–ˆμ„ λ•Œ, κ·Έ νŒŒμΌμ„ λˆ„κ΅¬λ‚˜ λ³Ό 수 있게 ν•˜λŠ” μƒνƒœλ₯Ό λ§ν•©λ‹ˆλ‹€. 체크 λ˜μ–΄ μžˆλŠ” 퍼블릭 μ•‘μ„ΈμŠ€ 차단을 ν’€μ–΄μ€λ‹ˆλ‹€. 

  • μƒˆ ACL: 곡개 μ„€μ •μœΌλ‘œ 해놓은 νŒŒμΌμ„ μ—…λ‘œλ“œν•  λ•Œ μ—…λ‘œλ“œκ°€ 거절됨
  • μž„μ˜μ˜ ACL : μ—…λ‘œλ“œ ν•˜λŠ” 파일이 곡개라고 ν•˜λ”λΌλ„ 파일 μžμ²΄κ°€ λΉ„κ³΅κ°œλ‘œ κ°„μ£Όλ˜μ–΄ 곡개 X
  • μƒˆ 퍼블릭 버킷 
  • μž„μ΄μ˜ 퍼블릭 버킷 

 

버킷 읽기, μˆ˜μ • μ‚­μ œ

  • 읽기 : μƒμ„±ν•œ 버킷 이름을 ν΄λ¦­ν•˜λ©΄, 버킷 μ•ˆμ— μžˆλŠ” λ””λ ‰ν„°λ¦¬λ‚˜ νŒŒμΌμ„ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 
  • μˆ˜μ • : λ²„ν‚·μ˜ 이름을 μˆ˜μ •ν•  μˆ˜λŠ” μ—†μ§€λ§Œ, 생성할 λ•Œ μ§€μ •ν•œ 속성듀은 λ³€κ²½ κ°€λŠ₯ν•©λ‹ˆλ‹€. 

 

객체(Object) 파일

객체(Bucket) 생성

S3μ—μ„œ μ‹€μ œ 데이터가 λ‹΄κΈ°λŠ” 그릇을 λœ»ν•˜λŠ”λ°μš”, κ·Έλƒ₯ 파일이라고 μƒκ°ν•˜μ…”λ„ μ’‹μŠ΅λ‹ˆλ‹€. κ°μ²΄ μ—…λ‘œλ“œ μ‹œμ—λŠ” κΆŒν•œκ³Ό 속성이 μžˆμŠ΅λ‹ˆλ‹€. 

  • κΆŒν•œ : μ—…λ‘œλ“œ ν•˜λ €λŠ” νŒŒμΌμ— λŒ€ν•œ κΆŒν•œ μ„€μ •
  • 속성 > μŠ€ν† λ¦¬μ§€ 클래슀 : S3λŠ” 가격과 속도 등에 따라 λΉ„μš©μ΄ 달라지기 λ•Œλ¬Έμ— 상황에 따라 선택 ν•„μš”

 

객체(Bucket) μˆ˜μ • , μ‚­μ œ

객체의 μ—¬λŸ¬κ°€μ§€ μ†μ„±μ΄λ‚˜, κΆŒν•œμ„ μˆ˜μ •ν•  수 있고, μ‚­μ œλ„ κ°€λŠ₯ν•©λ‹ˆλ‹€. 

 

κ³΅μœ μ™€ κΆŒν•œ

파일 ν•˜λ‚˜λ₯Ό ν΄λ¦­ν•΄μ„œ 속성 탭을 보면 객체 URL이 μ‘΄μž¬ν•©λ‹ˆλ‹€. 이 μ£Όμ†Œλ₯Ό λ³΅μ‚¬ν•΄μ„œ μ „λ‹¬ν•˜λ©΄, κ³΅κ°œν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ μ™ΈλΆ€μ—μ„œ μ ‘κ·Ό κ°€λŠ₯ν•˜κ²Œ ν•˜κΈ° μœ„ν•΄μ„œλŠ” κΆŒν•œμ„ 따져봐야 ν•˜λŠ”λ°, μ΄λŠ” κΆŒν•œ νƒ­μ—μ„œ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 

 

ACL(μ—‘μ„ΈμŠ€ μ œμ–΄ λͺ©λ‘)

  • 객체 μ†Œμœ μž (AWS 계정) : μžμ‹ μ˜ 계정
  • λͺ¨λ“  μ‚¬λžŒ (퍼블릭 μ•‘μ„ΈμŠ€) : μ „ 세계 λˆ„κ΅¬
    • 객체 읽기가 체크 λ˜μ–΄ μžˆμ–΄μ•Ό μ™ΈλΆ€ μ›Ή λΈŒλΌμš°μ €μ— κ³΅κ°œλ˜μ–΄ μžˆλ‹€λŠ” λœ»μž…λ‹ˆλ‹€.

 

+ Tip) μƒλ‹¨μ˜ μž‘μ—… > ACL을 톡해 νΌλΈ”λ¦­μœΌλ‘œ μ„€μ • λ²„νŠΌμ„ 눌러주면 더 κ°„λ‹¨ν•˜κ²Œ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 

 

For What?

S3둜 파일 보관.. κ·Έ ν›„μ—λŠ” 무엇을 ν•  수 μžˆμ„κΉŒμš”? 

μ›Ήμ„œλ²„ (Web server)

파일 μ €μž₯μ†ŒμΈ S3μ—λŠ” 기본적으둜 μ›Ή μ„œλ²„ κΈ°λŠ₯이 μžˆμŠ΅λ‹ˆλ‹€. 속성 탭을 λˆ„λ₯΄κ³  ν•˜λ‹¨μ„ 보면 정적 μ›Ή μ‚¬μ΄νŠΈ ν˜ΈμŠ€νŒ… κΈ°λŠ₯ 칸을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 이 κΈ°λŠ₯을 ν™œμ„±ν™” μ‹œν‚€λ©΄ μ „ 세계 λˆ„κ΅¬λ‚˜ λ°©λ¬Έν•  수 μžˆλŠ” μ›Ή μ‚¬μ΄νŠΈ 생성이 κ°€λŠ₯ν•©λ‹ˆλ‹€. 

 

CDN(Content Delivery Network)

S3λŠ” 버킷을 λ¦¬μ „λ³„λ‘œ μ •ν•˜κ²Œ λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. ν•œ μ˜ˆμ‹œλ‘œ μ„œμšΈμ„ λ¦¬μ „μœΌλ‘œ μ§€μ •ν•˜λ©΄, νŒŒλ¦¬μ— μžˆλŠ” μ‚¬λžŒμ€ 느릴 수 밖에 없을 κ²ƒμž…λ‹ˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ AWSλŠ” CloudFrontλΌλŠ” μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ„œλΉ„μŠ€λ₯Ό CDN이라고 ν•©λ‹ˆλ‹€.  CDN은 μ „ 세계에 CDN μ„œλ²„λ₯Ό λΆ„μ‚°μ‹œμΌœ 놨닀가 μš”μ²­μ΄ 였면, κ°€κΉŒμš΄ 곳에 μ €μž₯ν•˜κ³  있던 μ½˜ν…μΈ λ₯Ό λ³΄λ‚΄μ£ΌλŠ” κ²ƒμž…λ‹ˆλ‹€. 즉 νŒŒλ¦¬μ— μžˆλŠ” μ‚¬λžŒμ΄ 우리 μ„œλΉ„μŠ€μ— μ ‘μ†ν•˜λ©΄, μ‹€μ œ μ„œμšΈμ— μžˆλŠ” μ„œλ²„κ°€ μ‘λ‹΅ν•˜λŠ” 것이 μ•„λ‹Œ νŒŒλ¦¬μ— μžˆλŠ” μ„œλ²„κ°€ μ‘λ‹΅ν•©λ‹ˆλ‹€. 

 

S3와 Cloud Frontλ₯Ό κ²°ν•©ν•΄ μ‚¬μš©ν•˜λ©΄, μ „ 세계λ₯Ό λŒ€μƒμœΌλ‘œ λΉ λ₯Έ 정보전달이 κ°€λŠ₯ν•©λ‹ˆλ‹€. 

 

버전 관리 

버킷 > 속성 νƒ­ > 버킷 버전 관리 κΈ°λŠ₯을 ν™œμ„±ν™” ν•˜λ©΄ 버전관리 κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ 라이프 사이클을 톡해 버킷 버전 관리 μž‘μ—…μ„ μžλ™ν™” ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 

 

Terms

  • S3 : AMAZON SIMPLE STORAGE SERVICE의 μ•½μžλ‘œ μ•„λ§ˆμ‘΄ μ›Ή μ„œλΉ„μŠ€μ—μ„œ μ œκ³΅ν•˜λŠ” μ›Ή μ„œλΉ„μŠ€
  • 내ꡬ성: STORAGEκ°€ μ•ˆμ •μ μœΌλ‘œ 데이터λ₯Ό κΈ°μ–΅ν•  수 μžˆλŠ” μ„±μ§ˆ
  • 버전 관리 : 객체의 λ³€ν™”λ₯Ό κΈ°λ‘ν–ˆλ‹€κ°€ νŠΉμ • μ‹œμ μ˜ 버전을 λ‹€μ‹œ 볡원할 수 μžˆλŠ” μ‹œμŠ€ν…œ
  • μŠ€ν† λ¦¬μ§€ 클래슀 : S3μ—λŠ” Standard, 지λŠ₯ν˜• 계측화, Standard-IA, One Zone-IA, Glacier, Glacier Deep Archive, 쀑볡 κ°μ†Œλ‘œ 6가지 ν˜•νƒœμ˜ μŠ€ν† λ¦¬μ§€κ°€ μ‘΄μž¬ν•¨
  • μ›Ή μ„œλ²„ : μ›Ή λΈŒλΌμš°μ €μ— μš”μ²­ν•˜λŠ” html λ¬Έμ„œλ‚˜ νŒŒμΌμ„ μ „μ†‘ν•΄μ£ΌλŠ” program, S3μ—λŠ” μ›Ή μ„œλ²„ κΈ°λŠ₯이 κΈ°λ³Έ λ‚΄μž₯λ˜μ–΄ 있음
  • CDN : μ½˜ν…μΈ  전솑 λ„€νŠΈμ›Œν¬λ‘œ μ „ 세계 CDN μ„œλ₯Ό λΆ„μ‚°ν•˜μ—¬ μš”μ²­μ΄ λ“€μ–΄μ˜¬ μ‹œ κ°€μž₯ κ°€κΉŒμš΄ κ³³μ—μ„œ 미리 μ €μž₯ν•˜κ³  있던 μ½˜ν…μΈ λ₯Ό λ³΄λ‚΄μ£ΌλŠ” 기술 
λ°˜μ‘ν˜•