Deploy static web on AWS

이번 μž₯에선 정적 μ›Ή 이λ ₯μ„œ 배포 λ°©μ•ˆμ„ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

μ‚¬μš© 기술: AWS S3

AWS S3

μ–΄λ””μ„œλ‚˜ μ›ν•˜λŠ” μ–‘μ˜ 데이터λ₯Ό 검색할 수 μžˆλ„λ‘ κ΅¬μΆ•λœ 객체 μŠ€ν† λ¦¬μ§€

S3λŠ” μœ„μ™€ 같은 μŠ¬λ‘œκ±΄μ„ κ°€μ§„ AWS의 μŠ€ν† λ¦¬μ§€ μ„œλΉ„μŠ€μž…λ‹ˆλ‹€. 이 외에도 AWS μŠ€ν† λ¦¬μ§€ μ„œλΉ„μŠ€λŠ” μƒλ‹Ήνžˆ λ§Žμ§€λ§Œ, μ£Όλͺ©μ μΈ 정적 μ›Ή 이λ ₯μ„œλ₯Ό λ°°ν¬ν•˜κΈ° μœ„ν•΄μ„œ S3λ₯Ό ν™œμš©ν•˜κ² μŠ΅λ‹ˆλ‹€.

S3 κ°œμš” νŽ˜μ΄μ§€μ— μ ‘μ†ν•˜λ©΄ κ°€μž₯ λˆˆμ— λ„λŠ” 뢀뢄은 μ•„λ¬΄λž˜λ„ '99.999999999%' 에 λ‹¬ν•œλ‹€λŠ” μ•ˆμ •μ„± μ†Œκ°œ λ¬Έκ΅¬μž…λ‹ˆλ‹€. 이처럼 S3λŠ” λ›°μ–΄λ‚œ μ €μž₯κ³΅κ°„μž„κ³Ό ν•¨κ»˜ λͺ‡ κ°€μ§€ μ„€μ •λ§ŒμœΌλ‘œ 정적 웹을 λ°°ν¬ν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. 이번 μž₯μ—μ„œ λ‹€λ£° λ‚΄μš©μ€ S3λ₯Ό ν™œμš©ν•œ 정적 μ›Ή 이λ ₯μ„œ 배포 κ³Όμ •μž…λ‹ˆλ‹€.

S3λ₯Ό 정적 μ›Ή ν˜ΈμŠ€νŒ… μš©λ„λ‘œ μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„  λ‹€μŒκ³Ό 같은 방법듀을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • Amazon S3 console(μ½˜μ†”)

  • REST API

  • the AWS SDKs

  • the AWS CLI or AWS CloudFormation

λ³Έ λ¬Έμ„œμ—μ„  Amazon S3 console을 ν™œμš©ν•œ μ›Ή 이λ ₯μ„œ ν˜ΈμŠ€νŒ…μ„ 과정을 μ„€λͺ…λ“œλ¦° ν›„ 좔후에 AWS CLI ν˜Ήμ€ AWS CloudFormation을 ν™œμš©ν•œ ν˜ΈμŠ€νŒ…μ„ μ„€λͺ…λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

μ•„ν‚€ν…μ²˜

버킷(Bucket) κ°œμš”

Bucket은 S3의 핡심 κ°œλ…μ΄λ©° S3 μ‚¬μš© μ„€λͺ…μ„œμ—μ„œ Bucket을 λ‹€μŒκ³Ό 같이 μ„€λͺ…ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

Amazon S3에 μ €μž₯된 객체에 λŒ€ν•œ μ»¨ν…Œμ΄λ„ˆ

λͺ¨λ“  κ°μ²΄λŠ” νŠΉμ • Bucket에 μ†Œμ†λ˜λ©°, Bucket의 이름은 파일 및 μ›Ή νŽ˜μ΄μ§€μ— μ ‘κ·Όν•  λ•Œ μ‚¬μš©λ  URL에 영ν–₯을 λ―ΈμΉ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ yibyeongyong.comμ΄λΌλŠ” 도메인을 κ°€μ§€κ³  있으며, 이λ ₯μ„œ νŽ˜μ΄μ§€μ˜ μ£Όμ†Œλ₯Ό resume-en.yibyeongyong.com으둜 λΆ€μ—¬ν•˜κ³  μ‹Άλ‹€λ©΄, λ²„ν‚·μ˜ 이름은 resume-en.yibyeongyong.com으둜 μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€(버킷 넀이밍).

이 외에도 버킷이 μ €μž₯ κ°€λŠ₯ν•œ 객체의 κ°―μˆ˜λŠ” μ œν•œμ΄ μ—†λŠ” νŠΉμ§•μ„ κ°€μ§€κ³ μžˆμœΌλ©°, ν•˜λ‚˜μ˜ κ³„μ •μ—μ„œ 생성 κ°€λŠ₯ν•œ λ²„ν‚·μ˜ μ΅œλŒ€ κ°―μˆ˜λŠ” 100개 μž…λ‹ˆλ‹€.

버킷 μƒμ„±ν•˜κΈ°

버킷을 μƒμ„±ν•˜λ €λ©΄ λ¨Όμ € S3 μ½˜μ†”λ‘œ 이동해야 ν•©λ‹ˆλ‹€. Alt + Sλ₯Ό λˆ„λ₯΄λ©΄ μ»€μ„œκ°€ κ²€μƒ‰μ°½μœΌλ‘œ μ΄λ™ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 AWS λ¦¬μ†ŒμŠ€ 이름을 직접 κ²€μƒ‰ν•˜λ©΄ μ½˜μ†”κΉŒμ§€ λΉ λ₯΄κ²Œ 이동할 수 μžˆμŠ΅λ‹ˆλ‹€. `` 이미 ν•œκ΅­μ–΄ 이λ ₯μ„œ(resume-ko)λ₯Ό 배포 μ€‘μ΄λ―€λ‘œ λ‹€μŒ 슀크린숏 ν™”λ©΄μ²˜λŸΌ 버킷 λͺ©λ‘μ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. ν•œκΈ€ 이λ ₯μ„œλŠ” 배포λ₯Ό μœ μ§€ν•œ 채, μ΄λ²ˆμ—” 영문 이λ ₯μ„œλ₯Ό λ°°ν¬ν•˜κΈ° μœ„ν•΄ 버킷을 μƒμ„±ν•˜κ² μŠ΅λ‹ˆλ‹€. ν™”λ©΄μ—μ„œ Create bucket을 눌러 버킷을 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

S3 Bucket List

버킷 이름은 계정 이름을 μƒμ„±ν•˜λ“―μ΄ 타 κ³„μ •μ—μ„œ μƒμ„±λœ 기쑴의 버킷과 κ²ΉμΉ  수 μ—†μŠ΅λ‹ˆλ‹€. λ˜ν•œ, μ›Ή μ‚¬μ΄νŠΈλ₯Ό ν˜ΈμŠ€νŒ… ν•  λͺ©μ μœΌλ‘œ 버킷을 μƒμ„±ν•œλ‹€λ©΄ λ²„ν‚·μ˜ 이름은 ν˜ΈμŠ€νŒ… ν•  μ›Ή μ£Όμ†Œμ™€ μΌμΉ˜μ‹œμΌœμ•Ό ν•©λ‹ˆλ‹€.

ν•œκ΅­μ–΄ 이λ ₯μ„œμ˜ 경우 μ„œμšΈ 리전(ap-northeast-2)에 μƒμ„±ν–ˆμ§€λ§Œ, 영문 이λ ₯μ„œλŠ” λ²„μ§€λ‹ˆμ•„ 리전(us-east-1)에 μƒμ„±ν•˜κ² μŠ΅λ‹ˆλ‹€. λ¦¬μ „μ˜ 차이가 μ‹€μ§ˆμ μœΌλ‘œ μ›Ή 화면을 λ‘œλ”©ν•˜λŠ” 속도, AWS CloudFront λ“±μ˜ λ¦¬μ†ŒμŠ€λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 캐싱에 μ–Όλ§ˆλ‚˜ 영ν–₯을 λΌμΉ μ§€λŠ” λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. 이 점에 λŒ€ν•΄μ„  μΆ”ν›„ μ„±λŠ₯ μ‹€ν—˜ 자료 등을 μ°Ύκ±°λ‚˜ 직접 μ‹€ν—˜μ„ μˆ˜ν–‰ν•˜μ—¬ 비ꡐ해 λ³Ό μ˜ˆμ •μž…λ‹ˆλ‹€.

ν•˜λ‹¨μ˜ Object Ownershipμ—μ„œ κΆŒν•œ μ œμ–΄ 리슀트(Access Control Lists, ACLs)의 ν™œμ„±ν™” μ—¬λΆ€λ₯Ό 선택할 수 μžˆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή 버킷은 개인 이λ ₯μ„œλ₯Ό ν˜ΈμŠ€νŒ…ν•  λͺ©μ μœΌλ‘œ μ‚¬μš©ν•  μ˜ˆμ •μ΄λ©°, λˆ„κ΅¬λ‚˜ μ ‘κ·Όν•  수 μžˆλ„λ‘ κ³΅κ°œν•  μ˜ˆμ •μž…λ‹ˆλ‹€. λ”°λΌμ„œ, κΆŒν•œ μ œμ–΄ λ¦¬μŠ€νŠΈλŠ” λ³„λ„λ‘œ ν™œμ„±ν™”ν•˜μ§€ μ•Šκ² μŠ΅λ‹ˆλ‹€.

버킷 이름과 리전 μ„€μ •

Block all public access의 체크λ₯Ό ν•΄μ œν•˜κ³  μ™ΈλΆ€λ‘œλΆ€ν„°μ˜ λͺ¨λ“  접근을 ν—ˆμš©ν•©λ‹ˆλ‹€. Block all accessλ₯Ό ν•΄μ œν•˜λ©΄ ν•˜λ‹¨μ— κ²½κ³  문ꡬ가 μƒμ„±λ©λ‹ˆλ‹€. μ΄λŠ” λΆˆνŠΉμ • λ‹€μˆ˜μ˜ μ™ΈλΆ€ μ‚¬μš©μžκ°€ μ ‘κ·Όν•  수 μžˆμŒμ„ κ²½κ³ ν•©λ‹ˆλ‹€. 이 뢀뢄을 λ™μ˜ν•©λ‹ˆλ‹€.

퍼블릭 μ ‘κ·Ό ν—ˆμš©

μ΄ν›„μ˜ μ„€μ • ν•­λͺ©λ“€μ€ ν•„μš”μ— 따라 μ„€μ •ν•  수 있으며 κ°œμΈμ μœΌλ‘œλŠ” μ΄ν›„μ˜ μ˜΅μ…˜ 쀑 Tag의 경우 이미 ν˜ΈμŠ€νŒ… 쀑인 버킷인resume-ko.yibyeongyong.com ꡬ뢄을 μœ„ν•΄ λ”°λ‘œ μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€. Bucket Versioning의 κ²½μš°μ—”, 이λ ₯μ„œλ₯Ό ν¬ν•¨ν•œ ν”„λ‘œμ νŠΈ κ΄€λ ¨ λͺ¨λ“  μ½”λ“œλ₯Ό Github에 μ—…λ‘œλ“œν•  μ˜ˆμ •μ΄λ―€λ‘œ λ”°λ‘œ μ‚¬μš©ν•  ν•„μš”λ₯Ό λŠλΌμ§€ λͺ»ν–ˆμœΌλ©° λ§ˆμ°¬κ°€μ§€λ‘œ λ‹€λ₯Έ μ˜΅μ…˜λ„ μΆ”κ°€ 섀정은 ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 섀정은 버킷이 μƒμ„±λœ 이후에도 변경이 κ°€λŠ₯ν•˜λ‹ˆ ν•„μš”ν•  λ•Œ λ°”κΎΈμ–΄μ£Όλ©΄ λ©λ‹ˆλ‹€.

λͺ¨λ“  섀정을 마치면 ν•˜λ‹¨μ˜ Create bucket을 ν΄λ¦­ν•˜μ—¬ 버킷 생성을 μ™„λ£Œν•©λ‹ˆλ‹€.

μ›Ή ν˜ΈμŠ€νŒ… ν™œμ„±ν™” ν•˜κΈ°

이후 버킷을 μ›Ή ν˜ΈμŠ€νŒ… μš©λ„λ‘œ μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„  μΆ”κ°€ 섀정이 ν•„μš”ν•©λ‹ˆλ‹€. μƒμ„±λœ 버킷 리슀트 쀑 방금 μƒμ„±ν•œ 버킷을 λˆ„λ₯΄κ³  νƒ­μ—μ„œ Properties -> κ°€μž₯ ν•˜λ‹¨μ˜ Static website hostingμ—μ„œ Edit λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ λ‹€μŒκ³Ό 같은 ν™”λ©΄μœΌλ‘œ μ΄λ™ν•©λ‹ˆλ‹€.

μ›Ή ν˜ΈμŠ€νŒ… ν™œμ„±ν™”

μœ„ ν™”λ©΄μ˜ Static website hosting을 Enable둜 λ³€κ²½ν•˜κ³  Hosting type은 Host a static website둜 λ³€κ²½ν•©λ‹ˆλ‹€. ν•˜λ‹¨μ˜ Index documentλŠ” 이λ ₯μ„œ νŽ˜μ΄μ§€μ˜ URL에 μ ‘κ·Όν•˜λ©΄ κ°€μž₯ λ¨Όμ € 보여쀄 νŽ˜μ΄μ§€μ˜ 파일λͺ…을 μž…λ ₯ν•˜λŠ” κ³³μž…λ‹ˆλ‹€. κ΄€λ‘€λ₯Ό 따라 index.html둜 μ„€μ •ν•˜κ² μŠ΅λ‹ˆλ‹€. Error documentλ‚˜ Redirection rulesλŠ” λ”°λ‘œ μ„€μ •ν•˜μ§€ μ•Šκ² μŠ΅λ‹ˆλ‹€. ν•„μš”ν•œ 섀정을 마치면 Save changesλ₯Ό 눌러 이전 ν™”λ©΄μœΌλ‘œ λŒμ•„κ°‘λ‹ˆλ‹€. ν˜ΈμŠ€νŒ…μ„ ν™œμ„±ν™”ν•˜λ©΄ 버킷에 μ›ΉμœΌλ‘œ μ ‘κ·Όν•  수 μžˆλŠ” μ—”λ“œν¬μΈνŠΈκ°€ μƒμ„±λ©λ‹ˆλ‹€.

버킷 μ›Ήμ‚¬μ΄νŠΈ μ—”λ“œν¬μΈνŠΈ

νƒ­μ˜ Objectsλ₯Ό 눌러 이λ ₯μ„œ νŒŒμΌμ„ μ—…λ‘œλ“œν•©λ‹ˆλ‹€. μ£Όμ˜ν•  점은 방금 μ„€μ •ν–ˆλ˜ Index document와 파일λͺ…을 μΌμΉ˜μ‹œν‚€λŠ” κ²ƒμž…λ‹ˆλ‹€. ν…ŒμŠ€νŠΈ λͺ©μ μœΌλ‘œ Githubμ—μ„œ λ‹€μš΄λ‘œλ“œ ν•œ 이λ ₯μ„œ ν…œν”Œλ¦Ώ λ ˆν¬μ§€ν† λ¦¬μ—μ„œ 파일λͺ…λ§Œ index.html둜 μˆ˜μ •ν•˜μ—¬ μ—…λ‘œλ“œν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. μ—…λ‘œλ“œλŠ” λΈŒλΌμš°μ €λ‘œ λ“œλž˜κ·Έλ₯Ό ν†΅ν•΄μ„œλ„ κ°€λŠ₯ν•©λ‹ˆλ‹€.

이 μƒνƒœμ—μ„œ 파일 이름(index.html)을 ν΄λ¦­ν•˜λ©΄ 첫 화면인 Properties νƒ­μ—μ„œ Object URL을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬ ν•΄λ‹Ή URL을 톡해 이λ ₯μ„œ νŽ˜μ΄μ§€μ— μ ‘κ·Όν•  수 있으며, μΆ”ν›„ DNS μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜λ©΄ μžμ‹ λ§Œμ˜ λ„λ©”μΈμœΌλ‘œ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ Object URL을 톡해 접속해보면 κΈ°λŒ€μ™€ 달리 AccessDeninedκ°€ λ°œμƒν•©λ‹ˆλ‹€.

ν˜Ήμ‹œλ‚˜ λ‚΄λΆ€ 객체에 직접 μ ‘κ·Όν•˜λŠ” κ²ƒλ§Œ λΆˆκ°€λŠ₯ν•œ 것이 μ•„λ‹κΉŒ μ‹Άμ–΄ '버킷 μ„€μ • ν™”λ©΄ -> Properties νƒ­ -> ν•˜λ‹¨ Static website hosting'의 Bucket website endpoint에 ν‘œμ‹œλœ URL둜 접근을 μ‹œλ„ν•˜λ”λΌλ„ 403 Forbidden이 λ°œμƒν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ 였λ₯˜κ°€ λ°œμƒν•˜λŠ” μ΄μœ λŠ” AWS λ¦¬μ†ŒμŠ€λ§ˆλ‹€ 접근을 μ œμ–΄ν•˜λŠ” μ •μ±…(Policy)이 κ°œλ³„μ μœΌλ‘œ μ‘΄μž¬ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. S3 λ²„ν‚·μ˜ 경우 Bucket policyκ°€ μΆ”κ°€λ‘œ μ‘΄μž¬ν•©λ‹ˆλ‹€. μ›Ή νŽ˜μ΄μ§€ 접근을 μœ„ν•œ κ΄€λ ¨ κΆŒν•œ μ„€μ • 및 Bucket policy 섀정에 κ΄€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ μ΄κ³³μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

AWS λ¦¬μ†ŒμŠ€μ˜ 정책은 Json 포맷으둜 μ„€μ •ν•©λ‹ˆλ‹€. 버킷 μ„€μ • μ°½μ—μ„œ Permissionsνƒ­μœΌλ‘œ 이동 ν›„ Bucket policyμ—μ„œ Edit을 눌러 정책을 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이후 ν™”λ©΄μ—μ„œ 1) 정책을 직접 μž…λ ₯ν•˜κ±°λ‚˜, 2) μ€‘μ•™μ˜ Policy generator을 ν™œμš©ν•˜κ±°λ‚˜, 3) 우츑의 Add new statementμ—μ„œ 정책을 ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ²„ν‚·μ˜ 객체에 읽기λ₯Ό ν—ˆμš©ν•˜λŠ” 정책을 μƒμ„±ν•˜λ €λ©΄ λ‹€μŒκ³Ό 같이 μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이 쀑 Sid ν•­λͺ©μ€ 자유둭게 지을 수 있고 Resource ν•­λͺ©μ˜ Bucket-name λΆ€λΆ„λ§Œ 개인적으둜 μ‚¬μš©ν•˜λŠ” 버킷 μ΄λ¦„μœΌλ‘œ λ³€κ²½ν•˜λ©΄ λ©λ‹ˆλ‹€.

각 ν•­λͺ©μ— λŒ€ν•œ μ„€λͺ…은 μ΄κ³³μ—μ„œ μƒμ„Ένžˆ 닀루고 μžˆμŠ΅λ‹ˆλ‹€.

버킷 정책을 μ„€μ • ν›„ Object URLκ³Ό Bucket website endpointλ₯Ό 톡해 접근해보면 두 방법 λͺ¨λ‘ μ •μƒμ μœΌλ‘œ 이λ ₯μ„œκ°€ 화면에 좜λ ₯λ˜λŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

이λ ₯μ„œ μ ‘κ·Ό 성곡

맺음말

μ§€κΈˆκΉŒμ§€ AWS S3의 버킷을 μ‚¬μš©ν•˜μ—¬ 정적 μ›Ή 이λ ₯μ„œλ₯Ό λ°°ν¬ν•˜λŠ” 방법에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€. λ¬Όλ‘  이 μžμ²΄λ‘œλ„ μ‚¬μš©ν•  수 μžˆμ§€λ§Œ 도메인 λ„€μž„μ˜ 쑴재 μ΄μœ κ°€ λ¬΄μƒ‰ν•˜κ²Œ URL μžμ²΄κ°€ μ™Έμš°κΈ°μ—” κΈΈκΈ°λ„ν•˜κ³ , 특히 μ£Όμ†Œμ°½ 쒌츑의 주의 μš”ν•¨ μ΄λΌλŠ” 문ꡬ가 μ‹ κ²½ μ“°μž…λ‹ˆλ‹€.

μ΄λŸ¬ν•œ λ¬Έμ œλ“€μ€ AWS의 DNS μ„œλΉ„μŠ€μΈ Route 53κ³Ό CDN μ„œλΉ„μŠ€μΈ CloudFrontλ₯Ό ν™œμš©ν•˜μ—¬ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄μ–΄μ§€λŠ” λ‚΄μš©μ€ λ‹€μŒ μž₯μ—μ„œ λ‹€λ£¨κ² μŠ΅λ‹ˆλ‹€.

생각해볼 점

  1. 버킷 정책이 μ„€μ •λ˜μ–΄μžˆμ§€ μ•Šμ•„ 버킷 μ˜€λΈŒμ νŠΈμ— μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λŠ” μƒν™©μ—μ„œ λ„λŒ€μ²΄ μ–΄λŠ 뢀뢄이 λ¬Έμ œμΈμ§€ λͺ°λΌ 이λ₯Ό κ³ μΉ˜λŠ” 데 λ§Žμ€ μ‹œκ°„μ„ μ†ŒλΉ„ν–ˆμŠ΅λ‹ˆλ‹€. 특히 AWSλŠ” 맀우 λ‹€μ–‘ν•œ λ¦¬μ†ŒμŠ€λ₯Ό μ œκ³΅ν•˜λ―€λ‘œ μš΄μš©ν•˜λŠ” ν΄λΌμš°λ“œμ˜ 규λͺ¨κ°€ 클 수둝 원인 νŒŒμ•…μ΄ 더 μ–΄λ €μ›Œμ§ˆ 것 μž…λ‹ˆλ‹€. 문제의 원인을 λΉ λ₯΄κ²Œ μ°ΎλŠ” 방법은 μ—†μ„κΉŒμš”?

  2. ν˜„μž¬κΉŒμ§€μ˜ μž‘μ—…μ„ 잘 λ”°λΌμ˜¨ μƒνƒœμ—μ„œ λˆˆμ°λ―Έκ°€ μ’‹λ‹€λ©΄ μ΄μƒν•œ 뢀뢄을 λ°œκ²¬ν–ˆμ„ 것 μž…λ‹ˆλ‹€. μ™œ 같은 index.html에 μ ‘κ·Όν–ˆμŒμ—λ„ S3 버킷 μ˜€λΈŒμ νŠΈμ— 직접 μ ‘κ·Όν•˜λ©΄ HTTPSκ°€ μ μš©λ˜μ–΄μžˆκ³  버킷이 ν˜ΈμŠ€νŒ… 쀑인 μ£Όμ†Œλ‘œ μ ‘κ·Όν•˜λ©΄ HTTPSκ°€ μ μš©λ˜μ–΄μžˆμ§€ μ•Šμ„κΉŒμš”? μ΄λŸ¬ν•œ μ°¨μ΄λŠ” μ™œ λ°œμƒν•˜λŠ” κ±ΈκΉŒμš”? μ‚¬μš©μžμ—κ²Œ 데이터λ₯Ό 좜λ ₯ν•˜κΈ°κΉŒμ§€μ˜ κ³Όμ •μ—μ„œ 무언가 차이점이 λ°œμƒν•˜λŠ”κ±ΈκΉŒμš”?

같은 νŽ˜μ΄μ§€μž„μ—λ„ SSL μ μš©μ— 차이가 있음

Last updated