ν΄λΉ κ²μλ¬Όμ μ λμμμ μ°Έκ³ νμ¬ μμ±λμμ΅λλ€.
Amazon S3 μκ° / κ°μ²΄ μ λ‘λ λ°©λ²
Amazon S3λ, Amazon Simple Storage Serviceμ μ½μλ‘, μλ§μ‘΄μ κ°μ²΄ μ€ν λ¦¬μ§ μλΉμ€λ₯Ό μλ―Έν©λλ€.
λ°μ΄ν°λ₯Ό S3μ μ μ₯νλ €λ©΄, bucketκ³Ό κ°μ²΄λΌλ 리μμ€λ₯Ό μ¬μ©ν΄μΌνλλ°,
μ¬κΈ°μ λ²ν·μ S3μ μ μ₯λ κ°μ²΄μ λν 컨ν μ΄λ, κ°μ²΄λ νμΌκ³Ό ν΄λΉ νμΌμ λ©ν λ°μ΄ν°λ₯Ό μλ―Έν©λλ€.
μ΄ S3μ κ°μ²΄λ₯Ό μ λ‘λνλ λ°©λ²μ κ°λ¨ν©λλ€.
aws μ½μμμ S3 μλΉμ€μ μ§μ νμ¬ λ²ν·μ μμ±νκ³ , κ·Έ μμ κ°μ²΄λ₯Ό μ λ‘λνλ©΄ λ©λλ€.
μ΄λ κ² κ°μ²΄λ₯Ό μ λ‘λνλ λ°©λ²μΌλ‘λ ν¬κ² 4κ°μ§λ‘ μ΄μΌκΈ°ν΄λ³Ό μ μμ΅λλ€!
- Presigned URL μ¬μ©
- νμΌμ AWS μ½μμμ μ§μ μ λ‘λ
- HTTP μλΈλ 리νμ€νΈμ Input Streamμ μ΄μ©νμ¬ S3μ μ§μ νμΌμ μ μ‘νλ Stream λ°©μ
- μ€νλ§μμ μ 곡νλ λ©ν°ννΈ νμΌ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ λ°©μ
μ΄λ κ² κ°μ²΄λ₯Ό μ λ‘λ ν ν, S3μ νμΌμ 곡μ νλ λ°©λ²λ ν¬κ² 4κ°μ§λ‘ μ΄μΌκΈ°ν΄ λ³Ό μ μμ΅λλ€.
- λͺ¨λ νμΌμ νΌλΈλ¦μΌλ‘ λ§λ€κΈ°
- IAM μ격μ¦λͺ 곡μ (Access Key Pair)
- IAM μ¬μ©μ λΆμ¬νκΈ°
- Presigned URL
κ°κ°μ λ°©λ²μ μ₯λ¨μ μ κ°λ΅νκ² μ΄ν΄λ³΄κ² μ΅λλ€.
1. λͺ¨λ νμΌμ νΌλΈλ¦μΌλ‘ λ§λ€κΈ°
μ΄ λ°©μμ, λ³λμ κ΄λ¦¬κ° νμ μλ€λ μ₯μ μ΄ μμ§λ§,
μ무λ νμΌμ λ€μ΄λ‘λ ν μ μλ€λ λ¨μ μ΄ μ‘΄μ¬ν©λλ€. 보μμμΌλ‘ μ’μ§ μμ΅λλ€. (μ무λλ ..)
2. IAM μ격μ¦λͺ 곡μ (Access Key Pair)
λ€μμΌλ‘ IAM μ격μ¦λͺ μ 곡μ νλ λ°©λ²μ΄ μμ΅λλ€.
μ΄ λ°©λ²μ κ²½μ°, μ§μ ν μ¬λλ§ κ³΅μ κ°λ₯νμ§λ§,
μ격μ¦λͺ μ μΆ/λ³κ²½ μ 곡μ μ λͺ¨λμκ² λ€μ λΆμ¬κ° νμνκ³ ,
μ΄ μ격μ¦λͺ μ κ°μΈμ΄ μ§λκ³ μκΈ° λλ¬Έμ μ격μ¦λͺ μ κ΄λ¦¬κ° μ΄λ ΅μ΅λλ€. λν, μꡬ μ격 μ¦λͺ μ΄λΌ 보μμ΄ λ°μ΄λμ§ μλ€λ λ¨μ μ΄ μμ΅λλ€.
3. IAM μ¬μ©μ λΆμ¬νκΈ°
μ΄λ κ² IAM μ¬μ©μλ₯Ό λΆμ¬νλ λ°©λ²λ λ§μ°¬κ°μ§λ‘ μ§μ ν μ¬λλ§ κ³΅μ κ°λ₯νλ€λ μ₯μ μ΄ μ‘΄μ¬νμ§λ§,
IAM μ¬μ©μμ μ«μλ 5000κ°λ‘ μ νλμ΄ μμΌλ©°,
λͺ¨λ μ μ μκ² IAM μ¬μ©μλ₯Ό λΆμ¬νλ κ³Όμ μ΄ νμν΄ λ²κ±°λ‘μ΅λλ€.
λν, μ μ§λ³΄μκ° μ΄λ ΅λ€λ λ¨μ μ΄ μ‘΄μ¬ν©λλ€.
4. Presigned URL
λ§μ§λ§μΌλ‘ μ΄λ² κ²μκΈμ λͺ©μ , Presigned Urlμ λλ€.
Presigned Urlμ, κΆνμ΄ λ΄κΈ΄ urlμ μμ±νκ³ , μ΄ urlμ ν΅ν΄ S3 λ²ν·μ κ°μ²΄λ₯Ό μ λ‘λν μ μλλ‘ νλ λ°©μμ λλ€.
μμ λ°©μλ€κ³Ό λΉκ΅ν΄μ μκ°ν΄λ³΄λ©΄, Presigned URLμ μμ 2,3λ² λ°©μκ³Ό λμΌνκ² μ§μ ν μ¬λλ§ κ³΅μ κ°λ₯ν©λλ€.
λν λ§λ£κΈ°κ°λ μ€μ κ°λ₯νκ³ , κΆνμ κ΄λ¦¬ν μ μμ΅λλ€.
κ·Έλ¦¬κ³ HTTP κΈ°λ°μΌλ‘ μ κ·Όμ΄ κ°λ₯νλ€λ μ₯μ μ΄ μμ΅λλ€.
κ·Έλ λ€λ©΄ μ΄ presigned urlμ΄ κ΅¬μ²΄μ μΌλ‘ μ΄λ€ λ°©μμΈμ§ μ΄ν΄λ³΄λλ‘ νκ² μ΅λλ€! πΆπ»βοΈπΆπ»βοΈ
Presigned URLμ κ°λ
Presigned URL λ°©μμ,
κΆνμ΄ μλ μ¬μ©μκ° νΉμ κΆνμ λ΄μμ URLμ μμ±νλ©΄, μ΄λ₯Ό ν΅ν΄ λ€λ₯Έ μ¬μ©μκ° S3 λ²ν·μ κ°μ²΄λ₯Ό μ λ‘λν μ μκ² λλ λ°©μμ μ§μν©λλ€.
μ΄ λ°©λ²μ μ¬μ©νλ©΄, μ΄ urlμ μ΄μ©νλ μ¬μ©μλ AWS 보μ μ격 μ¦λͺ μ΄λ κΆνμ΄ μμ΄λ κ°μ²΄λ₯Ό μ λ‘λν μ μμ΅λλ€.
μ΄λ Presigned Urlμ μμ±νλ μ¬μ©μμ κΆνμ λ°λΌ μ νλ©λλ€. μ΄ Urlμ μμ ν μ¬μ©μλ, url μμ±μκ° ν΄λΉ κ°μ²΄λ₯Ό μ λ‘λν μ μλ κ²½μ°μλ§ κ°μ²΄λ₯Ό μ λ‘λν μ μμ΅λλ€.
λν, URL μμ± μ μ§μ λ κΈ°κ° λμλ§ μ ν¨νκ²λ μ€μ νμ¬ λ³΄μμ κ°νν©λλ€.
Amazon S3 μ½μμμ, Presigned URLμ μμ±ν λ λ§λ£ μκ°μ 1λΆ ~ 12μκ° μ¬μ΄λ‘ μ€μ ν μ μμΌλ©°, AWS CLI νΉμ AWS SDKλ₯Ό μ¬μ©νλ κ²½μ°μλ μ΅λ 7μΌκΉμ§ μ€μ μ΄ κ°λ₯ν©λλ€.
μ¦ μ 리ν΄λ³΄λ©΄, Presigned URLμ ν΅ν΄ Amazon S3 λ²ν·μ μ μ± μ μ λ°μ΄νΈ νμ§ μμλ, S3 κ°μ²΄μ μ νλ μκ° λμ μ κ·Όν μ μλ κΆνμ λΆμ¬νμ¬ μ λ‘λ λλ λ€μ΄λ‘λλ₯Ό μ§νν μ μκ² λ©λλ€.
Presigned URLμ λμ κ³Όμ
- ν΄λΌμ΄μΈνΈκ° μλ²μκ² Presigned URLμ μμ²ν¨.
- μ΄ν μλ²λ, AWS Credential μΈμ¦ κ³Όμ μ κ±°μ³μ S3μ μμ²ν¨.
- μ΄λ λ²ν· μ΄λ¦κ³Ό HTTP Method, λ§λ£ μκ° λ±μ λκ³ Presigned URLμ μμ±ν¨.
- μλ²λ S3λ‘λΆν° Presigned URLμ λ°νλ°μ.
- λ€μ μλ²λ, ν΄λΌμ΄μΈνΈμκ² μμ λ°νλ°μ URLμ μ λ¬ν¨.
- μ΄ν ν΄λΌμ΄μΈνΈλ ν΄λΉ Presigned URLλ‘ HTTP μμ²μ 보λ΄λ©΄, μ§μ λ λ²ν· λ° λλ ν 리μ κ°μ²΄κ° μ λ‘λ λ¨.
- μΆκ°μ μΌλ‘ μλ²λ ν΄λΉ μ΄λ―Έμ§μ μ£Όμλ₯Ό String ννλ‘ λ°μ΄ν°λ² μ΄μ€μ μ μ₯ν μ μμ.
Presigned URLμ μ₯μ
- μλ² λΆν κ°μ
- μ΄λ―Έμ§ νμΌμ μ©λμ΄ ν° κ²½μ°κ° λ§μ, jsonμ μ£Όκ³ λ°λ μΌλ°μ μΈ API μμ²μ λΉν΄ μλ²μ λ ν° λΆνλ₯Ό μ£Όκ² λ¨.
- λ°λΌμ, μ΄λ―Έμ§ μ λ‘λκ° λ°±μλ μλ²λ₯Ό κ±°μΉκ² λ κ²½μ°, μλ²μ ν° λΆλ΄μ΄ κ°ν΄μ§κ² λ¨.
- κ·Έλ λ€λ©΄ ν΄λΌμ΄μΈνΈμμ λ°λ‘ μ λ‘λνλ©΄ λμ§ μ κ΅³μ΄ μλ²λ₯Ό κ±°μΉλ?
- → 보μ λλ¬Έ. μλ²λ₯Ό κ±°μΉμ§ μμ λλ κΆνμ΄ μλ μ¬μ©μλ S3μ μ κ·Όν μ μκΈ° λλ¬Έ.
- 보μ κ°ν
- νμ§λ§ Presigned URLμ μ¬μ©νλ©΄ μ΄λ―Έ S3μ κ°μ²΄λ₯Ό μ λ‘λν μ μλ κΆνμ κ°κ³ μλ μνμ΄κΈ° λλ¬Έμ μ΄λ―Έμ§λ₯Ό μ λ‘λν λ λ°±μλ μλ²λ₯Ό κ±°μΉμ§ μκ³ λ ν΄λΌμ΄μΈνΈμμ λ°λ‘ S3μ μ λ‘λκ° κ°λ₯νκ² λ¨.
- μ΄μ μλ, λ°±μλκ° μ΄λ―Έμ§λ₯Ό μμλ‘ μ μ₯ν΄λ¨λ€κ°, S3μ μ λ¬ν¨κ³Ό λμμ 보μ μ μ°¨λ ν λ²μ μ§νν¨. νμ§λ§, Presigned URL λ°©μμ μ¬μ©νλ©΄, λ°±μλλ url μμ±μΌλ‘ 보μμ μ°¨ μμ λ§ ν΄μ£Όκ³ , ν΄λΌμ΄μΈνΈκ° S3λ‘ λ°λ‘ μ λ‘λν μ μλλ‘ κ³Όμ μ λΆλ¦¬νκ² λ¨.
- λν, νμΌ μ λ‘λλ₯Ό μν΄ λ€νΈμν¬ λμνμ΄λ λ³λμ μ±μ μ μν νμκ° μμΌλ―λ‘ μλ²λ λ©λͺ¨λ¦¬μ λ€νΈμν¬ μμμ μ μ½ν μ μκ² λ¨.
- λ λ²μ§Έλ‘, λ§λ£ κΈ°κ° μ€μ μΌλ‘ 보μμ κ°νν μ μμ.
- Presigned URL μμ± μ, access νμ© κΈ°κ°κ³Ό λ²μλ₯Ό μ€μ ν μ μμ΄μ μ ν¨κΈ°κ° λμμ μ§μ λ μ¬μ©μλ§ μ κ·Όμ΄ κ°λ₯νλλ‘ μ μ΄ν μ μμ.
- μ΄λ¬ν λ°©λ²μ ν΅ν΄ URLμ΄ νμ·¨ λΉνλλΌλ λ§λ£ κΈ°κ°μ΄ λλ©΄ μλμΌλ‘ κΆνμ΄ μ¬λΌμ§κ² λ¨.
λ€μ κΈμμλ,
S3λ₯Ό νλ‘μ νΈμ μ μ©ν κ³Όμ μ λν΄ μ μ΄λ³΄κ² μ΅λλ€!
'π AWS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[AWS/S3] Spring Boot νλ‘μ νΈμ Presigned Url μ μ©νκΈ° (0) | 2025.03.23 |
---|